Skip to content

Introducing polished.js v4!

Compare
Choose a tag to compare
@bhough bhough released this 04 Oct 15:44
· 101 commits to main since this release
fa58fb2

Introducing polished.js v4!

We're super stoked to announce that polished.js v4 is officially live! It is available via your package manager of choice:

npm install polished
yarn add polished

Release Highlights

New Modules

  • New Module: important: Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.
  • New Modules: easeIn, easeOut, easeInOut: Will replace timingFunctions to allow for smaller modules for specific use cases instead of the larger, more general original implementation. (#402)

Improvements & Bug Fixes

  • between Improvement: now properly throws an error when mixed units are used for from/toSize and min/maxScreen. This also fixes the same bug in fluidRange. (#445)
  • triangle Improvement: once again properly works with inherit by setting individual properties when inherit is used. (#430)
  • stripUnit Improvement: now only does what it says on the tin: strips a unit from a provided CSS value. Typings are now appropriately set. (#451)
  • getValueAndUnit Improvement: canceled deprecation of this and it now does what it says on the tin: returns the value and unit as an array. Typings are now appropriately set. (#451)
  • ellipsis Improvement: now accepts a lines parameter to truncate multi-line text.

Future Deprecations

  • timingFunctions: This will be deprecated in v5 in favor of easeIn, easeOut, easeInOut.

Breaking Changes

  • fontFace: default is now to look for a local font of the same family-name before downloading. Can be turned
    off by passing null to localFonts. Previously, if localFonts was not passed explcitily, it would never check.
  • cssVar: deprecated passThrough in favor of being able to pass a defaultValue to better mimic CSS variable functionality.
  • math: square root, factorial, and exponent have been moved to a separate symbol preset found at math/presets/exponentialSymbols/. This can be passed a second parameter to math to restore this functionality.
  • readableColor: now defaults strict to true be default.

Contributor Improvements

  • Testing: We've moved away from snapshot testing to explicit expects. This should make understanding if your tests are truly passing much easier.
  • prettier: We've implemented .prettierrc and .prettierignore to better control formatting in development environments.
  • Build Speed: Build speed has been improved my removing extraneous linting scripts.

Coming In v5

v5 will be focused completely on size, speed, and documentation. The biggest change will be the move to submodules. Polished has grown into a large library of helpers, mixins, and color functions. We find ourselves limiting functionality in order to keep bundle size down. By moving to submodules we will be able to expand functionality without worrying about the size of the library and provide small bundle impacts for projects that don't implement tree-shaking. As part of this we will finally be revamping the docs to provide dedicated sections for each module with better usage examples.