Примитивы
16
Fieldset
Группирует связанные контролы — настоящая пара <fieldset>/<legend>, а не div с role="group". Именно нативная пара заставляет скринридер проговаривать легенду с каждым контролом внутри, а disabled на ней выключает их все, не трогая ни один.
чистая разметка — библиотеки на странице нет
отрендерил aura-react
отрендерил aura-vue
отрендерил aura-svelte
собрано из классов самого aura-angular
Код
index.html
<fieldset class="aura-fieldset">
<legend>Notifications</legend>
<div class="aura-stack" style="--aura-dir:column;--aura-gap:var(--space-3)">
<label class="aura-check">
<input type="checkbox" class="aura-checkbox" checked />
<span>Email</span>
</label>
<label class="aura-check">
<input type="checkbox" class="aura-checkbox" />
<span>Push</span>
</label>
</div>
</fieldset>Demo.tsx
import { Checkbox, Fieldset, Stack } from '@ilomee/aura-react';
export default function Demo() {
return (
<Fieldset legend="Notifications">
<Stack gap={3}>
<Checkbox label="Email" defaultChecked />
<Checkbox label="Push" />
</Stack>
</Fieldset>
);
}Demo.vue
<script setup lang="ts">
import { Fieldset, Checkbox } from '@ilomee/aura-vue';
</script>
<template>
<Fieldset legend="Notifications">
<Checkbox label="Email" />
</Fieldset>
</template>Demo.svelte
<script lang="ts">
import { Fieldset, Checkbox } from '@ilomee/aura-svelte';
</script>
<Fieldset legend="Notifications">
<Checkbox label="Email" />
</Fieldset>Используется как aura-fieldset.
demo.component.ts
import { AuraFieldset, AuraCheckbox } from '@ilomee/aura-angular';
@Component({
standalone: true,
imports: [AuraFieldset, AuraCheckbox],
template: `<aura-fieldset legend="Notifications">
<aura-checkbox label="Email" [checked]="true" />
</aura-fieldset>`,
})
export class DemoComponent {}Пропсы
У чистой разметки нет пропсов — классы ниже и есть весь API. Четыре пакета не делают ничего сверх того, что проставляют вам те же самые классы.
| Имя | Тип | По умолчанию | Примечания |
|---|---|---|---|
| legend | string | — | |
| disabled | boolean | — | Выключает все контролы внутри. Заметьте: их свойство disabled при этом не меняется — наследование видно только псевдоклассу :disabled. |
| Имя | Тип | По умолчанию | Примечания |
|---|---|---|---|
| legend | string | — |
| Имя | Тип | По умолчанию | Примечания |
|---|---|---|---|
| legend | string | — |
| Имя | Тип | По умолчанию | Примечания |
|---|---|---|---|
| legend | string | — | |
| disabled | boolean | false |
Какие классы отдаёт
Все фреймворки отдают одни и те же классы — именно поэтому четыре библиотеки выглядят одинаково. Их можно использовать напрямую, вообще без библиотеки компонентов.
| Класс | Роль | Примечания |
|---|---|---|
| .aura-fieldset | база | Обязательный. Без него модификатор не работает. |
Токены и правила
components.css- рамка
- var(--field-border) · var(--r2)
- отступы
- var(--space-4)
- легенда
- var(--text-muted)
- min-inline-size
- 0 — a fieldset's default is min-content, which refuses to shrink