1.3.22 • Published 5 years ago

@marinda/react-styled-buttons v1.3.22

Weekly downloads
-
License
ISC
Repository
github
Last release
5 years ago

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 @marinda/react-styled-buttons

Import the Button component into your app:

import { Button } from '@marinda/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>
1.3.22

5 years ago

1.3.21

5 years ago

1.2.21

5 years ago

1.1.21

5 years ago

0.1.21

5 years ago

0.1.20

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago

0.0.0

5 years ago