Homepage Design System
Visual language & components of the Studio of Two site
Homepage Design System
This page documents the visual identity, design tokens, and custom components used across the Studio of Two website. By combining Human-Centered typography with Machine-First layouts, this design system establishes a consistent documentation language.
Layout Framework (Nextra & Tailwind)
The layout of this site is built upon a hybrid framework:
- Nextra 4 (Docs Theme): Nextra serves as the content router and layout organizer. It provides out-of-the-box support for directory-based routing (pages are defined by
.mdand.mdxfiles) and compiles them into statically optimized React pages. Custom layout structures, sidebar links, and active page styles are configured using_meta.jsconfiguration files. - Tailwind CSS 3: All presentation, responsive spacing, layouts, and interactive feedback are built using Tailwind utility classes. The core design tokens are integrated directly as Tailwind classes, keeping styling declarative. Custom overrides are stored in
styles/globals.cssusing Tailwind’s@applydirective.
Atomic Tokens
1. Color System
We use tailored, high-contrast HSL values that adapt automatically between light and dark modes to maintain full WCAG compliance.
Primary Accent
#6366f1 / HSL(237, 84%, 45%/67%)
Brand Gradient
from-purple to-blue
Surface Base
bg-white / bg-gray-900/40
Nextra Theme Color Token
The core HSL accent maps directly into the Nextra <Head> token in app/layout.tsx:
color={{
hue: 237,
saturation: 84,
lightness: { light: 45, dark: 67 }
}}2. Geometry & Spacing
- Container Radii:
rounded-2xl(16px) for major outer containers, boxes, and grids. - Inner Elements:
rounded-xl(12px) for buttons, badges, inputs, and media assets. - Separators:
border-gray-200 dark:border-gray-800(1px static). - Elevations:
shadow-smbase transitioning tohover:shadow-mdviatransition-all duration-200.
rounded-xl (Inner)
3. Interactive Transitions
- Scale Feedback:
hover:scale-[1.02] active:scale-[0.98] - Duration:
transition-all duration-200 ease-in-outfor smooth click/hover reactions.
4. Layout Sizing & Grids
- Article Width:
max-w-4xlfor centralized reading content. - Dashboard Width:
max-w-7xlfor grid displays. - Grid Gaps:
gap-4orgap-6for card listings.
Font Stack & Typography
We rely on Next.js default font configurations combined with standard fallback systems for optimal reading performance:
- Sans-Serif Font Stack (
font-sans): Defaults to Inter combined with the system font stack (system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif). Used for all standard paragraphs, callouts, and interface buttons. - Monospace Font Stack (
font-mono): Defaults to SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace. Used for badges, identifiers, code tags, and metrics counters. - Typography Classes: Defined globally in
styles/globals.css(such as.t1,.t2,.t3,.p1,.p2) to style headers and paragraphs consistently.
Inter & System Font Stack
system-ui, -apple-system, sans-serif
SFMono-Regular & Code Stack
SFMono-Regular, Menlo, Monaco, Consolas
Illustrations & Icon Assets
To preserve the premium brand aesthetic, all illustration assets and icons must follow these rules:
- Storyset Illustrations:
- Style: Strictly use the Rafiki style from Storyset.
- Colors: Set the primary illustration color to Indigo-500 (
#6366f1) to align with the accent theme. - Automation URL: SVG downloads should be configured using the following URL query pattern to automate color replacements:
https://storyset.com/download?filename=[SLUG]-rafiki.svg&color=6366F1
- Icon tokens:
- Style constraint: Use Material UI Rounded (
@mui/icons-material/...Rounded). No other icon families (FontAwesome, Lucide, etc.) or raw emojis are allowed in layouts. - Color styling: Standard icons are styled with the utility class
text-indigo-500/50. Accent or interactive icons usetext-indigo-500. - Heading constraint: Never add icons or emojis to titles and markdown headers. Emojis and icons must only be used in custom callouts, badges, or inline indicators.
- Style constraint: Use Material UI Rounded (
Accessibility & WCAG Standards
We build with accessibility in mind, targeting compliance with WCAG 2.1 AA guidelines:
- Color Contrast: Our primary accent color, Indigo-500 (
#6366f1), has a verified contrast ratio of 4.56:1 against the light-mode surface and 6.2:1 against the dark-mode surface. This ensures it meets the standard contrast requirement (minimum 4.5:1) for normal size text. - Anti-Aliased Typography: Lightweight font styles (
font-light) are only used at text sizes oftext-base(16px) or larger. For smaller text sizes (e.g.text-xsortext-sm), regular or medium weights are utilized to ensure anti-aliased font rendering remains readable against the background. - Semantic Structure: The site utilizes standard HTML5 landmark tags (
<main>,<article>,<nav>,<header>,<footer>,<section>). Headers are nested in a logical sequence (h1throughh4) to ensure smooth navigation for users using assistive technologies. - Keyboard Navigation & Focus: Custom focus indicators are configured with
focus:ring-2 focus:ring-indigo-500 focus:outline-none. Keyboard users can navigate all interactive pages sequentially.
Content Architecture (MD, MDX & Frontmatter)
This project manages content as a first-class citizen using structured Markdown formats:
- Markdown (MD): Used for writing linear documentation and simple text.
- MDX (Markdown with JSX): Extends standard markdown, enabling the importing and rendering of interactive React components directly in the document context.
- Frontmatter: The YAML block defined at the beginning of each page. It supplies key metadata parsed at compile-time:
--- searchable: true title: Page Title subtitle: Description line shown under title description: SEO Meta description tag date: "YYYY.MM.DD" ---searchable: Determines if the page should be crawled and indexed by the Pagefind search engine.title&subtitle: Custom headings injected into the layout header and sidebar list.description: Configures the<meta name="description">header tag for SEO.date: Publishes publication date, formatting the index order.
Typography Classes
These global CSS utility classes are defined in styles/globals.css and can be applied directly to HTML elements:
Luis Kobayashi
Selected Readings
Exploring the intersection of design systems and agentic code.
This is the standard reading style for text elements. It uses a light-weight gray text to ensure high readability without visual strain.
This is the lead reading style, perfect for introductions and callout headings.
Secure Media & Asset Tokens
Confidential assets such as custom case study graphics, interactive 3D panels, or private videos are locked using HMAC signing tokens:
- Secure Wrapper Components: All secure media must render using
<SignedImage />,<SignedVideo />, or<SignedPanoramaViewer />. - HMAC URL Signing API: These components interact with
/api/sign-urlto obtain authenticated, timed links verified by server-side secrets. This prevents unauthorized direct access and external hotlinking of portfolio media.
Component Patterns
This section displays live interactive instances of the site’s custom components:
1. Featured Topic (FeaturedTopic)
Used for showcasing case studies and core projects.
Vertical Card (horizontal={false})
<FeaturedTopic
title="Global Design Maturity"
subtitle="Scaling the Dometic Design System across Americas, EMEA & APAC"
body={<p>Unifying web, mobile, embedded, and physical interfaces under a single visual and code architecture.</p>}
media={[{ src: context_pipe, alt: "Design System Pipeline" }]}
href="/design/design-ops/dometic-design-system"
horizontal={false}
/>Global Design Maturity
Scaling the Dometic Design System across Americas, EMEA & APAC
Unifying web, mobile, embedded, and physical interfaces under a single visual and code architecture.
Horizontal Card (horizontal={true})
<FeaturedTopic
title="The Studio of Two"
subtitle="R&D Lab on human-agent symbiosis"
body={<p>Exploring how structured context pipelines can optimize code translation and prevent hallucinations in agentic design.</p>}
media={[{ src: studio_icon, alt: "Studio of Two logo" }]}
href="/studio/studio-of-two"
horizontal={true}
/>The Studio of Two
R&D Lab on human-agent symbiosis
Exploring how structured context pipelines can optimize code translation and prevent hallucinations in agentic design.
2. Inline Callout (InlineCallout)
Used to link to related articles, case studies, or external resources with appropriate semantic icons.
<InlineCallout href="/design/leadership" type="article"><strong>Design Leadership</strong>: Our roadmap for high-maturity design operations.</InlineCallout>
<InlineCallout href="/notions/2026-05-15-context-design" type="concept"><strong>Context Design</strong>: Structuring data pipelines for AI.</InlineCallout>
<InlineCallout href="/studio/studio-of-two" type="system"><strong>The Studio of Two</strong>: Manifesto on cognitive partnership.</InlineCallout>
<InlineCallout href="/studio/studio-of-two/studio_setup" type="setup"><strong>Studio Setup</strong>: Configurations and templates.</InlineCallout>3. Glassmorphic R&D Callout Box
Used to call out code examples or technical highlights in case studies.
<div className="p-5 my-6 rounded-xl border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900/40">
<p className="text-sm font-semibold text-indigo-600 dark:text-indigo-400 mb-2 uppercase tracking-wider">Aria-Live Announcement</p>
<p className="text-sm text-gray-600 dark:text-gray-300">This container has high contrast (5.8:1 in light mode, 6.2:1 in dark mode) and is fully accessible to all users.</p>
</div>Aria-Live Announcement
This container has high contrast (5.8:1 in light mode, 6.2:1 in dark mode) and is fully accessible to all users.
4. Repository References (SourceCallout)
Used for displaying code repositories or package dependencies.
<SourceCallout
type="github"
label="luismichio/homepage"
href="https://github.com/luismichio/homepage"
/>5. Telemetry Stats Counter (IncinerationCounter)
Used to pull and display real-time sifting compression stats from the /api/sift endpoint.
<IncinerationCounter mode="header" />6. Animated Image Carousel (SlideShow)
Used to render cross-fade image carousels with custom animated transition values.
<SlideShow
configComp="w-full h-190 rounded-xl overflow-hidden relative bg-gray-100 dark:bg-gray-800"
gallery={[
{ alt: "Design System", image: context_pipe, css: { reset: "opacity-0 scale-95 duration-1000", target: "opacity-100 scale-100 duration-1000" } },
{ alt: "Studio of Two", image: studio_icon, css: { reset: "opacity-0 scale-95 duration-1000", target: "opacity-100 scale-100 duration-1000" } }
]}
duration={3000}
effect="object-cover w-full h-full"
duraAnima="transition-all duration-1000 ease-in-out"
/>7. 3D Panorama Viewer (PanoramaViewer and SignedPanoramaViewer)
Used for rendering interactive 3D equirectangular panorama graphics using Three.js.
<SignedPanoramaViewer path="/pa/misc/UE4_Demo_360.png" height={600} />