Skip to main content

JobJitsu Design System (Production)

Calm confidence, desktop density, dark mode first.
Brand source: ../brand/BRAND_GUIDELINES.md · Voice: ../brand/VOICE_AND_TONE.md

This folder is the production-ready visual and interaction system for packages/ui and the desktop shell. Token names are implementation-ready. The shell applies data-theme and data-layout (compact / standard / wide) from RESPONSIVE.md. Shared page chrome (JjPage, JjEmptyState, JjSurface) lives in app/src/shell/layout until more Jj* primitives move into @jobjitsu/ui.


Principles​

  1. Native feel, local power — Tight desktop density; soft elevation; no neon SaaS glow.
  2. Dark mode first — Default theme is Midnight; light is a deliberate switch.
  3. One job per view — Hierarchy via type and space, not card stacks everywhere.
  4. Privacy visible — Agent · On-device pill and status chrome are first-class components.
  5. Calm motion — Presence and hierarchy only; honor reduced motion.
  6. WCAG AA minimum — AAA where brand contrast already allows.

Document map​

DocTopic
DESIGN_TOKENS.mdColor, spacing, radius, elevation, icon, and z-index tokens
TYPOGRAPHY.mdFonts, type ramp, tracking
ANIMATION.mdDuration, easing, approved motions
COMPONENT_VARIANTS.mdCore Jj* variants
THEME_DARK.mdDark (default) theme map
THEME_LIGHT.mdLight theme map
ACCESSIBILITY.mdA11y requirements
RESPONSIVE.mdDesktop window & density rules

Related brand docs (copy, icons, empty states): ../brand/DESIGN_SYSTEM.md


Token naming convention​

--jj-{category}-{role}-{variant?}

Examples: --jj-color-bg-canvas, --jj-space-4, --jj-radius-md, --jj-motion-duration-standard

Semantic tokens (preferred in components) reference primitive tokens. Themes swap semantic aliases; components should rarely hard-code primitives.