npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cyberhippo/react-styled-buttons

v1.4.0

Published

Themable Styled React button components. Flexible & easily customized.

Downloads

2

Readme

React Styled Buttons

React button components with WCAG 2 AA contrast ratio tested colors, light and dark theme options. Flexible & easily customized.

Uses a theme based on System UI Theme Specification & can be overriden by passing in your own theme as a prop.

If you are using emotion, styles can also be overriden via composition.

Getting Started

Install.

npm i -S @cyberhippo/react-styled-buttons

Import the Button component into your app:

import { Button } from '@cyberhippo/react-styled-buttons';

Add Button to your render function.

<Button>Click Me!</Button>

Demo

Explore all the button themes, styles and sizes in the Storybook.

Button props

These are the available props for the button component.

as

Allows you to overwrite the element - by default it is rendered as a button element. This is useful if you need to use a routing Link component

<Button as={Link} to="/about">
  About
</Button>

any html attribute

Any html attribute can be passed as a prop and will be set as an attribute to the element.

<Button tabindex="-1">
  About
</Button>

onClick or any react on event handler

<Button
onClick={() => {
    /* your click handler */
}}
onMouseUp={() => {
    /* your mouse up handler */
}}
>

variant

Button variant - this will assign different theme styles for each variant. Options: primary(default), secondary, accent1, accent2, accent3, accent4, muted, highlight, gray.

<Button variant="secondary">
  About
</Button>

size

Three sizes: large(default), medium, small.

<Button size="small">
  About
</Button>

mode

Mode: light or dark.

<Button mode="dark">
  About
</Button>

disabled

Sets button to disabled.

<Button disabled>
  About
</Button>

Disables button animation on hover & click.

<Button disableAnimation>
  About
</Button>

Disable color transforms on hover & click.

<Button disableColorTransforms>
  About
</Button>

theme

The Button component uses a theme preset to set styles. Override the theme by passing a theme object, this will be merged with the Button's theme. Pass in the same properties as the inner theme.

<Button
  mode={mode}
  theme={{
    colors: {
      background: "#f8f0fc",
      primary: "#862E9C",
      modes: {
        dark: {
          background: "#333",
          primary: "#e599f7"
        }
      }
    },
    shadows: {
      default: "0 .5rem 1rem rebeccapurple"
    }
  }}
>
  Custom theme button
</Button>

Styles

Compose your own styles

If you are using emotion, you can merge your own styles with existing styles (composition) by passing in a css prop.

<Button
css={css`
    background: red;
    &:hover {
    background: green;
    }
`}
>
About
</Button>