Skip to content
bellog-theme logo

Bellog Theme Integration

bellog-theme

Provides theme integration guidelines and CSS variable usage patterns for the Bellog blog. Triggers when creating styled components or working with colors.

SKILL.md

Full skill instructions

Bellog Theme Integration

This skill defines how to properly integrate with Bellog's theme system using CSS variables and TailwindCSS utility classes.

Theme System Architecture

Bellog uses HSL-based CSS variables for all colors, enabling seamless dark/​light mode switching.

Location: /​src/​styles/​global.css

:root {
  --background: 0 0% 98%;
  --foreground: 240 10% 3.9%;
  --primary: 262 83% 58%;
  /​* ... more variables */
}

.dark {
  --background: 240 10% 3.9%;
  --foreground: 0 0% 98%;
  --primary: 263 70% 50%;
  /​* ... more variables */
}

Available CSS Variables

Core Colors

// Background & Text
--background       // Main page background
--foreground       // Main text color

// Cards & Containers
--card             // Card backgrounds
--card-foreground  // Text on cards

// Interactive Elements
--primary          // Primary brand color (purple)
--primary-foreground

--secondary        // Secondary accent
--secondary-foreground

--accent           // Tertiary accent
--accent-foreground

--muted            // Subdued elements
--muted-foreground

// UI Borders & Inputs
--border           // All border colors
--input            // Input field borders
--ring             // Focus ring color

Brand Colors

// GitHub integration
--github-bg
--github-border
--github-text
--github-subtext

// Velog integration
--velog-bg
--velog-border
--velog-text
--velog-subtext

Semantic Colors

--destructive           // Error, danger states
--destructive-foreground

// Note: Success/​warning colors not defined - use primary/​accent for positive states

Usage Patterns

✅ Correct Usage

// Background & Text
className="bg-background text-foreground"

// Cards
className="bg-card text-card-foreground"

// Primary actions
className="bg-primary text-primary-foreground hover:bg-primary/​90"

// Borders
className="border-border"

// Muted/​secondary text
className="text-muted-foreground"

❌ Incorrect Usage (Never Do This)

// ❌ Hardcoded colors
className="bg-white text-black"
className="bg-gray-100 text-gray-900"
className="bg-blue-500"

// ❌ Direct color values
className="bg-[#ffffff]"
style={{ backgroundColor: "#000000" }}

// ❌ Non-semantic Tailwind colors
className="bg-slate-50 text-slate-950"

Opacity Patterns

Use opacity modifiers for subtle effects:

// 5% - Very subtle backgrounds
className="bg-primary/​5"

// 10% - Hover backgrounds
className="hover:bg-primary/​10"

// 20% - Active/​selected states
className="bg-primary/​20"

// 50% - Borders, dividers
className="border-border/​50"

// 90% - Hover states for solid buttons
className="hover:bg-primary/​90"

Common Component Patterns

Card Component

<div className="
  p-6 rounded-3xl
  bg-card border border-border/​50
  text-card-foreground
  shadow-sm hover:shadow-md
  hover:scale-[1.02] hover:border-primary/​20
  transition-all duration-300
  backdrop-blur-xl
">
  {/​* Card content */​}
</​div>

Key elements:

  • bg-card - Adapts to theme automatically
  • border-border/​50 - Subtle border
  • hover:border-primary/​20 - Interactive feedback

Button Component

// Primary button
<button className="
  px-6 py-3 rounded-full
  bg-primary text-primary-foreground
  hover:bg-primary/​90
  transition-colors duration-200
  focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2
">
  Click me
</​button>

// Secondary button
<button className="
  px-6 py-3 rounded-full
  bg-secondary text-secondary-foreground
  hover:bg-secondary/​90
  transition-colors duration-200
">
  Secondary
</​button>

// Ghost button
<button className="
  px-6 py-3 rounded-full
  hover:bg-accent hover:text-accent-foreground
  transition-colors duration-200
">
  Ghost
</​button>

Input Component

<input className="
  px-4 py-2 rounded-xl
  bg-background
  border border-input
  text-foreground placeholder:text-muted-foreground
  focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
  transition-colors
" />

Navigation Component

<nav className="
  sticky top-0 z-50
  bg-background/​80 backdrop-blur-xl
  border-b border-border/​50
">
  <a className="
    text-foreground
    hover:text-primary
    transition-colors
  ">
    Link
  </​a>
</​nav>

Tag/​Badge Component

<span className="
  px-3 py-1 rounded-full
  bg-primary/​10 text-primary
  border border-primary/​20
  text-sm
">
  Tag
</​span>

// Muted version
<span className="
  px-3 py-1 rounded-full
  bg-muted text-muted-foreground
  text-sm
">
  Muted Tag
</​span>

Modal/​Dialog Overlay

<div className="
  fixed inset-0 z-50
  bg-background/​80 backdrop-blur-sm
">
  <div className="
    bg-card border border-border
    text-card-foreground
    rounded-3xl shadow-2xl
  ">
    {/​* Modal content */​}
  </​div>
</​div>

Gradient Patterns

When gradients are needed (sparingly):

// Primary gradient background
className="bg-gradient-to-br from-primary/​20 to-primary/​5"

// Muted gradient
className="bg-gradient-to-br from-muted/​50 to-background"

// Border gradient (use pseudo-elements)
className="relative before:absolute before:inset-0 before:rounded-3xl before:p-[1px] before:bg-gradient-to-br before:from-primary/​50 before:to-transparent"

Dark Mode Handling

Important: You DO NOT need to manually handle dark mode. CSS variables automatically adapt.

// ✅ Correct - Variables handle it
className="bg-background text-foreground"

// ❌ Wrong - Manual dark mode classes
className="bg-white dark:bg-black text-black dark:text-white"

Exception: When you need different behavior between modes:

className="shadow-sm dark:shadow-xl"
className="opacity-100 dark:opacity-80"

Hover States

Standard hover patterns:

// Color shift
className="text-foreground hover:text-primary"

// Background change
className="hover:bg-accent hover:text-accent-foreground"

// Opacity change
className="opacity-70 hover:opacity-100"

// Border emphasis
className="border-border/​50 hover:border-primary/​50"

// Multiple effects
className="hover:bg-primary/​10 hover:text-primary hover:border-primary/​20"

Focus States

Always include focus states for accessibility:

className="
  focus:outline-none
  focus-visible:ring-2
  focus-visible:ring-primary
  focus-visible:ring-offset-2
  focus-visible:ring-offset-background
"

Text Hierarchy

// Headings
className="text-foreground"

// Body text
className="text-foreground"

// Secondary text
className="text-muted-foreground"

// Disabled text
className="text-muted-foreground/​50"

// Links
className="text-primary hover:text-primary/​80"

Border Radius Conventions

Bellog uses consistent border radius:

// Standard cards, containers
className="rounded-3xl"

// Buttons, inputs, tags
className="rounded-full"

// Smaller elements
className="rounded-xl"

// Images with subtle rounding
className="rounded-2xl"

Shadow Patterns

// Default state
className="shadow-sm"

// Hover state
className="hover:shadow-md"

// Elevated elements
className="shadow-lg"

// Modal/​dialog
className="shadow-2xl"

// Colored shadow (rare)
className="shadow-lg shadow-primary/​20"

Backdrop Blur

For glass-morphism effects:

// Strong blur (modals, navbars)
className="backdrop-blur-xl"

// Medium blur (cards)
className="backdrop-blur-lg"

// Light blur (overlays)
className="backdrop-blur-sm"

Theme Integration Checklist

When creating a new component:

  • No hardcoded colors (no #hex, rgb, or specific Tailwind colors)
  • Uses semantic CSS variables (background, foreground, primary, etc.)
  • Opacity modifiers for subtle effects (/​5, /​10, /​20, /​50)
  • Hover states defined
  • Focus states for interactive elements
  • Consistent border radius (rounded-3xl or rounded-full)
  • Text hierarchy uses muted-foreground for secondary text
  • Works in both light and dark modes (test by toggling)

Common Mistakes

Mistake 1: Using Generic Tailwind Colors

// ❌ Wrong
className="bg-slate-100 text-slate-900"

// ✅ Correct
className="bg-background text-foreground"

Mistake 2: Hardcoding Dark Mode

// ❌ Wrong
className="bg-white dark:bg-gray-900"

// ✅ Correct
className="bg-background"

Mistake 3: Mixing Color Systems

// ❌ Wrong
className="bg-card text-gray-700"

// ✅ Correct
className="bg-card text-card-foreground"

Mistake 4: Forgetting Opacity

// ❌ Less flexible
className="bg-primary"

// ✅ More subtle
className="bg-primary/​10"

Quick Reference

// Page background
bg-background

// Card background
bg-card

// Primary action
bg-primary text-primary-foreground

// Text colors
text-foreground              // Primary text
text-muted-foreground        // Secondary text
text-primary                 // Accent text

// Borders
border-border                // Standard
border-border/​50             // Subtle

// Hover patterns
hover:bg-primary/​10          // Background highlight
hover:text-primary           // Text accent
hover:border-primary/​20      // Border accent

// Focus
focus-visible:ring-2 focus-visible:ring-primary

// Complete card
bg-card border border-border/​50 text-card-foreground rounded-3xl

Remember: Always use CSS variables through Tailwind classes. The theme system will handle light/​dark mode automatically.

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View