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.
v4.0.0 - 2018-10-15
This is a rollup of the highlights of beta 0-11 for convenience. See the migration guide for easy updating steps and the beta announcement blog for our summary of v4's changes, thought process, etc.
-
Add babel macro for full-featured interop with create react app v2+, by @lucleray (see #2032)
-
Expose
ThemeConsumercomponent, context consumer render prop component from theReact.createContextAPI if people are interested in using it rather than / in addition to thewithThemeHOC, by @probablyup -
Add
createGlobalStylethat returns a component which, when mounting, will apply global styles. This is a replacement for theinjectGlobalAPI. It can be updated, replaced, removed, etc like any normal component and the global scope will update accordingly, by @JamieDixon @marionebl, @yjimk, and @imbhargav5 (see #1416)const GlobalStyles = createGlobalStyle` html { color: 'red'; } `; // then put it in your React tree somewhere: // <GlobalStyles />
-
Added a first-class API for rendering polymorphism via "as" prop. In most cases, this new prop will replace your need to use the
.withComponentAPI. It allows you to control what underlying element or component is rendered at runtime, while not messing with the styles, by @probablyup (see #1962)import { Link } from 'react-router' const Component = styled.div` color: red; ` // Examples <Component>Hello world!</Component> <Component as="span">Hello world!</Component> <Component as={Link} to="home">Hello world!</Component>
-
Fix how ampersand is handled in self-referential selector combinations, e.g.
& + &(see #2071) -
Remove deprecated
consolidateStreamedStylesAPI, by @probablyup (see #1906) -
Remove deprecated
jsnext:mainentry point from package.json, by @probablyup (see #1907) -
Remove deprecated
.extendAPI, by @probablyup (see #1908) -
Migrate to new context API, by @alexandernanberg (see #1894)
-
Remove TS typings; they are now to be found in DefinitelyTyped, by @probablyup. See styled-components#1778 for more information.
-
Add new
data-styled-versionattribute to generated<style>tags to allow multiple versions of styled-components to function on the page at once without clobbering each other, by @probablyupIt's still highly recommended to use aliasing via your bundler to dedupe libraries like styled-components and react.
-
[Breaking change] Refactor
keyframeshelper, by @fer0x (see #1930).Keyframes is now implemented in a "lazy" manner: its styles will be injected with the render phase of components using them.
keyframesno longer returns an animation name, instead it returns an object which has method.getName()for the purpose of getting the animation name. -
Migrate to use new
React.forwardRefAPI, by @probablyup; note that this removes theinnerRefAPI since it is no longer needed. -
Implement
styled()wrapper folding. In a nutshell, when you nest styled wrappers (e.g.styled(styled.div)) the components are now folded such that only one is mounted that contains the merged styles of its ancestors. This is conceptually equivalent to the removed "extend" functionality, but without many of the downsides -- and it's automatic, by @probablyup (see #1962)
-
Add warning when component is not a styled component and cannot be referred via component selector, by @egdbear (see #2070)
When using CRA v2, import styled components from
styled-components/macroinstead to gain all the benefits of our babel plugin. -
Add a warning when wrapping a React component with
styled()and theclassNameisn't used (meaning styling isn't applied), by @Fer0x (see #2073) -
Tweak the styled components base component naming to look nicer in DevTools, by @probablyup (see #2012)
-
Beef up the error message that sometimes occurs when multiple versions of styled components are used together and the StyleSheet instance can't be found, by @probablyup (see #2012)
-
Add
enzymeFindtest utility to easily grab instances of a styled-component from enyzme mounted testing scenarios, by @probablyup (see #2049)import { mount } from 'enzyme'; import React from 'react'; import styled from 'styled-components'; import { enzymeFind } from 'styled-components/test-utils'; const Thing = styled.div` color: red; `; const wrapper = mount( <div> <Thing isCool /> </div> ); const thing = enzymeFind(wrapper, Thing); // expect(thing.props()).toHaveProperty('isCool') etc
-
Inline and optimize the static hoisting functionality to avoid a bundler bug and shed a bit of package weight, by @probablyup (see #2021
v4.0.0-beta.11 - 2018-10-08
-
Add warning when component is not a styled component and cannot be referred via component selector, by @egdbear (see #2070)
-
Fix how ampersand is handled in self-referential selector combinations, e.g.
& + &(see #2071) -
Add babel macro for full-featured interop with create react app v2+, by @lucleray (see #2032)
When using CRA v2, import styled components from
styled-components/macroinstead to gain all the benefits of our babel plugin. -
Add a warning when wrapping a React component with
styled()and theclassNameisn't used (meaning styling isn't applied), by @Fer0x (see #2073)
v4.0.0-beta.10 - 2018-10-04
-
Add support for
asto be used withattrsfor better polymorphism, by @imbhargav5 (see #2055) -
Fix
withThemeHOC to use a theme defined indefaultPropsof the wrapped component, by @theboyWhoCriedWoolf (see #2033) -
Add
enzymeFindtest utility to easily grab instances of a styled-component from enyzme mounted testing scenarios, by @probablyup (see #2049)
import { mount } from 'enzyme';
import React from 'react';
import styled from 'styled-components';
import { enzymeFind } from 'styled-components/test-utils';
const Thing = styled.div`
color: red;
`;
const wrapper = mount(
<div>
<Thing isCool />
</div>
);
const thing = enzymeFind(wrapper, Thing);
// expect(thing.props()).toHaveProperty('isCool') etcv4.0.0-beta.9 - 2018-09-24
- Fix usage of
keyframeswithcreateGlobalStyle, by @probablyup (see #2029)
v4.0.0-beta.8 - 2018-09-20
- Inline and optimize the static hoisting functionality to avoid a bundler bug and shed a bit of package weight, by @probablyup (see #2021)
v4.0.0-beta.7 - 2018-09-18
-
Revise createGlobalStyle HMR back to the original PR code without using
componentDidMount, by @probablyup (see #2017) -
Some light refactoring to further reduce object allocations, by @probablyup (see #2016)
v4.0.0-beta.6 - 2018-09-17
-
Fix a bug introduced from some refactoring that went into beta.5 around usage of
keyframeswith multiple interpolations, by @probablyup (see #2013) -
Tweak the styled components base component naming to look nicer in DevTools, by @probablyup (see #2012)
-
Beef up the error message that sometimes occurs when multiple versions of styled components are used together and the StyleSheet instance can't be found, by @probablyup (see #2012)
v4.0.0-beta.5 - 2018-09-14
-
Fix issue with
createGlobalStyleand hot module reload, by @probablyup (see #2007) -
Remove keyframes factory function, by @probablyup (see #2006)
v4.0.0-beta.4 - 2018-09-12
-
Use PureComponent instead of Component for the StyledComponent base class, by @probablyup
-
Internal refactoring to simplify the codebase and make it more readily DCE-able, by @probablyup
v4.0.0-beta.3 - 2018-09-10
-
Fix an issue when streaming with very large amounts of output where sometimes styles might not make it to the client, by @probablyup (see #1996)
-
Fix the
createGlobalStylemultiusage warning having false positives, by @probablyup (see #1993)
v4.0.0-beta.2 - 2018-09-09
-
Expose
ThemeConsumercomponent, context consumer render prop component from theReact.createContextAPI if people are interested in using it rather than / in addition to thewithThemeHOC, by @probablyup -
Remove "no tags" experiment, by @probablyup (see #1987)
-
Fixed an issue with
createGlobalStylewhen the component was composed in multiple places and render of the subsequent component instance happened before unmount of the original; previously we removed styles immediately upon unmount of any instance without checking how many copies were still alive, by @probablyup (see #1989)
v4.0.0-beta.1 - 2018-09-06
-
Fixed an issue where
createGlobalStylewas clobbering the very next style to be applied during rehydration in production mode, by @probablyup (see #1976) -
Removed some unused code, by @probablyup (see #1976)
-
Switched
createGlobalStyleto be aPureComponent, by @probablyup (see #1976)
v4.0.0-beta.0 - 2018-09-04
-
Remove deprecated
consolidateStreamedStylesAPI, by @probablyup (see #1906) -
Remove deprecated
jsnext:mainentry point from package.json, by @probablyup (see #1907) -
Remove deprecated
.extendAPI, by @probablyup (see #1908) -
Migrate to new context API, by @alexandernanberg (see #1894)
-
Remove TS typings; they are now to be found in DefinitelyTyped, by @probablyup. See styled-components#1778 for more information.
-
Add new
data-styled-versionattribute to generated<style>tags to allow multiple versions of styled-components to function on the page at once without clobbering each other, by @probablyupIt's still highly recommended to use aliasing via your bundler to dedupe libraries like styled-components and react.
-
[Breaking change] Refactor
keyframeshelper, by @fer0x (see #1930).Keyframes is now implemented in a "lazy" manner: its styles will be injected with the render phase of components using them.
keyframesno longer returns an animation name, instead it returns an object which has method.getName()for the purpose of getting the animation name.
-
Add
createGlobalStylethat returns a component which, when mounting, will apply global styles. This is a replacement for theinjectGlobalAPI. It can be updated, replaced, removed, etc like any normal component and the global scope will update accordingly, by @JamieDixon @marionebl, @yjimk, and @imbhargav5 (see #1416)const GlobalStyles = createGlobalStyle` html { color: 'red'; } `; // then put it in your React tree somewhere: // <GlobalStyles />
-
Migrate to use new
React.forwardRefAPI, by @probablyup; note that this removes theinnerRefAPI since it is no longer needed. -
Implement
styled()wrapper folding. In a nutshell, when you nest styled wrappers (e.g.styled(styled.div)) the components are now folded such that only one is mounted that contains the merged styles of its ancestors. This is conceptually equivalent to the removed "extend" functionality, but without many of the downsides -- and it's automatic, by @probablyup (see #1962) -
Added a first-class API for rendering polymorphism via "as" prop. In most cases, this new prop will replace your need to use the
.withComponentAPI. It allows you to control what underlying element or component is rendered at runtime, while not messing with the styles, by @probablyup (see #1962)import { Link } from 'react-router' const Component = styled.div` color: red; ` // Examples <Component>Hello world!</Component> <Component as="span">Hello world!</Component> <Component as={Link} to="home">Hello world!</Component>
- Added a few iframe attributes to the valid attribute list:
allow,allowUserMedia,allowPaymentRequest, by @asoltys (see #2083 and #2085)
v3.4.9 - 2018-09-18
- Remove the
injectGlobalwarning; it's not actionable since the replacement API is in v4 only, so why say anything?
v3.4.8 - 2018-09-17
- Fix the
injectGlobalwarning not being properly guarded for production, by @probablyup
v3.4.7 - 2018-09-17
-
Add warning for the upcoming removal of the
injectGlobalAPI in v4.0, by @rainboxx (see #1867) -
Backport from v4: Beef up the error message that sometimes occurs when multiple versions of styled components are used together and the StyleSheet instance can't be found, by @probablyup (see #2012)
v3.4.6 - 2018-09-10
- Fix an issue when streaming with very large amounts of output where sometimes styles might not make it to the client, by @probablyup (see #1997)
v3.4.5 - 2018-08-23
- Tone down the dev warnings for deprecated APIs (they were
console.error, nowconsole.warn), by @probablyup
v3.4.4 - 2018-08-21
- Fix warning function not having a production fallback, by @mitoyarzun (see #1938)
v3.4.3 - 2018-08-21
-
Add warning for the upcoming removal of the
extendAPI in v4.0, by @probablyup (see #1909) -
Throw Error if a React component was mistakenly interpolated within styles, by @imbhargav5 (see #1883)
-
Fix the primitives build, by @probablyup (see 24f097)
v3.4.2 - 2018-08-07
-
Fix a regression from #1843 that breaks deferred injection and duplicates rules, by @kitten (see #1892)
-
[TS] Fix missing generic type arguments in .d.ts, by @PzYon (see #1886)
v3.4.1 - 2018-08-04
-
Fixed a bug in typings where
isStyledComponentwas defined using an undefined variable, by @MayhemYDG (see #1876) -
Add error system, by @probablyup (see #1881)
-
Fix "stream" module not being properly eliminated by rollup, by @probablyup
v3.4.0 - 2018-08-02
-
Add first-class support for functions that return objects, by @acjay (see #1820)
const Comp = styled.div((({ color }) => ({ color, }))
-
Add support for the prop variants used by Preact (
autofocus,class,for), by @probablyup (see #1823) -
Various performance improvements, by @probablyup (see #1843)
v3.3.3 - 2018-06-20
-
Fixed a regression when extending a
styled(StyledComponent)introduced in 3.3.0, by @probablyup (see #1819) -
Adjust how displayName is generated when not using Babel to properly preserve a displayName passed via
withConfig, by @probablyup (see #1755) -
[TS] Fix props being removed when indexed types are passed to WithOptionalTheme, by @devrelm (see #1806)
-
[TS] Allow TypeScript 2.9.1 to accept tagged template type argument, by @Igorbek (see #1798)
-
Add ref documentation for React.createRef(), by @julmot (see #1792)
v3.3.2 - 2018-06-04
-
Allow non-plain objects as
ThemeProviderthemes, by @phyllisstein (see #1780) -
Update various CI bits, by @probablyup (see #1769)
-
Reimplement SSR stream handling as a transform stream rather than a second-order readable stream, by @probablyup (see #1768)
-
Allow React Component as attr, by @valerybugakov (see #1751)
-
Added pointer events to valid attributes check, by @plankguy (see #1790)
v3.3.1 was skipped due to a bad deploy.
v3.3.0 - 2018-05-25
-
Fix off-by-one error in insertRuleHelpers.js, by @migueloller (see #1749)
-
Add first-class support for objects, by @mxstbr (see #1732)
const Component = styled.div({ color: 'blue' })
-
Fix typo in console warning about multiple instances, by @lucianbuzzo (see #1730)
-
Make the multiple instance warning criteria a little more strict to avoid badgering people running unit tests, by @probablyup (see #1693)
-
Fix
React.createRef()values forinnerRefbeing ignored in React Native, by @simonbuchan (see #1718) -
Hoist non-react static properties on wrapped classes, by @probablyup (see #1750)
v3.2.6 - 2018-04-17
-
Fix
cascade: falsebeing erroneously set on the Stylis rule splitter (see #1677) -
Fix typo in
ComponentStyle.jscomments (see #1678) -
Accept ref forwarding components in styled constructor (see #1658)
-
Fix onInvalid check in validAttrs, by @slootsantos (see #1668)
-
Fix
makeSpeedyTag's css method (see #1663) -
Fix ComponentStyle caching strategy to take StyleSheet cache into account, by @darthtrevino (see #1634)
-
Add new
test-utilsto simplify finding styled-components in the DOM in unit testing scenarios, by @jamiebuilds (see #1652) -
Add minified commonjs and esm builds for bundle size tracking (see #1681)
v3.2.5 - 2018-03-30
- Deprecate experimental preprocess mode, by @Samatar26 (see #1619)
- Added ability to override
SC_ATTRviaprocess.env.SC_ATTR(see #1632)
v3.2.3 - 2018-03-14
- Fix SSR memory leak where StyleSheet clones are never freed (see #1612)
v3.2.2 - 2018-03-13
-
Fix ServerTag.clone() not properly cloning its names and markers (see #1605)
-
Fix nested media at-rules by upgrading to stylis@^3.5.0 and stylis-rule-sheet@^0.0.10 (see #1595)
-
Fix the
IS_BROWSERcheck to work more reliably in projects wherewindowmay be shimmed, by @danieldunderfelt (see #1599)
v3.2.1 - 2018-03-07
-
Fix
@importrules not being enforced to appear at the beginning of stylesheets (see #1577) -
Fix StyleTags toElement outputting inline CSS which would cause URL encoding (see #1580)
v3.2.0 - 2018-03-05
-
Remove
type="text/css"-attribute from style tag to remove warnings from w3c validator (see #1551) -
Add
foreignObjectsvg element (see #1544) -
Add
controlsListto validAttr list (see #1537) -
Enable stylis' semicolon autocompletion which was accidentally disabled for a lot of prior releases (see #1532)
-
Fix
insertRuleinjection (speedy mode in production) of nested media queries by upgrading stylis-rule-sheet (see #1529 and #1528) -
Add
StyleSheet.removeAPI method to be able to delete rules related to a component (see #1514) -
Replace murmurhash implementation and avoid destructuring tag function arguments (see #1516)
-
Rewrite and refactor
StyleSheetandServerStyleSheet(no breaking change, see #1501) -
Add warning if there are several instances of
styled-componentsinitialized on the page (see #1412) -
Add
targetprop toStyleSheetManagercomponent to enable specifying where style tags should render (see #1491)
v3.1.6 - 2018-02-03
-
Bugfix for the last style tag sometimes being emitted multiple times during streaming (see #1479)
-
Bugfix for speedy mode rehydration and added handling for out-of-order style injection (see #1482)
v3.1.5 - 2018-02-01
-
Apply a workaround to re-enable "speedy" mode for IE/Edge (see #1468)
-
Fix memory leak in the server-side streaming logic (see #1475)
v3.1.4 - 2018-01-29
- Disable "speedy" mode for IE and Edge. There seems to be some incompatibility with how the
insertRuleAPI functions in their rendering stack compared to the other vendors. (see #1465)
v3.1.3 - 2018-01-29
- Disable "speedy" mode for non-production environments, fixes
jest-styled-componentscompatibility (see #1460)
v3.1.1 - 2018-01-29
- Hotfix for importing in ReactNative, thanks to @vvasilev- (see #1455)
v3.1.0 - 2018-01-29
- Compile out error messages for production builds (see #1445)
- Use much faster CSS injection in the browser, by @schwers and @philpl (see #1208)
- Add support for streaming server-side rendering, by @probablyup (see #1430)
v3.0.2 - 2018-01-22
- Add secret internals for jest-styled-components (do not use or you will be haunted by spooky ghosts 👻) (see #1438)
v3.0.1 - 2018-01-22
-
Add support for SafeAreaView when using styled-components in a React Native project (see #1339)
-
Remove support for deprecated Navigator when using styled-components in a React Native project (see #1339)
-
Ship flat bundles for each possible entry, thanks to @Andarist (see #1362)
-
Add ESLint precommit hook, thanks to @lukebelliveau (see #1393)
-
Fixed nested themes not being republished on outer theme changes, thanks to @Andarist (see #1382)
-
Add warning if you've accidently imported 'styled-components' on React Native instead of 'styled-components/native', thanks to @tazsingh and @gribnoysup (see #1391 and #1394)
-
Fixed bug where
innerRefcould be passed as undefined to components when using withTheme. This could cause issues when using prop spread within the component (e.g.{...this.props}), because React will still warn you about using a non-dom prop even though it's undefined. (see #1414) -
Expose
isStyledComponentutility as a named export. This functionality is useful in some edge cases, such as knowing whether or not to useinnerRefvsrefand detecting if a component class needs to be wrapped such that it can be used in a component selector. (see #1418) -
Remove trailing commas on function arguments (not compatible with ES5 JS engines)
-
Ship source maps (see #1425)
-
Upgrade test suites to run against react v16 (see #1426)
-
Streaming rendering support (requires React 16, see #1430)
v2.4.0 - 2017-12-22
- remove some extra information from the generated hash that can differ between build environments (see #1381)
v2.3.3 - 2017-12-20
- Fix the attr filtering optimization removed in v2.3.2; bundle size improvement, thanks to @probablyup (see #1377)
- Move last bits of docs from the README to the website, thanks to @Carryon, @SaraVieira and @JamesJefferyUK
v2.3.2 - 2017-12-19
- Hotfix a bug in the attr filtering in v2.3.1 (see #1372)
v2.3.1 - 2017-12-19
- Create styled-components badge, thanks to @iRoachie (see #1363)
- Library size reductions, thanks to @probablyup (see #1365)
- Add Prettier, thanks to @existentialism (see #593)
- Fix unminified UMD build, thanks to @maciej-ka (see #1355)
- Update the contribution and community guidelines, see the CONTRIBUTING.md
v2.3.0 - 2017-12-15
- Add development sandbox to repo for easier contributing, thanks to @gribnoysup (see #1257)
- Add basic support for style objects in the Typescript definitions, thanks to @nbostrom (see #1123)
- Fix ref warning using withTheme HOC and stateless function components, thanks to @MatthieuLemoine (see #1205)
- Consistently escape displayNames when creating
componentId, thanks to @evan-scott-zocdoc (see #1313) - Better issue template (see #1342)
v2.2.4 - 2017-11-29
- Disable static styles caching when hot module replacement is enabled.
- Bump minimum
stylisversion to 3.4.0, adjust the semver caret target (see #1296)
v2.2.3 - 2017-10-29
- Fix incorrect StyledNativeComponent#componentWillReceiveProps implementation (see #1276)
v2.2.2 - 2017-10-24
- Prevent
withThemeHOC from breaking when passing a theme fromdefaultProps, thanks to @kutyel (see #1130) - Refactor out theme logic in StyledComponent's componentWillMount & componentWillReceiveProps (see #1130)
- Add onReset to valid react props list (see #1234)
- Add support for ServerStyleSheet PropType in both StyleSheetManager and StyledComponent (see #1245)
- Prevent component styles from being static if
attrsare dynamic (see #1219) - Changed 'too many classes' error to recommend attrs for frequently changed styles (see #1213)
v2.2.1 - 2017-10-04
- Cache static classnames in browser environments, thanks to @schwers (see [#1069]styled-components#1069))
- Move the list of libraries built with styled-components to
awesome-styled-components, thanks to @romellogood (see #1203) - Don't emit empty rules like from interpolations, thanks to @wmertens (see #1149)
v2.2.0 - 2017-09-27
- Fixed downstream minification issue with replacing
process(see #1150) - Fixed nonce missing from global styles (see #1088)
- Improve component mount and unmount performance with changes to
createBroadcast. Deprecates usage ofCHANNELas a function, will be update toCHANNEL_NEXT's propType in a future version. (see #1048) - Fixed comments in react-native (see #1041)
- Add support for the
__webpack_nonce__CSP attribute (see #1022 and #1043) - Add react-native
ImageBackgroundalias (see #1028) - Refactor variable in generateAlphabeticName.js (see #1040)
- Enable the Node environment for SSR tests, switch some output verification to snapshot testing (see #1023)
- Add .extend and .withComponent deterministic ID generation (see #1044)
- Add
marqueetag to domElements (see #1167)
v2.1.1 - 2017-07-03
- Upgrade stylis to 2.3 and use constructor to fix bugs with multiple libs using stylis simultaneously (see #962)
v2.1.0 - 2017-06-15
- Added missing v2.0 APIs to TypeScript typings, thanks to @patrick91, @igorbek (see #837, #882)
- Added
react-primitivestarget, thanks to @mathieudutour (see #904 - Various minor fixes: #886, #898, #902, #915
v2.0.1 - 2017-06-07
- Fixed
extendnot working with 3 or more inheritances, thanks to @brunolemos. (see #871) - Added a test for
withComponentfollowed 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
attrsconstructor 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 whereCompis another Styled Component.Comp.extendnow 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-parserentrypoint 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
innerRefprop to wrapped child; under the hood it is converted into a normal Reactref. (see #592) - Pass
innerRefthrough 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
innerRefsupport towithThemeHOC. (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
setNativePropsin StyledNativeComponent, thanks to @MatthieuLemoine. (see #764) - Fix
refbeing passed to Stateless Functional Components in StyledNativeComponent. (see #828) - Add
displayNametocomponentIdwhen both are present (see #821) - Test node 8.x as well in travis (see #1153)
v1.4.6 - 2017-05-02
- Upgrade
babel-plugin-flow-react-proptypesto version 2.1.3, fixing prop-types warnings; thanks to @EnoahNetzach
v1.4.5 - 2017-04-14
- Migrated from the deprecated
React.PropTypesto theprop-typespackage, thanks to @YasserKaddour. (see #668) - Add FlatList, SectionList & VirtualizedList support, thanks to @Kureev(https://github.com/Kureev). (see #662)
- Removed dependency on
glamorand migrated remaining references to the internal vendoredglamormodule. (see #663) - Fix missing autoprefixing on GlobalStyle model. (see #702)
- Better support for
keyframeson 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
displayNametostyled(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-faceby creating a separatestyletag 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
innerRefif 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 suppressor 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
withThemehigher order component; thanks @brunolemos. (see #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
ThemeProviders not re-rendering correctly, thanks @k15a. (see #264) - Fixed overriding theme through props, thanks @k15a. (see #295)
- Removed
lodashdependency in favor of small utility packages to knock down bundle size by ~0.5kB
- Fixed setting the default theme via
defaultPropsand 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-nativetov1.0.3to 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
flowtypings by adding aflow:buildstep andflowsupport 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
innerRefprop, thanks to @freiksenet. (see #122) - Section in docs about the new
stylelintsupport withstylelint-processor-styled-components
- Fixed
themeprop instyledComponentandstyledNativeComponentso that it will properly inherit values forthemewhendefaultPropsare 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.jsbundle 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.mdfor tracking changes between versions- Support for Internet Explorer by removing
Symbolfrom the transpiled output .es.jsbundle 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-routerv4)