SuperAPI AI 工具集

kiso

前端与建站

查看项目

更新于 10-16 02:10

技能介绍

Kiso 是一个面向 Rails 的组件库,使用 ERB partials + Tailwind CSS + class_variants + tailwind_merge 构建,灵感来自 shadcn/ui 和 Nuxt UI,并针对 Rails + Hotwire 做了适配。它适用于创建界面、定制主题、构建表单或组合组件的场景。

安装

在 Gemfile 中加入:

gem "kiso"

然后执行:

bundle install bin/rails generate kiso:install

渲染组件

使用 kui() 辅助方法渲染组件,例如徽章与卡片:

<%= kui(:badge, color: :success, variant: :soft) { "Active" } %>

<%= kui(:card) do %> <%= kui(:card, :header) do %> <%= kui(:card, :title, text: "Members") %> <% end %> <%= kui(:card, :content) do %> ... <% end %> <% end %>

颜色

提供 7 种语义颜色,均可通过主题 CSS 变量配置:

  • primary:默认蓝色,用于 CTA、品牌、激活状态
  • secondary:默认 teal,用于次级操作
  • success:默认绿色,用于成功消息
  • info:默认 sky,用于信息提示
  • warning:默认 amber,用于警告
  • error:默认红色,用于错误与破坏性操作
  • neutral:默认 zinc,用于文本、边框、表面

变体

同时接受 color 与 variant 的组件使用复合变体(Nuxt UI 模式):

  • solid:填充背景,对比色文本
  • outline:透明背景,彩色 ring
  • soft:浅色背景,彩色文本
  • subtle:浅色背景,彩色文本,微弱的 ring

主题

组件使用语义化 Tailwind 工具类(bg-primary、text-foreground、bg-muted),解析为 CSS 变量。深色模式自动翻转——组件从不使用 dark: 前缀。

可在应用 CSS 中覆盖品牌色:

@theme inline { --color-primary: var(--color-orange-600); --color-primary-foreground: white; }

定制组件

全局覆盖:在初始化器中通过 Kiso.configure 覆盖某组件的所有实例:

config/initializers/kiso.rb

Kiso.configure do |config| config.theme[:button] = { base: "rounded-full", defaults: { variant: :outline } } config.theme[:card_header] = { base: "p-8 sm:p-10" } end

覆盖哈希接受 base:、variants:、compound_variants:、defaults:。在启动时应用一次——零渲染开销。

单实例覆盖:传入 css_classes: 覆盖特定实例的样式,冲突类名由 tailwind_merge 自动解决:

<%= kui(:badge, color: :primary, css_classes: "rounded-full px-4") { "Custom" } %>

层叠顺序:主题默认 < 全局配置 < 单实例 css_classes:。

图标

Kiso 使用 kiso-icons 进行服务端内联 SVG 渲染。内置 Lucide(约 1500 个图标),开箱即用:

<%= kiso_icon("check") %> <%= kiso_icon("settings", size: :md) %> <%= kiso_icon("heroicons:check-circle") %> <%# 来自已固定的图标集 %>

添加更多图标库:

bin/kiso-icons pin heroicons mdi tabler

全局覆盖组件默认图标:

Kiso.configure do |config| config.icons[:chevron_right] = "heroicons:chevron-right" config.icons[:menu] = "heroicons:bars-3" end

附加参考

按任务加载,不要一次性全部加载:

  • references/components.md —— 所有组件及其 props 与用法
  • references/theming.md —— CSS 变量、tokens、品牌定制
  • references/icons.md —— 图标渲染、固定图标集、组件图标覆盖

限制

官方资料未提供关于收费、价格、性能指标或具体平台兼容范围的更多信息,暂未提供。