Docs Components Feedback

Skeleton

React example follows below.
ts
const skeletonFixture = {
id: "skeleton",
avatarSize: "h-10 w-10",
lineSizes: ["h-3 w-3/4", "h-3 w-1/2"],
} satisfies { id: string; avatarSize: string; lineSizes: string[] };
import { Skeleton } from "@grassroot/ui-react";
export default function SkeletonDemo() {
return (
<div>
<Skeleton circle className={skeletonFixture.avatarSize} />
{skeletonFixture.lineSizes.map((size) => (
<Skeleton key={size} className={size} />
))}
</div>
);
}
ts
<script setup lang="ts">
const skeletonFixture = {
id: "skeleton",
avatarSize: "h-10 w-10",
lineSizes: ["h-3 w-3/4", "h-3 w-1/2"],
} satisfies { id: string; avatarSize: string; lineSizes: string[] };
import { Skeleton } from "@grassroot/ui-vue";
</script>
<template>
<div>
<Skeleton circle :class-name="skeletonFixture.avatarSize" />
<Skeleton v-for="size in skeletonFixture.lineSizes" :key="size" :class-name="size" />
</div>
</template>
ts
import { Component } from "@angular/core";
const skeletonFixture = {
id: "skeleton",
avatarSize: "h-10 w-10",
lineSizes: ["h-3 w-3/4", "h-3 w-1/2"],
} satisfies { id: string; avatarSize: string; lineSizes: string[] };
import { GrassrootSkeleton } from "@grassroot/ui-angular";
@Component({
selector: "app-skeleton-demo",
standalone: true,
imports: [GrassrootSkeleton],
template: `
<div>
<grassroot-skeleton [circle]="true" [className]="fixture.avatarSize" />
@for (size of fixture.lineSizes; track size) {
<grassroot-skeleton [className]="size" />
}
</div>
`,
})
export class SkeletonDemoComponent {
protected readonly fixture = skeletonFixture;
}
export default SkeletonDemoComponent;
ts
<script lang="ts">
import { Skeleton } from "@grassroot/ui-svelte";
const skeletonFixture = {
id: "skeleton",
avatarSize: "h-10 w-10",
lineSizes: ["h-3 w-3/4", "h-3 w-1/2"],
} satisfies { id: string; avatarSize: string; lineSizes: string[] };
</script>
<div>
<Skeleton circle className={skeletonFixture.avatarSize} />
{#each skeletonFixture.lineSizes as size (size)}
<Skeleton className={size} />
{/each}
</div>
ts
/** @jsxImportSource solid-js */
import { Skeleton } from "@grassroot/ui-solid";
const skeletonFixture = {
id: "skeleton",
avatarSize: "h-10 w-10",
lineSizes: ["h-3 w-3/4", "h-3 w-1/2"],
} satisfies { id: string; avatarSize: string; lineSizes: string[] };
export default function SkeletonDemo() {
return (
<div>
<Skeleton circle className={skeletonFixture.avatarSize} />
{skeletonFixture.lineSizes.map((size) => (
<Skeleton className={size} />
))}
</div>
);
}

Installation

API Reference

Import

import { Skeleton } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
circle
boolean | undefined
false
optional
Render a full circle (avatars, dots).
Prop
circle
Type
boolean | undefined
Default
false
Requirement
optional
Description
Render a full circle (avatars, dots).

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { Skeleton } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
circle
boolean | undefined
false
optional
className
string | undefined
—
optional
Prop
circle
Type
boolean | undefined
Default
false
Requirement
optional
Prop
className
Type
string | undefined
Default
—
Requirement
optional

Import

import { Component } from "@angular/core";
import { GrassrootSkeleton } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
circle
boolean
false
optional
className
string
—
optional
Prop
circle
Type
boolean
Default
false
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Import

import { Skeleton } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
circle
boolean
false
optional
className
string
—
optional
Prop
circle
Type
boolean
Default
false
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Import

import { Skeleton } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
circle
boolean
—
optional
className
string
—
optional
Prop
circle
Type
boolean
Default
—
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.