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 @muni-ics/e-infra-design-system
# Using yarn
yarn add @muni-ics/e-infra-design-system
# Using pnpm
pnpm add @muni-ics/e-infra-design-system
# Using bun
bun add @muni-ics/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:
import '@muni-ics/e-infra-design-system/style.css';Add the design system to your tailwind.config.js:
/** @type {import('tailwindcss').Config} */
export default {
content: [
'./src/**/*.{js,ts,jsx,tsx}',
'./node_modules/@muni-ics/e-infra-design-system/dist/**/*.{js,ts,jsx,tsx}',
],
theme: {
extend: {},
},
plugins: [],
}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:checkMIT Β© 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.