DESIGN.md · Analysis

Otto

ottoapp.me · 11 Sept 2026 · 47 colors · Inter

Otto

Otto is a free Pomodoro timer and website blocker for Chrome that helps users work mindfully, overcome procrastination, and maintain focus through interval-based work sessions and distraction management.

Colors

surface#ffffff
surface-dim#f3f3f3
surface-bright#fcfcfc
surface-container-lowest#fafafa
surface-container-low#f3f3f3
surface-container#eef5ff
surface-container-high#e5e7eb
surface-container-highest#d1d5db
on-surface#111827
on-surface-variant#374151
inverse-surface#1f2937
inverse-on-surface#f3f4f6
outline#6b7280
outline-variant#d1d5db
surface-tint#4f83fa
primary#4f83fa
on-primary#ffffff
primary-container#719cff
on-primary-container#252d58
inverse-primary#61aef6
secondary#e088ff
on-secondary#252d58
secondary-container#eaafff
on-secondary-container#4a3f3f
tertiary#61657d
on-tertiary#ffffff
tertiary-container#989cb3
on-tertiary-container#252d58
error#dc2626
on-error#ffffff
error-container#fee2e2
on-error-container#7f1d1d
primary-fixed#719cff
primary-fixed-dim#4f83fa
on-primary-fixed#ffffff
on-primary-fixed-variant#252d58
secondary-fixed#eaafff
secondary-fixed-dim#e088ff
on-secondary-fixed#252d58
on-secondary-fixed-variant#4a3f3f
tertiary-fixed#989cb3
tertiary-fixed-dim#61657d
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#252d58
background#ffffff
on-background#111827
surface-variant#e5e7eb

Typography

display
fontFamily: Inter · fontSize: 80px · fontWeight: 700 · lineHeight: 88px · letterSpacing: -0.04em
headline-lg
fontFamily: Inter · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Inter · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Otto is a mindfulness-focused productivity tool that combines Pomodoro interval timing with intelligent website blocking, designed for the perpetually distracted knowledge worker. The brand embodies "Friendly Minimalism" — a design philosophy that balances approachable, conversational warmth with clean, purposeful interfaces. The visual identity centers on a vibrant blue-to-purple gradient ecosystem (primary blue #4f83fa transitioning through secondary magenta #e088ff) layered over serene landscape imagery, evoking calm focus rather than frantic urgency. The UI conveys emotional intelligence: Otto is positioned as a supportive companion, not a stern taskmaster. Voice: conversational, empathetic, occasionally playful. Example: "Here's a little question for you. Does this sound like you? You sit down to work, and suddenly three hours have vanished into the browser void."

The design system prioritizes clarity and trust through generous whitespace, readable typography at 16px body baseline, and purposeful color application. Every interaction feels intentional—buttons use full-radius pill shapes (border-radius: 9999px) to soften the interface, while the primary CTA ("Add to Chrome — it's Free") employs white backgrounds with subtle shadows (0 3px 8px rgba(0,0,0,0.15)) to command attention without aggression. The brand personality is self-aware: it acknowledges procrastination without judgment, celebrates small wins, and speaks to users as peers, not subjects.

Colors

Otto's color system is built on a dynamic gradient foundation that transitions from a vibrant sky blue (#4f83fa, primary) through secondary magenta (#e088ff) to tertiary slate (#61657d), creating visual energy while maintaining focus hierarchy. The primary blue (#4f83fa) is reserved exclusively for interactive elements—buttons, links, focus states, and key CTAs—ensuring users instantly recognize clickable surfaces. The secondary magenta (#e088ff) and its lighter variant (#eaafff) function as accent highlights, used sparingly on badges, decorative elements, and premium feature callouts to create visual interest without overwhelming the interface. Tertiary slate (#61657d) anchors the system as a supporting neutral, used for secondary text, disabled states, and subtle dividers.

The surface s

Typography

Otto's type system uses Inter as the primary typeface across all scales, chosen for its exceptional legibility at small sizes (12px labels) and its modern, friendly character that reinforces the brand's approachable personality. The hierarchy spans eight levels: display (80px, 700 weight, -0.04em tracking) for hero headlines, headline-lg (40px, 600 weight) for section titles, headline-md (28px, 600 weight) for subsections, title-lg (20px, 600 weight) for card headers, body-lg (18px, 400 weight, 28px line-height) for introductory paragraphs, body-md (16px, 400 weight, 24px line-height) for standard body copy, label-md (14px, 600 weight, 20px line-height, 0.01em tracking) for button text and form labels, and label-sm (12px, 500 weight, 16px line-height, 0.05em tracking) for badges and metada

Layout

Otto uses a fluid 12-column grid system with a maximum container width of 1280px (80rem), centered on viewport with auto margins. The page rhythm is built on an 8px unit scale, with semantic spacing tokens: xs (4px) for micro-adjustments, sm (12px) for compact spacing within components, md (24px) for standard padding and margin between elements, lg (40px) for section separation, and xl (64px) for major layout breaks. The gutter between grid columns is 24px, maintained consistently across breakpoints to preserve visual rhythm. Hero sections use full-viewport height with generous padding (40px top/bottom on desktop, 20px on mobile) to create breathing room around the primary CTA. Card-based sections employ lg spacing (40px) between cards and xl spacing (64px) between section groups. The desi

Elevation & Depth

Otto's elevation system uses soft, diffuse shadows to create subtle depth without harsh contrast, reinforcing the calm, approachable aesthetic. The shadow palette consists of three levels: sm (0 1px 2px rgba(0,0,0,0.06)) for subtle elevation on interactive elements like list items and badges, md (0 4px 12px rgba(0,0,0,0.08)) for standard cards and button hover states, and lg (0 16px 40px rgba(0,0,0,0.12)) for modals, dropdowns, and elevated overlays. Primary buttons use md elevation (0 4px 12px rgba(0,0,0,0.08)) in default state, increasing to lg on hover to signal interactivity. Cards transit

Shapes

Otto's shape philosophy is "Soft-Technical Friendliness"—combining rounded corners with purposeful geometry to balance approachability with clarity. Buttons and primary CTAs use full-radius pill shapes (border-radius: 9999px) to create a welcoming, non-threatening appearance that encourages interaction. Cards and containers use lg radius (1rem / 16px) to soften edges without appearing overly playful. Input fields and form elements use DEFAULT radius (0.5rem / 8px) for a slightly more structured feel that signals functional purpose. Badges and small accent elements use full radius (9999px) to e

Components

Action Elements Buttons are the primary interaction pattern and use three distinct variants. The primary button (button-primary) applies background-color: {colors.primary} (#4f83fa), text-color: white, border-radius: 9999px, padding: 12px 24px, height: 48px, and box-shadow: 0 3px 8px rgba(0,0,0,0.15). On hover (button-primary-hover), the background shifts to {colors.primary-fixed-dim} (#4f83fa with increased saturation) and shadow expands to 0 4px 12px rgba(0,0,0,0.12), creating a subtle lift. Active state (button-primary-active) darkens to #3d5fa8 and reduces shadow to 0 2px 4px rgba(0,0,0,0.1) for tactile feedback. Secondary buttons (button-secondary) use transparent backgrounds with 1px white borders (rgba(255,255,255,0.5)) and white text, ideal for secondary CTAs on gradient backgr

Do's and Don'ts

**Do**

  • Do use the primary blue (#4f83fa) exclusively for interactive elements—buttons, links, focus states—to create instant recognition of clickable surfaces.
  • Do apply generous whitespace (lg spacing: 40px) between major sections to reduce cognitive load and reinforce the calm, focused aesthetic.
  • Do use full-radius pill shapes (border-radius: 9999px) on primary CTAs to create a welcoming, non-threatening appearance that encourages interaction.
  • Do maintain 16px minimum font size for body copy with 1.5x+ line-height to maximize readability and accessibility across all devices.
  • Do layer soft shadows (0 3px 8px rgba(0,0,0,0.15)) on interactive elements to signal elevation and interactivity without harsh contrast.
  • Do use Inter typeface consistently across all scales to reinforce the modern, friendly brand character.

**Don't**

  • Don't use secondary magenta (#e088ff) or tertiary slate (#61657d) as primary CTA colors—reserve these for badges, accents, and supporting elements only.
  • Don't apply sharp corners (0px border-radius) to buttons or primary containers; the brand relies on rounded shapes to communicate approachability.
  • Don't exceed lg elevation (0 16px 40px rgba(0,0,0,0.12)) on standard cards or buttons; reserve this for modals and critical overlays to maintain visual hierarchy.
  • Don't reduce line-height below 1.5x font size for body copy; Otto's calm aesthetic depends on generous vertical spacing to reduce visual tension.
  • Don't use pure black (#000000) or pure white (#ffffff) as text colors on colored backgrounds; always use on-surface or on-primary variants for accessibility.
  • Don't mix typefaces; Inter is the sole typeface family across all scales—avoid system fonts or serif alternatives that would fragment the visual identity.