This document outlines the technical architecture and design principles used to migrate a Jekyll/Eleventy blog from a remote theme (e.g., LaunchKit) to a custom, high-fidelity SCSS framework inspired by modern and classic Macintosh Human Interface Guidelines (HIG), specifically modeled after Mario Guzman’s design language.
The migration follows a “decoupled” approach, moving all styling logic from external dependencies to a local, modular SCSS structure.
_sass/variables.scss: Centralized design tokens (colors, fonts, sizing)._sass/_base.scss: Reset, layout primitives, and typography defaults._sass/layouts/: Component-specific styles (e.g., blog.scss, apps.scss).assets/css/style.scss: Entry point and import orchestration.The design adheres to the following core tenets:
.containerThe foundational wrapper for content alignment.
margin: 0 auto..readableA specialized modifier for long-form text content.
680px (approximately 65-75 characters per line) to optimize reading speed and reduce eye strain..gridA flexible flexbox-based utility for horizontal alignment.
1rem (16px) or 1.5rem (24px) spacing between elements.Prioritizes Apple’s system fonts for a “native” feel.
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 700 or 800) with a tight line-height: 1.2.font-size: 1.05rem with a comfortable line-height: 1.6.1.4rem to 1.5rem for prominent entry points.0.85rem using --dz-subtitle-color for secondary information.row on desktop, column on mobile).1.5rem gap and subtle hover states..article-content)1.25rem bottom margin on paragraphs.4px left border using the brand color, with a subtle var(--dz-grouped-background-color) background.4px to 8px) with automatic centering and responsive max-width: 100%.hr)1px solid border using var(--dz-border-color).2rem vertical margins to provide clear thematic breaks between sections.Utilizes semantic CSS variables for effortless Light and Dark mode transitions.
| Token | Light Mode | Dark Mode | Purpose |
|---|---|---|---|
--dz-brand-color |
#007aff |
#0a84ff |
Links, accents, borders |
--dz-background-color |
#ffffff |
#1c1c1e |
Primary page background |
--dz-title-color |
#1c1c1e |
#f2f2f7 |
Headers and primary text |
--dz-subtitle-color |
#8e8e93 |
#8e8e93 |
Meta text and descriptions |
--dz-border-color |
#d1d1d6 |
#3a3a3c |
Separators and input borders |
When performing a similar migration for a new site:
.container, .readable, and .no-style classes are used.variables.scss..container and .readable primitives in _base.scss.remote_theme from config).no-style from HTML layouts to allow the new SCSS to propagate.