Multi-select
Token display: chips + "+N more" overflow, optional inline filter
Open · Space toggles a row · Backspace removes the last · Enter confirms.
Count summary: Select all / Clear all in the header
The header states the running total and offers bulk actions.
Max-selection limit: unchecked rows lock at the cap
Select all fills up to the cap; the rest disable until you remove one.
Disabled: inert, still legible
Inert, but the chosen values stay readable.
Edited the selection 0 times. The island is live.
Parameters
Section titled “Parameters”Both can multi-select, but they emphasize different jobs. The
Combobox leads with type-to-filter autocomplete, a
text-field well you type in, results filter live. Multi-select leads with
selection management: a button trigger, checkable option rows, a header with a live
count and select-all / clear-all, token chips with +N more overflow, and an
optional max. Reach for the Combobox when finding the item is the hard part; reach for
multi-select when managing the chosen set is.
- No shipped component on Android or Swift. Web is the only platform with an intended
MultiSelectcomponent. Android ships the pattern (checkbox rows +MutableSet<String>inAskUserQuestionSheet.kt); Swift composesChip+FlowLayout+ acheckmarklist. Both should graduate to a reusableNockerlMultiSelect. - Selected mark differs. Web/Android fill a checkbox (cyan tick); Swift uses a
trailing
checkmarkglyph. One selected-state expression should win. - Bulk actions + count summary +
maxexist only in the web spec so far. Android’s sheet and Swift’s assembly have no select-all / clear-all header or count mode yet.