Skip to content

CSS: form-field

.instui-form-field — обёртка поля формы: метка, её элементы управления и встроенные, обязательные или только для чтения макеты.

Сообщение об ошибке остаётся скрытым, пока элемент управления поля не станет :user-invalid (после взаимодействия пользователя) или пока вы не добавите класс -invalid. Используйте -layout-inline, чтобы поместить метку рядом с элементами управления, и -layout-stacked, чтобы поместить её выше. Также задаёт собственный gap между меткой, элементами управления и сообщениями; последовательное применение модификатора утилиты отступа -gap-* переопределяет это встроенное значение.

Source: form-field.css

Доступность

Элемент <label> оборачивает элемент управления, поэтому текст метки именует его нативно; звёздочка обязательного поля декоративна и должна быть скрыта от вспомогательных технологий (aria-hidden), а сообщение об ошибке появляется, когда элемент управления становится :user-invalid или вы добавляете класс -invalid.

Использование

css
@import "@pantoken/components/components.css";
@import "@pantoken/components/form-field.css";

Примеры

html
<label class="instui-form-field">
  <span class="label">Email address</span>
  <span class="controls"><input class="instui-text-input" type="email" placeholder="[email protected]"></span>
  <div class="instui-form-field-messages">
    <span class="instui-form-field-message -type-hint">We'll never share it.</span>
    <span class="instui-form-field-message -type-error">Enter a valid email address.</span>
  </div>
</label>

Структура

text
.instui-form-field
  .label
  .controls
    text-input (component)
  form-field-messages (component)
flowchart TD n0[".instui-form-field"]:::cssdoc-root n1(".label"):::cssdoc-part n2(".controls"):::cssdoc-part n3(["text-input"]):::cssdoc-component n4(["form-field-messages"]):::cssdoc-component n0 --> n1 n2 --> n3 n0 --> n2 n0 --> n4 click n3 "/api/css/text-input.md" click n4 "/api/css/form-field-messages.md" classDef cssdoc-root stroke-width:1px; classDef cssdoc-part stroke-width:1px; classDef cssdoc-slot stroke-width:1px; classDef cssdoc-component stroke-width:1px;

Модификаторы

МодификаторОписание
.-inlineВстроенный макет (сокращение для -layout-inline).
.-invalidНеверное (ошибочное) состояние.
.-label-align-endВыравнивать текст метки по концу.
.-label-align-startВыравнивать текст метки по началу.
.-layout-inlineВстроенный макет: метка рядом с элементами управления.
.-layout-stackedСтековый макет: метка над элементами управления.
.-readonlyТолько для чтения.
.-v-align-bottomВыровнять метку по нижнему краю относительно элементов управления.
.-v-align-topВыровнять метку по верхнему краю относительно элементов управления.

Части

ЧастьОписание
.controlsОбласть элементов управления, расположенная рядом с или под меткой.
.labelМетка поля.

Псевдоэлементы

ПсевдоэлементОписание
::afterОтрисовывает декоративную звёздочку обязательного поля после текста метки, когда поле обязательно.

Состояния

СостояниеОписание
:required

Использованные токены

TokenТипЗначение
--instui-component-form-field-layout-asterisk-color<color>LightDarklight-dark(#CF1F24, #FA917F)
--instui-component-form-field-layout-font-family[ <font-family-name> | <generic-font-family> ]#Atkinson Hyperlegible Next, "Helvetica Neue", Helvetica, Arial, sans-serif
--instui-component-form-field-layout-font-size<length>1rem
--instui-component-form-field-layout-font-weight<integer>400
--instui-component-form-field-layout-gap-inputs<length>0.75rem
--instui-component-form-field-layout-gap-primitives<length>0.5rem
--instui-component-form-field-layout-line-height<length>1.125rem
--instui-component-form-field-layout-readonly-text-color<color>LightDarklight-dark(#576773, #AAB0B5)
--instui-component-form-field-layout-text-color<color>LightDarklight-dark(#273540, #ffffff)

Поддержка браузеров

  • Содержит стили своего элемента с помощью CSS @scope at-rule; требует современную версию Chromium, Firefox или Safari.

Подкомпоненты

Связанные

  • form-field-messages — Отрисовывает подсказки, сообщения об ошибках и успехе для поля.
  • form-field-group — Группирует связанные поля под общей легендой.