Theming Guide for StartupBolt
StartupBolt uses Shadcn (opens in a new tab) for theming, which is built on top of Tailwind CSS. This guide will walk you through the theming system, how to use it, and how to customize it for your needs.
Theme Setup and Usage
-
Basic Setup:
- StartupBolt uses Shadcn (opens in a new tab) for theming.
- Theme colors are set in
/app/globals.css
.
-
Theme Colors:
- Theme colors can be edited in
/app/globals.css
. They can be found in the@layer base
directive. The following CSS variables are available for use:
: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: 221.2 83.2% 53.3%; --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: 221.2 83.2% 53.3%; --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: 217.2 91.2% 59.8%; --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: 224.3 76.3% 48%; }
- Theme colors can be edited in
- The
:root
selector defines colors for the default (light) mode, while the.dark
class selector defines colors for dark mode. - These CSS variables can be used in your Tailwind classes to apply theme colors. For example:
<div className="bg-background text-foreground">
This div will use theme colors in both light and dark modes.
</div>
- In this example,
bg-background
andtext-foreground
will use the light mode colors by default, and will apply the dark mode colors when dark mode is active.
- Color Conventions:
- We use a simple background and foreground convention for colors.
- The
background
variable is used for the component's background color. - The
foreground
variable is used for the text color.
Customizing Theme Colors
-
Customizing Theme Colors:
- To change theme colors, you can copy a color scheme from the following websites:
- Select a color scheme, click "Copy Code", and paste the CSS variables into
/app/globals.css
.
-
Understanding HSL Colors:
- CSS variables use HSL (Hue, Saturation, Lightness) colors.
- For more information on HSL and color conversion, visit W3Schools HSL Colors (opens in a new tab).
- Example:
--primary: 222.2 47.4% 11.2%;
meansbg-primary
will have the colorhsl(var(--primary))
.
-
Dark Mode:
- Dark colors are automatically used when dark mode is toggled.
- StartupBolt is fully dark mode ready.
-
Adding New Colors:
To add new colors:
a. Add the color to
/app/globals.css
::root { --warning: 38 92% 50%; --warning-foreground: 48 96% 89%; } .dark { --warning: 48 96% 89%; --warning-foreground: 38 92% 50%; }
b. Add the color to
tailwind.config.js
:module.exports = { theme: { extend: { colors: { warning: "hsl(var(--warning))", "warning-foreground": "hsl(var(--warning-foreground))", }, }, }, }
c. Use the new color in your components:
<div className="bg-warning text-warning-foreground" />
By following this guide, you can easily understand, use, and customize the theming system in StartupBolt to create visually appealing and consistent user interfaces.