Контролируемый (Controlled)
Компонент контролируемый, когда его текущим состоянием владеет родитель через пропсы вроде value, open или checked и обновляет это состояние через колбэки.
Неконтролируемый (Uncontrolled)
Компонент неконтролируемый, когда после начального пропса вроде defaultValue, defaultOpen или defaultChecked он сам владеет своим внутренним состоянием.
Составной компонент (Compound Component)
Компонент, собранный из корня и экспортируемых дочерних частей, которые делят состояние через контекст. Select, Dialog и Calendar — типичные составные компоненты.
Примитив (Primitive)
Низкоуровневый строительный блок с небольшим API и минимальным контрактом композиции или вовсе без него. Примитивы обычно достаточно описать одним index.md.
Портал (Portal)
Способ рендеринга, при котором содержимое оверлея монтируется вне обычного места в DOM, чтобы избежать обрезки, проблем со слоями наложения или переполнением.
Поиск по вводу (Typeahead)
Поведение клавиатуры, при котором фокус или выбор перемещается по введённым символам. Может конфликтовать с настоящим текстовым полем, отрендеренным внутри списка или меню.
Участие в форме (Form Participation)
Способность собственного компонента вести себя как поле в нативных HTML-формах, включая отправку через FormData и браузерные инструменты для форм.
Только для чтения (Read-Only)
Состояние, в котором компонент по-прежнему может получать фокус, но его значение не должно меняться.
Отключённый (Disabled)
Состояние, в котором компонент не должен быть интерактивным. Обычно оно блокирует фокус, взаимодействие указателем и изменение значения.
Вариант (Variant)
Именованный визуальный или поведенческий режим, например primary, secondary, field или inline. Многие компоненты сочетают variant (цветовую роль) с appearance (визуальной подачей: fill, outline, ghost, transparent).
Токен размера (Size Token)
Режим размера, который определяет отступы, высоту, скругление или типографику. В библиотеке две шкалы:
- элементы управления и контейнеры принимают именованный размер от
xsдоxl; некоторые компоненты принимают толькоsm–lg(размеры перечислены на странице каждого компонента),Avatarрасширяет шкалу до2xs–2xl, аIcon— вниз до4xs - типографика и части размером с текст (
Heading,Text,Spinner) принимают число от1до11— шаг токенов размера шрифта--font-size-1…--font-size-11
Обе шкалы также принимают собственное значение, которое вы стилизуете сами.
Контракт композиции (Composition Contract)
Обязательная структура корня и дочерних частей, без которой составной компонент не работает правильно.
Источник истины (Source Of Truth)
Категория файлов, которой следует доверять для конкретного вида документации:
- исходный код — для публичного API и типов
- истории — для реалистичного использования и видимых состояний
- тесты — для поведения и пограничных случаев
- стили — для CSS-переменных и точек настройки темы