About this set
Form controls carved into the surface, and a login card that uses them. Text fields are pressed-in wells with a label above, shown plain, with a search icon and helper text, and in an error state that adds a red edge and an icon with a message tied to the field through aria-describedby. A native select gets a matching chevron, checkboxes and radios pop out of their well and fill with accent when chosen, and a brightness slider shows its value beside the label. The login card puts an email and a password field, a keep-me-signed-in checkbox, a forgotten-password link and a full-width sign-in button inside one raised panel. Use the fields wherever a soft UI needs input, and the card as a sign-in screen for a dashboard or a smart-home app. Every field edge reaches 3:1 against the background, which most neumorphic forms skip, and the accent focus ring is drawn outside the field so it never blends into the shadow. The slider is a native range input; a few lines of script paint its fill in WebKit and keep the value and aria-valuetext current.
What’s included
- Inset fields with a 3:1 edge, icon, helper and error variants
- Checkboxes and radios that pop out and fill with accent when chosen
- Native select and range input styled to match
- Login card with labelled fields and autocomplete hints
- Bootstrap version built on .form-control, .form-select, .form-check-input and .form-range
Accessibility
Every field has a visible label, the error is announced through aria-invalid and aria-describedby, and the checkboxes and radios sit in fieldsets with legends. Fields show a 3px accent outline on focus and custom boxes draw it on the visible box. The slider reports its value as a percentage through aria-valuetext. Transitions are removed under prefers-reduced-motion, and prefers-contrast: more replaces the shadows with solid outlines.
Customise it
Edit the --neu-* tokens at the top for colours, depth and radius; the error colour is --neu-danger. Bootstrap reads them through --bs-form-invalid-color and the .neu-form rules, and Tailwind uses border-neu-edge, shadow-neu-in-sm and rounded-neu-field.






