Documentation
01
See it in context
Preview
02
Copy a working example
Usage
---
import { Skeleton } from '@santi020k/lumen-astro'
---
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style="display: flex; gap: 0.75rem; align-items: center;">
<Skeleton style="width: 2.5rem; height: 2.5rem; border-radius: 9999px;" />
<div style="display: grid; gap: 0.5rem; flex: 1;">
<Skeleton style="height: 1rem; width: 40%;" />
<Skeleton style="height: 0.75rem; width: 80%;" />
</div>
</div>
<Skeleton aria-label="Loading article" style="height: 6rem;" />---
import { Skeleton } from '@santi020k/lumen-astro'
---
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style="display: flex; gap: 0.75rem; align-items: center;">
<Skeleton style="width: 2.5rem; height: 2.5rem; border-radius: 9999px;" />
<div style="display: grid; gap: 0.5rem; flex: 1;">
<Skeleton style="height: 1rem; width: 40%;" />
<Skeleton style="height: 0.75rem; width: 80%;" />
</div>
</div>
<Skeleton aria-label="Loading article" style="height: 6rem;" />import { Skeleton } from '@santi020k/lumen-react'
export const Example = () => (
<>
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style={{ display: 'flex', gap: '0.75rem', alignItems: 'center' }}>
<Skeleton style={{ width: '2.5rem', height: '2.5rem', borderRadius: '9999px' }} />
<div style={{ display: 'grid', gap: '0.5rem', flex: '1' }}>
<Skeleton style={{ height: '1rem', width: '40%' }} />
<Skeleton style={{ height: '0.75rem', width: '80%' }} />
</div>
</div>
<Skeleton aria-label="Loading article" style={{ height: '6rem' }} />
</>
)import { Skeleton } from '@santi020k/lumen-react'
export const Example = () => (
<>
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style={{ display: 'flex', gap: '0.75rem', alignItems: 'center' }}>
<Skeleton style={{ width: '2.5rem', height: '2.5rem', borderRadius: '9999px' }} />
<div style={{ display: 'grid', gap: '0.5rem', flex: '1' }}>
<Skeleton style={{ height: '1rem', width: '40%' }} />
<Skeleton style={{ height: '0.75rem', width: '80%' }} />
</div>
</div>
<Skeleton aria-label="Loading article" style={{ height: '6rem' }} />
</>
)<script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style="display: flex; gap: 0.75rem; align-items: center;">
<lumen-skeleton style="width: 2.5rem; height: 2.5rem; border-radius: 9999px;"></lumen-skeleton>
<div style="display: grid; gap: 0.5rem; flex: 1;">
<lumen-skeleton style="height: 1rem; width: 40%;"></lumen-skeleton>
<lumen-skeleton style="height: 0.75rem; width: 80%;"></lumen-skeleton>
</div>
</div>
<lumen-skeleton aria-label="Loading article" style="height: 6rem;"></lumen-skeleton><script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
{/* Skeletons are decorative (aria-hidden) by default; pass aria-label to
announce a loading region instead. */}
<div style="display: flex; gap: 0.75rem; align-items: center;">
<lumen-skeleton style="width: 2.5rem; height: 2.5rem; border-radius: 9999px;"></lumen-skeleton>
<div style="display: grid; gap: 0.5rem; flex: 1;">
<lumen-skeleton style="height: 1rem; width: 40%;"></lumen-skeleton>
<lumen-skeleton style="height: 0.75rem; width: 80%;"></lumen-skeleton>
</div>
</div>
<lumen-skeleton aria-label="Loading article" style="height: 6rem;"></lumen-skeleton>03
Choose your target
Add this component
Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.
pnpm add @santi020k/lumen-astropnpm add @santi020k/lumen-astrolumen add Skeletonlumen add Skeletonpnpm add @santi020k/lumen-reactpnpm add @santi020k/lumen-reactlumen add Skeleton --target reactlumen add Skeleton --target reactpnpm add @santi020k/lumen-elementspnpm add @santi020k/lumen-elementslumen add Skeleton --target elementslumen add Skeleton --target elementsAPI reference
Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.
| Attribute | Values | Default | Description |
|---|---|---|---|
| aria-label, aria-labelledby | string | - | Makes the placeholder accessible and changes the default role to status. |
| aria-hidden | ARIA boolean string | true unless labelled | Overrides whether the loading placeholder is exposed to assistive technology. |
| role | ARIA role | "status" when labelled | Overrides the generated status role. |
| class, className | string | "" | Merges custom classes with the generated ui-* root classes. |
| ...native attributes | HTML attributes | - | Forwards standard attributes to the root element unless the component consumes them. |