GrammarlyBrand
DESIGN.md · measured October 23, 2026
Sanjaya design system
Light monochrome interface measured from sanjaya.framer.ai: Geist type with sans-serif, flat surfaces and 8px corners.
- Background
- #FFFFFF
- Primary
- #000000
- Type
- Geist
- Corners
- 8px
From sanjaya.framer.ai ↗ · 331 elements at 1440×900 and 390×844 · Independent analysis, not affiliated with Sanjaya
Sanjaya colors
6 roles measured on the page, grouped by where each color is used.
Surfaces
#FFFFFFbackgroundPage background#1A1A1Dinverse-surfaceHigh-contrast fills · 10×Text
#000000on-surfacePrimary text and headings#FFFFFFon-primaryText and icons on primaryAccents
#000000primaryPrimary actions (the main text color; the palette is monochrome) · 43×Status
#DE362AerrorErrors and destructive states · 2×Sanjaya fonts
3 families.
mobile 40px
mobile 28px
mobile 22px
Contrast
Text on #FFFFFF
21.0:1Spacing
No strict grid · 36% are multiples of 4px
sm8pxmd10pxlg20pxxl64pxgutter10pxsection100pxmargin20pxBreakpoints: 809px 809.98px 810px 1199px 1199.98px
Shapes
Corner radii, most used first.
Depth
Flat: no shadows measured.
Components
Rebuilt from the measured CSS.
Motion
Interface transitions
0.4s0.001scubic-bezier(0.44, 0, 0.56, 1)ease
Do’s and don’ts
Rules written from the measurements, so a coding agent stays on style.
- Use #FFFFFF for the page.
- Let contrast carry emphasis; primary actions use #000000 on #FFFFFF.
- Set headlines in Geist with tight tracking (-0.05em).
- Reuse the measured spacing steps (8px, 10px, 20px).
- Use 8px corners on most elements; larger surfaces also use 10px.
- Add drop shadows for depth; use borders and contrast.
- Introduce new font families beyond Geist, sans-serif and Geist Mono.
- Add saturated accent colors; the measured palette is almost entirely neutral.
- Make interface transitions slower than 0.4s.
---
version: alpha
name: Sanjaya
description: "Light monochrome interface measured from sanjaya.framer.ai: Geist type with sans-serif, flat surfaces and 8px corners."
colors:
background: "#FFFFFF"
surface: "#FFFFFF"
on-surface: "#000000"
on-background: "#000000"
primary: "#000000"
on-primary: "#FFFFFF"
inverse-surface: "#1A1A1D"
error: "#DE362A"
typography:
headline-display:
fontFamily: Geist
fontSize: 56px
fontWeight: 400
lineHeight: 1
letterSpacing: -0.05em
headline-lg:
fontFamily: Geist
fontSize: 48px
fontWeight: 400
lineHeight: 1
letterSpacing: -0.05em
headline-md:
fontFamily: Geist
fontSize: 38px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.05em
headline-sm:
fontFamily: Geist
fontSize: 32px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.05em
title-lg:
fontFamily: Geist
fontSize: 24px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.05em
body-md:
fontFamily: Geist
fontSize: 16px
fontWeight: 400
lineHeight: 1.4
letterSpacing: -0.02em
body-lg:
fontFamily: Geist
fontSize: 18px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.04em
body-sm:
fontFamily: Geist
fontSize: 14px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.02em
label-lg:
fontFamily: Geist
fontSize: 14px
fontWeight: 500
lineHeight: 1
letterSpacing: -0.02em
label-md:
fontFamily: Geist
fontSize: 13px
fontWeight: 600
lineHeight: 1.5
letterSpacing: -0.02em
label-sm:
fontFamily: sans-serif
fontSize: 12px
fontWeight: 400
code:
fontFamily: Geist Mono
fontSize: 12px
fontWeight: 400
lineHeight: 1.2
letterSpacing: 0.08em
headline-display-mobile:
fontFamily: Geist
fontSize: 40px
fontWeight: 400
lineHeight: 1
letterSpacing: -0.05em
headline-lg-mobile:
fontFamily: Geist
fontSize: 28px
fontWeight: 400
lineHeight: 1
letterSpacing: -0.05em
headline-md-mobile:
fontFamily: Geist
fontSize: 22px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.05em
rounded:
sm: 8px
md: 10px
spacing:
sm: 8px
md: 10px
lg: 20px
xl: 64px
gutter: 10px
section: 100px
margin: 20px
components:
button-ghost:
textColor: "{colors.on-surface}"
typography: "{typography.label-sm}"
rounded: "{rounded.sm}"
padding: 0px
input-field:
textColor: "{colors.on-primary}"
typography: "{typography.label-lg}"
rounded: 0px
padding: 0px
---
# Sanjaya Design System
## Overview
Sanjaya describes itself as: “Get more discovery calls, build instant credibility, and look like the premium AI agency you are. Sanjaya is a Framer template designed specifically for automation and AI consulting businesses.” The interface is light, built on **White (#FFFFFF)** with **Near Black (#000000)** text and almost no color: actions are carried by contrast, not hue.
Type is set in **Geist** and **sans-serif**, with **Geist Mono** for code. Headlines run large with tight negative tracking; body text is 16px. The surface language is flat. Corners are mostly 8px.
Measured from [sanjaya.framer.ai](https://sanjaya.framer.ai/) on October 23, 2026 at 1440×900 and 390×844 from 331 rendered elements. Values are computed styles from the live page, not the original source files.
## Colors
The palette has 6 roles.
- **White (#FFFFFF):** Page background. Token `background`.
- **Near Black (#000000):** Primary text and headings. Token `on-surface`.
- **Near Black (#000000):** Primary actions (the main text color; the palette is monochrome), seen 43 times. Token `primary`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
- **Charcoal (#1A1A1D):** High-contrast fills, seen 10 times. Token `inverse-surface`.
- **Red (#DE362A):** Errors and destructive states, seen 2 times. Token `error`.
## Typography
**Geist**, **sans-serif** and **Geist Mono** (monospace) share the interface. Fallback stack: `Geist, Geist Placeholder, sans-serif`.
- **headline-display:** Geist 56px at weight 400, line height 1, tracking -0.05em (40px on mobile). Page title (h1).
- **headline-lg:** Geist 48px at weight 400, line height 1, tracking -0.05em (28px on mobile). Section headings (h2).
- **headline-md:** Geist 38px at weight 400, line height 1.2, tracking -0.05em (22px on mobile). Sub-section headings.
- **headline-sm:** Geist 32px at weight 400, line height 1.2, tracking -0.05em. Card and feature titles.
- **title-lg:** Geist 24px at weight 400, line height 1.2, tracking -0.05em. Small titles.
- **body-md:** Geist 16px at weight 400, line height 1.4, tracking -0.02em. Body text.
- **body-lg:** Geist 18px at weight 400, line height 1.2, tracking -0.04em. Lead paragraphs.
- **body-sm:** Geist 14px at weight 400, line height 1.2, tracking -0.02em. Secondary and small text.
- **label-lg:** Geist 14px at weight 500, line height 1, tracking -0.02em. Large buttons and tabs.
- **label-md:** Geist 13px at weight 600, line height 1.5, tracking -0.02em. Buttons, navigation and labels.
- **label-sm:** sans-serif 12px at weight 400. Small labels and badges.
- **code:** Geist Mono 12px at weight 400, line height 1.2, tracking 0.08em, uppercase. Code and technical values.
## Layout
Spacing does not follow a strict grid: 36% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.
- **Scale:** sm 8px, md 10px, lg 20px, xl 64px.
- **Sections:** 100px vertical padding between major sections.
- **Gaps:** 10px is the most common gap in flex and grid layouts.
- **Page margin:** 20px on each side of full-width sections.
- **Breakpoints:** 809px, 809.98px, 810px, 1199px, 1199.98px.
## Elevation & Depth
The design is flat: no shadows were measured. Hierarchy comes from color contrast.
## Shapes
Most elements use 8px corners. Measured radii, most used first:
- **sm (8px):** 52 elements.
- **md (10px):** 8 elements.
## Components
Measured from the rendered page. Token values reference the tokens above.
- **button-ghost (“Submit Submit”):** transparent fill, #000000 text, 12px/400, 8px radius, padding 0px.
- **input-field (“Email address”):** transparent fill, #FFFFFF text, 14px/500, padding 0px.
## Do's and Don'ts
- Do use #FFFFFF for the page.
- Do let contrast carry emphasis; primary actions use #000000 on #FFFFFF.
- Do set headlines in Geist with tight tracking (-0.05em).
- Do reuse the measured spacing steps (8px, 10px, 20px).
- Do use 8px corners on most elements; larger surfaces also use 10px.
- Don't add drop shadows for depth; use borders and contrast.
- Don't introduce new font families beyond Geist, sans-serif and Geist Mono.
- Don't add saturated accent colors; the measured palette is almost entirely neutral.
- Don't make interface transitions slower than 0.4s.
## Motion
Interface transitions are quick: 0.4s, 0.001s.
- **Easing:** `cubic-bezier(0.44, 0, 0.56, 1)`, `ease`.
Generated by [Sitepeel](https://sitepeel.dev/design-md/sanjaya.framer.ai/), the free DESIGN.md generator.
What you can build with it
Landing pages, pricing tables, dashboards: your AI coding agent builds them in this style, with these colors, fonts, spacing and buttons instead of its defaults.
Download DESIGN.md, put it in your project’s root folder, then ask your agent for a page.
Build a landing page for my product. Follow for every color, font, spacing value, corner and button.
Need more than one page?
Design MD in the Sitepeel tools for Chrome measures pages behind a login, combines several pages into one file and works on any site you open.
More designs
See all →FAQ
Questions
What can I build with the Sanjaya DESIGN.md?
Any page or component in this style: a landing page, pricing table, dashboard or sign-up form. Your AI coding agent uses the measured colors, Geist type, spacing, corners and buttons instead of its own defaults.
How do I use it with Claude Code or Cursor?
Download the file and put it in your project’s root folder, then ask your agent to follow DESIGN.md. Step-by-step guides: Claude Code, Cursor, Codex, GitHub Copilot.
Is this Sanjaya’s official design system?
No. Sitepeel measured it from sanjaya.framer.ai’s public page on October 23, 2026. It is an independent analysis, not made or approved by Sanjaya.
Can I use Sanjaya’s style in my own product?
Use it to learn, prototype and compare. For a real product, make the style your own, and never copy Sanjaya’s logo, name, pictures or text.
How accurate are the values?
Each value was measured on the rendered page after it fully loaded, on desktop and mobile: colors where they appear, type with tracking, spacing, corners, shadows and hover states. Sites change, so check the date at the top.




