Skip to content

Fields

Field tokens provide shared styling for form inputs (Input, Select, Textarea, Autocomplete). Component-specific tokens (like --vuiii-input-*) inherit from these base tokens.

Base Tokens

TokenValueDescription
--vuiii-field-height2.5emDefault field height
--vuiii-field-padding1.35emHorizontal padding
--vuiii-field-borderRadius0.25emCorner radius
--vuiii-field-fontSizevar(--vuiii-fontSize)Text size
--vuiii-field-borderWidth1pxBorder thickness
--vuiii-field-bgColorvar(--vuiii-color-white)Background color
--vuiii-field-borderColorvar(--vuiii-color-gray)Border color
--vuiii-field-ringColorcolor-mix(in srgb, var(--vuiii-color-gray--dark) 10%, transparent)Focus ring color
--vuiii-field-ringSize0.25emFocus ring width
--vuiii-field-transitionall 0.05s ease-in-outAnimation timing
--vuiii-field-opacity--disabled0.6Disabled state opacity

State Tokens

TokenValueDescription
--vuiii-field-borderColor--activevar(--vuiii-color-gray--dark)Active state border
--vuiii-field-borderColor--focusvar(--vuiii-color-gray--dark)Focus state border
--vuiii-field-borderColor--invalidvar(--vuiii-color-danger)Invalid state border

Size Variants

Small

TokenValue
--vuiii-field-height--smallvar(--vuiii-field-height)
--vuiii-field-padding--smallvar(--vuiii-field-padding)
--vuiii-field-fontSize--smallvar(--vuiii-fontSize--small)
--vuiii-field-borderRadius--smallvar(--vuiii-field-borderRadius)
--vuiii-field-ringSize--smallvar(--vuiii-field-ringSize)

Large

TokenValue
--vuiii-field-height--largevar(--vuiii-field-height)
--vuiii-field-padding--largevar(--vuiii-field-padding)
--vuiii-field-fontSize--largevar(--vuiii-fontSize--large)
--vuiii-field-borderRadius--largevar(--vuiii-field-borderRadius)
--vuiii-field-ringSize--largevar(--vuiii-field-ringSize)

Input-Specific Tokens

Input, Textarea, and other text inputs inherit from field tokens but add additional styling:

TokenValueDescription
--vuiii-input-textColorinheritText color
--vuiii-input-bgColorvar(--vuiii-color-white)Background
--vuiii-input-bgColor--focusvar(--vuiii-input-bgColor)Focus background
--vuiii-input-placeholderColorcolor-mix(in srgb, currentColor 50%, transparent)Placeholder text
--vuiii-input-iconColorcolor-mix(in srgb, currentColor 50%, transparent)Icon color
--vuiii-input-shadow0 0Box shadow
--vuiii-input-shadow--focusvar(--vuiii-input-shadow)Focus shadow

Validity States

TokenValueDescription
--vuiii-input-textColor--validvar(--vuiii-color-success)Valid text color
--vuiii-input-borderColor--validvar(--vuiii-color-success)Valid border
--vuiii-input-ringColor--validcolor-mix(in srgb, var(--vuiii-color-success) 10%, transparent)Valid focus ring
--vuiii-input-textColor--invalidvar(--vuiii-color-danger)Invalid text color
--vuiii-input-borderColor--invalidvar(--vuiii-color-danger)Invalid border
--vuiii-input-ringColor--invalidcolor-mix(in srgb, var(--vuiii-color-danger) 10%, transparent)Invalid focus ring

Customization

Make fields more rounded:

css
:root {
  --vuiii-field-borderRadius: 0.5em;
}

Add a subtle shadow to focused inputs:

css
:root {
  --vuiii-input-shadow--focus: 0 0 0 3px var(--vuiii-field-ringColor);
}

Change the invalid state color:

css
:root {
  --vuiii-field-borderColor--invalid: #ef4444;
  --vuiii-input-borderColor--invalid: #ef4444;
}

Released under the MIT License.