Skip to content

Input

CSS-only компонент для стилизации нативных HTML элементов <input>. В отличие от других компонентов CapsuleUI, Input не является Web Component - это набор CSS стилей, которые автоматически применяются к нативным элементам input.

Установка

bash
npx @capsuleui/core add Input

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

Базовый Input

html
<input
  type="text"
  placeholder="Введите ваше имя"
/>

Примечание: Не нужен кастомный тег! Стили автоматически применяются к нативным элементам <input>.

Типы Input

Стили Input работают со всеми стандартными типами input:

html
<input
  type="text"
  placeholder="Текстовый input"
/>
<input
  type="email"
  placeholder="Email input"
/>
<input
  type="password"
  placeholder="Пароль"
/>
<input
  type="number"
  placeholder="Число"
/>
<input
  type="tel"
  placeholder="Телефон"
/>
<input
  type="url"
  placeholder="URL"
/>
<input
  type="search"
  placeholder="Поиск"
/>
<input type="date" />
<input type="time" />

Отключенное состояние

html
<input
  type="text"
  placeholder="Отключенный input"
  disabled
/>

Невалидное состояние

html
<input
  type="email"
  placeholder="Невалидный email"
  aria-invalid="true"
  value="не-email"
/>

С меткой

html
<label style="display: block; margin-bottom: 0.5rem;"> Email адрес </label>
<input
  type="email"
  placeholder="you@example.com"
/>

File Input

html
<input type="file" />

Возможности

  • Автоматическая стилизация - Не нужен кастомный элемент, стили применяются к нативным input
  • Все типы input - Работает с text, email, password, number, date и т.д.
  • Состояния фокуса - Четкие индикаторы фокуса с кольцом
  • Невалидные состояния - Визуальная обратная связь для невалидных input
  • Отключенные состояния - Правильная стилизация disabled
  • Темная тема - Автоматическая поддержка темной темы
  • Доступность - Правильная поддержка ARIA

Поддерживаемые типы Input

  • text
  • email
  • password
  • number
  • tel
  • url
  • search
  • date
  • time
  • datetime-local
  • month
  • week
  • file

Детали стилизации

Компонент Input применяет следующие стили:

  • Высота: 2.25rem (h-9)
  • Отступы: 0.25rem 0.75rem (py-1 px-3)
  • Граница: 1px solid var(--input)
  • Скругление: var(--radius-md)
  • Размер шрифта: 1rem (базовый), 0.875rem на средних экранах и выше
  • Кольцо фокуса: 3px кольцо с цветом var(--ring)
  • Невалидное состояние: Красная граница с кольцом деструктивного цвета

Доступность

  • ✅ Правильные индикаторы фокуса
  • ✅ Поддержка aria-invalid для состояний валидации
  • ✅ Правильная обработка отключенного состояния
  • ✅ Стилизация выделения текста соответствует теме

Важные примечания

⚠️ Это не Web Component! Input - это CSS-only компонент. Вы используете нативные HTML элементы <input>, и стили автоматически применяются.

В отличие от других компонентов CapsuleUI, вы не используете кастомный элемент типа <capsule-input>. Просто используйте обычный HTML:

html
<!-- ✅ Правильно -->
<input
  type="text"
  placeholder="Введите текст"
/>

<!-- ❌ Неправильно -->
<capsule-input
  type="text"
  placeholder="Введите текст"
/>

Стили автоматически применяются ко всем элементам <input> после импорта CSS компонента Input.

Примечание: Для многострочного текстового ввода используйте компонент Textarea вместо этого.

Released under the MIT License.