[Skeleton] Built in support for delayed appearance
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 99.1k
- Forks
- 32.5k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 106
Description
Duplicates
- I have searched the existing issues
Latest version
- I have tested the latest version
Summary 💡
This issue is meant to discuss the need for a built-in support for delaying the appearance of a skeleton.
Examples 🌈
You can find an example in https://mui.com/material-ui/react-progress/#delaying-appearance.
Motivation 🔦
With @DanailH, I believe that we have found a valid use case for delaying the appearance of the skeleton within a data grid: https://github.com/mui/mui-x/pull/5214#discussion_r953719829. In some cases, the rows of the data grid load so fast that we see a flash of a skeleton. It might be better to delay the appearance of the skeleton to only the cases where the data is slow to load. For instance, when loading the rows in Notion, you never see a skeleton, only a while background.
So, I wonder if it makes sense to add a prop to have this behavior built-in in MUI Core.
In the case of the data grid, there is another dimension to consider that could help with the problem: overs canning (loading rows outside of the viewport in anticipation). But even with this, I think that this issue is still relevant.
cc @gerdadesign
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the delayed-appearance example in the Material UI progress documentation and the linked MUI X data-grid discussion. Determine the intended built-in Skeleton API and how it should interact with fast-loading rows; the issue does not identify files, tests, or a settled definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100