Form

The Form component provides a wrapper for form controls with consistent styling and validation states.

Installation

npm install @duskmoon-dev/el-form

Usage

import '@duskmoon-dev/el-form/register';
<el-dm-form>
  <el-dm-input label="Username" placeholder="Enter username"></el-dm-input>
  <el-dm-button type="submit">Submit</el-dm-button>
</el-dm-form>

Live Demo

Basic Form

Submit

Properties

PropertyTypeDefaultDescription
validation-state'default' | 'error' | 'success''default'Validation state of the form
disabledbooleanfalseDisables the entire form

Validation States

Validation States

<el-dm-form validation-state="default">...</el-dm-form>
<el-dm-form validation-state="error">...</el-dm-form>
<el-dm-form validation-state="success">...</el-dm-form>

Disabled Form

Disabled Form

Submit
<el-dm-form disabled>
  <el-dm-input label="Disabled Input" placeholder="Cannot edit"></el-dm-input>
  <el-dm-button type="submit" disabled>Submit</el-dm-button>
</el-dm-form>

Events

EventDescription
submitFired when the form is submitted
resetFired when the form is reset

Event Handling

const form = document.querySelector('el-dm-form');
form.addEventListener('submit', (event) => {
  console.log('Form submitted:', event.detail);
});

Methods

MethodDescription
submit()Submit the form programmatically
reset()Reset the form programmatically

CSS Parts

PartDescription
formThe form container

Accessibility

  • Uses native <form> element for proper semantics
  • Form controls receive proper disabled state
  • Supports keyboard navigation and submission