# SbSkeleton A placeholder component that shows a preview of content while data is loading. Reduces perceived loading time by providing visual structure that mimics the final content layout. ## Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | Variant | SbSkeletonVariant | Text | Shape variant (Text, Circular, Rectangular) | | Animation | bool | true | Whether to show the shimmer animation | | Width | string? | null | CSS width value (e.g., "100%", "200px") | | Height | string? | null | CSS height value (e.g., "20px", "100px") | | BorderRadius | string? | null | CSS border-radius value (e.g., "8px", "50%") | | Class | string? | null | Additional CSS classes | ## CSS Classes - `sb-skeleton` - Base class - `sb-skeleton--text` - Text variant (short height, full width) - `sb-skeleton--circular` - Circular variant (circle shape) - `sb-skeleton--rectangular` - Rectangular variant (block shape) - `sb-skeleton--animated` - Shimmer animation applied ## Accessibility - Uses `aria-hidden="true"` since it's a decorative placeholder ## Examples ### Basic Variants ```razor @* Text skeleton - simulates a line of text *@ @* Circular skeleton - simulates an avatar *@ @* Rectangular skeleton - simulates an image or card *@ ``` ### Custom Dimensions ```razor ``` ### Without Animation ```razor ``` ### Custom Border Radius ```razor ``` ### Card Skeleton ```razor
@* Image placeholder *@
@* Title *@ @* Subtitle *@ @* Description lines *@
``` ### List Item Skeleton ```razor @for (int i = 0; i < 5; i++) {
@* Avatar *@
@* Name *@ @* Description *@
} ``` ### Data Table Skeleton ```razor
@* Header *@
@* Rows *@ @for (int i = 0; i < 5; i++) {
}
``` ### Profile Page Skeleton ```razor
@* Cover image *@
@* Avatar *@ @* Name and bio *@
``` ### Conditional Loading ```razor @if (isLoading) { } else {

@article.Title

@article.Content

} ```