Case study / System
By Elibekyan ecosystem
A shared design system for root, PH, Blog, CV, and Design with domain-specific accents and one navigational grammar.
- 5
- mapped domains
- 2
- shared packages
- 1
- atlas grammar
Context / Role / Constraint
What the case needed to solve.
The ecosystem combines personal archive, photography, writing, CV, and design work. The problem was not one page; it was a system that could hold different kinds of evidence without flattening them.
Token architecture, shared UI primitives, domain map, page rules, and implementation guidelines.
Every subdomain needed its own mood while still feeling like one ecosystem, with reusable code and readable handoff rules.
Case process
From constraint to artifact.
The process is written as a working rail so the decisions can be audited, not only admired.
- 01
Name the domains
Defined the role, mood, first view, and acceptance rules for each subdomain.
Domain map and page briefs - 02
Extract tokens
Created shared colors, spacing, typography variables, borders, shadows, and timing.
Token CSS package - 03
Build primitives
Moved repeatable structure into Container, Section, Stack, Grid, Split, Header, Footer, Rail, and Button primitives.
UI package - 04
Tune each room
Assigned domain-specific accents and page rules so each site can diverge without losing the shared base.
Root, PH, Blog, CV, Design shells
Selected screens / assets
Evidence from the work.
Token board
The color system uses domain accents instead of a one-note palette.
- Signal Clay: design proof and action
- Amber Trace: photography warmth
- Blue Smoke: editorial structure
- Field Green: CV credibility
Shared shell decision
The system keeps the archive grammar but lets the most visual domain break from the shell when needed.
All domains risked inheriting the same layout, which made the ecosystem coherent but visually flat.
Each app uses common tokens and packages, while page briefs decide when the experience should diverge.
Result / Learning
What changed.
A shared token package, UI package, domain config, page-specific rules, and monorepo app structure now support distinct launches without recreating the foundation each time.
Related cases
