0.7.1 • Published 4 years ago

styled-system-scale v0.7.1

Weekly downloads
5
License
MIT
Repository
github
Last release
4 years ago

Styled System Scale

Responsive, theme-based scale props for automatically applying scale values to Styled System.

npm version Build Status

npm i styled-system-scale

Usage

// Example uses styled-components, but styled-system-scale works with anything styled-system supports, including emotion.
import styled from 'styled-components'
import { space, typography, compose } from 'styled-system'
import {
  spaceScales,
  typographyScales,
  composeScales,
  interceptScales,
} from 'styled-system-scale'

const scales = composeScales(spaceScales, typographyScales)

const Box = styled.div(interceptScales(scales)(compose(space, typography)))

Styled System Scale requires providing "scales" for each scale prop. For example, the following theme sets up space and font size scales.

const theme = {
  breakpoints: linearScale('40rem', '64rem', { count: 3 }),
  space: linearScale('0rem', '10rem', { difference: 0.25 }),
  spaceScales: {
    small: linearScale(0, 3),
    base: linearScale(2, 5),
    large: linearScale(4, 7),
  },
  fontSizes: linearScale('0rem', '10rem', { difference: 0.25 }),
  fontSizeScales: {
    small: linearScale(3, 4),
    base: linearScale(4, 7),
    large: linearScale(6, 9),
  },
}

With the theme in place, scale props can be used to provide values to the Styled System props.

// margin with responsive values from theme.spaceScales.large
<Box mScale="large" />

// padding-bottom with responsive values from theme.spaceScales.base
<Box pbScale="base" />

// fontSize with responsive values from theme.fontSizeScales.small
<Box fontSizeScale="small" />

Docs

0.7.1

4 years ago

0.7.0

4 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.2-next.0

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago