Across UI Kit v2.0

Forms & Input

Inputs, selects, textareas, labels, and composite fields.

Input

Component

Form inputs with Wing-inspired focus states and size options.

HTML
<input type="text" class="across-input" placeholder="Enter text...">
<input type="text" class="across-input input--sm" placeholder="Small">
<input type="text" class="across-input input--lg" placeholder="Large">

Textarea

ComponentNew

Multi-line text input with auto-resize, char counts, and validation states.

Perfect, thanks!
Minimum 20 characters required

Sizes: .across-textarea--sm, default, .across-textarea--lg

States: .is-valid, .is-error, disabled

Modifiers: .across-textarea--no-resize disables resizing

Select

ComponentNew

Custom-styled native dropdown select with consistent theming.

Structure: Wrap <select> in .across-select with icon

Sizes: .across-select--sm, default, .across-select--lg

States: .is-valid, .is-error, .is-disabled

Label

ComponentNew

Form labels with required/optional indicators and consistent typography.

Default LabelRequired FieldOptional Field

Base: .across-label typography

Required: .across-label--required adds red asterisk

Optional: .across-label--optional adds indicator

Disabled: .is-disabled reduces opacity

Form Field

ComponentNew

Composite wrapper combining label, input, helper text, and validation.

Choose a unique name for your project.
Username is available!
Password must be at least 8 characters.
Contact Information
Enable feature

Structure: .across-field wraps label, input, helper

Fieldset: .across-fieldset groups related fields

Layout: .across-field--horizontal for inline label + control

Helpers: Use .across-input-helper--success and .across-input-helper--error

Input Group

ComponentNew

Extend form controls by adding text, buttons, or icons on either side.

https://
$ .00

Structure: Wrap elements in .across-input-group.

Addons: Use .across-input-group-text for static text/icons.

Buttons: Buttons inside the group automatically attach to the input.

Combobox

ComponentNew

Searchable dropdown for selecting from a large list of options.

HTML
<div class="across-combobox">
  <button class="across-combobox__trigger">
    <span>Select item...</span>
    <i class="ph-light ph-caret-down"></i>
  </button>
  <div class="across-combobox__menu">
    <div class="across-combobox__search">
      <input type="text" class="across-combobox__input" placeholder="Search...">
    </div>
    <div class="across-combobox__list">
      <button class="across-combobox__item">Option 1</button>
      <button class="across-combobox__item">Option 2</button>
    </div>
  </div>
</div>

Date Picker

ComponentNew

A calendar-based date selection input.

Structure: .across-datepicker > .across-datepicker__trigger > .across-datepicker__calendar.

Interaction: JS automatically renders the calendar grid and handles selection.

Data: Use data-selected-date="YYYY-MM-DD" to set initial value.

Input OTP

ComponentNew

A set of inputs for entering one-time passwords or verification codes.

-
Enter the 6-digit code sent to your email.

Structure: .across-otp > .across-otp__input.

Interaction: JS handles auto-focus, backspace navigation, and pasting.

Slider

ComponentNew

An input where the user selects a value from within a given range.

Structure: .across-slider > input[type="range"].across-slider__input.

Styling: Uses browser-specific pseudo-elements to style the track and thumb.

Toggle Group

ComponentNew

A set of two-state buttons that can be toggled on or off.

Text Alignment
Format (Multiple)

Structure: .across-toggle-group > .across-toggle-group__item.

Interaction: JS handles selection state. Use data-type="single" or "multiple" on the container.

Native Select

ComponentNew

A styled wrapper around the native browser select element.

Structure: .across-native-select > select + .across-native-select__icon.

Usage: Use when you need native mobile pickers or simple dropdowns without search.

Calendar

ComponentNew

A date field component that allows users to enter and edit date.

Structure: .across-calendar-view.

Interaction: JS automatically renders the grid. Use data-selected-date for initial state.

Form Container

ComponentNew

A structured container for forms with header, body, and actions.

Profile Settings

Update your personal information and preferences.

Structure: .across-form > .across-form__header + fields + .across-form__actions

Kbd

ComponentNew

Used to display keyboard shortcuts.

⌘K Shift + Tab Enter

Structure: .across-kbd.