Releases: styled-system/styled-system
Releases · styled-system/styled-system
v4
- Rewritten core for less code duplication
- No longer merges returned style object, but returns arrays instead, which should work with common CSS-in-JS libraries
space
function has been rewritten with the corestyle
andcompose
utilities- Adds long-form props for margin and padding (e.g.
marginTop
). Shorthand aliases still work as before. - Reintroduces the
alias
argument tostyle
utility - Removes the
styles
object export - Removes the
util
object export - Removes
merge
utility - Removes the
mixed
utility since it did not behave as expected - The theme "scale" is now passed as the second argument to the
transformValue
option instyle
utility - Removes the
ratio
style function - The following changes to the
borders
style function- The shorthand border props no longer transform numbers to pixel widths with a
solid
border-style
- Adds
borderWidth
,borderStyle
,borderColor
, andborderRadius
props - All border props are also available as individual imports
- The shorthand border props no longer transform numbers to pixel widths with a
- Removes
styleType
from prop typesmeta
fields - Changes to the
get
utility: now returns the last argument as a fallback
Fix incorrectly named utility
- Rename
css
tomixed
to avoid naming collisions
Performance rewrite
This rewrite helps make styled-system smaller, faster, and simplifies the API.
Added
Changed
style
utility is now responsive by default- All built-in style functions now support responsive array values
backgroundImage
no longer wraps values withurl()
buttonStyle
prop has been renamed tovariant
- The
style
utilitygetter
argument has beend renamed totransformValue
util.get
no longer supports a fallback argument
Removed
responsiveStyle
usestyle
insteadcomplexStyle
usevariant
insteadcomplexStyle
(variant
) boolean props are no longer supportedpseudoStyle
hover
focus
active
disabled
fontSize
andwidth
no longer support shorthand propsalias
optionnumberToPx
option (passutil.px
to thetransformValue
argument instead)util.media
util.neg
util.arr
util.getWidth
util.mq
util.fallbackTheme
util.breaks
util.dec
util.getValue
Migrating from v2
- Replace all deprecated shorthand
f
props with thefontSize
prop - Replace all deprecated shorthand
w
props with thewidth
prop - Replace the deprecated
buttonStyle
prop with thevariant
prop - Ensure
backgroundImage
props include the CSSurl()
syntax where needed - Replace instances of
responsiveStyle
with thestyle
utility - Replace the
numberToPx
argument withtransformValue: util.px
- Rename the
getter
argument withtransformValue
- Replace
complexStyle
withvariant
- Replace custom
alias
props with something like recompose's mapProps - Ensure boolean props are not used for
variant
styles, including:buttonStyle
textStyle
colors
- If you were using
hover
,focus
,active
,disabled
, orpseudoStyle
, consider adding your own replacement - Consider adding replacements for any of the removed utilities listed above
CSS Grid Support
v2.2.0 2.2.0
Add flexBasis and justifySelf functions
v2.1.2 2.1.2
v2.0.0
What's new
- More utilities for CSS properties
- Uses verbose naming convention for
textAlign
,alignItems
,justifyContent
,flexWrap
, and other CSS properties style
,responsiveStyle
, andpseudoStyle
utilities now acceptgetter
andgetters
arguments for converting values- New
borders
utility that normalizes the API with other styled-system utilities - Rewritten with ES module syntax
- DRYer code base for utilities like
fontSize
,width
, andcolor
- The repo has been reorganized as a monorepo
Breaking
- The
cleanElement
utility is now a separate package, removing thereact
dependency from the core library - The
flexWrap
utility now expects a string value for its prop (previously a boolean) - The
borderWidth
utility has been replaced with theborders
utility - The
borderTop
,borderRight
,borderBottom
, andborderLeft
props no longer accept boolean props, but follow the same convention as other utilities - The default spacing scale has changed to
[ 0, 4, 8, 16, 32, 64, 128, 256, 512 ]
(this only affects usage without a customtheme.space
provided - Number values for breakpoints are now converted to px instead of ems to better match the rest of the library
- The
theme
utility has been renamed tothemeGet
(alternative names under consideration) - Removes
removeProps
utility - Removes
idx
utility - Removes legacy
responsiveStyle
arguments API - The
pseudoStyle
arguments API has changed to more closely align withstyle
andresponsiveStyle
Shims for breaking changes
To make migration easier, some breaking changes will continue to work as intended or similarly:
justifyContent
is aliased to thejustify
proptextAlign
is aliased to thealign
prop, though this may cause unexpected behavior when used with thealignItems
propalignItems
is aliased to thealign
prop, though this may cause unexpected behavior when used with thetextAlign
propflexWrap
is aliased to thewrap
prop, but a string value ofwrap
ornowrap
should be provided. (a shim to convert booleantrue
values towrap
has been added as well)borderWidth
now works similarly to the newborders
utility, which will continue to work for most use-cases- The
themeGet
utility is aliased to atheme
export
New utilities
- fontFamily
- display
- minWidth
- height
- maxHeight
- minHeight
- size (width & height)
- alignContent
- order
- borders
- backgroundImage
- backgroundSize
- backgroundPosition
- zIndex
- top
- right
- bottom
- left