Funktionsweise und Architektur
cmdk stellt eine modulare Komponentenstruktur bereit (Command.Input, Command.List, Command.Item, Command.Group, Command.Empty). Elemente werden automatisch anhand ihres Textinhalts oder expliziter Werte (value) gefiltert und sortiert. Entwickler können dieses Verhalten anpassen, indem sie eine benutzerdefinierte Filterfunktion übergeben, Aliase mittels keywords definieren oder shouldFilter={false} setzen, um die Listenverwaltung manuell zu steuern.
Integration und Styling
Da die Bibliothek komplett ungestylt ausgeliefert wird, erfolgt das Aussehen ausschließlich über eigene Stylesheets. Jedes Unterelement rendert entsprechende Data-Attribute wie cmdk-root, cmdk-item oder Zustände wie data-selected. Die dynamische Höhe der Liste lässt sich über die bereitgestellte CSS-Variable --cmdk-list-height flüssig animieren.
Dialoge und Popovers
Für modale Paletten integriert cmdk die Dialog-Primitive von Radix UI. Dadurch lassen sich Tastatur-Shortcuts (wie das typische ⌘K bzw. Strg+K) und Portale in spezifische DOM-Container unkompliziert umsetzen. Wer Popovers benötigt, kann Command direkt in ein Popover-Element von Radix UI einbetten, was Synergien bei den geteilten Abhängigkeiten nutzt.