v1.10.2
Theme

Input

The Input component provides a styled text input with support for validation, labels, and helper text.

Installation

npm install @duskmoon-dev/el-input

Usage

import '@duskmoon-dev/el-input/register';
<el-dm-input label="Email" placeholder="Enter your email"></el-dm-input>

Live Demo

Input Examples

Properties

Property Type Default Description
value string '' Input value
label string '' Label text
placeholder string '' Placeholder text
type 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' 'text' Input type
disabled boolean false Disables the input
readonly boolean false Makes input read-only
required boolean false Marks as required
error string '' Error message to display
helper string '' Helper text below input

Basic Examples

With Label

<el-dm-input label="Username" placeholder="Enter username"></el-dm-input>

With Helper Text

<el-dm-input
  label="Password"
  type="password"
  helper="Must be at least 8 characters"
></el-dm-input>

With Error

Input with Error State

<el-dm-input
  label="Email"
  type="email"
  value="invalid-email"
  error="Please enter a valid email address"
></el-dm-input>

Input Types

Text

<el-dm-input type="text" label="Name"></el-dm-input>

Email

<el-dm-input type="email" label="Email"></el-dm-input>

Password

<el-dm-input type="password" label="Password"></el-dm-input>

Number

<el-dm-input type="number" label="Quantity"></el-dm-input>

States

Disabled

Disabled Input

<el-dm-input label="Disabled" disabled value="Cannot edit"></el-dm-input>

Read-only

Read-only Input

<el-dm-input label="Read-only" readonly value="View only"></el-dm-input>

Required

<el-dm-input label="Required Field" required></el-dm-input>

Events

Event Description
input Fired when the value changes
change Fired when the value changes and input loses focus
focus Fired when the input receives focus
blur Fired when the input loses focus

Event Handling

const input = document.querySelector('el-dm-input');
input.addEventListener('input', (event) => {
  console.log('Value:', event.target.value);
});

CSS Custom Properties

Property Default Description
--input-padding-x 0.75rem Horizontal padding
--input-padding-y 0.5rem Vertical padding
--input-border-radius 0.375rem Border radius
--input-border-color var(--color-outline) Border color
--input-focus-color var(--color-primary) Focus ring color
--input-error-color var(--color-error) Error state color

Accessibility

  • Labels are properly associated with inputs
  • Error messages are announced to screen readers
  • Focus states are clearly visible
  • Required fields are indicated with aria-required