Documentation
01
See it in context
Preview
02
Copy a working example
Usage
---
import { Checkbox } from '@santi020k/lumen-astro'
---
<div style="display: grid; gap: 0.5rem;">
<label>
<Checkbox name="updates" /> Email me product updates
</label>
<label>
<Checkbox checked name="terms" /> Accept terms (checked)
</label>
<label>
<Checkbox id="ex-checkbox-indeterminate" name="permissions" /> Some permissions selected
</label>
<label>
<Checkbox disabled name="legacy" /> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script>---
import { Checkbox } from '@santi020k/lumen-astro'
---
<div style="display: grid; gap: 0.5rem;">
<label>
<Checkbox name="updates" /> Email me product updates
</label>
<label>
<Checkbox checked name="terms" /> Accept terms (checked)
</label>
<label>
<Checkbox id="ex-checkbox-indeterminate" name="permissions" /> Some permissions selected
</label>
<label>
<Checkbox disabled name="legacy" /> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script>import { Checkbox } from '@santi020k/lumen-react'
export const Example = () => (
<>
<div style={{ display: 'grid', gap: '0.5rem' }}>
<label>
<Checkbox name="updates" /> Email me product updates
</label>
<label>
<Checkbox defaultChecked name="terms" /> Accept terms (checked)
</label>
<label>
<Checkbox id="ex-checkbox-indeterminate" name="permissions" /> Some permissions selected
</label>
<label>
<Checkbox disabled name="legacy" /> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script>
</>
)import { Checkbox } from '@santi020k/lumen-react'
export const Example = () => (
<>
<div style={{ display: 'grid', gap: '0.5rem' }}>
<label>
<Checkbox name="updates" /> Email me product updates
</label>
<label>
<Checkbox defaultChecked name="terms" /> Accept terms (checked)
</label>
<label>
<Checkbox id="ex-checkbox-indeterminate" name="permissions" /> Some permissions selected
</label>
<label>
<Checkbox disabled name="legacy" /> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script>
</>
)<script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
<div style="display: grid; gap: 0.5rem;">
<label>
<lumen-checkbox name="updates"></lumen-checkbox> Email me product updates
</label>
<label>
<lumen-checkbox checked name="terms"></lumen-checkbox> Accept terms (checked)
</label>
<label>
<lumen-checkbox id="ex-checkbox-indeterminate" name="permissions"></lumen-checkbox> Some permissions selected
</label>
<label>
<lumen-checkbox disabled name="legacy"></lumen-checkbox> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script><script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
<div style="display: grid; gap: 0.5rem;">
<label>
<lumen-checkbox name="updates"></lumen-checkbox> Email me product updates
</label>
<label>
<lumen-checkbox checked name="terms"></lumen-checkbox> Accept terms (checked)
</label>
<label>
<lumen-checkbox id="ex-checkbox-indeterminate" name="permissions"></lumen-checkbox> Some permissions selected
</label>
<label>
<lumen-checkbox disabled name="legacy"></lumen-checkbox> Legacy option (disabled)
</label>
</div>
<script>
const checkbox = document.querySelector<HTMLInputElement>('#ex-checkbox-indeterminate')
if (checkbox) {
checkbox.indeterminate = true
}
</script>03
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 Checkboxlumen add Checkboxpnpm add @santi020k/lumen-reactpnpm add @santi020k/lumen-reactlumen add Checkbox --target reactlumen add Checkbox --target reactpnpm add @santi020k/lumen-elementspnpm add @santi020k/lumen-elementslumen add Checkbox --target elementslumen add Checkbox --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 |
|---|---|---|---|
| checked, defaultChecked | boolean | - | Uses the native checkbox checked state. |
| type | "checkbox" | "checkbox" | Fixed by the component. |
| 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. |