uitrust
v0.1.0
Published
A modern, accessible React UI component library built with Tailwind CSS — inspired by shadcn/ui. Buttons, inputs, cards, modals, badges & more.
Maintainers
Readme
trustui
A modern, accessible React UI component library built with Tailwind CSS — inspired by shadcn/ui. Zero-config, fully typed, and composable.
Install
npm install trustui
# peer dependencies
npm install react react-domRequires Tailwind CSS v3+ configured in your project.
Components
| Component | Import |
|---|---|
| Button | trustui/button |
| Input | trustui/input |
| Textarea | trustui/textarea |
| Label | trustui/label |
| Card | trustui/card |
| Badge | trustui/badge |
| Alert | trustui/alert |
| Dialog | trustui/dialog |
| Avatar | trustui/avatar |
| Spinner | trustui/spinner |
| Toggle | trustui/toggle |
| Tooltip | trustui/tooltip |
| Separator | trustui/separator |
| Skeleton | trustui/skeleton |
| Select | trustui/select |
Usage
import { Button } from 'trustui/button';
import { Card, CardHeader, CardTitle, CardContent } from 'trustui/card';
import { Input } from 'trustui/input';
function App() {
return (
<Card>
<CardHeader>
<CardTitle>Sign In</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<Input placeholder="Email" type="email" />
<Input placeholder="Password" type="password" />
<Button className="w-full">Sign In</Button>
<Button variant="outline" className="w-full">Sign Up</Button>
</CardContent>
</Card>
);
}Tailwind CSS Setup
Add the trustui CSS variables to your global CSS:
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
}
.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
}
}Extend your tailwind.config.js:
module.exports = {
theme: {
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: { DEFAULT: "hsl(var(--primary))", foreground: "hsl(var(--primary-foreground))" },
secondary: { DEFAULT: "hsl(var(--secondary))", foreground: "hsl(var(--secondary-foreground))" },
destructive: { DEFAULT: "hsl(var(--destructive))", foreground: "hsl(var(--destructive-foreground))" },
muted: { DEFAULT: "hsl(var(--muted))", foreground: "hsl(var(--muted-foreground))" },
accent: { DEFAULT: "hsl(var(--accent))", foreground: "hsl(var(--accent-foreground))" },
popover: { DEFAULT: "hsl(var(--popover))", foreground: "hsl(var(--popover-foreground))" },
card: { DEFAULT: "hsl(var(--card))", foreground: "hsl(var(--card-foreground))" },
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
},
},
};Utility: cn
import { cn } from 'trustui/cn';
cn('px-2 py-1', isActive && 'bg-primary', className);Variants
Components like Button, Badge, Alert, and Toggle support variants via class-variance-authority:
<Button variant="destructive" size="lg">Delete</Button>
<Badge variant="outline">New</Badge>
<Alert variant="warning">
<AlertTitle>Heads up!</AlertTitle>
<AlertDescription>Something happened.</AlertDescription>
</Alert>License
MIT
