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 10 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 10 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

8 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
M3ETN3TWORKDIR3CT
👤
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
N3TWORKDIR3CT
✍️
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 10 surfaces must update together.
3cosystem Atomic Design
Powered by R3SET · R3SET Enterprises, Delaware B-Corp
brand.3cosystem.net/atomic-design