Inputs are form controls styled with the @ds-input mixin. They follow the "Smart Mixin" pattern, providing responsive sizing and consistent state management for focus, hover, and validation states.
.input { @ds-input(outlined neutral) }.my-input {
@ds-input(outlined neutral density(2) radius(2));
}.my-input {
border: 1px solid palette(neutral-main);
padding: density(2);
border-radius: radius(2);
&:focus {
border-color: palette(primary-main);
box-shadow: ring(2);
}
}The @ds-input mixin is the primary primitive for form controls. It accepts a Variant (structure) and Tone (validation state), followed by optional granular tokens for Density (padding), Radius, and Shadow. It automatically handles Focus rings and validation styling.