kiso

Build UIs with Kiso — accessible Rails UI components with Tailwind CSS theming. Use when creating interfaces, customizing themes, building forms, or composing page layouts in Rails + Hotwire apps.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "kiso" with this command: npx skills add steveclarke/kiso/steveclarke-kiso-kiso

Kiso

Rails component library built on ERB partials + Tailwind CSS + class_variants + tailwind_merge. Inspired by shadcn/ui and Nuxt UI, adapted for Rails + Hotwire.

Installation

# Gemfile
gem "kiso"
bundle install
bin/rails generate kiso:install

Rendering Components

Use the kui() helper to render components:

<%= 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 %>

Colors

7 semantic colors configurable via theme CSS variables:

ColorDefault PalettePurpose
primaryblueCTAs, brand, active states
secondarytealSecondary actions
successgreenSuccess messages
infoskyInformational
warningamberWarnings
errorredErrors, destructive actions
neutralzincText, borders, surfaces

Variants

Components that accept both color and variant use compound variants (Nuxt UI pattern):

VariantStyle
solidFilled background, contrasting text
outlineTransparent background, colored ring
softLight tinted background, colored text
subtleLight tinted background, colored text, faint ring

Theming

Components use semantic Tailwind utilities (bg-primary, text-foreground, bg-muted) that resolve to CSS variables. Dark mode flips automatically — components never use dark: prefixes.

Override brand colors in your app's CSS:

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

Customizing Components

Global overrides

Override all instances of a component via Kiso.configure in an initializer:

# 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

Override hashes accept base:, variants:, compound_variants:, defaults:. Applied once at boot — zero per-render cost.

Per-instance overrides

Pass css_classes: to override styles on a specific instance. Conflicting classes are resolved automatically via tailwind_merge:

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

Layer order: theme default < global config < per-instance css_classes:.

Icons

Kiso uses kiso-icons for server-side inline SVG rendering. Lucide (~1500 icons) is bundled and works out of the box:

<%= kiso_icon("check") %>
<%= kiso_icon("settings", size: :md) %>
<%= kiso_icon("heroicons:check-circle") %>  <%# from a pinned set %>

Add more icon libraries:

bin/kiso-icons pin heroicons mdi tabler

Override component default icons globally:

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

Additional references

Load based on your task — do not load all at once:

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

real-world-rails

No summary provided by upstream source.

Repository SourceNeeds Review
General

md-to-pdf

No summary provided by upstream source.

Repository SourceNeeds Review
General

bruno-endpoint-creation

No summary provided by upstream source.

Repository SourceNeeds Review
General

feature-requirements

No summary provided by upstream source.

Repository SourceNeeds Review