DESIGN.md · Analysis
Cloudflare Challenge
provider.headway.co · 14 Jun 2026 · 47 colors · Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif
Cloudflare Challenge
A security verification interface that balances trust and clarity. The design conveys procedural confidence through a minimal, accessible aesthetic with strategic use of status colors for success, error, and verification states.
Colors
Typography
- display
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
- headline-lg
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.015em
- headline-md
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 24px · fontWeight: 600 · lineHeight: 32px
- title-lg
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
- body-lg
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
- body-md
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
- label-md
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
- label-sm
- fontFamily: Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em
Design guidance
Overview
Cloudflare Challenge is a security verification interface designed to communicate procedural transparency and user trust during bot-detection flows. The aesthetic follows 'Austere Clarity'—a design philosophy that strips away visual noise to focus on essential information hierarchy, using a near-white canvas (#f2f2f2) paired with a confident blue accent (#4693ff) for interactive elements. The interface serves users who are temporarily blocked and need reassurance that the verification process is legitimate, controlled, and brief. The brand personality is calm, direct, and reassuring—never alarming. Example voice: 'Verifying you are human. This may take a few seconds.'
Colors
The color system uses a light-dominant palette anchored by a near-white surface (#f2f2f2) that conveys openness and trustworthiness. Primary (#4693ff) is the signature accent, used exclusively on interactive elements (links, focus states, primary buttons) to draw attention without overwhelming. Secondary (#2db35e) signals successful verification states, while Tertiary (#fc574a) and Error (#b20f03) communicate failure or warning conditions. The surface stack progresses from #f9f9f9 (surface-container-lowest, for subtle depth) through #f2f2f2 (base) to #e0e0e0 (surface-container-highest, for elevated containers). On-surface text is #313131, a near-black that maintains 7:1 contrast against the light background. Focus states use a 2px solid outline in primary (#4693ff) with 2px offset, applied
Typography
The type system uses Segoe UI / Roboto as the primary font stack, chosen for their clarity and universal availability across platforms—critical for a security-sensitive interface where users must trust the content. Display (40px, 600 weight, -0.02em tracking) anchors the domain name at the top, establishing immediate context. Headline-md (24px, 600 weight) is used for status messages ('Verifying you are human'). Body-md (16px, 400 weight, 24px line-height) carries explanatory text, with generous line-height to ensure readability during potentially stressful moments. Label-md (14px, 600 weight, 0.01em tracking) is applied to buttons and interactive labels. All text uses a neutral gray (#313131) except on colored backgrounds, where it shifts to white for contrast. Apply text-shadow: 0 1px 2p
Layout
The page uses a centered, single-column layout with a max-width of 960px, reflecting the austere, focused aesthetic. The main content container sits at margin-top: 8rem on desktop (4rem on mobile ≤720px), creating breathing room above the verification card. Padding-left: 1.5rem ensures mobile safety. The grid is 12-column but typically uses 1–2 columns of content, leaving ample white space on either side. Spacing follows the semantic scale: lg (40px) separates major sections (heading from card), md (24px) separates card content internally, and sm (12px) is used between form elements. This rhythm creates a calm, unhurried visual experience—critical for users who may be anxious about being blocked.
Elevation & Depth
Depth is conveyed through subtle shadows and border treatments rather than dramatic layering. The base surface (#f2f2f2) has no shadow. Cards use box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) (md elevation) to separate them from the background, creating a single, clear layer of hierarchy. On hover, cards elevate to box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) (lg elevation), signaling interactivity. All cards have a 1px solid border in outline-variant (#d0d0d0) to define edges crisply. Status icons (success, error, verifying) use inset box-shadow: inset 0 0 0 [color] to create a hollow, animated eff
Shapes
The shape philosophy is 'Geometric Minimalism'—sharp, precise corners that convey technical competence and security. Buttons and inputs use border-radius: 1rem (16px) for a subtle, modern softness without appearing playful. Cards use border-radius: 0.5rem (8px), slightly sharper than buttons, to differentiate container types. Focus outlines use border-radius: 2px (0.125rem), creating crisp, technical rectangles that signal keyboard accessibility. Status icons use border-radius: 50% for perfect circles, a universal symbol of completion or state. The overall effect is 'technical yet approachable
Components
Action Elements Buttons use a 44px height (padding: 12px 24px, typography: label-md) for comfortable touch targets. Primary buttons have backgroundColor: {colors.primary} (#4693ff), textColor: white, and no border. On hover, the background shifts to #3a7fd9 (a 15% darker blue), signaling interactivity without animation lag. On focus, apply outline: 2px solid #4693ff with outline-offset: 2px and border-radius: 2px for keyboard users. Secondary buttons use a transparent background with a 1px border in outline (#b6b6b6), and on hover, the background becomes surface-container-high (#ececec). Links use textColor: {colors.primary} with text-decoration: underline, and on focus, apply the same 2px outline treatment.
Containers & Surfaces Cards are the primary container, with backgroundCol
Do's and Don'ts
**Do**
- Do use primary (#4693ff) exclusively for interactive elements—buttons, links, focus outlines—to create a single, trustworthy accent that users learn to recognize.
- Do maintain the 2px outline with 2px offset on all focus states; this is critical for keyboard accessibility and conveys technical rigor.
- Do apply box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) to cards and dropdowns; this subtle shadow creates depth without visual noise.
- Do use status colors (green #2db35e for success, red #b20f03 for error) consistently across all verification states; users rely on color to quickly parse outcomes.
- Do preserve the near-white background (#f2f2f2) and avoid gradients or textures; the austere aesthetic builds trust through clarity.
**Don't**
- Don't use primary (#4693ff) for body text or backgrounds; reserve it exclusively for interactive elements to maintain visual hierarchy.
- Don't apply box-shadow values larger than 0 8px 24px rgba(0, 0, 0, 0.12); deeper shadows undermine the austere, lightweight aesthetic.
- Don't use border-radius values smaller than 2px on focus outlines; crisp, technical rectangles signal accessibility and security.
- Don't introduce new accent colors beyond primary, secondary, and tertiary; the limited palette reinforces trust and reduces cognitive load.
- Don't animate transitions faster than 0.3s or slower than 0.6s on status icons; the timing must feel responsive without appearing frantic or sluggish.
Edit, then copy or download.