Building blocks for the modern web
Production-ready React components built with TypeScript, Tailwind CSS, and shadcn/ui
🌐 Live Demo · ⚡ Quick Start · 📚 Docs · 🤝 Contributing
Fixel UI is a shadcn/ui-compatible component registry offering production-ready building blocks for modern web applications. Unlike traditional component libraries, Fixel UI provides:
- No lock-in — Components live in your project, not as npm dependencies
- Full ownership — Copy, modify, and extend every component
- TypeScript-first — Fully typed components with excellent DX
- Zero runtime overhead — No wrapper libraries or unnecessary abstractions
- Automatic dependency detection — Smart imports that just work
Install any component with a single command using the shadcn CLI, or copy-paste directly into your project.
Fixel UI contains 60+ components organized into two distinct types:
Full UI components that users install into their projects. These are the building blocks of your application.
| Category | Count | Description |
|---|---|---|
| Footer | 1 | Landing page footers with various layouts and styles |
| On Hover | 1 | Interactive hover animations and effects |
Visual category thumbnails used for the registry homepage. These provide visual representations of UI component categories.
40+ illustrations available:
- Form Elements: button-illustration, input-illustration, textarea-illustration, select-illustration, checkbox-illustration, radio-illustration, switch-illustration
- Layout: card-illustration, sheet-illustration, dialog-illustration, drawer-illustration, popover-illustration
- Navigation: breadcrumb-illustration, tabs-illustration, pagination-illustration, command-illustration, menu-illustration
- Feedback: alert-illustration, badge-illustration, toast-illustration, skeleton-illustration, spinner-illustration
- Data Display: table-illustration, avatar-illustration, calendar-illustration, chart-illustration
- Overlays: modal-illustration, tooltip-illustration, hover-card-illustration, preview-card-illustration
- And more: accordion-illustration, collapsible-illustration, separator-illustration, slider-illustration, progress-illustration
Ensure your project has shadcn/ui initialized:
npx shadcn@latest initInstall a single-file component (like footer-01):
npx shadcn@latest add https://fixel-ui.vercel.app/r/footer-01.jsonWhat gets installed:
components/footer-01.tsx— The component file- Automatically detects and installs dependencies (
@tabler/icons-react)
Usage:
import Footer01 from "@/components/footer-01";
export default function Page() {
return (
<main>
<h1>My Page</h1>
<Footer01 />
</main>
);
}Install a complex multi-file component:
npx shadcn@latest add https://fixel-ui.vercel.app/r/complex-dashboard.jsonWhat gets installed:
components/complex-dashboard/— Directory containing:index.tsx— Main componentheader.tsx— Sub-componentsidebar.tsx— Sub-componentutils.ts— Shared utilities
When to use directory type:
- Complex components with multiple sub-components
- Components that need shared utilities or hooks
- Large components that would be unwieldy in a single file
Install a visual thumbnail for category previews:
npx shadcn@latest add https://fixel-ui.vercel.app/r/button-illustration.jsonWhat gets installed:
components/illustrations/button/button-illustration.tsx
Note: Illustrations are visual components used for the registry homepage. Most users install Blocks, not illustrations.
| Component | Description | Install Command |
|---|---|---|
footer-01 |
Background masked image with gradient overlay | npx shadcn@latest add https://fixel-ui.vercel.app/r/footer-01.json |
| Component | Description | Install Command |
|---|---|---|
on-hover-01 |
Apple-inspired folder hover animation with smooth transitions | npx shadcn@latest add https://fixel-ui.vercel.app/r/on-hover-01.json |
Install any illustration to use in your own component showcase:
# Form elements
npx shadcn@latest add https://fixel-ui.vercel.app/r/button-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/input-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/checkbox-illustration.json
# Layout
npx shadcn@latest add https://fixel-ui.vercel.app/r/card-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/dialog-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/sheet-illustration.json
# Navigation
npx shadcn@latest add https://fixel-ui.vercel.app/r/tabs-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/breadcrumb-illustration.json
npx shadcn@latest add https://fixel-ui.vercel.app/r/command-illustration.json
# See all available illustrations at https://fixel-ui.vercel.app- Next.js — React framework with App Router
- React — UI library (v19 with React Compiler)
- TypeScript — Type-safe development
- Tailwind CSS — Utility-first styling (v4)
- shadcn/ui — Component architecture
- Base UI — Headless UI primitives
- Biome — Linting and formatting
- Motion — Animations
fixel-ui/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── (blocks)/ # Block showcase pages
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Homepage
│ │
│ ├── components/
│ │ ├── ui/ # shadcn/ui components
│ │ │ ├── button.tsx
│ │ │ ├── card.tsx
│ │ │ └── ...
│ │ ├── header.tsx # Site header
│ │ ├── footer.tsx # Site footer
│ │ └── ...
│ │
│ ├── content/
│ │ ├── components/ # Block implementations
│ │ │ ├── footer/
│ │ │ │ ├── footer-01.tsx
│ │ │ │ └── index.ts
│ │ │ ├── on-hover/
│ │ │ │ ├── on-hover-01.tsx
│ │ │ │ └── index.ts
│ │ │ └── ...
│ │ │
│ │ ├── illustrations/ # Visual category thumbnails
│ │ │ ├── button/
│ │ │ ├── card/
│ │ │ └── ...
│ │ │
│ │ ├── blocks-metadata.ts # Block registry metadata
│ │ ├── blocks-components.tsx # Component mappings
│ │ ├── blocks-categories.tsx # Category definitions
│ │ └── declarations.ts # TypeScript declarations
│ │
│ ├── lib/
│ │ ├── utils.ts # Utility functions
│ │ ├── category-thumbnails.tsx # Category thumbnail components
│ │ └── thumbnails/ # Thumbnail SVG components
│ │
│ ├── scripts/ # Build and generation scripts
│ │ ├── generate-registry.ts
│ │ ├── add-category.ts
│ │ ├── add-block.ts
│ │ └── lib/
│ │
│ └── style/
│ └── globals.css # Global styles
│
├── public/
│ └── r/ # Registry JSON files (generated)
│ ├── footer-01.json
│ ├── on-hover-01.json
│ ├── button-illustration.json
│ └── ...
│
├── components.json # shadcn/ui configuration
├── next.config.js # Next.js configuration
├── package.json # Dependencies and scripts
├── README.md # This file
└── CONTRIBUTING.md # Contribution guidelines
git clone https://github.com/FadyEmad01/fixel-ui.git
cd fixel-uinpm installnpm run devOpen http://localhost:3000 to view the component showcase.
npm run generate:registryThis reads all component sources and generates fresh public/r/*.json registry files.
- Installation Guide — How to install components
- Component Reference — Available blocks and illustrations
- CONTRIBUTING.md — Comprehensive contribution guide
- Architecture Overview — How the registry works
- Adding Components — Step-by-step component creation
We welcome contributions of all kinds — new blocks, bug fixes, documentation improvements, and more!
# 1. Fork and clone
git clone https://github.com/your-username/fixel-ui.git
cd fixel-ui
# 2. Install and start dev server
npm install
npm run dev
# 3. Make your changes, then regenerate registry
npm run generate:registry
# 4. Run linting
npm run lint
# 5. Commit and push
git add .
git commit -m "feat(footer): add footer-02 with newsletter"
git push origin main- Add more footer variants
- Hero section blocks
- Pricing table blocks
- Testimonial/carousel blocks
- Dashboard layout blocks
- Form layout blocks
- Authentication pages
Have a suggestion? Open a discussion!
MIT © Fady Emad
Built with ❤️ by Fady Emad
