Primitives
23
Loader
An indeterminate spinner. The wrapper is role="status" and carries the label; the ring is aria-hidden, because a spinning border has nothing to say. It keeps turning under prefers-reduced-motion — a frozen spinner reads as a hang, not as calm.
plain markup — no library on the page
rendered by aura-react
rendered by aura-vue
rendered by aura-svelte
built from aura-angular's own class helpers
Code
index.html
<div class="aura-group" style="--aura-gap:var(--space-3);--aura-align:center">
<span role="status" aria-label="Loading, small">
<span aria-hidden="true" class="aura-loader aura-loader--sm aura-anim-spin"></span>
</span>
<span role="status" aria-label="Loading">
<span aria-hidden="true" class="aura-loader aura-anim-spin"></span>
</span>
<span role="status" aria-label="Loading, large">
<span aria-hidden="true" class="aura-loader aura-loader--lg aura-anim-spin"></span>
</span>
</div>Demo.tsx
import { Group, Loader } from '@ilomee/aura-react';
export default function Demo() {
return (
<Group align="center">
<Loader size="sm" label="Loading, small" />
<Loader label="Loading" />
<Loader size="lg" label="Loading, large" />
</Group>
);
}Demo.vue
<script setup lang="ts">
import { Loader } from '@ilomee/aura-vue';
</script>
<template>
<Loader label="Fetching releases" />
</template>Demo.svelte
<script lang="ts">
import { Loader } from '@ilomee/aura-svelte';
</script>
<Loader label="Fetching releases" />Used as aura-loader.
demo.component.ts
import { AuraLoader } from '@ilomee/aura-angular';
@Component({
standalone: true,
imports: [AuraLoader],
template: `<aura-loader label="Fetching releases" />`,
})
export class DemoComponent {}Props
Plain markup has no props — the classes below are the whole API. The four packages do nothing more than set these same classes for you.
| Name | Type | Default | Notes |
|---|---|---|---|
| size | 'sm' | 'md' | 'lg' | 'md' | |
| label | string | 'Loading' |
| Name | Type | Default | Notes |
|---|---|---|---|
| size | 'sm' | 'md' | 'lg' | 'md' | |
| label | string | 'Loading' |
| Name | Type | Default | Notes |
|---|---|---|---|
| size | 'sm' | 'md' | 'lg' | 'md' | |
| label | string | 'Loading' |
| Name | Type | Default | Notes |
|---|---|---|---|
| size | 'sm' | 'md' | 'lg' | 'md' | |
| label | string | 'Loading' |
Emitted classes
Every framework emits the same classes — that is what makes the four libraries look identical. You can use them directly, without any component library.
| Class | Role | Notes |
|---|---|---|
| .aura-loader | base | Required. A modifier does nothing without it. |
| .aura-loader--sm | modifier | |
| .aura-loader--lg | modifier |
Tokens and rules
components.css- size
- var(--loader-sm|md|lg) — modifiers generated from the tokens
- stroke
- var(--loader-stroke)
- motion
- .aura-anim-spin