Skip to content

Skeletons

Animated loading placeholders with a glassmorphic shimmer effect. Use them to indicate content is loading.

Basic Usage

js
const el = Oura.skeleton({
  variant: 'rectangular',
  width: '100%',
  height: '120px',
  container: '#content-area',
});

Variants

js
// Text lines
Oura.skeleton({ variant: 'text', count: 3, container: '#area' });

// Circle (avatar)
Oura.skeleton({ variant: 'circular', width: '48px', height: '48px' });

// Rectangle (card)
Oura.skeleton({ variant: 'rectangular', width: '300px', height: '200px' });

Options

OptionTypeDefaultDescription
variant'text' | 'circular' | 'rectangular''rectangular'Shape variant
widthstring'100%' / '48px'CSS width
heightstringautoCSS height
countnumber1Number of skeleton elements
containerstring | HTMLElementdocument.bodyTarget container

Replace with Content

js
const skeleton = Oura.skeleton({ variant: 'text', count: 4, container: '#area' });

// After data loads:
skeleton.remove();
document.querySelector('#area').innerHTML = '<p>Real content here</p>';

Released under the MIT License.