Since you are interested in what happens next, in case, you work for a for-profit company that benefits from using the project, please consider supporting it on https://opencollective.com/jss.
- [*] Define specific polyfills for specific packages that will be required and define a policy for adding polyfills. Makes sure we will notice if a polyfill is needed in a supported browser by failing the CI. 1456
- [jss] Use
globalThis
to support secure version of JavaScript called SES 1449 - [jss][ts]
Styles
now supportsClassNames
,Props
/Data
, andTheme
as type parameters (eg.Styles<Names, Data, Theme>
). 1460 - [react-jss][ts]
withStyles
andcreateUseStyles
now supportClassNames
,Props
, andTheme
as type parameters (eg.createUseStyles<Names, Props, Theme>
). 1460 - [react-jss][ts]
useStyles
finally expects the correct argument type: aProps
object with an optionalTheme
property (both determined fromcreateUseStyles
). 1460 - [react-jss][ts] Support global TS theme definition 1453
- [react-jss][ts] Allow partial
classes
prop inwithStyles()
1428
- [react-jss][ts]
Theme
is no longer the first generic type parameter forcreateUseStyles
. 1460- There are two main ways to tell TS your
Theme
's type without reaching over the other type parameters:
- There are two main ways to tell TS your
Using the function argument.
const useStyles = createUseStyles(theme: Theme => ({
ruleName: { /* ... */ };
}))
Using the object argument with a function. (You will only need to specify the Theme
type once.)
const useStyles = createUseStyles({
ruleName: ({theme}: {theme: Theme}) => ({
/* ... */
})
})
- [jss-plugin-default-unit] Fix crash in Chrome 88 when NaN is used by the user 1446
- [jss][ts] Fix intellisense suggestions 1423
- [jss-plugin-default-unit] Add px as default unit for text-decoration-thickness 1438
- [jss-plugin-default-unit] Add px as default unit for row-gap 1436
- [*] Allow project to be in a directory that contains spaces 1433
- [jss][ts] Restore support for Observable styles 1402
- [jss-plugin-default-unit] Fix missing default unit for 0ms and 0% 1413
- [*] Improve docs 1384, 1387, 1391,
- [*] Remove test files from the package 1406
- [*] Upgrade rollup 1426
- [*] Upgrade flow to 0.138.0 1425
- [jss-plugin-default-unit] Add gap unit 1403
- [jss-plugin-default-unit] Add default units to logical properties 1415
- [jss] Improve
deleteRule()
performance 1424
- [jss][ts] Bump
csstype
to 3.0.2 1379 - [react-jss][ts] TS support for innerRef prop 1355
- [react-jss][ts] TS fix theme types 1349
- [react-jss][ts] Add properly react default props types calculation 1353
- [react-jss] Upgrade Theming to 3.3.0 1382
- [*] Upgrade flowtype to 0.131.0 1382
- [jss, react-jss][ts] ts fixes, allow autocomplete for CSS rules 1352
- [react-jss][ts] ts fixes 1310
- [jss][ts] ts fixes 1318
- [examples] Convert plugin examples to codesandbox 1316
- [jss-plugin-rule-value-function] Fixed missing dependency to tiny-warning 1315
- [jss-plugin-vendor-prefixer] Correct prefixing of writing-mode property 1326
- [jss, react-jss] revert
getDynamicStyles
migration introduced in 10.1.0
- [jss] Fix multiple .addRule calls with font-face (1280)
- [jss] Allow a Comment node as insertion point (1284)
- [jss-plugin-rule-value-function] Add warning when using a function value inside a function rule (1285)
- [react-jss][ts] Typescript support for createUseStyles theme (1294)
- [jss, react-jss] -
getDynamicStyles
utility function was originally exposed fromjss
package, but I don't think it was used externally, so I moved it toreact-jss
package and made it internal. If you have been using it as public API let me know, we will have to revert the change. - [examples] Migrate examples to monorepo (1306)
- [jss-plugin-default-unit] Allow options to pass function transforms in (1292)
- [react-jss] Add type alias for
WithStyles
(1254) - [react-jss] Fix ts typings for hook, created common interface for options (1266)
- [react-jss] Revert strict style types for ts, since it's a breaking change and needs much more work done upfront (1270)
- [css-jss][ts] Add TS type definitions (1247)
- [react-jss] Accept options.generateId in useStyles() and withStyles() as an option (1263)
- [jss] Fix
create
definitions to allowminify: boolean
(1218) - [jss][ts] Fix
Name
Typescript constraint (1218)
- [jss] Fix breaking change that was introduced in
10.0.1
(1252)
- [jss-plugin-vendor-prefixer] Upgrade css-vendor package to v2.0.7 (1208)
- [jss] Fix
sheet.addRule()
support for duplicate rule names (1242) - [react-jss] Fix function values support inside of nested media queries when component is a list item (1242)
A higher level overview of v10 release.
- [react-jss] A new hooks-based API has been released and became the new default way to use JSS with React.
- [jss] Keyframe IDs are now scoped by default.
- [jss] Function values, function rules and observables apply plugins by default now, which means they can support all kinds of syntaxes: e.g. fallbacks, media queries, nesting, global styles.
- [jss] Houdini Typed CSSOM Values are supported now.
- [all] Each package supports ESM modules import, also possible directly from https://unpkg.com/.
- [all][ts] Added TS type definitions to this repository.
For more details please read the rest of the changelog.
- [react-jss] Add fallback for
Number.MIN_SAFE_INTEGER
, because not supported by IE <= 11 (1197) - [jss-plugin-vendor-prefixer] Fix
fallbacks
syntax support regression (1198)
- [jss] Fix dynamic rule updating after sheet re-attach in IE (1194)
- [ci] Fix browsers.json, bump suported ios Safari to 10.3.
- [jss] Fix dynamic rule updating after sheet re-attach (1190)
- [jss-plugin-nested] Better warning text (1170)
- [react-jss][ts] Improve TS definitions and add missing definition for
createUseStyles
(1155) - [jss-plugin-default-unit] Consistent usage of the CSS browser API (1168)
- [react-jss] Update dynamic nested rules need (#1144)
- [react-jss] withStyles shouldn't attach() on SSR (#1149, #1157)
- [jss] Improve treeshaking for webpack by not using
global
. (#1153)
- [jss] SheetsRegistry.toString(options) will now return all sheets by default, no matter detached or attached. You can specify which one you want by using the option
registry.toString({attached: true})
(1140)
- [react-jss] SSR for the hooks based API will now work with the registry as expected (1140)
- [react-jss] When id options passed to JssProvider, we need to create a new
generateId
function (#1147)
- [react-jss] Document
id
prop for JssProvider, add "Class name generator options" to the docs. (#1147) - [react-jss] Use component name or displayName as a class name prefix also in production by default (#1147)
- [jss-plugin-vendor-prefixer] Upgrade css-vendor package to v2.0.5 (#1142)
- [css-jss] Slows down in benchmark after 10k rules (#1137)
- [react-jss] Experimental styled API got some fixes and many more tests (#1118)
- [react-jss] New experimental styled API (undocumented intentionally)(#1094)
- [react-jss] JSX pragma for css prop (undocumented intentionally)(#1130)
- [css-jss] New experimental css() API (undocumented intentionally)(#1129)
- [jss] After attempting to insert an invalid rule, JSS is now able to insert a valid one (#1123)
- [react-jss][ts] Fix type optional
theming
property (#1121) - [react-jss][ts] Export useTheme in TS declaration (#1124)
- [react-jss] New hooks based API is out. HOC based API is deprecated. It will stay in v10 but will be removed in v11. (#1089)
- [jss] Add option for opt-in minification of class names. (#1075)
- [jss-plugin-expand] Fix attributes spread for
border-bottom
,border-top
,border-left
andborder-right
(#1083) - [jss-plugin-props-sort] Fix sorting in Node 11 (#1084)
- [jss] Fix escaping keyframes names (#1100)
- [jss-plugin-camel-case] Fix some IE 11 regression (#1065)
- [jss-vendor-prefixer] Fix value prefixing, in particular
position: sticky
(#1068)
- [jss] Add support for multiple referenced keyframes (#1063)
- [jss] Fix SSR aggregation regression (#1064)
- [react-jss] Replace spaces inside the display name with hyphens (#1049)
- [jss] Remove VirtualRenderer and the option
virtual: true
. Now to simulate a non-browser environment, passcreate({Renderer: null})
when creating a Jss instance. - [react-jss] Add dynamic rules to the static sheet (#1048)
- [jss] Fix using function values with scoped keyframes (#1043)
- [jss] Fix removing styles from function rules (#1046)
- [jss] Fix dynamic values inside of @global plugin (#664)
- [all] All packages except of react-jss can now be used as ESM modules directly from unpkg.com (1029)
- [jss][ts] Improve typings (#973)
- [jss] Simplify cloneStyle function (#1003)
- [jss] Use WeakMap inside SheetsManager (#1019)
- [internal] Improve publish script for creating github release (#999)
- [react-jss] Warn about themed styles misuse (#1006)
- [jss-starter-kit] Fix react-jss exports and add missing jss exports (#1001)
- [jss-plugin-camel-case] Fix hyphenating css variables (#1017)
- [all] Move jss dependencies to normal dependencies instead of peer and dev dependencies (#993)
- [internal] Upgrade lerna (#992)
- [react-jss] Move @types/react to dev dependencies (#990)
- [react-jss] Upgrade theming package to v3.0.3 (#994)
- [docs] Fix demo links for jss-plugin-extend (#992)
- [internal] Add script for building readme for packages (#996)
- [all] Fix npm repo urls (#983)
- [jss][ts] Declare ES classes as TS classes instead of interfaces (#971)
- [all] Remove warning from production (#980)
- [react-jss] Move JssContext to new React Context, deprecate the
sheetOptions
prop on the JssProvider and support amedia
prop (#924) - [react-jss] Remove inject option (#934)
- [react-jss] Extend classes instead of overwriting theme (#946)
- [react-jss] Add forwardRef support (#943)
- [react-jss] Upgrade to theming version 3 (#942)
- [jss] Fix IE 11 injection order
Republish of alpha 5 with properly building the code.
- [jss] Fix warning dependency
- [all] Fix peer dependencies warnings (#957)
- [all] Use smaller version of the warning package (#953)
- [all] Improve documentation (#958)
- [internal] Upgrade lerna (#962)
- [all] Fix building packages
- [internal] Fix changelog.md
- [jss] Fix class name white space escaping in dev mode (938)
- [jss] Fix multiple cases where linking CSS rules didn't work (#815, #710, #664)
- [jss] Fix sheet ordering when the last sheet was the last sibling in the head element (#819)
- [jss-plugin-syntax-nested] Fix referencing rules inside media queries (#900)
- [jss-plugin-syntax-global] Fix TypeError: Cannot read property '@global' of undefined (#905)
- [jss-starter-kit] Introduce
jss-starter-kit.bundle.js
, which packages all the other libraries into one import for playgrounds like Codepen. (#936) - [jss] Add support for Typed CSSOM values (#882)
- [jss] Function values and function rules support now fallbacks, media queries, nesting, global styles (#682)
- [react-jss] Remove old lifecycle hooks (#834)
- [react-jss] Add flow types (#818)
- [all] Migrate to a monorepo using yarn workspaces and lerna (#729)
- [all][ts] Add TS definitions to all packages (#889)
- [jss] Observables, function values and rules are now standalone packages, not part of the core. They are still part of the default preset though.
- [jss] Function values, rules and observables apply plugins by default now, which means they can support all plugin defined syntaxes, but they are also slower by default. To speed them up use
sheet.update(data, {process: false})
for fn values/rules andjss.use(pluginObservable({process: false}))
when setting up observables plugin. (#682) - [jss] Rule @keyframes has now scoped name by default, which means that you can access it using
$ref
from the same sheet and generate global one as before using@global
rule (#346). - [jss] Add scoped keyframes support (#346)
- [jss|react-jss] Options
createGenerateClassName
andgenerateClassName
are renamed tocreateGenerateId
andgenerateId
because the same function is now used to scope @keyframes rules. - [react-jss] Drop support for older React versions, require v16.3 or higher (#868, #851)