A comprehensive React component library built with shadcn/ui and Tailwind CSS v4, designed for the e-INFRA CZ app ecosystem.
- π¨ 46+ Components - Complete set of UI components based on shadcn/ui
- π― TypeScript First - Full TypeScript support with type definitions
- π Tailwind CSS v4 - Modern styling with the latest Tailwind features
- π Dark Mode - Built-in dark mode support
- βΏ Accessible - WAI-ARIA compliant components
- π¦ Tree-shakeable - Import only what you need
- π Customizable - Easy to theme and customize
# Using npm
npm install @e-infra/design-system
# Using yarn
yarn add @e-infra/design-system
# Using pnpm
pnpm add @e-infra/design-system
# Using bun
bun add @e-infra/design-systemMake sure you have the required peer dependencies installed:
npm install react react-dom tailwindcssImportant: Import the CSS file in your main application file AFTER importing tailwindcss:
import "@e-infra/design-system/setup.css";Example:
@import "tailwindcss";
@import "@e-infra/design-system/setup.css";import {
Button,
Card,
CardHeader,
CardTitle,
CardContent,
} from "@muni-ics/e-infra-design-system";
function App() {
return (
<Card>
<CardHeader>
<CardTitle>Welcome to e-INFRA CZ</CardTitle>
</CardHeader>
<CardContent>
<p>Start building with our design system!</p>
<Button>Get Started</Button>
</CardContent>
</Card>
);
}- Card, Separator, AspectRatio, Sidebar
- Button, Input, Textarea, Label, Checkbox, Radio Group, Select, Switch, Slider
- Table, Badge, Avatar, Calendar, Progress, Skeleton, Tooltip
- Alert, Alert Dialog, Toast (Sonner)
- Tabs, Breadcrumb, Navigation Menu, Menubar, Context Menu, Dropdown Menu
- Dialog, Sheet, Popover, Hover Card, Command, Drawer
- Accordion, Collapsible, Carousel, Toggle, Toggle Group, Scroll Area, Resizable
The design system includes standardized typography:
// Headings
<h1 className="text-4xl font-bold tracking-tight">Main Heading</h1>
<h2 className="text-3xl font-semibold tracking-tight">Section Heading</h2>
<h3 className="text-2xl font-semibold tracking-tight">Sub-heading</h3>
<h4 className="text-xl font-semibold">Sub-section</h4>
// Body text
<p className="text-base leading-7">Standard body text</p>
<p className="text-sm text-muted-foreground">Small text</p>
<p className="text-xs text-muted-foreground">Caption text</p>The design system uses CSS variables for theming. You can customize colors by overriding these variables:
:root {
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--primary: 240 5.9% 10%;
/* ... more variables */
}
.dark {
--background: 240 10% 3.9%;
--foreground: 0 0% 98%;
/* ... more variables */
}For full documentation and live examples, visit:
π Live Showcase
# Install dependencies
bun install
# Start dev server
bun run dev
# Build library
bun run build:lib
# Build showcase
bun run build:showcase
# Run linting
bun run lint
# Run type checking
bun run type:checkFor other commands consult package.json.
Be in root of the project directory!
docker compose -f ./env/prod/docker-compose.yml up --builddocker build -t design-system-showcase:latest -f ./env/prod/Dockerfile.bun .docker build -t design-system-showcase:latest -f ./env/prod/Dockerfile .MIT Β© CERIT-SC, Masaryk University
- Jakub ΔillΓk cillik@muni.cz
- Romana ΔurΓ‘ΔiovΓ‘ duraciova@mail.muni.cz
- Michal MikuΕ‘ 553650@mail.muni.cz
Contributions are welcome! Please read CONTRIBUTING.md for details.
Found a bug? Please report it at our GitHub Issues.