Komponenter
Skeleton
Skeleton brukes for å vise at innhold på en side er i ferd med å lastes inn. Den gir brukeren et visuelt hint om hvordan innholdet til slutt vil se ut.
React
const Preview = () => { return <Skeleton width={200} height={100} />; }; render(<Preview />)
- width
- Description
The width of the component
- Type
string | number
- height
- Description
The height of the component
- Type
string | number
- variant
- Description
The shape variant
- Type
"rectangle" | "circle" | "text"- Default
rectangle
- asChild
- Description
Change the default rendered element for the one passed as a child, merging their props and behavior.
- Type
boolean- Default
false
- characters
- Description
@deprecated This prop has no effect. Use `width` or supply text as children instead
- Type
number
| Name | Type | Default | Description |
|---|---|---|---|
| width | string | number | - | The width of the component |
| height | string | number | - | The height of the component |
| variant | "rectangle" | "circle" | "text" | rectangle | The shape variant |
| asChild | boolean | false | Change the default rendered element for the one passed as a child, merging their props and behavior. |
| characters | number | - | @deprecated This prop has no effect. Use `width` or supply text as children instead |
Bruk
Eksempel
Varianter
React
const Components = () => { return ( <> <Skeleton variant='circle' width='50px' height='50px' /> <Skeleton variant='rectangle' width='100px' height='50px' /> <Paragraph> <Skeleton variant='text' width='10' /> </Paragraph> </> ); }; render(<Components />)
Eksempel på bruk
React
const UsageExample = () => { return ( <> <Skeleton height='150px' /> <div style={{ display: 'flex', gap: '10px', alignItems: 'center', padding: '5px 0 5px 0', }} > <Skeleton variant='circle' width='30px' height='30px' /> <Heading> <Skeleton variant='text'>En medium tittel</Skeleton> </Heading> </div> <Skeleton variant='text' width='140' /> </> ); }; render(<UsageExample />)
Tekst-variant
React
const Text = () => { return ( <> <div style={{ flex: '1 1 200px' }}> <Heading>En tittel</Heading> <Paragraph data-size='sm'> Her er en paragraf som går over flere linjer </Paragraph> </div> <div style={{ flex: '1 1 200px' }}> <Heading> <Skeleton variant='text'>En tittel</Skeleton> </Heading> <Paragraph data-size='sm'> <Skeleton variant='text' width={40} /> </Paragraph> </div> </> ); }; render(<Text />)
HTML
Legg klassenavnet ds-skeleton på en <span> med aria-hidden="true".
Du endrer variant med data-variant.
Dersom du har tekst-varianten, setter du data-text med så mye tekst du ønsker den skal etterligne.
I react bruker vi bindestrek ("-") i data-text.
Tekst varianten burde ligge i ein <p> eller et heading-element for å få riktig font-størrelse.
Dersom du vil sette størrelse kan du gjøre dette med style-attributtet, eller med CSS.
CSS variabler og data-attributter
| Navn | Verdi |
|---|---|
| --dsc-skeleton-animation-duration | 0.8s |
| --dsc-skeleton-animation | ds-skeleton-opacity-fade var(--dsc-skeleton-animation-duration) linear infinite alternate |
| --dsc-skeleton-background | var(--ds-color-neutral-surface-tinted) |
| Navn | Verdi |
|---|---|
| data-variant | circle, text |