Primitives
21
AvatarGroup
Overlapping stack of avatars. Each keeps a ring in the canvas colour, which is what stops two adjacent faces from merging into one shape — drawn with a box-shadow, so it costs no layout.
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-avatar-group">
<span role="img" aria-label="Ann Lee" class="aura-avatar"><span aria-hidden="true">AL</span></span>
<span role="img" aria-label="Bo Ng" class="aura-avatar"><span aria-hidden="true">BN</span></span>
<span role="img" aria-label="Cy Kim" class="aura-avatar"><span aria-hidden="true">CK</span></span>
</div>Demo.tsx
import { Avatar, AvatarGroup } from '@ilomee/aura-react';
export default function Demo() {
return (
<AvatarGroup>
<Avatar alt="Ann Lee" />
<Avatar alt="Bo Ng" />
<Avatar alt="Cy Kim" />
</AvatarGroup>
);
}Demo.vue
<script setup lang="ts">
import { Avatar, AvatarGroup } from '@ilomee/aura-vue';
</script>
<template>
<AvatarGroup>
<Avatar initials="AL" alt="Ann Lee" />
<Avatar initials="BN" alt="Bo Ng" />
</AvatarGroup>
</template>Demo.svelte
<script lang="ts">
import { Avatar, AvatarGroup } from '@ilomee/aura-svelte';
</script>
<AvatarGroup>
<Avatar initials="AL" alt="Ann Lee" />
<Avatar initials="BN" alt="Bo Ng" />
</AvatarGroup>Used as [auraAvatarGroup] — a directive you put on your own element.
demo.component.ts
import { AuraAvatar, AuraAvatarGroup } from '@ilomee/aura-angular';
@Component({
standalone: true,
imports: [AuraAvatar, AuraAvatarGroup],
template: `<div auraAvatarGroup>
<aura-avatar initials="AL" alt="Ann Lee" />
<aura-avatar initials="BN" alt="Bo Ng" />
</div>`,
})
export class DemoComponent {}A directive — you choose the element, so there is no as input.
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.
No props — it only takes children.
No props — it only takes children.
No props — it only takes children.
No props — it only takes children.
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-avatar-group | base | Required. A modifier does nothing without it. |
Tokens and rules
components.css- overlap
- var(--avatar-overlap)
- ring
- 0 0 0 2px var(--canvas) — a shadow, not a border