S

DESIGN.md · Analysis

Solohike

solohike.in · 4 Aug 2026 · 47 colors · DM Sans

Solohike

A minimalist, accessibility-first design system for outdoor adventure platforms. Clean, purposeful, and built on a foundation of clarity and trust.

Colors

surface#ffffff
surface-dim#f5f5f5
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f0f0f0
surface-container#e9ecef
surface-container-high#f0f9fa
surface-container-highest#e5e4ff
on-surface#1a1a1a
on-surface-variant#666666
inverse-surface#1a1a1a
inverse-on-surface#ffffff
outline#d0d0d0
outline-variant#6c757d
surface-tint#6366f1
primary#6366f1
on-primary#ffffff
primary-container#e5e4ff
on-primary-container#3d3d8f
inverse-primary#b8b9ff
secondary#505050
on-secondary#ffffff
secondary-container#e9ecef
on-secondary-container#1a1a1a
tertiary#f0f9fa
on-tertiary#1a1a1a
tertiary-container#e5e4ff
on-tertiary-container#3d3d8f
error#d32f2f
on-error#ffffff
error-container#ffebee
on-error-container#b71c1c
primary-fixed#e5e4ff
primary-fixed-dim#d0ceff
on-primary-fixed#1a1a1a
on-primary-fixed-variant#3d3d8f
secondary-fixed#e9ecef
secondary-fixed-dim#d0d0d0
on-secondary-fixed#1a1a1a
on-secondary-fixed-variant#505050
tertiary-fixed#f0f9fa
tertiary-fixed-dim#d9ecf0
on-tertiary-fixed#1a1a1a
on-tertiary-fixed-variant#0d5a6f
background#ffffff
on-background#1a1a1a
surface-variant#e9ecef

Typography

display
fontFamily: DM Sans · fontSize: 56px · fontWeight: 700 · lineHeight: 64px · letterSpacing: -0.02em
headline-lg
fontFamily: DM Sans · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.01em
headline-md
fontFamily: DM Sans · fontSize: 24px · fontWeight: 600 · lineHeight: 32px · letterSpacing: 0em
title-lg
fontFamily: DM Sans · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: DM Sans · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: DM Sans · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: DM Sans · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.02em
label-sm
fontFamily: DM Sans · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.03em

Design guidance

Overview

Solohike is a minimalist, trust-focused design system for outdoor adventure and hiking platforms. It serves solo travelers and adventure enthusiasts who value clarity, accessibility, and purposeful design. The aesthetic is 'Functional Minimalism'—a deliberate rejection of visual noise in favor of clean typography, generous whitespace, and a single accent color (#6366f1, a confident indigo) that guides user attention to critical actions and status indicators. The UI evokes a sense of calm competence: the interface recedes, letting the adventure take center stage. Voice: direct, encouraging, and grounded. The brand speaks in active verbs and concrete details—never flowery, never vague. Example: 'Your next trail awaits. Load the map, check conditions, go.'

Colors

The color palette is built on a foundation of pure white (#ffffff) and near-black (#1a1a1a), with a carefully curated accent system. Primary (#6366f1) is the signature indigo used exclusively on interactive elements—the loading spinner's active arc, focus states, and future CTAs. It is never used for passive content. Secondary (#505050) is a warm mid-gray reserved for disabled states and secondary text. The surface stack ranges from pure white (surface) through subtle grays (#f5f5f5 for surface-dim, #e9ecef for surface-container) to a pale lavender (#e5e4ff) for primary-container backgrounds. On-surface (#1a1a1a) is the primary text color, while on-surface-variant (#666666) is used for supporting copy and metadata. The tertiary color (#f0f9fa, a pale cyan) provides a soft accent for hover

Typography

The type system is anchored in DM Sans, a geometric sans-serif that balances warmth with precision. Display (56px, 700 weight, -0.02em tracking) is reserved for hero moments and rarely used; Headline-lg (32px, 600 weight) is the primary page title; Headline-md (24px, 600 weight) is used for section headers and the main loading message. Body-lg (18px, 400 weight) and Body-md (16px, 400 weight) serve body copy and descriptions. Label-md (14px, 600 weight, 0.02em tracking) is the workhorse for UI labels, button text, and supporting information. Label-sm (12px, 500 weight, 0.03em tracking) is used sparingly for metadata and tertiary information. All text uses -webkit-font-smoothing: antialiased and -moz-osx-font-smoothing: grayscale to ensure crisp rendering on macOS and Windows. Line-heights

Layout

The layout philosophy is 'centered and constrained'—a single-column, centered container (max-width: 600px) ensures focus and readability on all screen sizes. The page uses flexbox (display: flex, justify-content: center, align-items: center, min-height: 100vh) to vertically and horizontally center the loading state, creating a meditative, full-screen experience. Horizontal padding is 20px (gutter spacing) on all viewports, collapsing to 16px on mobile (max-width: 480px) to preserve screen real estate. Vertical rhythm is maintained through consistent spacing: the spinner sits 32px above the headline (margin: 0 auto 32px), the headline sits 16px above the body text (margin-bottom: 16px), and body text uses 1.5 line-height for comfortable reading. The grid is 12 columns, though this layout us

Elevation & Depth

Elevation is achieved through subtle shadows and color shifts rather than dramatic depth. The design uses a three-level shadow system: sm (0 1px 2px rgba(0, 0, 0, 0.06)) for micro-interactions like hover states on select options, md (0 3px 8px rgba(0, 0, 0, 0.15)) for dropdown panels and cards, and lg (0 8px 24px rgba(0, 0, 0, 0.12)) for modals and elevated surfaces. The loading spinner uses no shadow—it floats on the white background, separated only by whitespace. Dropdown panels (select-dropdown) apply box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) and a 1px border at #d0d0d0 to create subtle sep

Shapes

The shape philosophy is 'Geometric Precision'—a deliberate balance between sharp and soft. Border-radius follows a minimal scale: DEFAULT (0.5rem / 8px) for most interactive elements like select dropdowns and option items, md (0.75rem / 12px) for slightly larger containers, and full (9999px) for the loading spinner's circular form. The spinner's 50% border-radius creates a perfect circle (64px × 64px), while the dropdown panel uses 4px (0.25rem) for a subtle, technical appearance. This restraint in rounding reinforces the brand's minimalist, functional aesthetic—curves are purposeful, not deco

Components

Loading & Feedback The spinner-loading component is the hero of this system. It uses a 64px × 64px circle with a 4px border: border-color: #e5e4ff (primary-container, the pale lavender) and border-top-color: #6366f1 (primary, the indigo accent). The animation is spin 1s linear infinite, rotating the border continuously. On smaller screens (max-width: 480px), spinner-loading-sm reduces to 48px × 48px with a 3px border, maintaining visual weight. The spinner has no shadow and no background—it is pure geometry on white, evoking clarity and motion.

Typography & Messaging The heading-primary component (Headline-md, 24px, 600 weight, line-height: 1.4, color: #1a1a1a) displays the main message. The domain name is emphasized with font-weight: 600 (already applied via the .domain class). B

Do's and Don'ts

**Do**

  • Do use the primary indigo (#6366f1) exclusively on interactive elements—spinners, focus states, and future CTAs—to create a clear visual hierarchy.
  • Do maintain the 600px max-width container on all screen sizes to ensure focused, readable layouts.
  • Do apply DM Sans at 400 weight for body text and 600 weight for labels and headings to create clear typographic distinction.
  • Do use the surface-container-high (#f0f9fa) for hover states on dropdowns and interactive elements to signal interactivity without harsh contrast.
  • Do apply the md shadow (0 3px 8px rgba(0, 0, 0, 0.15)) to dropdown panels and elevated surfaces to create subtle depth.
  • Do use the full border-radius (9999px) for circular elements like spinners to evoke motion and progress.

**Don't**

  • Don't use primary (#6366f1) for passive content, backgrounds, or non-interactive elements—reserve it exclusively for CTAs and focus states.
  • Don't apply shadows larger than lg (0 8px 24px rgba(0, 0, 0, 0.12)) to avoid visual clutter and maintain the minimalist aesthetic.
  • Don't use border-radius values larger than 1.5rem (xl) for interactive elements; excessive rounding contradicts the geometric precision philosophy.
  • Don't mix font families; DM Sans is the sole typeface across the system—no fallbacks to system fonts in component definitions.
  • Don't apply color to text below 14px without sufficient contrast; always verify WCAG AA compliance (4.5:1 minimum for normal text).
  • Don't exceed the 600px container max-width on desktop; wider layouts dilute focus and readability.