Branding & Theming
Customize the visual identity of your Next.js Prisma kit application with themes, logos, and fonts.
Customize your application's visual identity - colors, typography, and logo - using Tailwind CSS v4 and Shadcn UI themes without touching component code.
The Next.js Prisma kit uses Tailwind CSS v4 with Shadcn UI for styling. All branding customizations happen in CSS files and a few TypeScript configuration files. You can swap themes, change fonts, and update your logo without modifying any component code. The kit ships with multiple pre-built themes you can apply with a single import.
Definition: Branding in the kit refers to the visual customization layer - CSS variables for colors, font definitions, and logo components - that sits on top of the Shadcn UI component library.
Customize branding when: you're preparing for launch, white-labeling for clients, or aligning with existing brand guidelines.
Use defaults when: prototyping or validating ideas - the default theme is production-ready.
If unsure: start with a pre-built Shadcn UI theme from the themes page and customize from there.
Branding Components
| Area | What to Customize | Location |
|---|---|---|
| Theme & Colors | CSS variables, color palette | apps/web/styles/custom.css |
| Logo | Application logo component | apps/web/components/app-logo-image.tsx |
| Fonts | Typography definitions | apps/web/lib/fonts.ts |
| Favicons | Browser icons | public/images/favicon/ |
Documentation Structure
| Page | Purpose |
|---|---|
| Tailwind CSS | Theme configuration and Shadcn UI styling |
| Logo | Application logo and favicons |
| Fonts | Typography customization |
Quick Start: Apply a Theme
The fastest way to rebrand is to copy CSS variables from a Shadcn UI theme:
- Go to the Shadcn UI Themes page
- Choose a theme and click "Copy"
- Paste the CSS variables into
apps/web/styles/custom.css:
@layer base { :root { --background: 0 0% 100%; --foreground: 240 10% 3.9%; --primary: 240 5.9% 10%; --primary-foreground: 0 0% 98%; /* ... paste all variables from the theme */ } .dark { --background: 240 10% 3.9%; --foreground: 0 0% 98%; /* ... dark mode variables */ }}- Restart the dev server to see changes
File Structure
apps/web/├── styles/│ ├── globals.css # Main entry (imports others)│ ├── theme.css # Tailwind v4 theme tokens│ ├── shadcn-ui.css # Shadcn UI variables│ ├── custom.css # Your customizations (start here)│ └── makerkit.css # Kit-specific styles├── components/│ └── app-logo-image.tsx # Logo component├── lib/│ └── fonts.ts # Font definitions└── public/ └── images/favicon/ # Favicon filesCommon Pitfalls
- Editing the wrong CSS file: Put your customizations in
custom.css, notshadcn-ui.css. The latter may be overwritten in updates. - Forgetting to restart the dev server: Tailwind CSS v4 changes sometimes require a restart to take effect.
- Using wrong theme class name: The class in
layout.tsxmust match the imported theme exactly (e.g.,style-nova, notnova). - Overriding CSS variables incorrectly: Use the
:rootselector for light mode and.darkfor dark mode variables.
Frequently Asked Questions
Can I use a completely custom color palette?
Do I need to eject or modify Shadcn UI components?
How do I support dark mode?
Can I use custom fonts from Adobe Fonts or self-hosted files?
Next: Tailwind CSS →