--- name: monochrome description: Build accessible UI with monochrome, the framework-agnostic UI library for agents. Use whenever a project depends on monochrome or has ids starting with mct:, mcc:, or mcr:, and whenever you write or fix an accordion, collapsible, dialog or modal, dropdown or context menu, menubar, popover, tabs, or tooltip in HTML, React, or Vue. Also use when asked to check, debug, or style such markup. --- # monochrome monochrome makes correctly marked-up HTML interactive. Import it once; every component on the page works, including markup added later (framework renders, `innerHTML`, streamed or generated HTML). There is no init call, no state object, and no event wiring. The DOM is the state: the core reads and writes ARIA attributes. Components: Accordion, Collapsible, Dialog, Menu, Menubar, Popover, Tabs, Tooltip. Optional: Router. The spec for the installed version is in `node_modules/monochrome/spec/`, one file per component plus `choosing`, `conventions`, `styling`, and `router`; `spec/.md` below means that folder. Without the package installed, `npx monochrome docs ` prints the same pages. ## Hard rules 1. **Ids wire everything.** `mct::` is a trigger, `mcc::` its content, `mcr::` a root. Every id is unique on the page. 2. **Link both ways.** Trigger `aria-controls` names the content id; content `aria-labelledby` names the trigger id (a dialog names its title). Accordion panels are `role="region"`; collapsible content links back only as a `role="region"`. Tooltip triggers use `aria-describedby`. One id per attribute. 3. **Triggers are `