Cal.com · Full Page
Cal.com
Open-source scheduling that refuses to look open-source — Cal Sans display, ink-on-paper minimalism, classic-blue link. A Calendly alternative with the source in your hands.

Editorial disclaimer
Editorial noteThis entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm — do not reproduce brand identity, logo, product copy, or proprietary features.
Curator verdict
Why we catalogued it?
Cal.com is what happens when an open-source project refuses to look open-source — it carries the same product-grade polish as the closed incumbent it set out to replace, then hands you the source. We catalogued it because it threads a needle most scheduling tools fumble: a developer-trust posture (Cal Sans wordmark, the unmistakable #0000ee hyperlink blue worn as a badge of honor) layered over a genuinely warm, near-white consumer surface that books a meeting in two taps. If you are building infrastructure that has to feel both hackable and human, this is the landing to keep open in the next tab.
Design decisions observed
- Black-on-white as a stance, not a default — Cal.com runs an almost monochrome canvas (#000000 ink on #ffffff paper) and lets the single brand blue do all the pointing. The restraint reads as confidence, the way a terminal does.
- The hyperlink blue worn on purpose — #0000ee is the browser's own un-styled link color, and Cal.com leans into it as identity rather than overriding it. It's a quiet wink at the open-web, developer-native audience.
- A bespoke display face carrying the wordmark — Cal Sans does the brand-voice work up top while Inter and the Matter family handle the dense reading layers underneath. One personality font, several workhorses.
- Soft multi-layer shadows instead of hard borders — cards lift on stacked low-opacity rgba(34,42,53,…) shadows rather than 1px strokes, giving the surface a tactile, paper-on-paper warmth uncommon in dev tooling.
- Granular radius rhythm — a stepped 2 → 4 → 8 → 12 → 16px scale (with the odd 6.94px optical correction) keeps chips, buttons, cards, and modals visually related without ever feeling rubber-stamped.
- Tight micro-spacing under a comfortable macro-rhythm — a 2px floor and a heavily-used 10px gap drive dense control clusters, while 24px padding gives sections room to breathe.
What to study
- How an open-source brand earns consumer-grade trust — Cal.com never looks like a GitHub README. Steal the move: production polish on the marketing surface, hackability reserved for the docs.
- The single-accent discipline — one saturated blue against a black-and-white field does every job a rainbow palette pretends to. Learn how committing to one pointer color sharpens an entire page.
- Display-plus-workhorse type pairing — a custom personality face (Cal Sans) for the wordmark and a small set of neutral families (Inter, Matter) for everything else. Note how little the brand font actually has to appear to set the tone.
- Soft elevation as warmth — study the layered low-opacity shadow recipes; they make a stark monochrome page feel approachable rather than clinical.
What to avoid
- Don't read the raw #0000ee as license to ship un-themed link blue everywhere — on Cal.com it's a deliberate brand signal in a controlled context. Drop it into a generic SaaS page and it just looks unstyled.
- Don't copy the Framer-hosted font stack literally (Matter Regular/SemiBold, Cal Sans UI Variable Light live on framerusercontent.com) — those are the marketing site's build artifacts. Self-host Cal Sans + Inter and skip the rest.
- Don't mistake the monochrome restraint for low effort — the warmth lives entirely in the shadow and radius work. Strip those and you get a cold, empty page, not a minimal one.
Taste notes
Cal.com feels like a well-made open-source tool that happens to have excellent taste — black ink on white paper, one decisive blue, and just enough soft shadow to keep the whole thing from feeling sterile. The personality lives in small places: the Cal Sans wordmark, the deliberately un-overridden hyperlink color, the 6.94px radius that betrays an obsessive optical eye. It's a page that trusts its audience to recognize craft without being shouted at, and reads as infrastructure you'd actually want to self-host.
Lineage & references
- The open-source answer to Calendly — Cal.com re-pitched scheduling as infrastructure you can fork, self-host, and embed, the way Supabase did to Firebase and Posthog did to analytics.
- Sits in the developer-first, open-core cohort (Supabase, PostHog, Resend) — landing pages that sell to engineers by looking like products engineers would build, not by hiding the source.
- Part of the Framer-built marketing generation (Resend, many 2024+ dev-tool sites) — fast, polished, near-monochrome pages where one accent color and a single display face carry the entire brand.
Design language brief
Paste-ready for your agent.
A typed design system transfer brief — philosophy, tokens, rules, techniques, and fitness checks. Your agent reads the whole language, not just the pixels.
Philosophy
Light-first monochrome with one decisive accent. The canvas is paper-white (#ffffff) under near-black ink (#000000 → #242424); a single saturated brand blue (#0000ee — the browser's own hyperlink color, worn on purpose) is the only chromatic pointer. Personality lives in the Cal Sans display face on the wordmark and headings, while Inter and the Matter family carry every dense reading layer. Elevation comes from soft, stacked low-opacity shadows — not hard borders — giving a stark page tactile warmth. Spacing runs tight (2px floor, 10px workhorse gap) under a comfortable 24px section rhythm. Open-source craft that looks like a finished product.
Main prompt
Use this capture as a design language transfer brief for my project. Adopt the palette (light-first paper-white #ffffff background + near-black #000000/#242424 ink + a single saturated #0000ee brand-blue accent used only as the pointer/link/primary color), the typographic rhythm (Cal Sans display face for wordmark + headings, Inter / Matter for body and UI), the granular radius scale (2/4/6/8/10/12/16px), soft multi-layer shadow elevation instead of hard borders, a tight 2px-floor spacing scale with a 10px workhorse gap, and a restrained Framer-Motion-grade motion posture across every page and component I ship. Treat this as my project's constitution — any new component I author should pass as if crafted in the same studio. Apply the language, not the source brand's specific copy, wordmark, or identity. When I ask you to build a page or component, enforce these rules by default, and call out any decision that deviates.
Overview
- Layout
- Grid
- Content width
- Bounded
- Framing
- Flat
- Grid strength
- Soft
Color philosophy
Light-first monochrome — #ffffff paper under #000000 primary ink (a measured 3631 occurrences, dominant reading layer) descending through #242424 secondary text. Neutral structure is carried by warm-cool grays #e0e0e0 / #e5e7eb / #898989. The entire chromatic identity is a single saturated brand blue #0000ee (the un-overridden browser hyperlink color, isBrandTier), used exclusively as accent / link / primary — never as a fill across large surface area. Deeper grays #374151 / #9ca3af handle de-emphasized UI text.
- Near-black #000000 ink (~3631 measured occurrences) is the dominant reading layer; #242424 for slightly de-emphasized body (~360 occurrences)
- Paper-white #ffffff is the default canvas; #e0e0e0 and #e5e7eb provide hairline dividers, input fills, and disabled surfaces
- Brand blue #0000ee reserved for links, primary CTA, and focus accents — surface area stays well under ~5%, never a section background
- Cool gray descender #374151 / #9ca3af for captions, metadata, placeholder text
- #898989 mid-gray for secondary borders, icon strokes, and muted controls — never for body copy on white (fails AA below large sizes)
Gradients (paste-ready)
linear-gradient(rgb(41, 41, 41) 0%, rgb(36, 36, 36) 100%) linear-gradient(rgb(252, 252, 252) 0%, rgb(255, 255, 255) 100%) linear-gradient(rgb(247, 247, 248) 0%, rgb(234, 234, 235) 100%) radial-gradient(50% 50%, rgba(255, 255, 255, 0) 87.1499%, rgb(255, 255, 255) 100%)
Typography rules
- Display family: Cal Sans (self-host from the project's /fonts, woff2 + display:swap). Used for the wordmark and large headings only — it is the brand's personality, not a body face.
- Workhorse families: Inter (UI labels, dense controls, captions) and the Matter family (Regular / Medium / SemiBold / Bold) for marketing body copy. One display face, a small set of neutral workhorses.
- Observed weight set: Cal Sans 600 on headings; Inter 400 / 500; Matter 400 (Regular/Medium) and SemiBold for headings. Do not introduce a second display weight ladder — let Cal Sans carry one bold register.
- Heading sizes observed: Cal Sans 24px / line-height 31.2px (heading-large), 18px (heading-3 via Cal Sans UI Variable Light, weight 300, tracking -0.2px), 12px Cal Sans 600 for eyebrow/label headings.
- Body sizes cluster at 14px (Inter 500 / line-height 16px; Matter 400 / line-height 21px) and 16px (line-height 24px). Captions descend to 12px (line-height 18px) and 9.71px for fine print (Inter, line-height 11.1px).
- Tracking is near-default — only the Cal Sans UI Variable Light 18px heading carries a measured -0.2px. Do not invent aggressive negative tracking; this brand sits close to normal letter-spacing.
- Paragraph max ~55-65 ch at body 14-16px. No italic for emphasis — shift to Matter Medium/SemiBold or Cal Sans instead.
Spacing rules
- 2px base floor. Observed scale: 2 / 4 / 6 / 8 / 10 / 12 / 16 / 20 / 24 / 28 / 32 / 40 px. The 10px value is the single most-used gap (478 occurrences) — treat it as the workhorse rhythm, with 4px (413) and 24px (200) close behind.
- Section/card padding leans on 24px (200 occurrences) for comfortable blocks and 16px for tighter cards; micro-padding uses 2-8px inside dense controls.
- Flex/grid gutters observed at 10 / 4 / 12 / 8 / 16 px (descending frequency); larger 24 / 32 / 48 px gaps appear between major sections only.
- Container max-width observed at 1224px (44 occurrences) as the primary bound, with 1280 / 1200 / 960 / 640 px secondary rails. Default page bound to ~1224px, not the generic 1280.
- Always pick from the observed ladder; no magic numbers. The 6px and 12px steps are the connective tissue between micro and macro spacing.
Design tokens
Palette, type, and space — all agent-readable.
15 colors · hex / rgb / hsl / oklch
- foreground76%
- HEX
#000000 - RGB
rgb(0, 0, 0) - HSL
hsl(0, 0%, 0%) - OKLCH
oklch(0.00% 0.0000 0.00)
- HEX
- foreground8%
- HEX
#242424 - RGB
rgb(36, 36, 36) - HSL
hsl(0, 0%, 14%) - OKLCH
oklch(26.03% 0.0000 89.76)
- HEX
- background5%
- HEX
#898989 - RGB
rgb(137, 137, 137) - HSL
hsl(0, 0%, 54%) - OKLCH
oklch(63.01% 0.0000 89.76)
- HEX
- background4%
- HEX
#FFFFFF - RGB
rgb(255, 255, 255) - HSL
hsl(0, 0%, 100%) - OKLCH
oklch(100.00% 0.0000 89.76)
- HEX
- accent4%
- HEX
#0000EE - RGB
rgb(0, 0, 238) - HSL
hsl(240, 100%, 47%) - OKLCH
oklch(42.90% 0.2973 264.05)
- HEX
- background2%
- HEX
#E0E0E0 - RGB
rgb(224, 224, 224) - HSL
hsl(0, 0%, 88%) - OKLCH
oklch(90.67% 0.0000 89.76)
- HEX
- background1%
- HEX
#E5E7EB - RGB
rgb(229, 231, 235) - HSL
hsl(220, 13%, 91%) - OKLCH
oklch(92.76% 0.0058 264.53)
- HEX
- foreground0%
- HEX
#374151 - RGB
rgb(55, 65, 81) - HSL
hsl(217, 19%, 27%) - OKLCH
oklch(37.29% 0.0306 259.73)
- HEX
- foreground0%
- HEX
#9CA3AF - RGB
rgb(156, 163, 175) - HSL
hsl(218, 11%, 65%) - OKLCH
oklch(71.37% 0.0192 261.32)
- HEX
Inspector
Tab through the captured artifacts.
Six observable layers — page structure, fonts, breakpoints, z-index, gradients, motion — kept paste-ready alongside the tokens above.
Page structure
Semantic hierarchy at a glance.
Depth-first walk of meaningful sections — header, navigation, main regions, articles, footer. 2 nodes captured; depth capped at 6 for readability.
- body
- └─ div
Accessibility
WCAG contrast matrix.
160 combinations · 80 pass AA · 56 pass AAA · APCA Lc shown alongside WCAG 2.1 ratio for draft WCAG 3 awareness.
| Preview | fg | bg | Ratio | Normal | Large | APCA Lc | Context |
|---|---|---|---|---|---|---|---|
Aa | #000000 | #FFFFFF | 21.00 | AAA | AAA | +106 | foreground on background |
Aa | #FFFFFF | #000000 | 21.00 | AAA | AAA | -108 | background on foreground |
Aa | #000000 | #D6ECFE | 17.29 | AAA | AAA | +93 | foreground on background |
Aa | #D6ECFE | #000000 | 17.29 | AAA | AAA | -94 | background on foreground |
Aa | #000000 | #E5E7EB | 16.96 | AAA | AAA | +92 | foreground on background |
Aa | #E5E7EB | #000000 | 16.96 | AAA | AAA | -92 | background on foreground |
Aa | #000000 | #E9DDFD | 16.23 | AAA | AAA | +89 | foreground on background |
Aa | #E9DDFD | #000000 | 16.23 | AAA | AAA | -89 | background on foreground |
Aa | #000000 | #E0E0E0 | 15.91 | AAA | AAA | +88 | foreground on background |
Aa | #E0E0E0 | #000000 | 15.91 | AAA | AAA | -88 | background on foreground |
Image strategy
Asset loading & format policy.
Observable image posture — total count, lazy-loading ratio, and format mix. Hero image is measured above the fold.
Hero image
https://framerusercontent.com/images/1bvk9THj74PqBkpBJDHFbQS9om4.png?width=64&height=96- Format
- PNG
- Dimensions
- 64×96
- Loading
- auto
- srcset
- no
- Full Page
- saas
- productivity
- light
- 2026-06-23
Editorial credit
Featured Sponsor slot — your brand here
Dedicated logo placement — no rotation, on every export.
COMPARE THIS WITH
Side-by-side reads sharing this design signal.
See also


