Back to Home
Theme Configuration
Learn how to customize the look and feel of your application with Inam UI's flexible theming system.
Choose a Theme
Preview & Copy
Select a theme to preview it on this site and generate the configuration code below.
Configuration
Copy this code into your app/globals.css file:
app/globals.css
@import "tailwindcss";
@theme {
--font-sans: "Inter", var(--font-geist-sans), ui-sans-serif, system-ui;
--font-mono: "JetBrains Mono", var(--font-geist-mono), ui-monospace, monospace;
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--radius-lg: var(--radius);
--radius-md: calc(var(--radius) - 2px);
--radius-sm: calc(var(--radius) - 4px);
--animate-accordion-down: accordion-down 0.2s ease-out;
--animate-accordion-up: accordion-up 0.2s ease-out;
--animate-fade-in: fade-in 0.3s ease-out;
--animate-slide-up: slide-up 0.4s ease-out;
--animate-pulse-glow: pulse-glow 2s ease-in-out infinite;
@keyframes accordion-down {
from { height: 0; }
to { height: var(--accordion-content-height); }
}
@keyframes accordion-up {
from { height: var(--accordion-content-height); }
to { height: 0; }
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slide-up {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes pulse-glow {
0%, 100% { box-shadow: 0 0 20px var(--glow-color, rgba(99, 102, 241, 0.2)); }
50% { box-shadow: 0 0 40px var(--glow-color, rgba(99, 102, 241, 0.3)); }
}
}
@layer base {
/* ===== LIGHT MODE (Indigo) ===== */
:root {
--background: hsl(0 0% 100%);
--foreground: hsl(222 47% 11%);
--card: hsl(0 0% 100%);
--card-foreground: hsl(222 47% 11%);
--popover: hsl(0 0% 100%);
--popover-foreground: hsl(222 47% 11%);
--secondary: hsl(210 20% 96%);
--secondary-foreground: hsl(222 47% 11%);
--muted: hsl(210 20% 96%);
--muted-foreground: hsl(215 16% 47%);
--destructive: hsl(0 84% 60%);
--destructive-foreground: hsl(0 0% 100%);
--border: hsl(214 32% 91%);
--input: hsl(214 32% 91%);
--radius: 0.625rem;
/* Theme Specific */
--primary: hsl(239 84% 67%);
--primary-foreground: hsl(0 0% 100%);
--accent: hsl(243 75% 59%);
--accent-foreground: hsl(0 0% 100%);
--ring: hsl(239 84% 67%);
--glow-color: rgba(99, 102, 241, 0.2);
}
/* ===== DARK MODE (Indigo) ===== */
.dark {
--background: hsl(222 47% 6%);
--foreground: hsl(210 20% 98%);
--card: hsl(222 47% 8%);
--card-foreground: hsl(210 20% 98%);
--popover: hsl(222 47% 8%);
--popover-foreground: hsl(210 20% 98%);
--secondary: hsl(217 33% 17%);
--secondary-foreground: hsl(210 20% 98%);
--muted: hsl(217 33% 17%);
--muted-foreground: hsl(215 20% 65%);
--destructive: hsl(0 72% 55%);
--destructive-foreground: hsl(210 20% 98%);
--border: hsl(217 33% 17%);
--input: hsl(217 33% 17%);
/* Theme Specific */
--primary: hsl(239 84% 72%);
--primary-foreground: hsl(222 47% 6%);
--accent: hsl(243 75% 64%);
--accent-foreground: hsl(222 47% 6%);
--ring: hsl(239 84% 72%);
--glow-color: rgba(129, 140, 248, 0.15);
}
* {
border-color: var(--border);
}
body {
background-color: var(--background);
color: var(--foreground);
font-feature-settings: "rlig" 1, "calt" 1;
}
}
@layer utilities {
.hover-lift {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}
.brand-glow {
box-shadow: 0 0 30px var(--glow-color);
}
.brand-glow-hover:hover {
box-shadow: 0 0 40px var(--glow-color);
}
}* Values are automatically updated based on the theme selected above.