Об этом проекте
CompoMo представляет собой нейтральную по отношению к фреймворкам библиотеку веб-компонентов, публикуемую под именем @ds-mo/ui. Она построена на Stencil.js, стилизована с помощью дизайн-токенов TokoMo и распространяется в виде пользовательских элементов (custom elements) вместе с генерируемыми адаптерами для Angular, React и Vue. Библиотека является частью семейства ds-mo, наряду с @ds-mo/tokens и @ds-mo/icons.
Установка включает три пакета: @ds-mo/tokens, @ds-mo/icons и @ds-mo/ui. Токены TokoMo импортируются один раз в корне приложения (tokens, tokens/reset и tokens/globals).
Использование зависит от выбранного фреймворка. В обычном HTML импорт модуля компонента автоматически определяет его пользовательский элемент, поэтому тег, такой как ds-button-filled, можно использовать напрямую с атрибутом label. В приложениях Angular рекомендуется импортировать отдельные standalone-адаптеры для каждого компонента (например, @ds-mo/ui/angular/ds-button-filled); приложения React и Vue используют сгенерированные обертки из @ds-mo/ui/react и @ds-mo/ui/vue соответственно. Иконки разрешаются через @ds-mo/icons, при этом ds-icon соответствует точным каноническим именам экспорта IcoMo на этапе сборки.
Библиотека документирует несколько публичных интерфейсов поддержки: @ds-mo/ui/shell для нейтральных к фреймворкам контрактов оболочки, @ds-mo/ui/toast для менеджера уведомлений, @ds-mo/ui/utils для общих помощников, таких как registerIcons, @ds-mo/ui/prose.css для семантической стилизации прозы, независимой от рендерера, и @ds-mo/ui/control-elevation.css для внешних оберток элементов с эффектом приподнятости. Глобальный CSS-бандл компонентов намеренно отсутствует; стили поставляются с каждым пользовательским элементом.
Что касается поддержки браузеров, CompoMo ориентируется на динамический набор «Baseline Newly available». Компоненты могут внедрять функции веб-платформы, как только они становятся совместимыми во всех основных браузерах Baseline; пользователям старых версий браузеров предлагается использовать собственные фолбеки или оставаться на более раннем совместимом релизе.
Примечание заслуживает дополнение compomo-mcp — локальный исполняемый файл, входящий в пакет. Он предоставляет сгенерированные метаданные компонентов и исполняемые рецепты композиции для Custom Elements, Angular, React и Vue, а также может быть зарегистрирован как MCP-сервер (например, в конфигурационном файле Codex с указанием пути к node_modules/.bin/compomo-mcp). Указано, что он использует только stdio и поддерживает современный протокол от 2026-07-28, а также устаревшие ревизии на основе initialize до 2025-11-25, при этом клиентам с поддержкой современного обнаружения рекомендуется автоматическое согласование версий. В README указано, что факты об API берутся из метаданных Stencil, а курируемые намерения — из сопутствующих JSON-файлов агентов компонентов и исполняемых паттернов.
Документация разделена между введением в Storybook, руководством по интеграции с фреймворками, руководством по миграции на v13, роутером документации для сопровождающих и инструкциями по репозиторию в AGENTS.md. В README прямо говорится об отказе дублировать версии пакетов, списки компонентов, пропсы, события и экспорты, направляя читателей в package.json, Storybook или сгенерированный реестр за актуальными данными.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.