Skip to main content

JobJitsu Design System

Visual and interaction language for the desktop app. Color, type, and logo foundations live in BRAND_GUIDELINES.md.

Production tokens, themes, and component variants: ../design-system/README.md

This document covers structure, naming, motion overview, accessibility overview, icons, and illustration.


1. Design Pillars (UI)​

  1. Native feel, local power — Light chrome, crisp motion, keyboard-first where it counts.
  2. Dark mode first — Default: Midnight Ink (#0B0A1A) with Electric Teal (#2DD4BF) accents. Light mode is intentional, not an afterthought.
  3. Invisible agent — Surface queue, calendar, and status calmly — never a spaceship cockpit.
  4. Privacy always visible — Status bar: belt mark or Agent · On-device badge.
  5. One job per view — Each screen has a primary purpose; secondary actions stay quiet.

2. Foundations (Summary)​

High-level brand anchors only. Production CSS tokens, themes, and component variants live in ../design-system/ — see DESIGN_TOKENS.md, THEME_DARK.md, and THEME_LIGHT.md. Do not treat this table as the token source of truth.

TokenValueRole
Deep Indigo#1E1B4BPrimary brand, belt, dark surfaces
Electric Teal#2DD4BFCTAs, links, logo flap, focus
Teal (AA body, dark)#14B8A6Body-size teal text on dark when needed
Midnight Ink#0B0A1ADark background
Soft Cloud#F8FAFCLight background
Jade#10B981Success
Amber#F59E0BCaution / pending
InterUI sans400–700
JetBrains MonoCode / logs400

Radius, spacing, and elevation should stay subtle: prefer tight desktop density over large consumer-app padding. Soft shadows only; no neon glow stacks.


3. UI Naming Guidelines​

Names in the interface should match how users think about the job hunt and the agent — not internal engineering terms.

Principles​

  • User language first: “Follow-ups”, not “ReminderCron”.
  • Stable nouns: Reuse the same word for the same concept everywhere.
  • Verb clarity: Actions say what happens to data or the outside world.
  • No false friends: Don’t call a draft a “throw” in navigation; metaphor belongs in microcopy, not IA.

Canonical UI Terms​

ConceptUI nameAvoid
Main automationAgentBot, Autopilot, Worker, LLM
On-device intelligenceAgent / On-deviceLocal LLM, Cloud AI, ChatGPT (unless choosing a runtime in advanced settings)
Job application unitApplicationOpp, Req, Ticket
Pre-send holdingQueuePipeline (unless visualizing stages)
Post-send check-inFollow-upChase, Ping storm
User rulesPreferencesConfig dump, Profile hacks
Résumé fileResumeCV only if locale requires
Approval gateReview / Approve sendConfirm nuke
Privacy indicatorAgent · On-deviceLocal LLM, Secure sauce

Screen & Section Titles​

  • Prefer nouns: “Applications”, “Follow-ups”, “Preferences”, “Agent”.
  • Subtitles may use calm sentence case: “Queued and waiting for your signal.”

File & Export Names (user-visible)​

  • JobJitsu-resume-export.pdf style: Product + purpose + extension.
  • No cryptic hashes in names the user sees.

4. Component Naming​

For design specs, Storybook, and code — consistent, boring, discoverable.

Pattern​

Jj{Domain}{Element}[{Variant}]

Examples: JjAgentStatusBadge, JjApplicationQueueRow, JjFollowUpCard, JjAgentPrivacyPill.

Domain Prefixes​

PrefixDomain
JjAgentAgent status, controls, idle
JjApplicationApplication list, draft, send
JjFollowUpReminders and nudges
JjPreferencesSettings forms
JjPrivacyAgent on-device badge, indicators
JjOnboardingFirst-run steps
JjLogAgent / terminal output

Rules​

  • PascalCase for components; camelCase for instances/props.
  • Variants via props (tone="success"), not JjButtonGreenSuccessLarge.
  • Do not encode color in the name (TealButton); encode role (PrimaryButton).
  • Lucide icons: wrap as JjIcon or use Lucide names directly — do not rename “Mail” to “EnvelopeThrow”.
  • Prefer composition: JjApplicationQueue contains JjApplicationQueueRow.

State Names (props / CSS)​

Use: default, hover, focus, active, disabled, loading, success, caution, error.
Align caution with Amber and success with Jade from the brand palette.


5. Motion (brand intent)​

Motion expresses presence and hierarchy, not celebration spam: confirm that something local and fast happened, guide attention to the next calm step, never block with ornament. Approved patterns (status pulse, row settle, toast rise), timing/easing tables, and reduced-motion rules live in ../design-system/ANIMATION.md. Never confetti, parallax dashboards, or motion that ignores prefers-reduced-motion.


6. Accessibility (brand intent)​

Calm UI must remain usable under WCAG AA (AAA where brand contrast already allows): visible teal focus rings, keyboard-operable primary workflows, real buttons/links, live regions for toasts and errors, and never color alone to convey state. Contrast pairs, focus specs, and semantics requirements live in ../design-system/ACCESSIBILITY.md; recovery copy in ERROR_MESSAGES.md.


7. Icon Usage​

Library​

Lucide — MIT, open-source. Aligns with open-source values.

Style​

  • Stroke: 2 px
  • Caps & joins: rounded
  • Default size in UI: 16 or 20 px; 24 px for empty-state anchors
  • Color: Indigo (#1E1B4B) on light; white on dark; teal on hover/active for interactive icons

Role Mapping (examples)​

Action / conceptLucide suggestion
Applicationsbriefcase or file-text
Send / applysend
Follow-upbell or mail
Agentbot sparingly — prefer custom belt mark for brand moments
Local / privacybelt mark or shield — prefer brand Agent · On-device pill
Settingssettings
Successcheck / check-circle
Cautionclock or alert-triangle (amber)
Erroralert-circle

Rules​

  • One metaphor per control — don’t stack badge + icon + emoji.
  • No emoji in primary chrome.
  • Decorative icons: aria-hidden="true". Informative icons: accessible name via label or aria-label.
  • The teal envelope flap on the logo is sacred — do not recolor Lucide icons to invent a second “envelope brand”.

Privacy Badge​

Indigo/teal pill in the status bar: text “Agent · On-device” (or “Agent ready” / “Agent unavailable”). Always present while the on-device agent path is active. Never default this label to “LLM”.


8. Illustration Style​

Character​

Minimal line-art. Soft Cloud or Midnight fields. Single accent: Electric Teal arcs that echo belt curves or origami folds. Geometric, modern, uncrowded.

Motifs​

  • Belt-like continuous curves
  • Soft envelope / fold geometry (pipeline metaphor)
  • Optional future mascot: origami fox with a small indigo belt — used rarely, never as UI chrome clutter

Placement​

  • Onboarding, empty states, about screen
  • Not behind dense data tables
  • Not as full-bleed noisy patterns under body text

Don’ts​

  • 3D glossy martial-arts stock photos
  • Purple AI nebula backgrounds
  • Comic-fight imagery
  • Busy collages or floating sticker packs on the hero

SurfaceDoc
Empty statesEMPTY_STATES.md
NotificationsNOTIFICATIONS.md
ErrorsERROR_MESSAGES.md
SuccessSUCCESS_MESSAGES.md