3cosystem
Design System · v1.2
brand.3cosystem.net

Atomic Design

3cosystem uses atomic design to organize interface primitives, reusable components, templates, and product experiences across a shared multi-surface ecosystem. Build once, adapt by surface, role, and state.

Why Atomic Design

A shared vocabulary across every surface

Without a named system, components drift. Each surface reinvents the same patterns with slightly different names, sizes, and behaviors — leading to inconsistency, duplicated effort, and a growing gap between the brand guide and what ships in code.

Shared vocabulary

Tokens → atoms → molecules → organisms → templates → pages. Every contributor speaks the same language.

Reduced design drift

Named, documented components close the gap between brand guide and implementation. Prior audits found significant drift — this is one step toward fixing it.

Predictable reuse

An atom built for M3ET works in N3TWORK, SP3AK EASY, and future surfaces without rework — only the surface token context changes.

Faster delivery

Composing from existing organisms reduces time-to-feature on each surface from weeks to days.

System Hierarchy

From tokens to pages

Each layer inherits from the one below it. Change a token and it cascades up through atoms, molecules, organisms, templates, and pages — across all 11 surfaces at once.

TokensLayer 1

Design decisions encoded as named variables — colors, type scales, spacing, radius, motion, and per-surface theming. The foundation everything else inherits from.

AtomsLayer 2

The smallest functional UI elements that cannot be broken down further without losing their utility.

MoleculesLayer 3

Functional groupings of two or more atoms that work together as a single coherent unit.

OrganismsLayer 4

Complex, standalone UI sections composed of molecules and atoms. Self-contained and reusable across templates.

TemplatesLayer 5

Page-level layout patterns that place organisms into a structural wireframe. Content-agnostic. Shared across surfaces.

PagesLayer 6

Concrete, content-filled routes. Templates plus real data, per-surface theming, and feature-flagged organisms.

3cosystem Mapping

Real examples across the ecosystem

Every component in production maps to exactly one layer. If you're unsure where something belongs, use the definition column.

LayerDefinitionExamples
Tokens
Color, type, spacing, radius, motion, surface theming
--l-primary--l-surface--fs-base--space-4surface vars
Atoms
Smallest reusable UI elements
ButtonInputBadgeAvatarIconButtonTagToggle
Molecules
Functional groupings of atoms
Search barKPI cardProfile summary rowCTA rowStat card
Organisms
Larger reusable sections
App SwitcherAuth shellSidebar navEvent moduleNarrative panel
Templates
Layout patterns — content-agnostic
DashboardAuthProfileEventCRMNarrativeLandingAdmin
Pages
Concrete routes per surface
M3ET /dashboardSP3AK /narrativeM3SH /hostingN3TWORK /pipeline
Scope Model

Global · Shared-surface · Surface-native

Every component belongs to one of three scope tiers. Scope determines where it lives in the monorepo, who owns it, and how freely it can be changed.

Global
All 11 surfaces

Core ecosystem infrastructure. Changes require design system version bump and impact every surface simultaneously.

Examples
App Switcher
Base Button
Auth shell
"Powered by R3SET" footer
HexagonMark
Base tokens
Cannot change without design review + version bump
Shared-surface
Several surfaces

Useful to multiple surfaces but not required for all. Owned by the surfaces that use them; proposable for global promotion.

Examples
CRM pipeline card
Story module
Event card
KPI ScoreCard
Profile summary row
Change requires coordinating affected surfaces
Surface-native
One surface only

Interaction or layout unique to that surface's domain. May be promoted to shared if another surface needs the same pattern.

Examples
SP3AK narrative interview layout
M3ET swipe card
M3SH event plan workspace
CURR3NCY wallet ledger
Surface team owns; must document if promoted
Reuse Rules

When to reuse, extend, or introduce new

The default answer is always reuse. New components cost documentation, test coverage, and long-term maintenance. Treat "new component" as a last resort, not a first instinct.

Reuse existing

Prefer variants + props over duplication. If an existing component covers 80% of the use case, extend it.

Signal
Different copy but same structure
Same layout with surface-color difference
Minor spacing change needed
Extend via variant

Use a named variant prop when behavior or appearance genuinely differs but the core interaction is the same.

Signal
Button with icon vs. text-only
Card in compact vs. expanded mode
Input with vs. without label
Introduce new

Only when the interaction pattern or layout cannot be expressed as a variant or composition of existing components.

Signal
Fundamentally different interaction model
No existing organism fits structurally
Domain-specific with no reuse potential
Anti-patterns — flag in PR review
Undocumented one-offs

Page-level components that only appear once and are never added to the component library.

Silent copies

Slightly different duplicates of existing components with no variant name, living in separate files.

Hardcoded surface colors

Using hex values instead of var(--l-primary) or var(--l-surface). Prevents surface theming from working.

Template Library

Eight reusable layout patterns

Templates define the structural wireframe of a page without prescribing content. Each template lists the organisms it expects and which surfaces it ships on.

🔐
Auth Template

Login, signup, password reset

Organisms
AuthFormSurfaceLogoHeroSection
All surfaces
📊
Dashboard Template

KPIs, activity feed, quick actions

Organisms
KpiScoreCardsRecentActivityQuickActions
M3ETN3TWORKSUCC3SS
👤
Profile Template

User/public profile view

Organisms
ProfileHeaderConnectionsListActivityFeed
M3ETN3TWORK
📅
Event Template

Event detail, RSVP, logistics

Organisms
EventHeroAttendeeListRSVPButton
M3SH
🔗
CRM Template

Pipeline, contacts, filter

Organisms
PipelineBoardContactCardFilterBar
N3TWORKSUCC3SS
✍️
Narrative Template

Story discovery & interview

Organisms
SectionNavigatorStoryEditorPromptCards
SP3AK EASY
🌐
Landing Template

Surface landing pages

Organisms
HeroSectionFeaturesGridStatsBar
All surfaces
⚙️
Admin Template

Platform management

Organisms
DataTableAdminNavConfigPanel
Internal
State Coverage

Required states for every component

Every atom, molecule, and organism must document which states it supports. Undocumented states become production bugs. Use this matrix as your PR checklist.

Required
N/A for this layer
StateDescriptionAtomsMoleculesOrganisms
Default
Base resting state
Hover / Focus / Active
Interactive pointer & keyboard states
Loading
Async operation in flight — skeleton or spinner
Empty
Zero-data state — illustrated or instructive
Error
Validation or system failure
Success
Completion confirmation
Disabled
Not interactable — reduced opacity + no pointer
Locked / Permissioned
Visible but gated by role or subscription
Feature-flagged
Staged rollout — hidden from some cohorts
Governance

Who owns what — and how changes ship

The design system is a living product. Every change is a PR. Every organism or template addition requires documentation. Breaking token changes require a version bump.

Ownership model
  • Design + engineering pairing — every new component requires both
  • Global components owned by the design system team
  • Shared-surface components co-owned by adopting surfaces
  • Surface-native components owned by the surface team
PR checklist
  • New organism or template → must add to component library docs
  • New global atom → requires design review before merge
  • Token change → must note which surfaces are affected
  • State coverage documented in the PR description
  • Accessibility: axe + keyboard nav verified
Versioning
  • Current version: v1.2
  • Changes to global tokens → design system version bump required
  • Additive changes (new atoms) → minor version
  • Breaking changes (token renames, removed components) → major version
  • Surface-native changes → no version bump needed
3cosystem Design System — Current version: v1.2
Breaking token changes increment the major version. All 11 surfaces must update together.
3cosystem Atomic Design
Powered by R3SET · R3SET Enterprises, Delaware B-Corp
brand.3cosystem.net/atomic-design