Skip to content

CINQ UI components

Spinbutton

Constrained numeric input following the WAI-ARIA spinbutton pattern via <cinq-spinbutton>.

Read the Spinbutton docs

Switch

Binary on/off control following the WAI-ARIA switch pattern via <cinq-switch>.

Read the Switch docs

Toast

Transient live-region notices via <cinq-toast>. Consumer sets role="alert" or role="status".

Read the Toast docs

Combobox

Editable list autocomplete following the WAI-ARIA combobox pattern via <cinq-combobox>.

Read the Combobox docs

Utils

Event constants, dispatchEvent, focus trap, scroll lock, and attribute parsers shared across CINQ UI.

Read the Utils reference

Pixelate

Attribute-driven canvas pixelation: drive pixel from scroll, a spinbutton, or anything else.

Try Pixelate

Dual scroll

Two columns, one inverted scroll inside a sized zone. Spring easing, no full-page hijack.

Try Dual scroll

  • Web Components first: import once, drop the markup, the browser instantiates it.
  • HTML is the source of truth: you write the markup (native <dialog>, <input>, role="tab", aria-expanded, and the rest). Each package wires interactivity to that DOM. It extends HTML, it does not generate structure or silently replace semantics.
  • Event-driven: integrate with your app by listening to events and dispatching intents.
  • WAI‑ARIA aligned: keyboard navigation and ARIA states follow APG patterns.
  • $ prefix: a property or local named with a leading $ (e.g. $button, $input) holds a DOM node: an HTMLElement (or a more specific subtype such as HTMLButtonElement). Plain names are reserved for values, IDs, and non-DOM state.

Interactive examples use AD&D 2nd Edition flavour: ability scores, spell slots, bestiary entries, and dungeon delves, so demos read like a campaign sheet rather than a generic web app.