- fg
#FCFCFC- bg
#000000- APCA Lc
- -106
- Use
- background on foreground
Frame
Dark-first cinema-tooling landing for the Adobe-acquired video collaboration platform. FrameGothic carries the entire brand voice in three weights; a single cobalt accent appears only where the page wants you to click. Restraint as identity — the product UI screenshots are the spectacle, the page is the calm before the cut.

Editorial disclaimer
This 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.
Fair Use & Gallery PolicyCopy the full design language into your agent
A typed, paste-ready design system brief - philosophy, tokens, rules, techniques, and fitness checks. Drop it into Claude, Cursor, v0 or any coding agent and it builds in Frame’s language, not just a screenshot.
Dark-first cinema-tooling canvas. Pure #000 ground for product UI screenshots, off-white #fcfcfc primary text, slate #eaeaff alpha for de-emphasised reading layers. Typography carries the entire personality: FrameGothic Variable (400/500/600) handles UI + body, NeueMachinaInktrap as a display-only voice for marketing headlines. Cobalt #6199f6 is the sole functional accent — CTAs, active states, focus rings — kept under 2% of surface. Elevation is restrained: 4 shadow variants total, mostly subtle inset/drop combos that feel like product chrome. Motion is expressive but never decorative — 10 transitions calibrated for product-feel scrub interactions.
Use this capture as a design language transfer brief for my project. Adopt the palette (dark-first #000 canvas + #fcfcfc primary text + #eaeaff alpha descender + single cobalt #6199f6 accent at <2% surface), single-family typography discipline (FrameGothic Variable in weights 400/500/600 for everything, NeueMachinaInktrap reserved for display moments only), 4px-base spacing scale with heavy use at 4/6/8/10/12/16, 1068px content rail inside 1440px hero canvas, restrained 4-variant shadow system, expressive but disciplined motion (10 transitions, weighted easings, no decorative animation), and 389/768/897/1158/1500 breakpoint ladder. Treat this as my project's constitution — every new component should pass as if engineered in the same studio. Apply the language, not the source brand's copy or identity. When I ask you to build a page or component, enforce these rules by default and call out any deviation.
- Layout
- Single-column reading flow on a dark canvas, with product UI screenshots breaking out of the content rail for cinematic full-bleed moments.
- Content width
- 1068px content rail centred inside 1440px hero canvas; screenshots may break out to 1440 for emphasis.
- Framing
- Dark-room cinema with restrained typography setting the tone before any UI screenshot loads.
- Grid strength
- Light grid — 4px base unit governs spacing but is invisible to the eye; reading rhythm comes from typography size jumps rather than grid lines.
Pure #000 ground holds the page; #fcfcfc primary text + #eaeaff alpha descender carry reading; single cobalt #6199f6 accent earns attention by scarcity.
- #000000 is the only background colour — no charcoal, no near-black, no off-shades
- #fcfcfc primary text 60% of the type surface, #eaeaff alpha for secondary copy and metadata
- #6199f6 cobalt accent exclusively on CTAs, focus rings and active nav states (under 2% total surface)
- #0d0d18 used sparingly for elevated surfaces (cards, hover states) — visible only by contrast
Gradients (paste-ready)
10 gradients catalogued, all atmospheric — soft cobalt light leaks at hero edges, never as fill
- FrameGothic Variable is the sole interface family — UI labels, body copy, navigation, captions, all 400/500/600 weights only
- NeueMachinaInktrap appears only in display headlines (32px+) and brand mark — never below 24px
- Reading copy sits at 13-15px, optical adjustments preserved at small sizes
- Line-height 1.4-1.5 for body, 1.05-1.15 for display — tight stack respects the small reading size
- Letter-spacing left at 0 for body; -0.01em to -0.02em for display headlines only
- 4px base unit, heaviest use at 4/6/8/10/12/16px increments
- Section vertical rhythm: 80-120px between major content blocks
- Card internal padding: 16-24px standard; CTA padding: 14px vertical / 24px horizontal
- Avoid spacing values above 64px inside the content rail — keep the reading dense
- 4 shadow variants total — keep the system contained
- Hover state: 1-2px Y translate + shadow opacity bump from 0.12 to 0.18
- Active/pressed: shadow opacity drops to 0.08 + 1px inset highlight on top edge
- Modal/dialog: heavier shadow (0 24px 60px rgba(0,0,0,0.45)) + 1px border on the surface
Techniques
Cinematic card
1px hairline rgba(255,255,255,0.06) + drop shadow 0 8px 24px rgba(0,0,0,0.35); no inner glow.
Hairline-only divider
Inline borders use rgba(234,234,255,0.08) — visible but never demanding attention.
- Buttons: 6-8px radius — never fully pill, never sharp
- Cards: 8-12px radius — slightly softer than buttons
- Images and product UI screenshots: 4-6px radius — minimal, lets the product speak
Primary CTA button- background
- #6199f6
- textColor
- #000000
- fontWeight
- 600
- fontSize
- 14px
- padding
- 14px 24px
- borderRadius
- 8px
- shadow
- 0 1px 0 rgba(255,255,255,0.18) inset, 0 8px 20px rgba(97,153,246,0.32)
- hover
- background lightens to #7eb0ff + shadow bump
Tailwind
inline-flex items-center gap-2 rounded-lg bg-[#6199f6] px-6 py-3.5 text-sm font-semibold text-black shadow-[0_1px_0_rgba(255,255,255,0.18)_inset,0_8px_20px_rgba(97,153,246,0.32)] transition hover:bg-[#7eb0ff]
Dark feature card- background
- #0d0d18
- border
- 1px solid rgba(234,234,255,0.06)
- borderRadius
- 12px
- padding
- 24px
- shadow
- 0 8px 24px rgba(0,0,0,0.35)
Tailwind
rounded-xl border border-white/[0.06] bg-[#0d0d18] p-6 shadow-[0_8px_24px_rgba(0,0,0,0.35)]
Easings
cubic-bezier(0.4, 0, 0.2, 1)cubic-bezier(0.16, 1, 0.3, 1)Scroll patterns
- Fade-in + 16px upward translate on viewport entry (one-shot, no parallax)
- Sticky nav darkens by 4% opacity after 80px scroll
- Reserve animation for state changes — no decorative idle motion
- Respect prefers-reduced-motion: collapse to opacity-only fades
- Hover lifts cards subtly — never floats them
- Focus rings use the cobalt accent at full saturation + 2px offset
- Active state inversion: button bg drops 8% lightness, text stays #000
Custom ladder (389/768/897/1158/1500) tuned to the FrameGothic optical sweet spots, not the Tailwind defaults.
- <768: single column, 16px gutter, no break-out
- 768-1158: content rail 720-960px, no full-bleed
- ≥1158: full 1068 rail + 1440 hero break-out moments
- WCAG AA contrast minimum on body text (#fcfcfc on #000 is 18.9:1)
- Focus-visible rings on every interactive element
- Cobalt accent on dark passes AA for UI text (4.8:1)
Product UI screenshots dominate the visual content; illustration is absent — typography is the visual.
- Variable fonts preloaded with rel=preload + woff2 format
- Product UI captures rendered at retina resolution
- Use FrameGothic for everything — UI, body, captions, nav
- Reserve the cobalt accent for true call-to-action moments
- Let product UI screenshots be the spectacle, not decorative imagery
- Keep the page dense — 13-15px body is a feature, not a bug
- Don't introduce a second sans family — single-family discipline is the brand
- Don't paint surfaces in cobalt — it bleeds the prestige
- Don't add decorative idle animation — motion belongs to state changes
- Don't lighten the background — pure #000 is non-negotiable
- Dark-only — no light mode variant
- FrameGothic family only — secondary display reserved for display sizes
- Accent under 2% of surface — measure before shipping
- Font-family grep: only `FrameGothic` and `NeueMachinaInktrap` appear
- Background colour grep: only `#000000` for the page ground (allow #0d0d18 for cards only)
- Accent colour count: cobalt appears in fewer than 5 surfaces per viewport
- Body text size: every instance falls in 13-15px range
- Shadow variants total: <= 4 distinct values site-wide
Design tokens
Observed token system
Color, type, spacing, gradients, and stacking order captured from the live page and rendered here as living, paste-ready previews.
Inspector
Observable layers
Structure, breakpoints, motion, fonts, and images captured from the live page and kept paste-ready alongside the tokens.
Depth-first walk of the meaningful sections. 11 nodes across 7 levels, shallow to deep by color.
- body2
- Header1
- div1
- Nav
- div (×3)2
- Main1
- div (×5)1
- Section1
- div1
- Article (×4)
- Footer
Accessibility
Contrast matrix
22 combinations - 16 pass AA - 14 pass AAA. Each pair is previewed with its real foreground on background; APCA Lc sits alongside the WCAG 2.1 ratio for draft WCAG 3 awareness.
- fg
#000000- bg
#FCFCFC- APCA Lc
- +104
- Use
- foreground on background
- fg
#000000- bg
#F5F5F8- APCA Lc
- +100
- Use
- foreground on background
- fg
#F5F5F8- bg
#000000- APCA Lc
- -101
- Use
- background on foreground
- fg
#FCFCFC- bg
#0D0D18- APCA Lc
- -106
- Use
- background on background
- fg
#0D0D18- bg
#FCFCFC- APCA Lc
- +104
- Use
- background on background
- fg
#0D0D18- bg
#F5F5F8- APCA Lc
- +100
- Use
- background on background
- fg
#F5F5F8- bg
#0D0D18- APCA Lc
- -101
- Use
- background on background
- fg
#EAEAFF- bg
#000000- APCA Lc
- -95
- Use
- background on foreground
Images
Image strategy
Observable image posture - total count, lazy-loading ratio, and format mix. The hero image is measured above the fold.
- png71 · 89%
- jpg9 · 11%
Hero image
https://cdn.sanity.io/images/s6lu43cv/production-v4/7a478723f741b7c66f9f76ad116bc7d3fcfc05cd-3840x2160.jpg?w=1920&h=1080&q=30&auto=format&fit=max- Format
- JPG
- Dimensions
- 1920x1080
- Loading
- auto
- srcset
- yes
- Industry
- design-tools
- Industry
- saas
- Industry
- content
- Theme
- Dark
- Added
- 2026-05-15
FAQ
Questions people ask about Frame
3questionsAnswers are pulled from the curator verdict and design brief - the same text your AI agent sees when it paste-reads this page.
Compare this with



