Design system extracted from https://sanjaysraval.com/ on 2026-10-18 (code-based analysis).
— · card padding: ——to { opacity: 1; }
to { width: 100%; }
to { transform: rotate(360deg); }
0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.025); }
0%, 10% { background-position: 0% 0%; } 11%, 21% { background-position: 50% 0%; } 22%, 32% { background-position: 100% 0%; } 33%, 43% { background-position: 0% 50%; } 44%, 54% { background-position: 50% 50%; } 55%, 65% { background-position: 100% 50%; } 66%, 76% { background-position: 0% 100%; } 77%, 87% { background-position: 50% 100%; } 88%, 100% { background-position: 100% 100%; }
0%, 100% { transform: scaleY(1); opacity: 1; } 50% { transform: scaleY(0.6); opacity: 0.5; }
0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0; }
0% { left: -50%; } 100% { left: 100%; }
| Field | Value |
|---|---|
| Site / Project | https://sanjaysraval.com/ |
| Analyzed on | 2026-10-18 |
| Analysis mode | Automated code extraction (no AI) |
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#6B1C23). Display headings use a distinct face (var(--font-serif)) over the body stack (var(--font-body)). Detected font weights: 100, 200, 300, 400, 500, 600, 700. Shapes are dominated by pill radii (9999px) — the page otherwise favors sharp, unrounded edges. Detected style signatures: glassmorphism; soft-ui / layered elevation; gradient-rich / aurora.
Logo asset(s): https://sanjaysraval.com/assets/img/logo-white.png
| Hex | RGB | HSL | Count |
|---|---|---|---|
#C9A227 | 201, 162, 39 | 46° 68% 47% | 41 |
#000000 | 0, 0, 0 | 0° 0% 0% | 16 |
#030302 | 3, 3, 2 | 60° 20% 1% | 16 |
#0A0908 | 10, 9, 8 | 30° 11% 4% | 11 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 10 |
#050504 | 5, 5, 4 | 60° 11% 2% | 4 |
#030303 | 3, 3, 3 | 0° 0% 1% | 4 |
#F5F1E8 | 245, 241, 232 | 42° 39% 94% | 4 |
#F5F0E6 | 245, 240, 230 | 40° 43% 93% | 4 |
#0B0A08 | 11, 10, 8 | 40° 16% 4% | 2 |
#6B1C23 | 107, 28, 35 | 355° 59% 26% | 2 |
#1A0A0D | 26, 10, 13 | 349° 44% 7% | 1 |
#E8D48B | 232, 212, 139 | 47° 67% 73% | 1 |
#080807 | 8, 8, 7 | 60° 7% 3% | 1 |
#EBE7DE | 235, 231, 222 | 42° 25% 90% | 1 |
#699196 | 105, 145, 150 | 187° 18% 50% | 1 |
#060504 | 6, 5, 4 | 30° 20% 2% | 1 |
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
|---|---|---|---|
--color-primary | #C9A227 | 201, 162, 39 | 46° 68% 47% |
--color-accent | #6B1C23 | 107, 28, 35 | 355° 59% 26% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #F5F1E8 | 245, 241, 232 | 42° 39% 94% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #EBE7DE | 235, 231, 222 | 42° 25% 90% |
--color-border | #699196 | 105, 145, 150 | 187° 18% 50% |
--color-on-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
radial-gradient(ellipse at center, transparent 0%, 70%)radial-gradient(circle at 80% 70%, rgba(107, 28, 35, 0.05) 0%, transparent 40%)`
linear-gradient(180deg, rgba(3, 3, 2, 0.72) 0%, rgba(3, 3, 2, 0.08) 34%, rgba(3, 3, 2, 0.86) 100%)`
linear-gradient(90deg, rgba(3, 3, 2, 0.58) 0%, rgba(3, 3, 2, 0.08) 62%, rgba(3, 3, 2, 0.32) 100%)`
radial-gradient(circle at 82% 72%, rgba(255, 255, 255, 0.08), transparent 32%),
linear-gradient(180deg, rgba(3, 3, 3, 0.88), rgba(3, 3, 3, 0.62) 46%, rgba(3, 3, 3, 0.92))`
linear-gradient(90deg, transparent, rgba(201, 162, 39, 0.35), transparent)linear-gradient(135deg, rgba(201, 162, 39, 0.2), transparent 52%)`
radial-gradient(ellipse at center, rgba(201, 162, 39, 0.03), transparent 60%)linear-gradient(135deg, transparent 60%, rgba(255,255,255,0.06) 100%)linear-gradient(180deg, rgba(10,9,8,0.4) 0%, rgba(10,9,8,0.2) 40%, rgba(10,9,8,0.9) 100%)`
> 10 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.
Primary typeface: var(--font-body) — stack: var(--font-body)
Display / heading typeface: var(--font-serif) (used for large headings; body uses the primary stack)
var(--font-body)'Cormorant Garamond'var(--font-display)var(--font-serif)'Outfit''Bebas Neue'| Token | Size |
|---|---|
| display | 64px |
| headline-lg | 32px |
| headline-md | 24px |
| title-lg | 22.4px |
| body-lg | 17.6px |
| body-md | 16.8px |
| label-md | 14.4px |
| label-sm | 12.8px |
| Size | Count |
|---|---|
| 0.7rem | 11 |
| 0.75rem | 9 |
| 0.8rem | 6 |
| 0.85rem | 4 |
| 4rem | 4 |
| 0.95rem | 3 |
| 1rem | 3 |
| 1.5rem | 2 |
| 2rem | 2 |
| 0.72rem | 2 |
| 1.1rem | 2 |
| 0.68rem | 2 |
| 0.9rem | 2 |
| 0.65rem | 2 |
| 1.05rem | 2 |
| 0.78rem | 2 |
| 15rem | 1 |
| 0.64rem | 1 |
| 3rem | 1 |
| 1.4rem | 1 |
Weights in use: 100, 200, 300, 400, 500, 600, 700
| Value | Count |
|---|---|
| 1 | 8 |
| 1.8 | 6 |
| 0.9 | 3 |
| 1.6 | 3 |
| 1.7 | 3 |
| 0.95 | 2 |
| 1.2 | 1 |
| 1.05 | 1 |
| 0.5 | 1 |
| 1.5 | 1 |
| Value | Count |
|---|---|
| 0.5em | 8 |
| 0.2em | 8 |
| 0.4em | 8 |
| 0.3em | 6 |
| 0.05em | 4 |
| 0.02em | 4 |
| 0.1em | 2 |
| 0 | 2 |
| Token | Value |
|---|---|
| unit | 8px |
| xs | 6px |
| sm | 8px |
| md | 16px |
| lg | 32px |
| xl | 64px |
| Value | Count |
|---|---|
| 1rem | 20 |
| 3rem | 9 |
| 2rem | 9 |
| 1.5rem | 5 |
| 10rem | 5 |
| 1.4rem | 5 |
| 1.2rem | 4 |
| 4rem | 4 |
| 6rem | 3 |
| 5rem | 3 |
| 0.8rem | 3 |
| 9rem | 2 |
| 8rem | 2 |
| 1.45rem | 1 |
| 0.5rem | 1 |
| 6px | 1 |
| Token | Value |
|---|---|
| pill | 50% |
| Radius | Count |
|---|---|
50% | 7 |
| Token | Value |
|---|---|
| sm | 0 22px 70px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(201, 162, 39, 0.16) |
| md | 0 0 16px rgba(201, 162, 39, 0.55) |
| lg | 0 30px 70px rgba(0, 0, 0, 0.55) |
0 22px 70px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(201, 162, 39, 0.16)0 24px 80px rgba(0, 0, 0, 0.28)0 34px 100px rgba(0, 0, 0, 0.52)0 40px 90px rgba(0,0,0,0.55), 0 0 0 1px rgba(201,162,39,0.12)0 0 16px rgba(201, 162, 39, 0.55)0 0 24px rgba(201, 162, 39, 0.85)0 28px 80px rgba(0, 0, 0, 0.38)0 30px 70px rgba(0, 0, 0, 0.55)Container max-width: 900px
Grid columns (largest detected grid): 5
all 0.5stransform 0.4sall 0.3sall 0.4sgap 0.3s`
border-color 0.7s ,
box-shadow 0.7s`
opacity 0.7sfilter 0.8s ,
transform 1.2s`
transform 0.7s`
opacity 0.55s`
noneopacity 0.8s@keyframes fadeIn { to { opacity: 1; } }
@keyframes loadBar { to { width: 100%; } }
@keyframes loaderRing { to { transform: rotate(360deg); } }
@keyframes spriteBreathe { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.025); } }
@keyframes spriteFrame { 0%, 10% { background-position: 0% 0%; } 11%, 21% { background-position: 50% 0%; } 22%, 32% { background-position: 100% 0%; } 33%, 43% { background-position: 0% 50%; } 44%, 54% { background-position: 50% 50%; } 55%, 65% { background-position: 100% 50%; } 66%, 76% { background-position: 0% 100%; } 77%, 87% { background-position: 50% 100%; } 88%, 100% { background-position: 100% 100%; } }
@keyframes scrollPulse { 0%, 100% { transform: scaleY(1); opacity: 1; } 50% { transform: scaleY(0.6); opacity: 0.5; } }
@keyframes playPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0; } }
@keyframes journeyLoad { 0% { left: -50%; } 100% { left: 100%; } }
fadeIn 0.9s ease 0.1s forwardsloaderRing 2.4s linear infinitespriteFrame 1.8s steps(1, end) infinite, spriteBreathe 2.8s ease-in-out infinitefadeIn 1s ease forwardsloadBar 2s ease forwardsnonescrollPulse 2s ease-in-out infiniteblur(20px)blur(18px)> Page contains canvas/WebGL elements — consider ambient effects layers.
:root {
--body-bg: var(--color-bg-deep);
--body-color: var(--color-cream);
}
Do
#6B1C23 for interactive highlights and key moments — it is used sparingly on the source page.#FFFFFF; surfaces should stay within the detected neutral ramp.var(--font-serif), and body copy in the primary stack.Don't
:root {
--color-primary: #C9A227;
--color-accent: #6B1C23;
--color-background: #FFFFFF;
--color-surface: #F5F1E8;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #EBE7DE;
--color-border: #699196;
--color-on-primary: #000000;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--font-sans: var(--font-body);
--font-size-display: 64px;
--font-size-headline-lg: 32px;
--font-size-headline-md: 24px;
--font-size-title-lg: 22.4px;
--font-size-body-lg: 17.6px;
--font-size-body-md: 16.8px;
--font-size-label-md: 14.4px;
--font-size-label-sm: 12.8px;
--radius-pill: 50%;
--shadow-sm: 0 22px 70px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(201, 162, 39, 0.16);
--shadow-md: 0 0 16px rgba(201, 162, 39, 0.55);
--shadow-lg: 0 30px 70px rgba(0, 0, 0, 0.55);
--space-xs: 6px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 32px;
--space-xl: 64px;
--font-display: var(--font-serif);
--tracking-label: 0.5em;
--container-max: 900px;
}
Generated by DesignMD Maker · analyze responsibly — only scan pages you're permitted to study.