DesignMD Maker logo ← Home Report · Code analysis
R
Design System

Ravoor

Design system extracted from https://app.ravoor.com/dashboard on 2026-08-25 (code-based analysis).

Source · https://app.ravoor.com/dashboard Engine · Code analysis Created · Aug 25, 2026 14:49 Cost · $0.0000
Detected Language

Design Style

technical / mono accents
monospace font in use
Palette

Colors

primary
#F99C00
2.15 on white · 9.78 on black · 38° 100% 49%
secondary
#000000
21 on white · 1 on black · 0° 0% 0%
accent
#7234E6
6.27 on white · 3.35 on black · 261° 78% 55%
Token Roles 13 tokens
background
#FFFFFF · 21:1 vs black
surface
#F0F5F2 · 19.05:1 vs black
text-primary
#000000 · 21:1 vs white
text-secondary
#3E3E3A · 10.74:1 vs white
border
#E3E3E0 · 16.33:1 vs black
on-primary
#000000 · 21:1 vs white
on-secondary
#FFFFFF · 21:1 vs black
on-accent
#FFFFFF · 21:1 vs black
surface-container-lowest
#FFFFFF · 21:1 vs black
surface-container-low
#FDFDFC · 20.63:1 vs black
surface-container
#FAFAFA · 20.12:1 vs black
surface-container-high
#F0F5F2 · 19.05:1 vs black
surface-container-highest
#EEEEEC · 18.08:1 vs black
Detected Palette 24 colors by frequency in source CSS
#000000
used 77× · 0° 0% 0%
#FFFFFF
used 14× · 0° 0% 100%
#F99C00
used 10× · 38° 100% 49%
#7234E6
used 9× · 261° 78% 55%
#3E3E3A
used 8× · 60° 3% 24%
#00BB7F
used 7× · 161° 100% 37%
#9B66FF
used 7× · 261° 100% 70%
#461901
used 6× · 21° 97% 14%
#002C22
used 6× · 166° 100% 9%
#4D0218
used 6× · 342° 95% 15%
#F0F5F2
used 6× · 144° 20% 95%
#3080FF
used 5× · 217° 100% 59%
#00C758
used 5× · 147° 100% 39%
#1A1A18
used 5× · 60° 4% 10%
#191400
used 4× · 48° 100% 5%
#E3E3E0
used 4× · 60° 5% 88%
#FB2C36
used 4× · 357° 96% 58%
#EDB200
used 4× · 45° 100% 46%
#1B1B18
used 4× · 60° 6% 10%
#FFFBEB
used 4× · 48° 100% 96%
#FE6E00
used 4× · 26° 100% 50%
#FAFAFA
used 4× · 0° 0% 98%
#27272A
used 4× · 240° 4% 16%
#EEEEEC
used 4× · 60° 6% 93%
Type System

Typography

body-md
inherit
16px · 400 · LH 1.5
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-md
inherit
13px · 400 · LH 1.4 · LS .1em
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-sm
inherit
11px · 400 · LH 1.4 · LS .1em
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
Detected Font Stacks
'IBM Plex Sans Arabic''Noto Sans Arabic''Instrument Sans'var(--font-sans)var(--font-mono)var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji")var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace)
Structure

Layout

Container
Section padding: · card padding:
Grid
12-column reference grid · gap
Spacing Scale
xs
3px
detected
1px
detected
3px
Breakpoints
40rem48rem64rem80rem96rem360px380px420px
Geometry

Shapes

sm
2px
r2
.25rem
r3
4px
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius2px
button-primary
background{colors.primary}
radius2px
Animation

Motion

Keyframes 6 found
@keyframes spin
to{transform:rotate(360deg)}
@keyframes ping
75%,to{opacity:0;transform:scale(2)}
@keyframes pulse
50%{opacity:.5}
@keyframes enter
0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}
@keyframes exit
to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}
@keyframes caret-blink
0%,70%,to{opacity:1}20%,50%{opacity:0}
Applied Animations
1.25s ease-out infinite caret-blinkenter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)var(--animate-ping)var(--animate-pulse)var(--animate-spin)exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)
Easing Curves
cubic-bezier(.4,0,1,1)cubic-bezier(0,0,.2,1)cubic-bezier(.4,0,.2,1)cubic-bezier(.4,0,.6,1)var(--tw-ease,var(--default-transition-timing-function))var(--ease-in)
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Ravoor

FieldValue
Site / Projecthttps://app.ravoor.com/dashboard
Analyzed on2026-08-25
Analysis modeAutomated code extraction (no AI)

Overview

This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#7234E6). All type is set in 'IBM Plex Sans Arabic'. Detected font weights: 400, 500, 600, 700. Detected style signatures: technical / mono accents.

Logo asset(s): https://app.ravoor.com/favicon-96x96.png

Color System

Detected palette (by frequency)

HexRGBHSLCount
#0000000, 0, 00° 0% 0%77
#FFFFFF255, 255, 2550° 0% 100%14
#F99C00249, 156, 038° 100% 49%10
#7234E6114, 52, 230261° 78% 55%9
#3E3E3A62, 62, 5860° 3% 24%8
#00BB7F0, 187, 127161° 100% 37%7
#9B66FF155, 102, 255261° 100% 70%7
#46190170, 25, 121° 97% 14%6
#002C220, 44, 34166° 100% 9%6
#4D021877, 2, 24342° 95% 15%6
#F0F5F2240, 245, 242144° 20% 95%6
#3080FF48, 128, 255217° 100% 59%5
#00C7580, 199, 88147° 100% 39%5
#1A1A1826, 26, 2460° 4% 10%5
#19140025, 20, 048° 100% 5%4
#E3E3E0227, 227, 22460° 5% 88%4
#FB2C36251, 44, 54357° 96% 58%4
#EDB200237, 178, 045° 100% 46%4
#1B1B1827, 27, 2460° 6% 10%4
#FFFBEB255, 251, 23548° 100% 96%4

Assigned roles

Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.

TokenHexRGBHSL
--color-primary#F99C00249, 156, 038° 100% 49%
--color-accent#7234E6114, 52, 230261° 78% 55%
--color-background#FFFFFF255, 255, 2550° 0% 100%
--color-surface#F0F5F2240, 245, 242144° 20% 95%
--color-text-primary#0000000, 0, 00° 0% 0%
--color-secondary#0000000, 0, 00° 0% 0%
--color-text-secondary#3E3E3A62, 62, 5860° 3% 24%
--color-border#E3E3E0227, 227, 22460° 5% 88%
--color-on-primary#0000000, 0, 00° 0% 0%
--color-on-secondary#FFFFFF255, 255, 2550° 0% 100%
--color-on-accent#FFFFFF255, 255, 2550° 0% 100%

Surface ramp (derived from detected light neutrals)

TokenHex
--color-surface-container-lowest#FFFFFF
--color-surface-container-low#FDFDFC
--color-surface-container#FAFAFA
--color-surface-container-high#F0F5F2
--color-surface-container-highest#EEEEEC

Gradients

  • linear-gradient(in lab,red,red))

> 1 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.

Typography

Primary typeface: IBM Plex Sans Arabic — stack: 'IBM Plex Sans Arabic'

Font stacks (most used first)

  • 'IBM Plex Sans Arabic'
  • 'Noto Sans Arabic'
  • 'Instrument Sans'
  • var(--font-sans)
  • var(--font-mono)
  • var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji")
  • var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace)

Web font sources

  • fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&display=swap
  • fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;500;700&display=swap

Derived type scale

TokenSize
body-md16px
label-md13px
label-sm11px

Font sizes (by frequency)

SizeCount
11px2
1em1
7px1
8px1
9px1
10px1
13px1

Weights in use: 400, 500, 600, 700

Line heights (by frequency)

ValueCount
15
1.52
1.21
01
20px1

Letter spacing (by frequency)

ValueCount
.1em1
.2em1
.3em1
.4em1

Spacing

Derived spacing scale

TokenValue
xs3px

Raw values (by frequency)

ValueCount
3px1
1px1

Borders & Radius

Derived radius tokens

TokenValue
sm2px

Raw values (resolved, by frequency)

RadiusCount
04
.25rem1
2px1
4px1
inherit1
3.40282e38px1

Layout

Container max-width: 768px

Grid columns (largest detected grid): 12

Breakpoints

  • 360px
  • 380px
  • 420px
  • 40rem
  • 48rem
  • 64rem
  • 80rem
  • 96rem

Animation & Motion

Easing curves

  • cubic-bezier(.4,0,1,1)
  • cubic-bezier(0,0,.2,1)
  • cubic-bezier(.4,0,.2,1)
  • cubic-bezier(.4,0,.6,1)
  • cubic-bezier(.4,0,.2,1)
  • var(--tw-ease,var(--default-transition-timing-function))
  • var(--ease-in)
  • var(--ease-in-out)

Keyframes

@keyframes spin { to{transform:rotate(360deg)} }
@keyframes ping { 75%,to{opacity:0;transform:scale(2)} }
@keyframes pulse { 50%{opacity:.5} }
@keyframes enter { 0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))} }
@keyframes exit { to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))} }
@keyframes caret-blink { 0%,70%,to{opacity:1}20%,50%{opacity:0} }

Animations

  • 1.25s ease-out infinite caret-blink
  • enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)
  • var(--animate-ping)
  • var(--animate-pulse)
  • var(--animate-spin)
  • exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)

Source Design Tokens (CSS custom properties)

:root {
  --font-sans: "IBM Plex Sans Arabic","Instrument Sans",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
  --font-mono: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --color-red-50: oklch(97.1% .013 17.38);
  --color-red-100: oklch(93.6% .032 17.717);
  --color-red-200: oklch(88.5% .062 18.334);
  --color-red-300: oklch(80.8% .114 19.571);
  --color-red-400: oklch(70.4% .191 22.216);
  --color-red-500: oklch(63.7% .237 25.331);
  --color-red-600: oklch(57.7% .245 27.325);
  --color-red-700: oklch(50.5% .213 27.518);
  --color-red-800: oklch(44.4% .177 26.899);
  --color-red-900: oklch(39.6% .141 25.723);
  --color-red-950: oklch(25.8% .092 26.042);
  --color-orange-200: oklch(90.1% .076 70.697);
  --color-orange-500: oklch(70.5% .213 47.604);
  --color-orange-600: oklch(64.6% .222 41.116);
  --color-orange-700: oklch(55.3% .195 38.402);
  --color-amber-50: oklch(98.7% .022 95.277);
  --color-amber-100: oklch(96.2% .059 95.617);
  --color-amber-200: oklch(92.4% .12 95.746);
  --color-amber-300: oklch(87.9% .169 91.605);
  --color-amber-400: oklch(82.8% .189 84.429);
  --color-amber-500: oklch(76.9% .188 70.08);
  --color-amber-600: oklch(66.6% .179 58.318);
  --color-amber-700: oklch(55.5% .163 48.998);
  --color-amber-800: oklch(47.3% .137 46.201);
  --color-amber-900: oklch(41.4% .112 45.904);
  --color-amber-950: oklch(27.9% .077 45.635);
  --color-yellow-50: oklch(98.7% .026 102.212);
  --color-yellow-200: oklch(94.5% .129 101.54);
  --color-yellow-500: oklch(79.5% .184 86.047);
  --color-yellow-600: oklch(68.1% .162 75.834);
  --color-yellow-700: oklch(55.4% .135 66.442);
  --color-yellow-900: oklch(42.1% .095 57.708);
  --color-green-50: oklch(98.2% .018 155.826);
  --color-green-100: oklch(96.2% .044 156.743);
  --color-green-200: oklch(92.5% .084 155.995);
  --color-green-500: oklch(72.3% .219 149.579);
  --color-green-600: oklch(62.7% .194 149.214);
  --color-green-700: oklch(52.7% .154 150.069);
  --color-green-800: oklch(44.8% .119 151.328);
  --color-emerald-50: oklch(97.9% .021 166.113);
  --color-emerald-100: oklch(95% .052 163.051);
  --color-emerald-200: oklch(90.5% .093 164.15);
  --color-emerald-300: oklch(84.5% .143 164.978);
  --color-emerald-400: oklch(76.5% .177 163.223);
  --color-emerald-500: oklch(69.6% .17 162.48);
  --color-emerald-600: oklch(59.6% .145 163.225);
  --color-emerald-700: oklch(50.8% .118 165.612);
  --color-emerald-800: oklch(43.2% .095 166.913);
  --color-emerald-900: oklch(37.8% .077 168.94);
  --color-emerald-950: oklch(26.2% .051 172.552);
  --color-blue-50: oklch(97% .014 254.604);
  --color-blue-100: oklch(93.2% .032 255.585);
  --color-blue-200: oklch(88.2% .059 254.128);
  --color-blue-300: oklch(80.9% .105 251.813);
  --color-blue-500: oklch(62.3% .214 259.815);
  --color-blue-600: oklch(54.6% .245 262.881);
  --color-blue-700: oklch(48.8% .243 264.376);
  --color-blue-800: oklch(42.4% .199 265.638);
}

Do's and Don'ts

Do

  • Do reserve the accent #7234E6 for interactive highlights and key moments — it is used sparingly on the source page.
  • Do keep the canvas at #FFFFFF; surfaces should stay within the detected neutral ramp.
  • Do stick to the detected font weight(s): 400, 500, 600, 700.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.
  • Don't add drop shadows; the source page relies on borders and surface shifts for depth, not elevation.

Design Tokens (copy-paste)

:root {
  --color-primary: #F99C00;
  --color-accent: #7234E6;
  --color-background: #FFFFFF;
  --color-surface: #F0F5F2;
  --color-text-primary: #000000;
  --color-secondary: #000000;
  --color-text-secondary: #3E3E3A;
  --color-border: #E3E3E0;
  --color-on-primary: #000000;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #FFFFFF;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #FDFDFC;
  --color-surface-container: #FAFAFA;
  --color-surface-container-high: #F0F5F2;
  --color-surface-container-highest: #EEEEEC;
  --font-sans: 'IBM Plex Sans Arabic';
  --font-size-body-md: 16px;
  --font-size-label-md: 13px;
  --font-size-label-sm: 11px;
  --radius-sm: 2px;
  --space-xs: 3px;
  --tracking-label: .1em;
  --container-max: 768px;
}