用途:@veltra/styles 提供跨组件的共享样式与主题系统,覆盖 TS 主题运行时与 SCSS 样式工具,用于编写组件样式、定制主题、切换深色模式。
主要能力:Theme 类型(theme/type.ts)描述颜色、字号、边框等嵌套 token 树;UITheme 类持有 theme 对象,拍平为 --u-* CSS 变量注入文档;loadTheme() 在浏览器侧初始化,默认注册 light/dark 并同步 useConfig 的文档尺寸 class;setTheme('light'|'dark'|'auto') 切换 data-theme 或跟随系统;UITheme.new(partialTheme)/lightTheme.new(...) 由预设派生自定义主题;currentTheme 为当前活动主题实例的 ShallowRef。SCSS 侧提供 BEM mixins:m.b(name) 生成 .u-name 块根、m.e(el) 生成 &__el、m.m(mod) 生成 &--mod、m.is(state) 生成 .is-state;fn.use-var(text-color, main) 生成 var(--u-text-color-main),fn.component-var(button, height) 生成组件命名空间变量。
使用方式:SCSS 导入 @use 'pkg:@veltra/styles/mixins' as m; @use 'pkg:@veltra/styles/functions' as fn; @use 'pkg:@veltra/styles/vars'; 消费方构建需启用 Sass NodePackageImporter。运行 bun run sync-veltra-styles 或 bun run sync-skills 重新生成 generated/(含 theme-tokens.md、scss-api.md、theme-ts-api.md、manifest.json)。
限制与依赖:@veltra/styles/theme 运行时依赖 vue 与 @veltra/compositions;compositions 包不得再导出 theme 以避免循环依赖。权威源码为 packages/styles/src/,变更 token 或主题逻辑后需重新生成并检查变量名对齐。完整签名与边界以 generated/scss-api.md 为准;official_text 未提供,其余细节暂未提供。