Skip to main content

Responsive Rules

JobJitsu is desktop-first. Responsiveness means graceful window resizing and density — not a mobile social feed (../product/NON_GOALS.md).


Design viewport​

TokenWidthIntent
--jj-viewport-min1024pxMinimum supported usable width
--jj-viewport-comfortable1280pxDefault design width
--jj-viewport-wide1440px+Extra space → content, not empty chrome

Below --jj-viewport-min: allow horizontal compression with collapsing sidebar; do not claim full mobile app support in Horizon 1.


Breakpoints (window width)​

NameRangeLayout
compact< 1024pxSidebar collapsed to icon rail; single content column
standard1024–1439pxSidebar + main (default)
wide≥ 1440pxSidebar + main + optional secondary inspector (details)

Do not invent phone/tablet marketing breakpoints for the desktop shell.


Layout structure​

┌──────────────────────────────────────────────┐
│ Title / window chrome (OS) │
├────────┬─────────────────────────────────────┤
│ Nav │ Main (one job per view) │
│ │ │
│ ├─────────────────────────────────────┤
│ │ Status: Local LLM · agent · toasts │
└────────┴─────────────────────────────────────┘
RegionStandard widthCompact behavior
Nav sidebar220–240px56–64px icon rail
Mainfluidfluid
Inspector (wide only)320–360pxHidden; use route/modal

View padding: --jj-space-6 / --jj-space-8 — reduce one step in compact.


Density modes​

ModeWhenSpacing / type
comfortableDefaultStandard spacing + type ramp
compactUser preference or small windowUse one step smaller padding; keep body ≥ 14px

Density must not drop below a11y hit targets (32px).


Content adaptation​

PatternRule
Tables / logsHorizontal scroll inside panel — don’t squash mono
List rowsTruncate titles; keep primary action visible
ModalsMax width 480–560px; full-width only in compact
Empty statesStack illustration above copy; CTA full-width in compact
Dual panelsStack vertically in compact

Typography responsiveness​

  • Do not fluid-scale headings with vw in the app chrome (unstable for desktop tools).
  • Optional: drop H1 → visual H2 size in compact title bars only.
  • Job description reading pane: max line length ~70–80 characters for calm reading.

Pointer & input​

  • Optimize for mouse/trackpad + keyboard.
  • Touch-capable laptops: keep 32px minimum targets.
  • No hover-only critical actions — always offer click/keyboard equivalent.

What we won’t do​

  • Mobile-first infinite job feeds
  • Hamburger-only navigation as the primary desktop IA
  • Hiding Local LLM / privacy chrome to “save space”
  • Rearranging into a dashboard of competing cards at wide widths

Implementation hooks​

data-layout="compact|standard|wide"
data-density="comfortable|compact"
data-theme="dark|light"

Host may set layout from window width; density from preferences.