01
See it and copy it
Framework example
Choose Astro, React, or Elements to compare native usage against the shared visual output. Each example assumes the framework-level setup is already complete.
Enter a valid email address.
Framework usage
Switch targets to compare the adapter code. The preview stays visually stable because all three packages share the same tokens andui-* class contract.---
import { Field, FieldError, Input, Label } from '@santi020k/lumen-astro'
---
<Field controlId="field-error-email" describedBy="field-error-message">
<Label for="field-error-email">Email</Label>
<Input id="field-error-email" type="email" aria-invalid="true" aria-describedby="field-error-message" />
<FieldError id="field-error-message" message="Enter a valid email address." />
</Field>import { Field, FieldError, Input, Label } from '@santi020k/lumen-react'
export const Example = () => (
<>
<Field controlId="field-error-email" describedBy="field-error-message">
<Label htmlFor="field-error-email">Email</Label>
<Input id="field-error-email" type="email" aria-invalid="true" aria-describedby="field-error-message" />
<FieldError id="field-error-message" message="Enter a valid email address." />
</Field>
</>
)<script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
<lumen-field controlId="field-error-email" describedBy="field-error-message">
<lumen-label for="field-error-email">Email</lumen-label>
<lumen-input id="field-error-email" type="email" aria-invalid="true" aria-describedby="field-error-message"></lumen-input>
<lumen-field-error id="field-error-message" message="Enter a valid email address."></lumen-field-error>
</lumen-field>02
Choose your target
Add this component
Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.
pnpm add @santi020k/lumen-astropnpm add @santi020k/lumen-astrolumen add FieldErrorlumen add FieldErrorpnpm add @santi020k/lumen-reactpnpm add @santi020k/lumen-reactlumen add FieldError --target reactlumen add FieldError --target reactpnpm add @santi020k/lumen-elementspnpm add @santi020k/lumen-elementslumen add FieldError --target elementslumen add FieldError --target elementsAPI reference
Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.
| Attribute | Values | Default | Description |
|---|---|---|---|
| message | string | - | Shows the error text and reveals the live field error region. |
| children | phrasing content | - | Overrides the message prop with authored content. |
| class, className | string | "" | Merges custom classes with the generated ui-* root classes. |
| ...native attributes | HTML attributes | - | Forwards standard attributes to the root element unless the component consumes them. |