← Back to all products
$39
Tailwind Component Library
80+ accessible Tailwind CSS components: forms, tables, modals, navigation, cards, and data visualization.
JSONMarkdownJavaScriptReactSpark
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 20 files
tailwind-component-library/
├── LICENSE
├── README.md
├── components/
│ ├── cards/
│ │ └── index.tsx
│ ├── dataviz/
│ │ └── index.tsx
│ ├── feedback/
│ │ └── index.tsx
│ ├── forms/
│ │ └── index.tsx
│ ├── layout/
│ │ └── index.tsx
│ ├── modals/
│ │ └── index.tsx
│ ├── navigation/
│ │ └── index.tsx
│ └── tables/
│ └── index.tsx
├── examples/
│ ├── dashboard-page.tsx
│ └── landing-page.tsx
├── free-sample.zip
├── guide/
│ ├── accessibility.md
│ └── customization.md
├── guides/
│ ├── accessibility.md
│ └── customization.md
├── index.html
├── package.json
└── tailwind.config.js
📖 Documentation Preview README excerpt
Tailwind Component Library
A collection of 80+ accessible, copy-paste-ready React components built with Tailwind CSS. Every component follows WAI-ARIA guidelines, includes keyboard navigation, and works across all modern browsers.
What's Included
| Category | Components | Description |
|---|---|---|
| Forms | 12 components | Inputs, selects, checkboxes, radio groups, file uploads, search, date picker |
| Tables | 10 components | Data tables, sortable headers, pagination, filters, expandable rows |
| Modals | 10 components | Dialogs, confirmations, command palette, slide-overs, lightbox |
| Navigation | 11 components | Navbar, sidebar, breadcrumbs, tabs, pagination, steps, mobile menu |
| Cards | 11 components | Content cards, pricing cards, stats, testimonials, product cards |
| Data Viz | 10 components | Bar charts, progress rings, sparklines, KPI tiles, heatmaps |
| Feedback | 11 components | Alerts, toasts, progress bars, skeletons, empty states, error pages |
| Layout | 10 components | Containers, grids, stacks, dividers, sticky headers, scroll areas |
Quick Start
1. Copy the component you need
Each component is self-contained. Open the category file, find the component, and copy it into your project.
2. Ensure Tailwind CSS is configured
These components require Tailwind CSS v3.4+. If you haven't set it up:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
3. Use the included `tailwind.config.js`
Our config extends the default theme with design tokens used across components:
cp tailwind.config.js your-project/tailwind.config.js
Or merge the relevant extend sections into your existing config.
4. Import and use
import { TextInput, SelectInput, FormGroup } from "./components/forms";
function SignupForm() {
return (
<form>
<FormGroup label="Email" required>
<TextInput type="email" placeholder="you@example.com" />
</FormGroup>
<FormGroup label="Plan">
<SelectInput
options={[
{ value: "free", label: "Free" },
{ value: "pro", label: "Pro — $29/mo" },
]}
/>
*... continues with setup instructions, usage examples, and more.*
📄 Code Sample .js preview
tailwind.config.js
// =============================================================================
// tailwind.config.js — Design token system for the component library
// =============================================================================
//
// This configuration extends the default Tailwind theme with semantic design
// tokens used across all components. Change these values to match your brand.
//
// Token naming philosophy:
// - "primary" = your brand color (actions, links, focus rings)
// - "danger" = destructive actions, errors
// - "success" = confirmations, completed states
// - "warning" = caution, attention needed
// - "info" = informational, neutral highlights
//
// =============================================================================
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./components/**/*.{tsx,jsx,ts,js}",
"./examples/**/*.{tsx,jsx,ts,js}",
],
// Use 'class' for manual dark mode toggle, 'media' for OS preference
darkMode: "class",
theme: {
extend: {
// -------------------------------------------------------------------
// Semantic Colors
// -------------------------------------------------------------------
// Each color scale has 10 shades (50-950). The 600 shade is the
// "default" used for buttons and interactive elements. The 50 shade
// is used for subtle backgrounds.
// -------------------------------------------------------------------
colors: {
primary: {
50: "#eef2ff",
100: "#e0e7ff",
200: "#c7d2fe",
300: "#a5b4fc",
400: "#818cf8",
500: "#6366f1",
600: "#4f46e5", // Default — buttons, links
700: "#4338ca",
800: "#3730a3",
900: "#312e81",
950: "#1e1b4b",
},
danger: {
# ... 170 more lines ...