Skeleton
A placeholder element displayed while content is loading.
Quick Start
<%= kui(:skeleton, css_classes: "h-4 w-[250px]") %>
Locals
| Local | Type | Default |
|---|---|---|
css_classes: |
String |
"" |
**component_options |
Hash |
{} |
Usage
Skeleton has no variants. Control shape and size entirely through css_classes:.
Text Lines
<div class="flex flex-col gap-2">
<%= kui(:skeleton, css_classes: "h-4 w-[250px]") %>
<%= kui(:skeleton, css_classes: "h-4 w-[200px]") %>
</div>
Circle (Avatar Placeholder)
<%= kui(:skeleton, css_classes: "h-12 w-12 rounded-full") %>
Card Placeholder
<div class="flex items-center gap-4">
<%= kui(:skeleton, css_classes: "h-12 w-12 rounded-full") %>
<div class="flex flex-col gap-2">
<%= kui(:skeleton, css_classes: "h-4 w-[250px]") %>
<%= kui(:skeleton, css_classes: "h-4 w-[200px]") %>
</div>
</div>
Theme
# lib/kiso/themes/skeleton.rb
Kiso::Themes::Skeleton = ClassVariants.build(
base: "animate-pulse rounded-md bg-elevated"
)
Accessibility
| Attribute | Value |
|---|---|
data-slot |
"skeleton" |
Skeleton is a decorative element with no semantic role. Screen readers skip it automatically since it contains no text content.