Theme Components
Live examples of all components in the armpitMFG design system.
Tabs
Tabs support both horizontal and vertical orientations with animated active indicators.
Horizontal Tabs
<div class="tabs">
<div class="tabs-item">
<button class="tabs-link active">Overview</button>
</div>
<div class="tabs-item">
<button class="tabs-link">Features</button>
</div>
</div>Vertical Tabs
Add .tabs-vertical class for sidebar-style navigation.
<div class="tabs tabs-vertical">
<div class="tabs-item">
<button class="tabs-link active">Dashboard</button>
</div>
<div class="tabs-item">
<button class="tabs-link">Settings</button>
</div>
</div>Unlisted Tab (Page-Defined Colors)
Pages not in the main navigation can define a custom tab label and color using the useSetUnlistedTab hook. This creates a dynamic navigation indicator.
Custom Label & Color
Pages can set a custom label and accent color for their tab indicator.
GMP Mode (Orange):
Admin Panel (Red):
Beta Feature (Purple):
// In your page component:
import { useSetUnlistedTab } from '@/shared-theme/useSetUnlistedTab';
export default function GmpPage() {
useSetUnlistedTab({
label: 'GMP Mode', // Custom label (replaces "Unlisted")
color: '#f39c12' // Custom accent color (orange)
});
return <div>Page content</div>;
}
// The CSS variable --nav-unlisted-tab-color controls the color:
// Header component injects: :root { --nav-unlisted-tab-color: #f39c12; }React Hook API
// UnlistedTabContext provides:
interface UnlistedTabContextType {
label: string | null; // Current tab label
color: string | null; // Current accent color
setLabel: (label: string | null) => void;
setColor: (color: string | null) => void;
}
// useSetUnlistedTab hook (recommended):
useSetUnlistedTab({
label?: string; // Optional: defaults to "Unlisted" with flag
color?: string; // Optional: defaults to theme primary blue
});
// Hook automatically cleans up on unmountCards
Default Card
This is a default card with header and body.
Feature Card
Feature cards have a gradient background and enhanced hover.
Glass Card
Glass cards have a frosted glass effect with backdrop blur.
<div class="card">...</div>
<div class="card card-feature">...</div>
<div class="card card-glass">...</div>Alerts
<div class="alert alert-info">Info message</div>
<div class="alert alert-success">Success message</div>
<div class="alert alert-warning">Warning message</div>
<div class="alert alert-error">Error message</div>Badges
<span class="badge">Default</span>
<span class="badge badge-success">Success</span>
<span class="badge badge-warning">Warning</span>
<span class="badge badge-error">Error</span>Modals
Modals support multiple sizes and drawer variants.
Modal Sizes
.modal-sm (40rem).modal (60rem default).modal-lg (80rem).modal-fullscreen (100%)Drawer Variants
Side panels that slide in from the edge of the screen.
.modal-drawer (right side).modal-drawer-left (left side)<div class="modal-overlay active">
<div class="modal modal-lg">
<div class="modal-header">
<h2 class="modal-title">Modal Title</h2>
<button class="modal-close">×</button>
</div>
<div class="modal-body">Content</div>
<div class="modal-footer">
<button class="btn">Save</button>
</div>
</div>
</div>Progress Bars
Basic Progress
Color Variants
<div class="progress">
<div class="progress-bar" style="width: 50%"></div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 60%"></div>
</div>Forms
Tables
| Name | Status | Role | Actions |
|---|---|---|---|
| John Doe | Active | Admin | |
| Jane Smith | Pending | User | |
| Bob Johnson | Inactive | User |
Typography
Heading 1 (text-4xl)
Heading 2 (text-3xl)
Heading 3 (text-2xl)
Heading 4 (text-xl)
Large paragraph text for introductions and emphasis.
Regular paragraph text for body content. This is the default text size used throughout the application.
Small secondary text for captions and metadata.
Additional Components
The theme also includes these components (see CSS for full documentation):
Layout
- •
.container- Centered content container - •
.section- Page sections with padding - •
.divider- Horizontal dividers
Navigation
- •
.breadcrumbs- Breadcrumb navigation - •
.pagination- Page pagination
Feedback
- •
.toast- Toast notifications - •
.tooltip- Hover tooltips - •
.spinner- Loading spinner - •
.skeleton- Loading skeletons
Content
- •
.accordion- Collapsible sections - •
.avatar- User avatars - •
.list-group- List groups