---
version: alpha
name: Rishi Thakor
description: "Light interface measured from therishithakor.com: Onest type, orange accents, tonal surfaces and pill-shaped controls."
colors:
  background: "#E8E4E0"
  surface: "#E8E4E0"
  on-surface: "#1A1818"
  on-background: "#1A1818"
  on-surface-variant: "#2B2112"
  on-surface-muted: "#2E2C2C"
  on-surface-subtle: "#575554"
  surface-container-low: "#F2EFEC"
  surface-container: "#FBFAF8"
  overlay: "#1A181873"
  overlay-strong: "#1A181880"
  outline: "#00000012"
  outline-variant: "#D5CDCA"
  primary: "#A4552C"
  on-primary: "#FFFFFF"
  inverse-surface: "#140D04"
typography:
  display-hero:
    fontFamily: Onest
    fontSize: 104px
    fontWeight: 600
    lineHeight: 0.95
    letterSpacing: -0.035em
  headline-display:
    fontFamily: Onest
    fontSize: 76px
    fontWeight: 600
    lineHeight: 0.98
    letterSpacing: -0.02em
  headline-lg:
    fontFamily: Onest
    fontSize: 34.5px
    fontWeight: 600
    lineHeight: 1.08
    letterSpacing: -0.02em
  body-md:
    fontFamily: Onest
    fontSize: 17px
    fontWeight: 500
  body-sm:
    fontFamily: Onest
    fontSize: 15px
    fontWeight: 400
  caption:
    fontFamily: Onest
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.45
  label-lg:
    fontFamily: Onest
    fontSize: 16px
    fontWeight: 400
  label-md:
    fontFamily: Onest
    fontSize: 15px
    fontWeight: 500
  label-sm:
    fontFamily: Onest
    fontSize: 14px
    fontWeight: 500
  code:
    fontFamily: ui-monospace
    fontSize: 12px
    fontWeight: 600
    letterSpacing: 0.12em
  headline-display-mobile:
    fontFamily: Onest
    fontSize: 45.5px
    fontWeight: 600
    lineHeight: 0.98
    letterSpacing: -0.02em
  display-hero-mobile:
    fontFamily: Onest
    fontSize: 48px
    fontWeight: 600
    lineHeight: 0.95
    letterSpacing: -0.035em
  headline-lg-mobile:
    fontFamily: Onest
    fontSize: 25px
    fontWeight: 600
    lineHeight: 1.08
    letterSpacing: -0.02em
rounded:
  xs: 2.35px
  sm: 7.06px
  md: 13.68px
  lg: 111.06px
  xl: 130.66px
  full: 9999px
spacing:
  xs: 4px
  sm: 6.79px
  md: 16px
  lg: 17.6px
  xl: 48px
  gutter: 8px
  section: 116px
components:
  button-primary:
    backgroundColor: "{colors.on-surface}"
    textColor: "{colors.background}"
    typography: "{typography.label-lg}"
    rounded: "{rounded.full}"
    padding: 0px
    height: 48px
  button-secondary:
    backgroundColor: "#1A1818B8"
    textColor: "#F3EEEC"
    rounded: "{rounded.full}"
    padding: 0px 16px
    height: 44px
  button-secondary-hover:
    backgroundColor: "#1A1818E0"
  button-outline:
    textColor: "{colors.background}"
    rounded: "{rounded.full}"
    padding: 0px 16px
    height: 40px
  button-ghost:
    textColor: "{colors.on-surface}"
    typography: "{typography.label-lg}"
    rounded: 0px
    padding: 0px
  card:
    backgroundColor: "#1A1818B8"
    textColor: "#F3EEEC"
    rounded: "{rounded.full}"
    padding: 0px 16px
  link:
    textColor: "{colors.background}"
---

# Rishi Thakor Design System

## Overview

Rishi Thakor describes itself as: “Freelance developer and designer building websites, iOS apps and brand design for clients in the US, UK and worldwide. Working remotely, replies within 5 hours.” The interface is light, built on **Warm Mist (#E8E4E0)** with **Charcoal (#1A1818)** text, and **Orange (#A4552C)** as the main accent.

Type is set in **Onest**, with **ui-monospace** for code. Headlines run large with tight negative tracking; body text is 17px. Depth comes from hairline borders and inset highlights rather than drop shadows. Controls are pill-shaped.

Measured from [therishithakor.com](https://therishithakor.com/home) on November 5, 2026 at 1440×900 and 390×844 from 197 rendered elements. Values are computed styles from the live page, not the original source files.

## Colors

The palette has 14 roles, plus gradient stops #FFF3CF, #8F6F33, #FFF3D0, #FFF5D6.

- **Warm Mist (#E8E4E0):** Page background, seen 4 times. Token `background`, CSS `--background`.
- **Charcoal (#1A1818):** Primary text and headings, seen 23 times. Token `on-surface`, CSS `--paint`.
- **Deep Orange (#2B2112):** Secondary text, seen 4 times. Token `on-surface-variant`.
- **Graphite (#2E2C2C):** Muted text and metadata, seen 10 times. Token `on-surface-muted`.
- **Slate (#575554):** Subtle text and placeholders, seen 3 times. Token `on-surface-subtle`.
- **Warm Mist (#F2EFEC):** Raised areas one step from the page, seen 9 times. Token `surface-container-low`, CSS `--casing`.
- **Snow (#FBFAF8):** Cards and panels, seen 4 times. Token `surface-container`, CSS `--room`.
- **Charcoal 45% (#1A181873):** Translucent fill for cards and controls, seen 10 times. Token `overlay`.
- **Charcoal 50% (#1A181880):** Stronger translucent fill, seen 2 times. Token `overlay-strong`.
- **Near Black 7% (#00000012):** Borders and dividers, seen 4 times. Token `outline`.
- **Warm Silver (#D5CDCA):** Secondary dividers, seen 1 time. Token `outline-variant`, CSS `--line`.
- **Orange (#A4552C):** Brand color on large areas, seen 2 times. Token `primary`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
- **Warm Charcoal (#140D04):** High-contrast fills, seen 8 times. Token `inverse-surface`.

## Typography

**Onest** and **ui-monospace** (monospace) share the interface. Fallback stack: `Onest, ui-sans-serif, system-ui, -apple-system`.

- **display-hero:** Onest 104px at weight 600, line height 0.95, tracking -0.035em (48px on mobile). Oversized hero statements.
- **headline-display:** Onest 76px at weight 600, line height 0.98, tracking -0.02em (45.5px on mobile). Page title (h1).
- **headline-lg:** Onest 34.5px at weight 600, line height 1.08, tracking -0.02em (25px on mobile). Section headings (h2).
- **body-md:** Onest 17px at weight 500. Body text.
- **body-sm:** Onest 15px at weight 400. Secondary and small text.
- **caption:** Onest 14px at weight 400, line height 1.45. Captions and fine print.
- **label-lg:** Onest 16px at weight 400. Large buttons and tabs.
- **label-md:** Onest 15px at weight 500. Buttons, navigation and labels.
- **label-sm:** Onest 14px at weight 500. Small labels and badges.
- **code:** ui-monospace 12px at weight 600, tracking 0.12em, uppercase. Code and technical values.

## Layout

Spacing does not follow a strict grid: 46% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.

- **Scale:** xs 4px, sm 6.79px, md 16px, lg 17.6px, xl 48px.
- **Sections:** 116px vertical padding between major sections.
- **Gaps:** 8px is the most common gap in flex and grid layouts.
- **Breakpoints:** 639.98px, 640px, 767.98px, 768px, 1023.98px, 1024px, 1199.98px, 1200px, 1280px, 1440px, 1920px.

## Elevation & Depth

Depth comes mostly from hairline rings and inset highlights on tonal surfaces (#F2EFEC → #FBFAF8):

- `rgba(26, 24, 24, 0.1) 5.22656px 0px 10.4531px 0px inset, rgba(26, 24, 24, 0.1) 0px 5.22656px 10.4531px 0px inset`
- `rgba(0, 0, 0, 0.28) 0px 0px 0px 0.783984px inset, rgba(255, 255, 255, 0.05) 1.56797px 0px 0px 0px inset`
- `rgba(0, 0, 0, 0.16) 0px 0px 0px 0.783984px inset, rgba(0, 0, 0, 0.28) 2.61328px 3.13594px 5.22656px 0px inset, rgba(255, 255, 255, 0.07) -1.56797px -1.56797px 2.61328px 0px inset`

A few raised panels add a soft drop shadow: `rgba(255, 255, 255, 0.28) 0px 0px 0px 2.87461px inset, rgba(0, 0, 0, 0.07) 0px 0px 0px 3.91992px inset, rgba(255, 255, 255, 0.12) 0px 0px 0px 9.40781px inset, rgba(0, 0, 0, 0.08) 0px 0px 0px 10.7145px inset, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px, rgba(26, 24, 24, 0.2) 3.91992px 6.5332px 11.7598px 0px, rgba(26, 24, 24, 0.08) -1.30664px 2.61328px 7.83984px 0px`.

## Shapes

Interactive controls are pill-shaped. Measured radii, most used first:

- **full (9999px):** 64 elements.
- **xs (2.35px):** 44 elements.
- **sm (7.06px):** 24 elements.
- **md (13.68px):** 16 elements.
- **lg (111.06px):** 16 elements.
- **xl (130.66px):** 16 elements.

## Components

Measured from the rendered page. Token values reference the tokens above.

- **button-primary (“Hire me”):** #1A1818 fill, #E8E4E0 text, 16px/400, 9999px radius, padding 0px.
- **button-secondary (“My ability card”):** #1A1818B8 fill, #F3EEEC text, 13px/600, 999px radius, padding 0px 16px, border 1px solid #FFFFFF38, shadow `rgba(0, 0, 0, 0.6) 0px 10px 24px -12px`.
- **button-secondary-hover:** background #1A1818E0, text #F3EEEC on hover.
- **button-outline (“No thanks”):** transparent fill, #E8E4E0 text, 13px/600, 999px radius, padding 0px 16px, border 1px solid #E8E4E040.
- **button-ghost (“Home”):** transparent fill, #1A1818 text, 16px/400, padding 0px.
- **card:** #1A1818B8 fill, #F3EEEC text, 13px/600, 999px radius, padding 0px 16px, border 1px solid #FFFFFF38, shadow `rgba(0, 0, 0, 0.6) 0px 10px 24px -12px`.
- **link:** transparent fill, #E8E4E0D9 text, padding 0px.

## Do's and Don'ts

- Do use #E8E4E0 for the page and lift surfaces in small steps: #F2EFEC, #FBFAF8.
- Do keep text in 4 levels: #1A1818, #2B2112, #2E2C2C, #575554.
- Do use #A4552C as the brand accent: header, logo and key highlights.
- Do set headlines in Onest with tight tracking (-0.02em).
- Do reuse the measured spacing steps (6.79px, 16px, 17.6px).
- Do make buttons and chips fully rounded (9999px); most other elements use 2.35px corners.
- Don't use heavy drop shadows; keep depth to hairline rings and tonal surfaces.
- Don't introduce new font families beyond Onest and ui-monospace.
- Don't use #A4552C for large backgrounds or body text.
- Don't make interface transitions slower than 0.6s.

## Motion

Interface transitions are quick: 0.5s, 0.2s, 0.35s, 0.45s. Longer ambient animations run 0.9s, 1.1s.

- **Easing:** `cubic-bezier(0.16, 1, 0.3, 1)`, `ease`, `cubic-bezier(0.215, 0.61, 0.355, 1)`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.

Generated by [Sitepeel](https://sitepeel.dev/design-md/therishithakor.com/), the free DESIGN.md generator (engine 2026.10.29+b828a475ee10).
