关于 flux-ui
Flux UI 是面向 Vue 3 的技能,用于选择和组合 @flux-ui/components 组件。它提供经验证的组件名称与组合模式,并引导开发者查阅精确属性文档,同时区分名称相近的其他项目。
主要功能
- 01组件选择指引
- 02经验证的组件名称与模式
- 03精确属性和插槽参考
- 04安装与组合规范
- 05相关 Flux 软件包指引
适用场景
- 01为 Vue 3 界面选择组件
- 02构建表单、表格或对话框
- 03避免名称和配置错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ basmilius/ skills --skill flux-ui安装后在 Claude Code 中输入/flux-ui确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/component-index.mdcomponents.mdconventions.mddialogs-and-feedback.mdecosystem.mdforms.mdpatterns.md详细介绍
Flux UI(Vue 3)
Flux 是 Bas Milius 推出的观点鲜明的 Vue 3 组件库:从 @flux-ui/components 按名称导出(SFC、<script lang="ts" setup>),文档见 flux-ui.dev,其中的信息是 props、emits 和 slots 的准确信息来源。实际应用也会使用同系列的 @flux-ui/application(应用外壳)和 @flux-ui/statistics(KPI/图表)。
此技能是一个路由器。 它记录了经久耐用的判断(选用哪个组件、如何组合、命名陷阱),并将 props 表交由文档说明。请选择下面合适的参考文件;不要凭记忆查找准确的 props。
1. 消歧(请先阅读)
“Flux UI”可能指代多种项目。此技能仅适用于 basmilius/flux:Vue 3、npm @flux-ui/components,文档见 flux-ui.dev。请勿将其用于以下项目,也不要混用语法:
- livewire/flux(fluxui.dev):采用
flux:button样式标签的 Laravel/Livewire/Blade 工具包。这是另一个项目。 - Flux Web Components 库(
j-flex、j-box等)。这也是另一个项目。
在 Vue Flux 任务中输出 flux:button Blade 标签或 j- 元素,说明你混淆了库:请停止,并改用以 Flux 为前缀的 Vue 组件。
2. 设置(最容易悄悄导致构建失败的三项)
完整安装、Vite 预设、FluxRoot、图标和 tokens:请参阅 references/conventions.md。需要提前了解的陷阱:
- Vue 3.6 预发布版 peer 依赖。 Flux 3.x 不接受
vue@latest(3.5.x 无法满足 peer 依赖)。随着 3.6 接近稳定版,可接受的版本范围也会变化,因此请直接从软件包中读取(npm view @flux-ui/components peerDependencies),不要使用此处提到的构建版本。安装 Flux 和@basmilius/vite-preset时请使用@latestdist-tag,不要猜测 caret 版本范围。 - 每个 Flux 软件包都需要一个 Vite 插件(
flux()、fluxApplication()、fluxStatistics())。缺少插件时,该软件包会解析到 dist,且 CSS 不会被导入,导致应用外壳/图表没有样式。 - 必须使用 FluxRoot。 将其挂载为应用包装器,否则
showAlert/showConfirm/showPrompt/showSnackbar、FluxOverlay和FluxTooltip会抛出异常。
3. 命名规则(最常见的陷阱)
名称采用以 Flux 为前缀的 PascalCase。大多数名称只需将文档路径转换为 PascalCase(form/field → FluxFormField),但有几组名称不遵循此规则;猜错是最常见的错误。以下三种模式尤其需要留意:
- 变体移到前面:
button/primary→FluxPrimaryButton,pane/clickable→FluxClickablePane。 - 省略一个路径段:
layout/flex→FluxFlex,form/toggle→FluxToggle。 - 重新排序/添加后缀:
form/slider/ranged→FluxFormRangeSlider,filter/async-option→FluxFilterOptionAsync。
对 button/*、form/*(控件)、layout/*、pane/* 和 filter/* 下的名称都要保持警惕并查阅文档。基础按钮是 FluxButton;分组包装器各有自己的名称(FluxButtonStack、FluxFormRadioGroup 等)。包含所有陷阱且已通过构建验证的完整列表见 references/component-index.md(请从这里开始)。
4. 选择组件(选择指南)
根据需求选择组件;在 references/component-index.md 中确认准确名称。
- 按钮 →
FluxPrimaryButton/FluxSecondaryButton/FluxDestructiveButton、FluxSplitButton(操作 + 菜单)、FluxButtonStack(行)。 不要使用裸的FluxButton。普通链接 →FluxLink。 - 表单 → 在
FluxForm中将每个控件包裹在FluxFormField内。容易混淆的名称: 开关是FluxToggle,步进器是FluxQuantitySelector,范围滑块是FluxFormRangeSlider, 日期输入框是FluxFormDateInput。组合方式:references/forms.md。 - 对话框和反馈 → 通过代码调用
showConfirm/showPrompt/showAlert/showSnackbar;适用于丰富内容或可深度链接的场景:FluxOverlay/FluxSlideOver;内联 组件:FluxNotice/FluxBadge/FluxTooltip。references/dialogs-and-feedback.md。 - 布局、表格和导航 →
FluxFlex/FluxGrid/FluxContainer、FluxPane(卡片表面)、FluxSplitView;FluxDataTable/FluxTable、FluxKanban、FluxTreeView、FluxCalendar;FluxMenu、FluxTabs、FluxStepper、FluxCommandPalette、FluxSegmentedControl。references/components.md。 - 仪表板 / 多页面应用 → 使用
@flux-ui/application外壳 +@flux-ui/statistics来构建关键指标 / 图表,不要手动编写布局。references/patterns.md§6、references/ecosystem.md。 - 排版 / 文本 → 使用
FluxText(Flux 字体比例:字号 / 字重 / 颜色、等宽数字、截断), 不要使用原始 HTML + 自定义 CSS。 - 组合式函数 →
useBreakpoints(响应式)、useFluxStore(全局存储)、use*Injection(自定义控件)。references/conventions.md。
5. 组合与约定(关键规则)
可直接复制的骨架(应用外壳、CRUD 表单、数据表、仪表板、对话框)位于
references/patterns.md;跨组件的规则位于 references/conventions.md。
正确嵌套包装器比传递属性更重要。打开文件前请先了解以下内容:
- 表单:
FluxForm›FluxPaneBody›FluxFormField(标签 / 提示 / 错误)› 控件;提交按钮为FluxPrimaryButton is-submit。面板:FluxPane›FluxPaneHeader/FluxPaneBody/FluxPaneFooter。 - 分割按钮: 两个部分必须使用相同的变体(下拉箭头内部是
FluxSecondaryButton,因此#button插槽中也要放置一个FluxSecondaryButton)。references/patterns.md§5。 - Overlay / slide-over 的
v-if: 将其放在面板内部,绝不要放在表面本身上 (@close也要放在那里),否则组件会立即卸载并跳过离场过渡。references/dialogs-and-feedback.md。 - 图标使用已注册的 Font Awesome 名称字符串;还要注册组件文档页中列出的“必需图标”。
容易混淆的地方:
FluxIcon/FluxBoxedIcon通过name而非icon接收图标。 gap/ 间距 = 像素数值;颜色 =FluxColor令牌 (gray | primary | danger | info | success | warning);内置深色模式。- 类型(
FluxIconName、FluxColor、FluxTo等)从@flux-ui/types导入,而非@flux-ui/components(否则会出现类型错误)。 - 每个组件都必须导入,否则 Vue 会将未知标签按小写形式原样渲染(不会提示,也不会导致构建错误)。
以上内容的详细说明:references/conventions.md。
6. 需要准确的属性时
切勿假设某个属性存在:打开组件的文档页面(所有 URL 均列于
references/component-index.md),查看 Props / Emits / Slots 和准确的导入方式。
参考文件
references/component-index.md- 每个组件和过渡效果的完整列表,已通过构建验证,包含文档 URL 和命名陷阱。从这里开始。references/conventions.md- 安装、Vite 预设、FluxRoot、Font Awesome 注册、路由/Nuxt、设计令牌、颜色、深色模式、类型、prop 与 slot 的区别,以及组合式函数 / 全局 API。references/patterns.md- 生产应用中的惯用端到端骨架:应用外壳、CRUD 表单、数据表格 + 筛选器、确认→操作→Snackbar 循环、窗格组合和仪表板。references/components.md- 如何选择和组合布局、表格及导航组件(选哪个,以及如何组合各部分)。references/forms.md- 表单组、Field 组合、控件和 CRUD 表单模式。references/dialogs-and-feedback.md- 覆盖层与编程调用的区别、show* 函数及其实际返回类型、通知和行内反馈。references/ecosystem.md- 同系列软件包@flux-ui/application(应用外壳)和@flux-ui/statistics(KPI/图表),以及它们的导出接口。
相关技能
vue-component-anatomy- 介绍这些组件周边各个.vue文件的构建方式:区块顺序、宏顺序、prop 和 emit 类型。vue-build-feature- 将一个功能拆分到视图、组件、组合式函数和路由中;Flux 提供用于组合的组件。basmilius- 介绍通常用于 Flux UI 背后的@basmilius/*软件包(作者相同,作用域不同):DTO 服务、存储、useDataTable。