Primitives
27

List

An ordered or unordered list with the markers toned down. --plain strips them entirely, for a list that is a list semantically but not visually — a nav, a feed, a stack of cards.

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
  • Tokens are CSS variables
  • Classes are the API
  • Still a list to a screen reader
  • Just not to the eye
  • Tokens are CSS variables
  • Classes are the API
  • Still a list to a screen reader
  • Just not to the eye
  • Tokens are CSS variables
  • Classes are the API
  • Still a list to a screen reader
  • Just not to the eye
  • Tokens are CSS variables
  • Classes are the API
  • Still a list to a screen reader
  • Just not to the eye
  • Tokens are CSS variables
  • Classes are the API
  • Still a list to a screen reader
  • Just not to the eye

Code

index.html
<ul class="aura-list">
  <li>Tokens are CSS variables</li>
  <li>Classes are the API</li>
</ul>
<ul class="aura-list aura-list--plain">
  <li>Still a list to a screen reader</li>
  <li>Just not to the eye</li>
</ul>
Demo.tsx
import { List } from '@ilomee/aura-react';

/** Mirrors the `list` html snippet in the registry — that snippet is what every stack is diffed
 *  against. Both are `<ul>`: `ordered` has its own row in the props table, and Angular's
 *  directive cannot take it (you write the `<ol>` yourself), so a demo that used it would put
 *  the stacks on different elements by design. */
export default function Demo() {
  return (
    <>
      <List>
        <li>Tokens are CSS variables</li>
        <li>Classes are the API</li>
      </List>
      <List plain>
        <li>Still a list to a screen reader</li>
        <li>Just not to the eye</li>
      </List>
    </>
  );
}
Demo.vue
<script setup lang="ts">
import { List } from '@ilomee/aura-vue';
</script>

<template>
  <List plain>
    <li>Still a list to a screen reader</li>
  </List>
</template>
Demo.svelte
<script lang="ts">
  import { List } from '@ilomee/aura-svelte';
</script>

<List plain>
  <li>Still a list to a screen reader</li>
</List>

Used as [auraList] — a directive you put on your own element.

demo.component.ts
import { AuraList } from '@ilomee/aura-angular';

@Component({
  standalone: true,
  imports: [AuraList],
  template: `<ul auraList plain>
    <li>Still a list to a screen reader</li>
  </ul>`,
})
export class DemoComponent {}

A directive — write <ol auraList> for an ordered list, so there is no ordered input. The other three take it as a prop because their templates cannot swap a tag without one.

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.
NameTypeDefaultNotes
orderedbooleanfalseRenders <ol>.
plainbooleanfalse
NameTypeDefaultNotes
orderedbooleanfalseRenders <ol>.
plainbooleanfalse
NameTypeDefaultNotes
orderedbooleanfalseRenders <ol>.
plainbooleanfalse
NameTypeDefaultNotes
plainbooleanfalse

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.

ClassRoleNotes
.aura-listbaseRequired. A modifier does nothing without it.
.aura-list--plainmodifier

Tokens and rules

components.css
marker
var(--text-faint)
indent
var(--space-5) — logical
plain
list-style: none + no indent