Data
CheckList
A list of items with a checked/unchecked circular indicator, either a static display or an interactive toggleable list.
<UiCheckList :items="..." />Options
One block per prop — what it does, and what it looks like set.
Items
requireditems is the list, each entry a label plus an optional description shown as secondary text. Every item carries its own checked flag, defaulting to true, so a read-only feature list needs nothing else.
- Provider to control display delay globally.
- Opens when the trigger is focused or hovered.
- Closes when the trigger is activated or when pressing escape.
- Supports custom timings.
- MarketingProduct news and announcements
- SecurityAlerts about your account
- NewsletterMonthly digest of updates
Model value
modelValue takes over the checked set from the items' own flags, as a single array v-model — exactly like CheckboxGroup. Only meaningful with interactive.
With interactive, it behaves like CheckboxGroup instead: a shared modelValue array of checked values, seeded from whichever items start checked, and each item's own checked is only read once as that initial state.
Interactive
interactive turns each row into a toggle. Off — the default — the list is a static display and a click does nothing, which is what a feature list wants. It also changes how the labels read: an interactive list is a to-do, so the outstanding items are the ones that matter — they stay full strength and checked labels tone back behind their strikethrough.
- Design reviewed
- Implementation
- Tests written
- Shipped
Without interactive, each item's own checked flag (defaulting to true) drives its indicator directly and clicking does nothing — this is the mode for a static feature/requirements list.
Color
color themes the indicators. It's most useful for saying what kind of list this is at a glance: success for what's included, error for what isn't.
- neutral
- primary
- secondary
- success (default)
- error
- warning
- info
- pending
Disabled
Disables the whole list. Individual items carry their own disabled flag — the first list below mixes both.
Cross unchecked
crossUnchecked fills the indicator of unchecked items with a red cross instead of leaving it an empty circle. Reach for it when what's missing carries as much meaning as what's there, like a plan comparison.
- Unlimited projects
- Custom domains
- Priority support
- SSO and audit logs
- Unlimited projects
- Custom domains
- Priority support
- SSO and audit logs
Interactivity is separate from checked state
A non-interactive list reads each item's own checked flag and never changes it. An interactive list instead manages a shared array of checked values, exactly like CheckboxGroup.
API Reference
Generated from the component's source — props, slots and emits as the component actually declares them.
Props
(string | number)[]booleanfalse"neutral" | "primary" | "secondary" | "success" | "error" | "warning" | "info" | "pending"'success'booleanfalseEmits
update:modelValue[value: (string | number)[]]Types
type Color = "neutral" | "primary" | "secondary" | "success" | "error" | "warning" | "info" | "pending";interface CheckListItem {
/**
* Text label for this item.
*/
label: string;
/**
* Secondary text shown below the label.
*/
description?: string;
/**
* Identity used for `v-model` when the list is interactive. Falls back to the item's index.
*/
value?: string | number;
/**
* Whether this item is checked. Used directly when the list isn't interactive; only used as the
* initial state when interactive and uncontrolled.
* @defaultValue true
*/
checked?: boolean;
/**
* Disables interaction with this item. Has no effect on a non-interactive list.
* @defaultValue false
*/
disabled?: boolean;
}