About this project

CompoMo is a framework-neutral web component library published as @ds-mo/ui. It is built with Stencil.js, styled with TokoMo design tokens, and distributed as custom elements plus generated Angular, React, and Vue adapters. It is described as part of the ds-mo family, alongside @ds-mo/tokens and @ds-mo/icons. Installation pulls in three packages: @ds-mo/tokens, @ds-mo/icons, and @ds-mo/ui. TokoMo tokens are imported once at the application root (tokens, tokens/reset, and tokens/globals). Usage follows the framework. In plain HTML, importing a component module auto-defines its custom element, so a tag such as ds-button-filled can be used directly with a label attribute. Angular applications are encouraged to import per-component standalone adapters (for example @ds-mo/ui/angular/ds-button-filled); React and Vue applications use generated wrappers from @ds-mo/ui/react and @ds-mo/ui/vue respectively. Icons are resolved through @ds-mo/icons, with ds-icon matching exact canonical IcoMo export names at bundle time. The library documents several public support surfaces: @ds-mo/ui/shell for framework-neutral shell contracts, @ds-mo/ui/toast for a toast manager, @ds-mo/ui/utils for generic helpers such as registerIcons, @ds-mo/ui/prose.css for renderer-neutral semantic prose styling, and @ds-mo/ui/control-elevation.css for elevated outer control wrappers. There is deliberately no global component CSS bundle; styles ship with each custom element. On browser support, CompoMo targets the moving "Baseline Newly available" set. Components may adopt a web-platform feature once it is interoperable across Baseline core browsers, and consumers holding older browser releases are expected to supply their own fallback or stay on an earlier compatible release. A notable addition is compomo-mcp, a local executable bundled with the package. It exposes generated component metadata and executable composition recipes for Custom Elements, Angular, React, and Vue, and can be registered as an MCP server (for example in a Codex config file pointing at node_modules/.bin/compomo-mcp). It is described as using stdio only and serving the modern 2026-07-28 protocol as well as legacy initialize-based revisions through 2025-11-25, with automatic version negotiation recommended for clients that support modern discovery. The README frames API facts as coming from Stencil metadata while curated intent comes from co-located component agent JSON and executable patterns. Documentation is split across a Storybook introduction, a framework integration guide, a v13 migration guide, a maintainer documentation router, and repository instructions in AGENTS.md. The README explicitly declines to duplicate package versions, component lists, props, events, and exports, directing readers to package.json, Storybook, or the generated registry for current facts.