mcpField
O
optics-context

optics-context

github.com/rolemodel设计与 UI780 次安装2 天前更新
代码仓库

关于 optics-context

optics-context 是用于 RoleModel 的 Optics CSS 设计系统的 Agent 技能。它指导开发者检查已安装包中的令牌和组件,并提供样式编写与主题定制指南。

主要功能

  1. 01在已安装包中查找令牌和组件
  2. 02优先使用现有 Optics 组件
  3. 03新增组件前复用项目类
  4. 04使用设计令牌而非字面值
  5. 05提供覆盖与主题定制指南

适用场景

  1. 01编写 CSS 前核对令牌名称
  2. 02为视图选择现有组件
  3. 03在应用中覆盖 Optics 组件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rolemodel/skills --skill optics-context

安装后在 Claude Code 中输入/optics-context确认已加载。

附带文件references/theming.md

详细介绍

Optics

Optics 是 RoleModel 的 CSS 设计系统,以 @rolemodel/optics 发布。已安装的软件包是组件和令牌的权威来源。请查阅软件包,而不要凭记忆回想名称,因为令牌会随版本变化。

  • 令牌:node_modules/@rolemodel/optics/dist/tokens/tokens.json(较旧版本中为 dist/css/core/tokens/ 下的 CSS)
  • 组件:node_modules/@rolemodel/optics/dist/css/components/*.css
  • 版本:package.json 中的 @rolemodel/optics 条目
  • 文档:https://docs.optics.rolemodel.design
  • Agent 文档:https://docs.optics.rolemodel.design/llms.txt(Markdown 索引;组件页面展示每种变体的 HTML)。文档涵盖最新版本,因此请对照已安装的软件包检查名称。

编写 CSS 前

  1. 适用时使用 Optics 组件。 在 dist/css/components/ 中查找对应的块及其修饰符。
  2. 如果项目中已有类,则复用。 搜索 app/assets/stylesheets/。
  3. 只有前两者都不适用时,才编写新组件: 在 app/assets/stylesheets/components/{block}.css 中每个文件定义一个块,并按照 bem-structure 技能命名和嵌套。

若要更改 Optics 组件在整个应用中的外观,请在 app/assets/stylesheets/components/optics-overrides/{component}.css 中覆盖。不要将它分叉为一个新块。

Optics 还提供实用类(.flex、.gap-sm 以及 dist/css/core/utilities.css 中的其他类)。RoleModel 强烈不建议在视图中使用这些类:应通过 BEM 块或元素设置样式。

使用令牌,而非字面值

所有颜色、间距、字体、圆角、边框和阴影值都必须来自令牌。

不要使用改用
#fff、rgb(...)、whitevar(--op-color-background)、var(--op-color-primary-base)
padding: 12pxpadding: var(--op-space-small)
border: 1px solid #dddborder: var(--op-border-width) solid var(--op-color-border)
box-shadow: 0 1px 3px rgba(...)box-shadow: var(--op-shadow-small)

在彩色表面上放置文本时,使用与该表面匹配的 on- 令牌:在 --op-color-primary-base 上使用 --op-color-primary-on-base,在 --op-color-primary-plus-two 上使用 --op-color-primary-on-plus-two。

没有合适的令牌时,请使用应用自身的前缀定义项目令牌(例如“Your App”的 --ya-color-brand-accent)。切勿在 --op- 下添加新名称。

易踩的坑

  • 名称格式错误会静默失败。 var(--op_color_primary_base)、var(--color-primary-base) 和 var(--op-primary-color-base) 都不会解析出值,属性会无报错地回退。请对照 tokens.json 检查名称。
  • 深色模式下,plus 和 minus 的方向会反转。 每个级别都是一对 light-dark() 值。在浅色模式下,plus-* 更亮、minus-* 更暗;在深色模式下则相反,因此 plus-max 会从最亮级别变为最暗级别。请根据其相对于背景的作用选择级别,而不要依据“更亮”或“更暗”来选,并检查 scale_color_tokens.css 中的两个值。
  • Optics 的组件比你想象的更多。 除了 btn 和 card,它还提供 avatar、badge、tag、alert、modal、table、tab、switch、spinner、sidebar、side-panel、text-pair、segmented-control 等组件。编写任何块之前,请先查看 dist/css/components/;可以检查时,就不要用“如果你的 Optics 版本支持”这样的说法。以 Optics 名称编写自己的块(例如新建 .avatar { … })不会创建独立组件:它会与 Optics 的规则合并,并更改应用中的所有 avatar。请使用 Optics 块,并将更改放在 components/optics-overrides/{component}.css 或项目修饰符中。
  • 不完整的主题覆盖会破坏色阶。 更改任何 --op-color-* 值之前,请参阅 references/theming.md。

主题

若要更改整个应用的品牌颜色、字体、圆角或色阶,请阅读 references/theming.md。

评论

支持 Markdown