- Add optional
customHighlightBackgroundprop. (#233)
- Remove
z-index: 1from the skeleton. This was a Safari-specific workaround that is no longer necessary in the latest versions of the browser. (#216)
- Fix
mainandmodulebeing incorrect inpackage.json. (#191)
- The library is now compatible with TypeScript's
"moduleResolution": "nodenext"compiler option. (#187)
- The skeleton now has
user-select: noneso that it cannot be selected. (#179)
- @larsmunkholm
- The skeleton animation no longer plays for users who have enabled the
prefers-reduced-motionaccessibility setting.
- @RoseMagura
- Add the
'use client'directive to make the library compatible with React Server Components and Next.js 13. (#162)
- @cravend
- If
countis set to a decimal number like 3.5, the component will display 3 full-width skeletons followed by 1 half-width skeleton. (#136)
- Fix an edge case where the animated highlight had the wrong vertical position (#133)
- @HexM7
- Fix explicitly setting a
Skeletonprop to undefined, like<Skeleton highlightColor={undefined}>, blocking style options from theSkeletonTheme(#128)- If you were relying on this behavior to block values from the
SkeletonTheme, you can render a nestedSkeletonThemeto override a theme defined higher up in the component tree, OR explicitly set one or moreSkeletonprops back to their default values e.g.<Skeleton baseColor="#ebebeb" />
- If you were relying on this behavior to block values from the
- Fix circle skeleton animation being broken in Safari (#120)
- Fix
SkeletonPropsnot being exported from the main entry point (#118) - Fix
enableAnimationprop having no effect. This was a regression.
-
Add the new required CSS import:
import 'react-loading-skeleton/dist/skeleton.css';
-
Read the full list of breaking changes to see if any affect you.
- Drop Emotion dependency, add CSS file that must be imported
- Dropping Emotion avoids conflicts when multiple Emotion versions are used on one page and reduces bundle size
- Reimplement
SkeletonThemeusing React context- The old
SkeletonThemerendered a<div>which was undesirable in many cases. The newSkeletonThemedoes not render any DOM elements. - The old
SkeletonThemedid not work if theSkeletonwas rendered in a portal. The newSkeletonThemedoes work in this case.
- The old
SkeletonTheme: rename thecolorprop tobaseColor- Convert to TypeScript
- Publish code as ES2018 to reduce bundle size
- Require React >= 16.8.0
- Drop Internet Explorer support
If you need to support Internet Explorer or use an old version of React, please continue to use react-loading-skeleton v2.
- Add many new style-related props to
SkeletonTheme - Publish an ES module in addition to a CommonJS module
- Add
directionprop to support right-to-left animation - Add
enableAnimationprop to allow disabling the animation - Add
containerClassNameprop to allow customizing the container element - Add
containerTestIdto make testing easier - Add
aria-liveandaria-busyattributes to the skeleton container to improve screen reader support
- Optimize animation performance:
- The old animation animated the
background-positionproperty which made the browser repaint the gradient on every frame. - The new animation animates the
transformof a pseudoelement. This avoids repaints and results in an observable decrease in CPU usage.
- The old animation animated the
- No longer require
widthandheightto be set for thecircleprop to work - Change the default
durationfrom 1.2 s to 1.5 s - Make the default
Skeletonbase color a tiny bit darker so that the animation is more visible
- Several common issues are now resolved as a result of removing Emotion
- Fix multi-line skeletons not working with the
widthprop - Fix the type of the
wrapperprop in the type definitions
- @srmagura
- @aboodz
- @RoseMagura
- @saadaouad
- @rlaunch