All notable changes to this project will be documented in this file. If a contribution does not have a mention next to it, @geelen or @mxstbr did it.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Upgrade stylis to 2.3 and use constructor to fix bugs with multiple libs using stylis simultaneously (see #962)
- Added missing v2.0 APIs to TypeScript typings, thanks to @patrick91, @igorbek (see #837, #882)
- Added
react-primitives
target, thanks to @mathieudutour (see #904 - Various minor fixes: #886, #898, #902, #915
- Fixed
extend
not working with 3 or more inheritances, thanks to @brunolemos. (see #871) - Added a test for
withComponent
followed byattrs
, thanks to @btmills. (see #851) - Fix Flow type signatures for compatibility with Flow v0.47.0 (see #840)
- Upgraded stylis to v3.0. (see #829 and #876)
- Remove dead code used previously for auto-prefixing. (see #881)
v2.0.0 - 2017-05-25
- Update css-to-react-native - you'll now need to add units to your React Native styles (see css-to-react-native, code mod)
- Update stylis to latest version (see #496).
- Added per-component class names (see #227).
- Added the ability to override one component's styles from another.
- Injecting an empty class for each instance of a component in development.
- Added
attrs
constructor for passing extra attributes/properties to the underlying element. - Added warnings for components generating a lot of classes, thanks to @vdanchenkov. (see #268)
- Standardised
styled(Comp)
to work the same in all cases, rather than a special extension case whereComp
is another Styled Component.Comp.extend
now covers that case. (see #518). - Added
Comp.withComponent(Other)
to allow cloning of an existing SC with a new tag. (see #814. - Added a separate
no-parser
entrypoint for preprocessed CSS, which doesn't depend on stylis. The preprocessing is part of our babel plugin. (see babel-plugin-styled-components/#26) - Fix defaultProps used instead of ThemeProvider on first render @k15a, restored.
- Refactor StyledComponent for performance optimization.
- Prevent leakage of the
innerRef
prop to wrapped child; under the hood it is converted into a normal Reactref
. (see #592) - Pass
innerRef
through to wrapped Styled Components, so that it refers to the actual DOM node. (see #629) - Added a dedicated Server-Side-Rendering API, with optimised rehydration on the client. Keys are now sequential.
- Add hoisting static (non-React) properties for withTheme HOC, thanks to @brunolemos. (See #712)
- Add
innerRef
support towithTheme
HOC. (see #710) - Switch to babel-preset-env. (see #717)
- Update StyledNativeComponent to match StyledComponent implementation.
- Fix Theme context for StyledComponent for IE <10. (see #807)
- Restore
setNativeProps
in StyledNativeComponent, thanks to @MatthieuLemoine. (see #764) - Fix
ref
being passed to Stateless Functional Components in StyledNativeComponent. (see #828) - Add
displayName
tocomponentId
when both are present (see #821)
v1.4.6 - 2017-05-02
- Upgrade
babel-plugin-flow-react-proptypes
to version 2.1.3, fixing prop-types warnings; thanks to @EnoahNetzach
v1.4.5 - 2017-04-14
- Migrated from the deprecated
React.PropTypes
to theprop-types
package, thanks to @YasserKaddour. (see #668) - Add FlatList, SectionList & VirtualizedList support, thanks to @Kureev(https://github.com/Kureev). (see #662)
- Removed dependency on
glamor
and migrated remaining references to the internval vendoredglamor
module. (see #663) - Fix missing autoprefixing on GlobalStyle model. (see #702)
- Better support for
keyframes
on older iOS/webkit browsers (see #720)
v1.4.4 — 2017-03-01
- Improve theming support in TypeScript, thanks to @patrick91. (see #460)
- Add TypeScript definitions for
withTheme
, thanks to @patrick91. (see #521) - Exclude test files from
npm
, thanks to @Amwam. (see #464) - Change the default
displayName
tostyled(Component)
, thanks to @k15a. (see #470)
v1.4.3 - 2017-02-04
- Improve TypeScript typings, thanks to @igorbek. (see #428 and #432)
- Fix SSR bug introduced in v1.4.2, thanks to @xcoderzach. (see #440)
- Fix defaultProps used instead of ThemeProvider on first render @k15a. (#450)
- displayName will now default to
Styled(Component)
@k15a
v1.4.2 - 2017-01-28
- Fix performance issue when using
@font-face
by creating a separatestyle
tag for global styles, thanks to @xcoderzach. (see #415)
v1.4.1 - 2017-01-27
- Fix ReactNative throwing an error, thanks to @lukehedger. (see #414)
v1.4.0 - 2017-01-25
- TypeScript support, thanks to @patrick91. (see #152)
v1.3.1 - 2017-01-18
- Fix
<Styled(undefined)>
in React Developer Tools, thanks to @iamssen. (see #383) - Fix themes support in IE <= 10, thanks to @saschagehlich. (see #379)
- Fixed Touchable not recognising styled components as ReactNative components, thanks to @michalkvasnicak. (see #372)
- Fix regression from previous release and only delete
innerRef
if it is being passed down to native elements, thanks to @IljaDaderko. (see #368) - Fixed defaultProps theme overriding ThemeProvider theme, thanks to @diegohaz. (see #345)
- Removed custom flowtype supressor in favour of default
$FlowFixMe
@relekang. (see #335) - Updated all dependencies to latest semver, thanks to @amilajack. (see #324)
- Updated all demos to link to latest version, thanks to @relekang. (see #350)
- Converted to DangerJS, thanks to @orta. (see #169)
- Added
withTheme
higher order component; thanks @brunolemos. (see [#312] (styled-components#312)) - Added support for media queries, pseudo selectors and nesting in styles-as-objects. (see #280)
- Do not pass innerRef to the component, thanks @mkhazov. (see #310)
- Fixed prop changes not updating style on react native; thanks @brunolemos. (see #311)
- Extract DOM shorthands, thanks @philpl. (see #172)
- Fixed theme changes in
ThemeProvider
s not re-rendering correctly, thanks @k15a. (see #264) - Fixed overriding theme through props, thanks @k15a. (see #295)
- Removed
lodash
dependency in favor of small utility packages to knock down bundle size by ~0.5kB
- Fixed setting the default theme via
defaultProps
and theme changes not re-rendering components with new styles, thanks to @michalkvasnicak. (see #253) - Improve ReactNative style generation performance, thanks to @sheepsteak. (see #171)
- Bumped
css-to-react-native
tov1.0.3
to avoid floating points number bug.
- Expose API for Server Side rendering:
styleSheet.reset()
andstyleSheet.getCSS()
, thanks to @thisguychris, (see #214) fixes #124 - Added support for deeply nested styles in ReactNative (e.g.
transform
), thanks @jacobp100. (see #139) - Added support for camelized style properties in ReactNative (e.g.
fontWeight
), thanks @jacobp100. (see #145) - Properly expose
flow
typings by adding aflow:build
step andflow
support docs, thanks to @ryyppy. (see #219)
- Converted Object.assign to spread operator, thanks to @thisguychris. (see #201)
- Switched to using inline-style-prefixer for our autoprefixing needs.
- Fixed IE10 compatibility, thanks to @thisguychris. (see #217)
v1.0.11 - 2016-11-14
- Test coverage for
injectGlobal
, thanks to @b_hough. (see #36) - Added stricter flow type annotations, thanks to @relekang and @ryyppy. (see #148)
v1.0.10 - 2016-10-28
- Huge performance improvement by injecting styles outside of
render
, thanks to @JamieDixon. (see #137)
v1.0.9 - 2016-10-26
- Added ability to get ref to the inner (DOM) node of the styled component via
innerRef
prop, thanks to @freiksenet. (see #122) - Section in docs about the new
stylelint
support withstylelint-processor-styled-components
- Fixed
theme
prop instyledComponent
andstyledNativeComponent
so that it will properly inherit values fortheme
whendefaultProps
are set, thanks to @bhough. (see #136)
v1.0.8 - 2016-10-18
- IE10 support, thanks to @didierfranc! (see #119)
- Fixed
<ThemeProvider>
component hot reloading
v1.0.7 – 2016-10-18
- Documentation about integrating with an existing CSS codebase
- Support for CSS custom variables
- Move react from dependencies to
peer–
&devDependencies
, thanks to @sheepsteak! (see #93) - Fix cyclical dependency deadlock in
.es.js
bundle that forced us to revert v1.0.6, thanks to @Rich-Harris! (see #100) - Refactored and added to e2e test suite
v1.0.6 - 2016-10-16 REVERTED
CHANGELOG.md
for tracking changes between versions- Support for Internet Explorer by removing
Symbol
from the transpiled output .es.js
bundle for Webpack v2 or Rollup users to take advantage of tree shaking, thanks to @Rich-Harris! (see #96)
- Fixed inheritance of statics (like
defaultProps
) withstyled(StyledComponent)
, thanks to @diegohaz! (see #90) - UMD bundle is now built with Rollup, which means a 22% reduction in size and a 60% reducing in parse time, thanks to @Rich-Harris! (see #96)
v1.0.5 - 2016-10-15
- Fixed theming on ReactNative
v1.0.4 - 2016-10-15
- Fixed compatibility with other react-broadcast-based systems (like
react-router
v4)