The component library for Rails
Beautiful, accessible components built with Stimulus, Turbo, and Tailwind. No dependencies, no lock-in. Just copy, paste, and customize.
See it in action
Every component ships in two formats — choose what fits your project.
Production-ready components for Rails applications. Built with Stimulus controllers and Tailwind CSS.
- Keyboard navigation
- ARIA roles & states
- Dark mode support
Copy the component files into your project. No gem or npm package needed.
<%= render partial: "components/tabs/underline",
locals: {
tabs: [
{ id: "overview", label: "Overview",
content: "Your content..." },
{ id: "features", label: "Features" },
]
} %>
<%= render TabsUnderlineComponent.new do |tabs| %>
<% tabs.with_tab(
id: "overview",
label: "Overview"
) do %>
Your content...
<% end %>
<% end %>
Built from the ground up for Rails
Not a React port. Not framework-agnostic. Every component is purpose-built for server-rendered Rails applications with Hotwire.
- Stimulus controllers for all interactive behavior
- Turbo compatible — works with Frames and Streams
- Importmap-ready — no Node.js build step required
- Tailwind CSS — utility-first, no custom stylesheets
<%# Just render the component %>
<%= render partial: "components/tabs/underline",
locals: { tabs: @tabs } %>
<%# Or use ViewComponent %>
<%= render TabsUnderlineComponent.new do |tabs|
tabs.with_tab(id: "stats", label: "Stats")
tabs.with_tab(id: "users", label: "Users")
end %>
Classic ERB or ViewComponent — your choice
Same styling, same behavior, different architecture. Pick whatever fits your team.
Classic
ERB partials + Stimulus
<%= render partial:
"components/accordion/basic",
locals: {
items: [
{ title: "Section 1",
content: "Content..." }
]
} %>
Standard Rails partials with local variables. Drop into any view.
ViewComponent
Ruby classes + slots
<%= render AccordionBasicComponent.new do |c| %>
<% c.with_item(
title: "Section 1"
) do %>
Content...
<% end %>
<% end %>
Typed interfaces, content slots, and testable Ruby objects.
Full source on GitHub
Get invited to a private GitHub repository with every component's source code. Clone it, fork it, browse the history — it's yours.
- Private repo access — invitation sent after purchase
- Full version history — track changes across releases
- Pull updates — git pull to get the latest components
Accessible by default
Every component follows WAI-ARIA patterns and is tested with keyboard navigation. Accessibility isn't an afterthought.
Keyboard Navigation
Arrow keys, Tab, Escape. Every interactive component is fully keyboard operable.
ARIA Patterns
Proper roles, states, and labels following WAI-ARIA authoring practices.
Dark Mode
Full dark mode support with Tailwind dark: variants on every component.
Focus Management
Visible focus rings, focus trapping in modals and dialogs, and proper tab order.
Simple, transparent pricing
One payment. Lifetime access. No subscriptions.
one-time payment
- All current and future components
- Private GitHub repository access
- Lifetime updates at no extra cost
- MIT license — use anywhere
Secure checkout powered by Stripe
Start building with RailsKit
78+ components ready to drop into your Rails app. One payment, lifetime access.
Browse Components