Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src Add gridGap, gridColumnGap, gridRowGap to scales Jun 21, 2019
test css: check for null values Jun 19, 2019
.npmignore Add benchmarks May 25, 2019
README.md Use system scale on negative positional properties Jun 19, 2019
package.json v5.0.11 Jun 24, 2019

README.md

@styled-system/css

Styled System for the css prop

npm i @styled-system/css

Styled System CSS lets you write style objects with responsive, theme-aware Styled System shortcuts.

// usage with the css prop
import React from 'react'
import css from '@styled-system/css'

const Beep = props =>
  <div
    {...props}
    css={css({
      fontSize: [4, 5, 6],
      color: 'primary',
    })}
  />
// usage with a styled HOC
import styled from '@emotion/styled'
import css from '@styled-system/css'

const Boop = styled('div')(
  css({
    fontSize: [ 4, 5, 6 ],
    color: 'primary',
    bg: 'gray',
    '&:hover': {
      color: 'secondary',
    },
  })
)

Theme Keys

The following keys in your style object will work the same as Styled System props, pulling values from your theme object.

Property Theme Key
fontFamily fonts
fontSize fontSizes
fontWeight fontWeights
lineHeight lineHeights
letterSpacing letterSpacings
color colors
backgroundColor, bg colors
margin, m space
marginTop, mt space
marginRight, mr space
marginBottom, mb space
marginLeft, ml space
marginX, mx space
marginY, my space
padding, p space
paddingTop, pt space
paddingRight, pr space
paddingBottom, pb space
paddingLeft, pl space
paddingX, px space
paddingY, py space
top space
bottom space
left space
right space
border borders
borderTop borders
borderRight borders
borderBottom borders
borderLeft borders
borderColor colors
borderWidth borderWidths
borderStyle borderStyles
borderRadius radii
boxShadow shadows
textShadow shadows
zIndex zIndices
width sizes
minWidth sizes
maxWidth sizes
height sizes
minHeight sizes
maxHeight sizes

Responsive Arrays

All CSS properties accept arrays as values for responsive styles.

<div
  css={css({
    fontSize: [ 4, 5, 6 ],
  })}
/>

In this example, fontSize accepts an array, picking up values from the theme.fontSizes scale, and borderBottom is passed through as plain CSS.

<div
  css={css({
    // Styled System key
    fontSize: [ 3, 4, 5 ],
    // CSS property
    borderBottom: '2px solid tomato',
  })}
/>

MIT License

You can’t perform that action at this time.