skills/veltra-compositions/SKILL.md
@veltra/compositions 组合式函数(composable)文档与源码镜像。 当实现或重构涉及组合式函数、composable、useModel、usePop、useVirtualizer、 表单回退(useFallbackProps / useFormFallbackProps)、useConfig、 useTransition、useDrag、useFocus、浮层定位、虚拟滚动、用户动作追踪等逻辑时使用。 详细实现请读 `generated/modules/*.md`;集成模式见 references/usage-patterns.md。
npx skillsauth add cabinet-fe/ultra-ui veltra-compositionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 文件 | 内容 |
| ------------------------------------------------------------ | -------------------------------------------- |
| generated/modules/ | 每个 use-* 一篇,含该模块下全部 .ts 源码 |
| generated/manifest.json | 同步时间与模块文件列表 |
| references/usage-patterns.md | desktop 中的真实调用片段 |
运行 bun run sync-veltra-compositions 或 bun run sync-skills 可重新生成 generated/。
import {
useModel,
usePop,
useVirtualizer,
useTransition,
useFallbackProps,
useFormFallbackProps,
useFormComponent,
useConfig,
useComponentProps,
useDrag,
useFocus,
useReactiveSize,
useResizeObserver,
useObserverCallback,
useUserAction
} from '@veltra/compositions'
按需只引入用到的函数即可;无默认导出。
| 函数 | 用途 | 关键参数 / 行为 | 返回值要点 |
| ------------------------------------------- | --------------------------------------- | --------------------------------------------- | --------------------------------------- |
| useModel | 自定义 v-model(非 defineModel 场景) | propName、local(bool 或函数)、shallow | 类 ref 的 { value } |
| useUserAction | 用户动作期间阻断 modelValue 回流副作用 | 无 | { userAction, isUserActive } |
| useDrag | 拖拽(如对话框标题栏) | 目标 ref、边界等 | 拖拽状态与控制 |
| useFocus | 焦点与 hover 语义 | 回调 | focus、handleFocus、handleBlur 等 |
| useTransition | 过渡:css 或 style | target、name / style 关键帧 | enter、leave |
| usePop | Popper 定位 | triggerRef、contentRef、direction | update、popperContainerId |
| useReactiveSize | 响应式测量尺寸 | 元素 / 尺寸源 | 尺寸 ref |
| useResizeObserver / useObserverCallback | ResizeObserver 与回调辅助 | 监听目标、选项 | 见 use-resize-observer 源码 |
| useVirtualizer | 虚拟列表低阶适配层 | count、scrollEl、contentEl / beforeEl / afterEl、estimateSize | { virtualizer, snapshot, items, isScrolling };尺寸走 DOM 命令式写入,业务语义由消费者组装 |
| useFallbackProps | props → 全局 config 回退 | 源对象数组、默认值表 | 各字段 ref |
| useFormFallbackProps | 表单场景三级回退 | [formProps, props] + 默认值 | 同上 |
| useFormComponent | 表单 provide / inject | 父级传入 props;子级无参 | formProps、inForm 等 |
| useConfig | 全局文档/尺寸等配置 | 读配置 | config 等 |
| useComponentProps | 规范化组件 props | 视具体 API | 见源码 |
modelValue 的 prop 名、或 local 函数在受控/非受控间切换(如表格 current 行)。modelValue 回流引起的同步副作用;通过 userAction(fn) 包装事件处理函数(不要自调用),副作用侧用 isUserActive() 早返。enter/leave 的过渡(常与 usePop 搭配)。{ virtualizer, snapshot, items, isScrolling },尺寸走 DOM 命令式写入(contentEl / beforeEl / afterEl),virtualEnabled / v-for :key / scrollTo 对齐模式等业务语义由消费者显式组装。UForm 与子控件间同步上下文。size / disabled / readonly 等。@veltra/styles 的 loadTheme 协同。与 generated/ 镜像互补:源码定位、模块地图与编写模式。
packages/compositions/src/。bun run sync-veltra-compositions 更新 generated/,以便技能文档与类型保持一致。tools
当使用 Vue 3 作为前端框架开发时必须使用;优先检索并使用 veltra-ui 提供的组件、样式、工具、组合式方法、指令、图标等能力。
tools
面向 @veltra/vite 的 Vite 集成文档技能。用于在任意 Vite 项目中接入 VeltraDesktopUIResolver 与 unplugin-vue-components,排查 @veltra/desktop 组件自动导入、样式 sideEffects、development 和 import 条件导出差异,或确认消费项目里 @veltra/vite 安装产物与源码位置时使用。
development
@veltra/utils 工具函数与共享类型文档。 当涉及工具函数、BEM、类名、DOM 操作、滚动、高亮、z-index、表单校验、Validator、 补间 Tween、帧回调、浅计算、响应式 middleProxy、命名空间常量、ComponentSize、 FormComponentProps 等时使用。详细源码见 `generated/api/*.md` 与 generated/shared-types.md;BEM 用法见 references/bem-guide.md。
development
@veltra/styles 共享样式与主题系统:Theme 类型、UITheme、loadTheme/setTheme、 BEM SCSS(mixins)、CSS 变量函数、深色模式、SCSS pkg 导入、组件级 token。 当编写组件样式、定制主题、切换深色模式、使用 fn.use-var / fn.component-var、 或排查 CSS 变量注入与 html 文档尺寸 class 时使用。 完整源码镜像见 generated/;实操步骤见 references/theming-guide.md。