List
A styled list component with consistent spacing and design tokens. Supports unordered, ordered, and unstyled lists.
Unordered List
- First item
- Second item
- Third item
Ordered List
- Install the package
- Run the installer
- Add the Blade directive
No Markers
- Clean item one
- Clean item two
- Clean item three
Spacing
- Item with more space
- Between each item
- For better readability
Roman & Alpha Markers
For multi-level legal / academic / spec-style numbering, four additional type values are available — lower-roman (i, ii, iii), upper-roman (I, II, III), lower-alpha (a, b, c), upper-alpha (A, B, C). All four render as <ol> (ordered list semantics).
- Preamble
- Recitals
- Operative provisions
- Personal data
- Account credentials
- Usage telemetry
Nested Lists — Worst-Case (mixed marker types, 5 levels)
Lists nest by composition — drop another <x-wirekit::list> inside a <x-wirekit::list.item>. Mix type values per level for legal / spec / outline-style hierarchies. The example below combines all five marker styles across five depth levels, replicating the "1 → a → i → ●" pattern common in legal contracts and standards documents:
- Top-level numbered section
- Capital-letter sub-section
- Lower-roman clause
- Lower-letter sub-clause
- Bullet detail one
- Bullet detail two
- Another lower-letter sub-clause
- Lower-letter sub-clause
- Second lower-roman clause
- Lower-roman clause
- Second capital-letter sub-section
- Capital-letter sub-section
- Second top-level section (no nesting)
- Third top-level section
- Major roman point
- Another major roman point
Each level is a fresh <x-wirekit::list type="…"> — markers, spacing, and the underlying tag (<ol> / <ul>) all resolve from the inner component's own type prop. Markdown's flat list-syntax can't express this; pure <x-wirekit::list> composition can.
Props — List
| Prop | Type | Default | Description |
|---|---|---|---|
type |
string | 'disc' |
Marker type: disc, decimal, none, lower-roman, upper-roman, lower-alpha, upper-alpha |
spacing |
string | 'sm' |
Item spacing: none, sm, md |
as |
string|null | null |
Override element (auto: ul for disc / none, ol for ordered types) |
scope |
string|null | null |
Scoped personalization name |
Props — List Item
| Prop | Type | Default | Description |
|---|---|---|---|
scope |
string|null | null |
Scoped personalization name |
Keyboard Interaction
This component is purely presentational and does not respond to keyboard input.
Pitfalls
- Don't use a list for layout. Reach for
<x-wirekit::stack>or<x-wirekit::row>. Lists carry semantic role="list" and screen readers announce item count — misleading for non-list content.
Design Tokens
The list and list-item primitives are layout wrappers — they apply structural classes (spacing utilities, semantic <ul> / <ol> / <li> elements) without referencing color or sizing tokens directly. Item content (icons, badges, links) inherits its tokens from the surrounding Text, Icon component, and Link component.