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Тільки для читання (read-only).
.-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 at-rule @scope; потребує новішої версії Chromium, Firefox або Safari.

Підкомпоненти

Пов'язані

  • form-field-messages — Відображає підказки, повідомлення про помилки та успіхи для поля.
  • form-field-group — Групує пов'язані поля під спільною легендою.