Примитивы
27

List

Список, упорядоченный или нет, с приглушёнными маркерами. --plain убирает их совсем — для списка, который список семантически, но не визуально: навигация, лента, стопка карточек.

чистая разметка — библиотеки на странице нет
отрендерил aura-react
отрендерил aura-vue
отрендерил aura-svelte
собрано из классов самого aura-angular
  • 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

Код

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';

/**
 * Повторяет html-сниппет `list` из реестра — именно с ним сравнивают все стеки. Оба — `<ul>`: у
 * `ordered` своя строка в таблице пропсов, а директива Angular его не принимает (`<ol>` вы пишете
 * сами), поэтому демо с ним развело бы стеки по разным элементам — причём намеренно.
 */
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>

Используется как [auraList] — директива, которую вы вешаете на свой элемент.

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 {}

Это директива — для нумерованного списка пишите <ol auraList>, поэтому входа ordered нет. Остальные три принимают его пропом: их шаблоны иначе не могут подменить тег.

Пропсы

У чистой разметки нет пропсов — классы ниже и есть весь API. Четыре пакета не делают ничего сверх того, что проставляют вам те же самые классы.
ИмяТипПо умолчаниюПримечания
orderedbooleanfalseРендерит <ol>.
plainbooleanfalse
ИмяТипПо умолчаниюПримечания
orderedbooleanfalseРендерит <ol>.
plainbooleanfalse
ИмяТипПо умолчаниюПримечания
orderedbooleanfalseРендерит <ol>.
plainbooleanfalse
ИмяТипПо умолчаниюПримечания
plainbooleanfalse

Какие классы отдаёт

Все фреймворки отдают одни и те же классы — именно поэтому четыре библиотеки выглядят одинаково. Их можно использовать напрямую, вообще без библиотеки компонентов.

КлассРольПримечания
.aura-listбазаОбязательный. Без него модификатор не работает.
.aura-list--plainмодификатор

Токены и правила

components.css
маркер
var(--text-faint)
отступ
var(--space-5) — logical
plain
list-style: none + no indent