- Add optional
customHighlightBackground
prop. (#233)
- Remove
z-index: 1
from the skeleton. This was a Safari-specific workaround that is no longer necessary in the latest versions of the browser. (#216)
- Fix
main
andmodule
being incorrect inpackage.json
. (#191)
- The library is now compatible with TypeScript's
"moduleResolution": "nodenext"
compiler option. (#187)
- The skeleton now has
user-select: none
so that it cannot be selected. (#179)
- @larsmunkholm
- The skeleton animation no longer plays for users who have enabled the
prefers-reduced-motion
accessibility setting.
- @RoseMagura
- Add the
'use client'
directive to make the library compatible with React Server Components and Next.js 13. (#162)
- @cravend
- If
count
is 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
Skeleton
prop 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 nestedSkeletonTheme
to override a theme defined higher up in the component tree, OR explicitly set one or moreSkeleton
props 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
SkeletonProps
not being exported from the main entry point (#118) - Fix
enableAnimation
prop 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
SkeletonTheme
using React context- The old
SkeletonTheme
rendered a<div>
which was undesirable in many cases. The newSkeletonTheme
does not render any DOM elements. - The old
SkeletonTheme
did not work if theSkeleton
was rendered in a portal. The newSkeletonTheme
does work in this case.
- The old
SkeletonTheme
: rename thecolor
prop 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
direction
prop to support right-to-left animation - Add
enableAnimation
prop to allow disabling the animation - Add
containerClassName
prop to allow customizing the container element - Add
containerTestId
to make testing easier - Add
aria-live
andaria-busy
attributes to the skeleton container to improve screen reader support
- Optimize animation performance:
- The old animation animated the
background-position
property which made the browser repaint the gradient on every frame. - The new animation animates the
transform
of a pseudoelement. This avoids repaints and results in an observable decrease in CPU usage.
- The old animation animated the
- No longer require
width
andheight
to be set for thecircle
prop to work - Change the default
duration
from 1.2 s to 1.5 s - Make the default
Skeleton
base 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
width
prop - Fix the type of the
wrapper
prop in the type definitions
- @srmagura
- @aboodz
- @RoseMagura
- @saadaouad
- @rlaunch