UnreviewedOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptional UnreviewedkeyReact/Preact reconciliation key when rendered inside a list.
Optional UnreviewedidHTML id attribute.
Optional UnreviewedclassHTML class attribute (standard DOM).
Optional UnreviewedclassReact/Preact-style class name. Alias for class.
Optional UnreviewedstyleInline styles applied to the element.
OptionalchildrenOptional UnreviewedslotAssigns the element to a named <slot> (e.g. slot="title").
Optional UnreviewedtabTab order. Set to 0 to make the element keyboard-focusable.
Optional UnreviewedroleARIA role override.
Optional UnreviewedindicatorBuilt-in disclosure mark. Custom visuals use slot="indicator".
Defaults to chevron.
Optional Unreviewedindicator-Logical side for the disclosure mark. Defaults to start.
Optional UnreviewedstateControlled open state ('open' / 'closed'). Present → controlled: the
attribute is the source of truth, clicks only dispatch the cancelable
statechange event, and the consumer answers by updating it. Absent →
uncontrolled (use default-state). See STATEFUL-COMPONENTS.md.
Optional Unrevieweddefault-Initial open state for the uncontrolled mode ('open' / 'closed');
read once when the element connects.
Optional UnreviewedprioritySurface emphasis. secondary (default) is a subtle fill; primary
is a stronger raised fill; tertiary is transparent.
Optional UnreviewedoutdentAlign the title and body with surrounding content on a tertiary expander. The start indicator hangs in the gutter; an end indicator stays inside its edge. Presence-based.
Optional UnrevieweddisabledDisables the header: not clickable or focusable, hover affordance off, text dimmed. The open state freezes as-is. Presence-based.
Optional UnreviewedroundRound corners sized to half the folded (header) height — a pill when folded,
the same radius when expanded (the element measures the header and publishes
--_expander-round-radius). A length value (round="12px") is a fixed radius
that overrides the measurement. Presence-based for the boolean form.
Optional UnreviewedtoneSemantic tone, or any literal CSS color for a one-off custom tone.
Named tones re-point the text + filled surface palette; a custom
color keeps its hue with lightness/chroma pinned. 'neutral' is the
default (same as omitting it).
Optional UnreviewedlevelHeading type scale for the summary, '1'–'6' (mirrors <a-title>
levels). Default (omitted) ≈ level 5.
Optional UnreviewedonstatechangeFires before the open state changes — the element dispatches a
cancelable statechange CustomEvent whose detail is
{ next, prev } in the 'open'|'closed' vocabulary. Uncontrolled,
preventDefault() vetoes the transition. The all-lowercase spelling is
deliberate — it's the one form both renderers bind to the statechange
event (React 19 keeps the case after on, so onStateChange would
listen for "StateChange"; Preact lowercases).
Attributes for the
<a-expander>collapsible disclosure.The element builds its own shadow DOM (no native
<details>): a<button>summary carryingaria-expandedplus an animated content region. The title is projected viaslot="title"; header actions (rendered next to the trigger, outside it) viaslot="actions"; the body is the default slot. Low-level attributes; for the JSX wrapper useExpanderfrom@antadesign/anta.