3.9 KiB
3.9 KiB
CSS Architecture
The Minimal Black theme uses a modular CSS architecture for better maintainability and organization.
Directory Structure
assets/css/
├── main.css # Entry point (imports all modules)
├── base.css # Tailwind imports & theme variables
├── utilities.css # Utility classes & animations
├── responsive.css # Global responsive styles
├── components/
│ ├── dock.css # Floating action dock
│ ├── cards.css # Card variants (home, project, post, CTA)
│ ├── navigation.css # Header, footer, nav links
│ ├── search.css # Search overlay & results
│ └── tech-marquee.css # Technology carousel
├── content/
│ ├── markdown.css # Typography, blockquotes, lists, code
│ └── toc.css # Table of contents sidebar
└── pages/
├── about.css # About page with timeline
└── about-alternative.css # Alternative about page layout
Module Descriptions
Base Layer
- base.css: Tailwind directives, CSS custom properties for theming (light/dark mode), and base body styles
Utilities
- utilities.css: Color utilities, animation classes, and helper classes used throughout the theme
Components
Reusable UI components that appear across multiple pages:
- dock.css: Floating action button dock with expandable panel
- cards.css: All card variants including home cards, project/post cards, CTA cards, and badges
- navigation.css: Page layouts, header, footer, navigation links, and theme toggle
- search.css: Search modal overlay, search results, empty states, and keyboard hints
- tech-marquee.css: Animated technology/skills carousel component
Content
Styles specific to content rendering:
- markdown.css: Complete markdown styling including typography, blockquotes, lists, code blocks, tables, GitHub-style alerts, and syntax highlighting
- toc.css: Table of contents sidebar with sticky positioning and active link tracking
Pages
Page-specific styles:
- about.css: Standard about page with timeline visualization
- about-alternative.css: Alternative about layout with sidebar profile card and stats
Responsive
- responsive.css: All media queries and mobile optimizations for global components
Import Order
The import order in main.css is important:
- Base styles (Tailwind + variables)
- Utilities (available to all components)
- Components (dock → cards → navigation → search → tech)
- Content styles (markdown → TOC)
- Page-specific styles
- Responsive overrides
Development Guidelines
Adding New Styles
- Component styles →
components/ - Content/typography →
content/ - Page-specific →
pages/ - Utilities →
utilities.css - Theme variables →
base.css
Modifying Existing Styles
Each file is focused on a specific concern. Find the relevant module and edit it directly. Hugo will automatically rebuild the combined CSS.
Theme Colors
All theme colors are defined as CSS custom properties in base.css:
--color-bg /* Background */
--color-surface /* Card/surface backgrounds */
--color-text /* Primary text */
--color-text-muted /* Secondary text */
--color-border /* Borders */
--color-accent /* Primary accent color */
These variables automatically switch between light and dark themes.
Responsive Breakpoints
- Mobile:
max-width: 640px - Tablet:
641px - 1023px - Desktop:
min-width: 1024px - Large Desktop:
min-width: 1536px - XL Desktop:
min-width: 1920px
Build Process
Hugo processes main.css through:
- Resolves
@importstatements - Processes Tailwind directives (@tailwind, @apply)
- Minifies for production
- Outputs to
public/css/main.css
The modular structure is development-only; users receive a single optimized CSS file.