The vision for this design system is to move beyond the utilitarian "app" feel and into the realm of High-End Editorial Precision. Rather than a flat grid of tasks, we treat the UI as a physical workspace carved from dark glass and charcoal stone.
"The Obsidian Architect" relies on Tonal Depth rather than structural lines. We reject the "boxed-in" nature of traditional Material Design in favor of intentional asymmetry and rhythmic white space. By utilizing the vibrant green primary accent against a near-black foundation, we create a sense of focused luminescence—like a high-end watch face or a professional studio dashboard.
Core Tenets:
- Luminescence over Decoration: Light (color and tone) is used to guide the eye, never for mere styling.
- Structural Silence: We remove the "noise" of dividers and borders to let content breathe.
- Weighted Typography: Plus Jakarta Sans is used with extreme contrast in scale to establish a clear editorial hierarchy.
The color palette is designed to be immersive, minimizing eye strain while maximizing focus through "The Obsidian Architect" logic.
Explicit Instruction: Designers are prohibited from using 1px solid borders for sectioning or containment. Boundaries must be defined solely through:
- Background Color Shifts: Placing a
surface-container-low(#131313) section on asurface(#0e0e0e) background. - Negative Space: Using the Spacing Scale to create "voids" that naturally separate groups.
Treat the UI as a series of nested physical layers.
- Base:
background(#0e0e0e). - Sectioning:
surface-container(#1a1a1a) for secondary navigation or sidebars. - Prominence:
surface-container-high(#20201f) for the primary content focus. - Interaction:
surface-bright(#2c2c2c) for elements that need to feel "closer" to the user.
To elevate the experience, floating elements (like FABs or Overlays) should utilize Glassmorphism.
- Token Usage: Use
surface-containerat 70% opacity with a20pxbackdrop-blur. - Signature Gradients: For primary CTAs, use a subtle linear gradient from
primary(#91f78e) toprimary_container(#52b555) at a 135-degree angle to add a "liquid" premium feel.
We utilize Plus Jakarta Sans for its geometric clarity and modern "ink-trap" aesthetics, which remain legible even at high-contrast dark modes.
- Display Scale (Display-LG to Display-SM): Used for "Big Data" moments—task counts, focus timers, or daily progress percentages. These should be set with
-0.02emletter spacing to feel tight and architectural. - Headline & Title: Use
headline-lg(#ffffff) for page titles. Pair this withon_surface_variant(#adaaaa) for sub-headers to create an immediate visual "step-down" in importance. - The Utility Layer:
label-mdandlabel-smmust be set in uppercase with0.05emletter spacing when used for categories or status tags to provide a technical, high-precision look.
Depth is achieved through Tonal Stacking.
- Example: A "Task Card" (
surface-container-highest: #262626) sitting on a "Project Feed" (surface-container-low: #131313). The 13-hex-point difference creates a soft, natural lift without the need for dated drop shadows.
Shadows should only be used for "Floating" elements (Modals, FABs, Menus).
- Specs:
Blur: 24px,Spread: -4px,Opacity: 6%. - Color: Use a tinted shadow (Shadow Color:
#000000) to ensure the element feels integrated into the charcoal background rather than "hovering" over it.
If an element requires an edge for accessibility (e.g., a text input), use a Ghost Border:
- Token:
outline-variant(#484847) at 15% opacity. This creates a suggestion of a boundary that disappears into the background, maintaining the "No-Line" philosophy.
- Primary: Fill with
primary(#91f78e), text inon_primary(#005e17). Usefullroundedness. No shadows. - Secondary: Fill with
secondary_container(#006d3a), text inon_secondary_container(#e3ffe6). - Tertiary/Ghost: Text only in
primary(#91f78e). On hover, add aprimaryfill at 8% opacity.
- Style:
fullroundedness. Usesurface-container-highest(#262626) as the base. - Selected State: Transition background to
primary(#91f78e) withon_primarytext.
- Style: Forgo the "Boxed" look. Use a
surface-container-low(#131313) fill with a2pxbottom-only stroke using theprimary(#91f78e) token on focus. - Focus State: Apply a subtle
primaryouter glow (4px blur, 10% opacity) to simulate luminescence.
- Constraint: Dividers are forbidden.
- Implementation: Separate list items using
spacing-4(1rem). Each item should exist on asurface-container-lowbackground that slightly shifts tosurface-container-highon hover to provide interactive feedback.
- Do use asymmetrical layouts. For example, align headline text to the left while keeping action buttons floated to the far right with significant white space between them.
- Do use the
primarygreen (#91f78e) sparingly. It is a "laser" that directs attention; overusing it will break the dark, focused atmosphere. - Do use
surface-container-lowest(#000000) for "deep wells" like background areas behind cards to increase perceived contrast.
- Don't use 100% white (#ffffff) for long-form body text. Use
on_surface_variant(#adaaaa) to reduce glare and improve readability. - Don't use standard Material 3 "Elevated" buttons with heavy shadows. Use tonal shifts instead.
- Don't ever use a divider line to separate two pieces of content. If they need separation, they need more space (refer to Spacing Scale
8or12). - Don't use sharp corners. Every interactive element must use at least
DEFAULT(0.5rem) orlg(1rem) roundedness to maintain the "Soft Modern" personality.