Design language comparison
Frame vs Raycast
Both Frame and Raycast commit to a dark-canvas approach, and they pair different display families (Times New Roman vs Inter). Beyond surface, motion levels are both expressive.
Palette · side by side
Up to 8 dominant swatches eachSide A · dark
Frame
Full Page
#fcfcfc
background
#eaeaff
background
#000000
foreground
#6199f6
accent
#0d0d18
background
#f5f5f8
background
Side B · dark
Raycast
Full Page
#ffffff
background
#000000
foreground
#434345
foreground
#6a6b6c
foreground
#9c9c9d
foreground
#e6e6e6
background
#02193b
accent
#2f3031
foreground
Typography · side by side
Primary family + weight ladder + sampleSide A · dark
Frame
Full Page
- Display
- FrameGothic
- Body
- Times New Roman
- Weights
- 400 · 500 · 600
Sample
The quick brown fox jumps over the lazy dog.
1234567890 — Body sample renders in the captured family if your browser has it; otherwise system fallback signals the weight ladder.
Side B · dark
Raycast
Full Page
- Display
- Inter
- Body
- SF Pro Text
- Weights
- 400 · 500 · 600
Sample
The quick brown fox jumps over the lazy dog.
1234567890 — Body sample renders in the captured family if your browser has it; otherwise system fallback signals the weight ladder.
Spacing scale · side by side
Base unit + first 8 scale valuesSide A · dark
Frame
Full Page
- Base unit
- 4 px
- Container max
- 1440 px
Side B · dark
Raycast
Full Page
- Base unit
- 4 px
- Container max
- 1204 px
Motion vocabulary · side by side
Level + durations + easingsSide A · dark
Frame
Full Page
- Level
- expressive
- Libraries
- —
Durations
Easings
Side B · dark
Raycast
Full Page
- Level
- expressive
- Libraries
- —
Durations
Easings
Palette & spacing overlap
Their palettes share 6% of swatches at the dominant tier — a quiet signal both teams drew from the same neutral library before applying brand accents. Their spacing scales overlap by 67% (4, 6, 8, 10, 12 px shared) — a rhythm any agent can transfer between the two systems with minimal recalibration.
Shared swatches (1)
Curator verdict
If you are building an interface that needs to reference both, Frame's restraint reads as the safer default and Raycast's rhythm provides the accent moments — pair them at section-level, not at component-level.