โจ 43 Production-Ready Components + 15 UI Blocks โข TailwindCSS v4 โข TypeScript โข Zero Dependencies โจ**
๐ Step-by-step examples for all 43 components + 15 blocks with interactive showcases, code snippets, and best practices!
- ๐ฏ Zero NPM Dependencies - No angular-superui package required, components are installed locally
- ๐ ๏ธ Selective Installation - Install only what you need with our CLI tool
- ๐จ TailwindCSS v4 - Latest Tailwind features with @import syntax
- ๐ฆ Local-First - Full control over component code and customization
- โก TypeScript Native - Built with TypeScript from the ground up
- โฟ Accessibility First - WCAG AA compliant components
- ๐ง Angular 18+ - Modern Angular features and standalone components
- โ
Installs Dependencies:
tailwindcss@^4.1.11,class-variance-authority,clsx,tailwind-merge@^3.3.1 - โ Configures TailwindCSS v4: Modern @import syntax and PostCSS setup
- โ Updates Styles: Adds CSS variables and theme configuration
- โ TypeScript Paths: Sets up @components/* and @utils/* aliases
- โ Ready to Use: Instantly ready for component installation
# Install globally for easy access
npm install -g ngsui-cli
# Or use with npx (no installation)
npx ngsui-cli --help# Navigate to your Angular project root
cd your-angular-project
npx ngsui-cli init
### Step 3: Add Components
# Add individual components
npx ngsui-cli add button
npx ngsui-cli add button card badge alert
# Add all components at once
npx ngsui-cli add --all
# List available components
npx ngsui-cli list- ๐ Button - Interactive buttons with 9 variants and loading states
- ๐ท๏ธ Badge - Status indicators and labels with 4 variants
- ๐จ Alert - Contextual feedback messages with 5 variants
- ๐ค Avatar - User profile images with automatic fallback support
- ๐ช Accordion - Collapsible content sections with single or multiple modes
- ๐ Card - Flexible content containers with header, content, and footer
- โ๏ธ Checkbox - Boolean input control with multiple states and form integration
- ๐ฝ ComboBox - Advanced dropdown with search, multi-select, and loading states
- ๐ญ Chip - Interactive chip component with dismissible and clickable variants
- ๐ Input - Flexible input component with validation states and accessibility
- ๐ข InputOTP - One-time password input with multiple slots and validation
- ๐ RadioGroup - Radio button group with accessible selection and validation
- ๐ Progress - Progress indicator with customizable appearance and animation
- โญ Rating - Interactive star rating component with hover effects and customizable appearance
- ๐ฝ Select - A flexible select dropdown component with search and multi-select capabilities
- ๐๏ธ Slider - Interactive slider component for single values and ranges with accessibility support
- ๏ฟฝ Toggle - Toggle switch component with multiple states and accessibility
- ๏ฟฝ๐ Textarea - Multi-line text input component with auto-resize and validation states
- ๐ Breadcrumb - Navigation breadcrumbs with accessibility and custom separators
- ๐ AspectRatio - Maintains consistent proportions for responsive content
- ๐ฏ Icon - Versatile icon component supporting multiple icon libraries and sizes
- ๐ Menubar - Application menubar with nested submenus and keyboard navigation
- ๐ Pagination - Pagination controls with customizable page size and navigation
- ๐ Sidebar - Responsive navigation sidebar with animations, keyboard navigation, and flexible content
- ๐ Stepper - Multi-step navigation component with progress tracking and validation support
- ๐ Tabs - Tabbed interface component with keyboard navigation and accessibility support
- ๐ ๏ธ Toolbar - Group actions and inputs in a compact, responsive bar
- ๐จ AlertDialog - Modal dialogs with accessibility and focus management
- ๐ฑ๏ธ ContextMenu - Right-click context menus with keyboard shortcuts
- ๐ช Dialog - Modal dialog windows with accessibility features
- ๐ Drawer - Flexible drawer component that slides in from any side
- โฌ๏ธ DropdownMenu - Beautiful dropdown menus with multiple variants
- ๐ฌ Popover - Floating overlay that displays content relative to a trigger
- ๐ข Toast - Toast notification component with multiple variants and auto-dismiss functionality
- ๐ก Tooltip - Tooltip component with configurable positioning and hover/focus triggers
- ๐ Carousel - Content slider with auto-play, navigation, and pagination
- ๐๏ธ Collapsible - Expandable content sections with smooth animations
- ๐ Skeleton - Loading placeholder components with customizable shapes and animations
- โณ Spinner - Loading spinner component with multiple variants and animations
- ๐ DataTable - Enterprise-grade data table with sorting, filtering, and pagination
- ๐ FileUpload - Advanced file upload component with drag-and-drop, progress tracking, and validation
- ๐ Calendar - Advanced calendar with date range selection and time picker
- ๐ ThemeSwitcher - Toggle between light, dark, and system themes
Pre-built, customizable UI sections perfect for rapid prototyping and production apps.
- ๐ฆธ Hero Section - Stunning hero sections with CTAs, images, and animations
- ๐ Stats Counter - Animated statistics display with countup effects
- ๐ Feature Grid - Feature showcase with icons, descriptions, and layouts
- ๐ Feature Card - Individual feature cards with icons and descriptions
- ๐ฌ Testimonial - Customer testimonials with avatars and ratings
- ๐ฐ Pricing Cards - Pricing tables with features, CTAs, and highlighting
- ๐ฅ Team Grid - Team member showcase with social links and roles
- ๐ Auth Forms - Login, register, and password reset forms
- ๐ฏ Header - Navigation headers with menus, logos, and mobile support
- ๐ฆถ Footer - Footer sections with links, social icons, and company info
| Tool | Version | Status | Notes |
|---|---|---|---|
| Node.js | 18+ | โ Required | LTS version recommended |
| Angular CLI | 17+ | โ Required | npm install -g @angular/cli |
| Angular | 17+ | โ Required | Standalone components support |
| TypeScript | 5.0+ | โ Required | Included with Angular |
# Install complete library with all components
npm install angular-superui@2.0.3
# Install peer dependencies
npm install class-variance-authority clsx tailwind-mergeFor maximum control over your setup:
npm install class-variance-authority clsx tailwind-merge tailwindcss@^4.1.11Create or update your styles.css:
@import "tailwindcss";
@layer base {
:root {
/* Light Theme Variables */
--background: hsl(0 0% 100%);
--foreground: hsl(222.2 84% 4.9%);
--card: hsl(0 0% 100%);
--card-foreground: hsl(222.2 84% 4.9%);
--popover: hsl(0 0% 100%);
--popover-foreground: hsl(222.2 84% 4.9%);
--primary: hsl(222.2 47.4% 11.2%);
--primary-foreground: hsl(210 40% 98%);
--secondary: hsl(210 40% 96.1%);
--secondary-foreground: hsl(222.2 47.4% 11.2%);
--muted: hsl(210 40% 96.1%);
--muted-foreground: hsl(215.4 16.3% 46.9%);
--accent: hsl(210 40% 96.1%);
--accent-foreground: hsl(222.2 47.4% 11.2%);
--destructive: hsl(0 84.2% 60.2%);
--destructive-foreground: hsl(210 40% 98%);
--border: hsl(214.3 31.8% 91.4%);
--input: hsl(214.3 31.8% 91.4%);
--ring: hsl(222.2 84% 4.9%);
--radius: 0.5rem;
}
.dark {
/* Dark Theme Variables */
--background: hsl(222.2 84% 4.9%);
--foreground: hsl(210 40% 98%);
--card: hsl(222.2 84% 4.9%);
--card-foreground: hsl(210 40% 98%);
--popover: hsl(222.2 84% 4.9%);
--popover-foreground: hsl(210 40% 98%);
--primary: hsl(210 40% 98%);
--primary-foreground: hsl(222.2 47.4% 11.2%);
--secondary: hsl(217.2 32.6% 17.5%);
--secondary-foreground: hsl(210 40% 98%);
--muted: hsl(217.2 32.6% 17.5%);
--muted-foreground: hsl(215 20.2% 65.1%);
--accent: hsl(217.2 32.6% 17.5%);
--accent-foreground: hsl(210 40% 98%);
--destructive: hsl(0 62.8% 30.6%);
--destructive-foreground: hsl(210 40% 98%);
--border: hsl(217.2 32.6% 17.5%);
--input: hsl(217.2 32.6% 17.5%);
--ring: hsl(212.7 26.8% 83.9%);
}
body {
background-color: hsl(var(--background));
color: hsl(var(--foreground));
}
}Create .postcssrc.json:
{
"plugins": {
"@tailwindcss/postcss": {}
}
}Add to your tsconfig.json:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@components/*": ["lib/components/*"],
"@utils/*": ["lib/utils/*"]
}
}
}import { Component } from '@angular/core';
import { Button } from '@components/button';
import { Card, CardHeader, CardTitle, CardContent } from '@components/card';
import { Badge } from '@components/badge';
@Component({
selector: 'app-example',
standalone: true,
imports: [Button, Card, CardHeader, CardTitle, CardContent, Badge],
template: `
<Card class="w-96">
<CardHeader>
<CardTitle>Welcome to Angular SuperUI</CardTitle>
</CardHeader>
<CardContent>
<div class="space-y-4">
<Badge variant="default">v2.0.3</Badge>
<Button variant="default" (click)="handleClick()">
Get Started
</Button>
</div>
</CardContent>
</Card>
`
})
export class ExampleComponent {
handleClick() {
console.log('Button clicked!');
}
}import { Component } from '@angular/core';
import { Button } from '@components/button';
import { Card, CardHeader, CardTitle, CardContent } from '@components/card';
import { Badge } from '@components/badge';
import { Avatar } from '@components/avatar';
import { Alert } from '@components/alert';
import { ThemeSwitcher } from '@components/theme-switcher';
@Component({
selector: 'app-dashboard',
standalone: true,
imports: [
Button, Card, CardHeader, CardTitle, CardContent,
Badge, Avatar, Alert, ThemeSwitcher
],
template: `
<div class="p-6 space-y-6">
<!-- Header -->
<div class="flex items-center justify-between">
<h1 class="text-2xl font-bold">Dashboard</h1>
<div class="flex items-center gap-4">
<ThemeSwitcher />
<Avatar
size="default"
[src]="'https://github.com/shadcn.png'"
[alt]="'User Avatar'" />
</div>
</div>
<!-- Alert -->
<Alert variant="default">
<h4 class="font-medium">Welcome back!</h4>
<p class="text-sm">You have 3 new notifications.</p>
</Alert>
<!-- Stats Cards -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<Card>
<CardHeader>
<CardTitle>Total Sales</CardTitle>
</CardHeader>
<CardContent>
<div class="text-2xl font-bold">$12,345</div>
<Badge variant="default" class="mt-2">+12%</Badge>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle>Orders</CardTitle>
</CardHeader>
<CardContent>
<div class="text-2xl font-bold">1,234</div>
<Badge variant="secondary" class="mt-2">+8%</Badge>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle>Users</CardTitle>
</CardHeader>
<CardContent>
<div class="text-2xl font-bold">5,678</div>
<Badge variant="destructive" class="mt-2">-3%</Badge>
</CardContent>
</Card>
</div>
<!-- Actions -->
<div class="flex gap-2">
<Button variant="default">Create New</Button>
<Button variant="secondary">Export Data</Button>
<Button variant="outline">Settings</Button>
</div>
</div>
`
})
export class DashboardComponent {}# Initialize project
ngsui-cli init
# Add single component
ngsui-cli add button
# Add multiple components
ngsui-cli add button card badge alert
# Add all components
ngsui-cli add --all
# List available components
ngsui-cli list
# Get help
ngsui-cli --help# Force overwrite existing components
ngsui-cli add button --force
# Use with npx (no global installation)
npx ngsui-cli init
npx ngsui-cli add button| Framework | Version | Status | Notes |
|---|---|---|---|
| Angular | 18+ | โ Fully Supported | Standalone components |
| Angular | 17 | โ Supported | Standalone components |
| Angular | 16 | May require adjustments | |
| Angular | 15 | โ Not Supported | Standalone components required |
# Ensure TailwindCSS v4 is installed
npm install tailwindcss@^4.1.11 @tailwindcss/postcss
# Check .postcssrc.json exists
cat .postcssrc.json
# Restart development server
ng serve# Ensure path aliases are configured in tsconfig.json
# Check components were installed in src/lib/components/
ls src/lib/components/
# Re-run init if needed
ngsui-cli init# Ensure all dependencies are installed
npm install class-variance-authority clsx tailwind-merge
# Check TypeScript version
npx tsc --version # Should be 5.0+- โ Ensure styles.css has the @import "tailwindcss" at the top
- โ Check that CSS variables are defined in :root and .dark
- โ Restart your development server after changes
- ๐ Explore Components: Visit our Component Documentation
- ๐ฎ Try Live Demo: See all components in action at angular-superui.vercel.app
- ๐ก Get Inspired: Check out our Examples Gallery
- ๐ค Contribute: Join our GitHub Community
- ๐ GitHub: bhaimicrosoft/angular-superui
- ๐ง Email: bhaikaju@gmail.com
- ๐ฌ Issues: Report bugs or request features
Built with โค๏ธ by the Angular SuperUI Team
import { Component } from '@angular/core';
import { Alert, Button, Input } from 'angular-superui';
@Component({
standalone: true,
imports: [Alert, Button, Input],
template: `
<div class="p-6 space-y-4">
<button variant="primary">Primary Button</button>
<alert variant="success">
<h5>Success!</h5>
<div>Your setup is complete!</div>
</alert>
<input type="text" placeholder="Try typing here..."></input>
</div>
`
})
export class AppComponent {}If you're using NgModules instead of standalone components:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { Alert, Button, Input } from 'angular-superui';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
Alert,
Button,
Input
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }| Framework | Version | Supported |
|---|---|---|
| Angular | 18+ | โ |
| Angular | 17 | โ |
| Angular | 16 | |
| Angular | 15 and below | โ |
Ensure your tsconfig.json includes:
{
"compilerOptions": {
"strict": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"moduleResolution": "node"
}
}1. Styles not applying:
- Ensure Tailwind CSS is properly configured
- Check that Angular SuperUI is included in your Tailwind content paths
- Verify CSS variables are defined in your styles.css
2. Components not found:
- Make sure you've imported the components in your module/component
- Check that the package is properly installed with
npm list angular-superui
3. Build errors:
- Ensure peer dependencies are installed
- Check TypeScript configuration compatibility
If you encounter issues:
- Check our Troubleshooting Guide
- Search existing issues
- Create a new issue
- Explore our Component Documentation
- Learn about Theming
- Check out Examples
- Read the Migration Guide if upgrading