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

Qleviq - IT Solution HTML Template

Design system extracted from https://demo.egenslab.com/html/qleviq/preview/index.html on 2026-07-20 (code-based analysis).

Source · https://demo.egenslab.com/html/qleviq/preview/index.html Engine · Code analysis Created · Jul 20, 2026 23:17 Cost · $0.0000
Detected Language

Design Style

glassmorphism
1 backdrop-filter rules + 2 translucent white fills
soft-ui / layered elevation
4 large soft low-opacity shadows
gradient-rich / aurora
many gradient definitions
rounded / pill-heavy
many large radii & pills
technical / mono accents
monospace font in use
Palette

Colors

primary
#FFFFFF
1 on white · 21 on black · 0° 0% 100%
secondary
#000000
21 on white · 1 on black · 0° 0% 0%
accent
#DC3545
4.53 on white · 4.64 on black · 354° 70% 54%
Token Roles 13 tokens
background
#FFFFFF · 21:1 vs black
text-primary
#212529 · 15.43:1 vs white
surface
#EEEEEE · 18.1:1 vs black
text-secondary
#DEE2E6 · 16.13:1 vs black
border
#343A40 · 11.51:1 vs white
on-primary
#212529 · 15.43: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
#F8F9FA · 19.92:1 vs black
surface-container
#EEEEEE · 18.1:1 vs black
surface-container-high
#E9ECEF · 17.71:1 vs black
surface-container-highest
#DEE2E6 · 16.13:1 vs black
Detected Palette 24 colors by frequency in source CSS
#FFFFFF
used 36× · 0° 0% 100%
#000000
used 22× · 0° 0% 0%
#0D6EFD
used 19× · 216° 98% 52%
#010ED0
used 9× · 236° 99% 41%
#DEE2E6
used 7× · 210° 14% 89%
#212529
used 7× · 210° 11% 15%
#EEEEEE
used 7× · 0° 0% 93%
#343A40
used 5× · 210° 10% 23%
#495057
used 5× · 210° 9% 31%
#DC3545
used 4× · 354° 70% 54%
#198754
used 4× · 152° 69% 31%
#F8F9FA
used 4× · 210° 17% 98%
#CCCCCC
used 4× · 0° 0% 80%
#333333
used 4× · 0° 0% 20%
#EBF5FF
used 4× · 210° 100% 96%
#6C757D
used 3× · 208° 7% 46%
#E9ECEF
used 3× · 210° 16% 93%
#0A58CA
used 3× · 216° 91% 42%
#75B798
used 3× · 152° 31% 59%
#EA868F
used 3× · 355° 70% 72%
#3F444B
used 3× · 215° 9% 27%
#1C1C1C
used 3× · 0° 0% 11%
#EDEEFF
used 3× · 237° 100% 96%
#FDEDDD
used 3× · 30° 89% 93%
Surface Treatments

Gradients

linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))
linear-gradient(270deg, #E24C4A 0%, #386BB7 100%)
linear-gradient(180deg, rgb(4, 5, 14) 0%, rgb(4, 5, 14) 100%)
linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%)
linear-gradient(90deg, #010ED0 0%, rgba(1, 14, 208, 0) 100%)
linear-gradient(180deg, rgb(23, 23, 23) 0%, rgb(23, 23, 23) 100%)
Type System

Typography

headline-md
inherit
30px · 100 · LH 1
Qleviq - IT Solution HTML Template
title-lg
inherit
23px · 100 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-lg
inherit
18px · 100 · LH 1.5
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-md
inherit
16px · 100 · 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
14px · 100 · LH 1.4 · LS 0.4px
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-sm
inherit
12px · 100 · LH 1.4 · LS 0.4px
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
Detected Font Stacks
var(--font-montserrat)var(--font-poppins)'Montserrat'var(--bs-font-sans-serif)Arial,Helvetica,sans-serifswiper-icons'slick'var(--bs-body-font-family)
Structure

Layout

Container
Section padding: · card padding:
Grid
12-column reference grid · gap
Spacing Scale
xs
4px
sm
10px
md
18px
lg
35px
xl
60px
detected
4px
detected
5px
detected
10px
detected
12px
detected
15px
detected
18px
detected
20px
detected
25px
detected
30px
detected
35px
Breakpoints
576px767px991px992px1199px1200px1399px1599px
Depth

Elevation & Depth

level 1
0 0 0 .25rem rgba(13,110,253,.25)
level 2
0 0 5px #666
level 3
0px 4px 24px 0px rgba(0, 0, 0, 0.1019607843)
level 4
unset
level 5
0 0.5rem 1rem rgba(0, 0, 0, 0.15)
level 6
inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075)
Geometry

Shapes

sm
5px
md
10px
lg
20px
pill
50%
r5
15px
r6
100px
r7
18px
r8
50px
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius20px
boxShadow{elevation.md}
button-primary
background{colors.primary}
radius50%
Animation

Motion

Keyframes 18 found
@keyframes progress-bar-stripes
0%{background-position-x:1rem}
@keyframes spinner-border
to{transform:rotate(360deg)}
@keyframes spinner-grow
0%{transform:scale(0)}50%{opacity:1;transform:none}
@keyframes placeholder-glow
50%{opacity:.2}
@keyframes placeholder-wave
100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}
@keyframes bounce
0%, 20%, 53%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); -webkit-transform: translateZ(0); transform: translateZ(0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1); transform: translate3d(0, -30px, 0) scaleY(1.1); } 70% { -webkit-animatio
@keyframes flash
0%, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; }
@keyframes pulse
0% { -webkit-transform: scaleX(1); transform: scaleX(1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scaleX(1); transform: scaleX(1); }
@keyframes rubberBand
0% { -webkit-transform: scaleX(1); transform: scaleX(1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(0.95, 1.05, 1); transform: scale3d(0.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, 0.95, 1); transform: scale3d(1.05, 0.95, 1); } to { -webki
Applied Animations
fade-up 0.5s linearqode-draw 0.75s cubic-bezier(0.57, 0.39, 0, 0.86) 1 forwardsfade-down 0.45s linearbounceIn 1.2s linearfade-down 0.3s linearfade-down2 0.3s lineartextRotation 8s linear infinitescroll-x-reverse 30s linear infinite
Easing Curves
cubic-bezier(0.215, 0.61, 0.355, 1) cubic-bezier(0.755, 0.05, 0.855, 0.06) ease-out ease-in ease-in-out cubic-bezier(0.55, 0.055, 0.675, 0.19)
Transitions
color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-outnoneopacity .15s linearcolor .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-outwidth 0.6s easetransform 0.3s ease-in-outvar(--bs-offcanvas-transition).3s opacity
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Qleviq - IT Solution HTML Template

FieldValue
Site / Projecthttps://demo.egenslab.com/html/qleviq/preview/index.html
Analyzed on2026-07-20
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 (#212529), a vivid accent (#DC3545). All type is set in var(--font-montserrat). Detected font weights: 100, 400, 500, 600, 700, 800. Detected style signatures: glassmorphism; soft-ui / layered elevation; gradient-rich / aurora; rounded / pill-heavy; technical / mono accents.

Logo asset(s): https://demo.egenslab.com/html/qleviq/preview/assets/img/header-logo.svg · https://demo.egenslab.com/html/qleviq/preview/assets/img/home2-header-logo.svg

Color System

Detected palette (by frequency)

HexRGBHSLCount
#FFFFFF255, 255, 2550° 0% 100%36
#0000000, 0, 00° 0% 0%22
#0D6EFD13, 110, 253216° 98% 52%19
#010ED01, 14, 208236° 99% 41%9
#DEE2E6222, 226, 230210° 14% 89%7
#21252933, 37, 41210° 11% 15%7
#EEEEEE238, 238, 2380° 0% 93%7
#343A4052, 58, 64210° 10% 23%5
#49505773, 80, 87210° 9% 31%5
#DC3545220, 53, 69354° 70% 54%4
#19875425, 135, 84152° 69% 31%4
#F8F9FA248, 249, 250210° 17% 98%4
#CCCCCC204, 204, 2040° 0% 80%4
#33333351, 51, 510° 0% 20%4
#EBF5FF235, 245, 255210° 100% 96%4
#6C757D108, 117, 125208° 7% 46%3
#E9ECEF233, 236, 239210° 16% 93%3
#0A58CA10, 88, 202216° 91% 42%3
#75B798117, 183, 152152° 31% 59%3
#EA868F234, 134, 143355° 70% 72%3

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-background#FFFFFF255, 255, 2550° 0% 100%
--color-text-primary#21252933, 37, 41210° 11% 15%
--color-primary#FFFFFF255, 255, 2550° 0% 100%
--color-accent#DC3545220, 53, 69354° 70% 54%
--color-surface#EEEEEE238, 238, 2380° 0% 93%
--color-secondary#0000000, 0, 00° 0% 0%
--color-text-secondary#DEE2E6222, 226, 230210° 14% 89%
--color-border#343A4052, 58, 64210° 10% 23%
--color-on-primary#21252933, 37, 41210° 11% 15%
--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#F8F9FA
--color-surface-container#EEEEEE
--color-surface-container-high#E9ECEF
--color-surface-container-highest#DEE2E6

Gradients

  • linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))
  • linear-gradient(0deg, 0%, 100%)
  • linear-gradient(270deg, #E24C4A 0%, #386BB7 100%)
  • linear-gradient(180deg, rgb(4, 5, 14) 0%, rgb(4, 5, 14) 100%)
  • linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%)
  • linear-gradient(90deg, #010ED0 0%, rgba(1, 14, 208, 0) 100%)
  • linear-gradient(180deg, rgb(23, 23, 23) 0%, rgb(23, 23, 23) 100%)
  • linear-gradient(to bottom, 0%, 98%)
  • linear-gradient(180deg, rgb(239, 246, 255) 0%, rgb(239, 246, 255) 100%)
  • linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%)

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

Typography

Primary typeface: var(--font-montserrat) — stack: var(--font-montserrat)

Font stacks (most used first)

  • var(--font-montserrat)
  • var(--font-poppins)
  • 'Montserrat'
  • var(--bs-font-sans-serif)
  • Arial,Helvetica,sans-serif
  • swiper-icons
  • 'slick'
  • var(--bs-body-font-family)
  • var(--bs-font-monospace)
  • inherit

Derived type scale

TokenSize
headline-md30px
title-lg23px
body-lg18px
body-md16px
label-md14px
label-sm12px

Font sizes (by frequency)

SizeCount
15px36
14px23
16px19
20px16
13px14
17px11
18px11
12px9
22px9
25px9
28px6
24px6
19px6
1rem5
1em5
.875em4
30px4
23px4
26px4
27px4

Weights in use: 100, 400, 500, 600, 700, 800

Line heights (by frequency)

ValueCount
152
30px11
1.57
35px7
28px7
1.35
40px5
1.24
1.44
60px4

Letter spacing (by frequency)

ValueCount
01
0.4px1

Spacing

Derived spacing scale

TokenValue
xs4px
sm10px
md18px
lg35px
xl60px

Raw values (by frequency)

ValueCount
30px21
20px16
10px15
15px15
25px14
50px9
45px9
18px8
4px8
12px8
70px7
40px6
80px6
5px5
35px5
60px5

Borders & Radius

Derived radius tokens

TokenValue
sm5px
md10px
lg20px
pill50%

Raw values (resolved, by frequency)

RadiusCount
10px20
50%16
5px8
unset6
15px6
100px4
20px4
18px2
50px2
15px 15px 0 02

Shadows

Derived elevation

TokenValue
sm0 0 0 .25rem rgba(13,110,253,.25)
md0 0.5rem 1rem rgba(0, 0, 0, 0.15)
lg0px 4px 24px 0px rgba(0, 0, 0, 0.1019607843)

All detected shadows

  • 0 0 0 .25rem rgba(13,110,253,.25)
  • 0 0 5px #666
  • 0px 4px 24px 0px rgba(0, 0, 0, 0.1019607843)
  • unset
  • 0 0.5rem 1rem rgba(0, 0, 0, 0.15)
  • inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075)

Layout

Container max-width: 1199px

Grid columns (largest detected grid): 5

Breakpoints

  • 576px
  • 767px
  • 991px
  • 992px
  • 1199px
  • 1200px
  • 1399px
  • 1599px

Animation & Motion

Transitions

  • color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out
  • none
  • opacity .15s linear
  • color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out
  • width 0.6s ease
  • transform 0.3s ease-in-out
  • .3s opacity
  • all 200ms linear
  • 0.2s
  • background-size 0.2s linear 0.15s
  • opacity 0.3s 0.15s

Easing curves

  • cubic-bezier(0.215, 0.61, 0.355, 1)
  • cubic-bezier(0.755, 0.05, 0.855, 0.06)
  • cubic-bezier(0.215, 0.61, 0.355, 1)
  • ease-out
  • ease-in
  • ease-in-out
  • cubic-bezier(0.55, 0.055, 0.675, 0.19)
  • cubic-bezier(0.175, 0.885, 0.32, 1)

Keyframes

@keyframes progress-bar-stripes { 0%{background-position-x:1rem} }
@keyframes spinner-border { to{transform:rotate(360deg)} }
@keyframes spinner-grow { 0%{transform:scale(0)}50%{opacity:1;transform:none} }
@keyframes placeholder-glow { 50%{opacity:.2} }
@keyframes placeholder-wave { 100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%} }
@keyframes bounce { 0%, 20%, 53%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); -webkit-transform: translateZ(0); transform: translateZ(0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1); transform: translate3d(0, -30px, 0) scaleY(1.1); } 70% { -webkit-animatio }
@keyframes flash { 0%, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } }
@keyframes pulse { 0% { -webkit-transform: scaleX(1); transform: scaleX(1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scaleX(1); transform: scaleX(1); } }
@keyframes rubberBand { 0% { -webkit-transform: scaleX(1); transform: scaleX(1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(0.95, 1.05, 1); transform: scale3d(0.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, 0.95, 1); transform: scale3d(1.05, 0.95, 1); } to { -webki }
@keyframes shakeX { 0%, to { -webkit-transform: translateZ(0); transform: translateZ(0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } }
@keyframes shakeY { 0%, to { -webkit-transform: translateZ(0); transform: translateZ(0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } }
@keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-tran }
@keyframes swing { 20% { -webkit-transform: rotate(15deg); transform: rotate(15deg); } 40% { -webkit-transform: rotate(-10deg); transform: rotate(-10deg); } 60% { -webkit-transform: rotate(5deg); transform: rotate(5deg); } 80% { -webkit-transform: rotate(-5deg); transform: rotate(-5deg); } to { -webkit-transform: rotate(0deg); transform: rotate(0deg); } }
@keyframes tada { 0% { -webkit-transform: scaleX(1); transform: scaleX(1); } 10%, 20% { -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } to { -webkit-transform: scaleX(1); transform: scaleX(1); } }
@keyframes wobble { 0% { -webkit-transform: translateZ(0); transform: translateZ(0); } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate(-5deg); transform: translate3d(-25%, 0, 0) rotate(-5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate(3deg); transform: translate3d(20%, 0, 0) rotate(3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate(-3deg); transform: translate3d(-15%, 0, 0) rotate(-3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate(2deg); transform: translate3d(10%, }
@keyframes jello { 0%, 11.1%, to { -webkit-transform: translateZ(0); transform: translateZ(0); } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625de }
@keyframes heartBeat { 0% { -webkit-transform: scale(1); transform: scale(1); } 14% { -webkit-transform: scale(1.3); transform: scale(1.3); } 28% { -webkit-transform: scale(1); transform: scale(1); } 42% { -webkit-transform: scale(1.3); transform: scale(1.3); } 70% { -webkit-transform: scale(1); transform: scale(1); } }
@keyframes backInDown { 0% { -webkit-transform: translateY(-1200px) scale(0.7); transform: translateY(-1200px) scale(0.7); opacity: 0.7; } 80% { -webkit-transform: translateY(0) scale(0.7); transform: translateY(0) scale(0.7); opacity: 0.7; } to { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } }

Animations

  • fade-up 0.5s linear
  • qode-draw 0.75s cubic-bezier(0.57, 0.39, 0, 0.86) 1 forwards
  • fade-down 0.45s linear
  • bounceIn 1.2s linear
  • fade-down 0.3s linear
  • fade-down2 0.3s linear
  • textRotation 8s linear infinite
  • scroll-x-reverse 30s linear infinite

CTA labels found on page

  • Help Desk
  • Contact Us
  • Free Consulting
  • View Services
  • View All Service
  • View All Industry
  • Review Our Clutch Profile

> Page contains canvas/WebGL elements — consider ambient effects layers.

Source Design Tokens (CSS custom properties)

:root {
  --bs-blue: #0d6efd;
  --bs-indigo: #6610f2;
  --bs-purple: #6f42c1;
  --bs-pink: #d63384;
  --bs-red: #dc3545;
  --bs-orange: #fd7e14;
  --bs-yellow: #ffc107;
  --bs-green: #198754;
  --bs-teal: #20c997;
  --bs-cyan: #0dcaf0;
  --bs-black: #000;
  --bs-white: #fff;
  --bs-gray: #6c757d;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  --bs-primary: #0d6efd;
  --bs-secondary: #6c757d;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-primary-rgb: 13,110,253;
  --bs-secondary-rgb: 108,117,125;
  --bs-success-rgb: 25,135,84;
  --bs-info-rgb: 13,202,240;
  --bs-warning-rgb: 255,193,7;
  --bs-danger-rgb: 220,53,69;
  --bs-light-rgb: 248,249,250;
  --bs-dark-rgb: 33,37,41;
  --bs-primary-text-emphasis: #052c65;
  --bs-secondary-text-emphasis: #2b2f32;
  --bs-success-text-emphasis: #0a3622;
  --bs-info-text-emphasis: #055160;
  --bs-warning-text-emphasis: #664d03;
  --bs-danger-text-emphasis: #58151c;
  --bs-light-text-emphasis: #495057;
  --bs-dark-text-emphasis: #495057;
  --bs-primary-bg-subtle: #cfe2ff;
  --bs-secondary-bg-subtle: #e2e3e5;
  --bs-success-bg-subtle: #d1e7dd;
  --bs-info-bg-subtle: #cff4fc;
  --bs-warning-bg-subtle: #fff3cd;
  --bs-danger-bg-subtle: #f8d7da;
  --bs-light-bg-subtle: #fcfcfd;
  --bs-dark-bg-subtle: #ced4da;
  --bs-primary-border-subtle: #9ec5fe;
  --bs-secondary-border-subtle: #c4c8cb;
  --bs-success-border-subtle: #a3cfbb;
  --bs-info-border-subtle: #9eeaf9;
  --bs-warning-border-subtle: #ffe69c;
}

Do's and Don'ts

Do

  • Do reserve the accent #DC3545 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): 100, 400, 500, 600, 700, 800.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.

Design Tokens (copy-paste)

:root {
  --color-background: #FFFFFF;
  --color-text-primary: #212529;
  --color-primary: #FFFFFF;
  --color-accent: #DC3545;
  --color-surface: #EEEEEE;
  --color-secondary: #000000;
  --color-text-secondary: #DEE2E6;
  --color-border: #343A40;
  --color-on-primary: #212529;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #FFFFFF;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #F8F9FA;
  --color-surface-container: #EEEEEE;
  --color-surface-container-high: #E9ECEF;
  --color-surface-container-highest: #DEE2E6;
  --font-sans: var(--font-montserrat);
  --font-size-headline-md: 30px;
  --font-size-title-lg: 23px;
  --font-size-body-lg: 18px;
  --font-size-body-md: 16px;
  --font-size-label-md: 14px;
  --font-size-label-sm: 12px;
  --radius-sm: 5px;
  --radius-md: 10px;
  --radius-lg: 20px;
  --radius-pill: 50%;
  --shadow-sm: 0 0 0 .25rem rgba(13,110,253,.25);
  --shadow-md: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  --shadow-lg: 0px 4px 24px 0px rgba(0, 0, 0, 0.1019607843);
  --space-xs: 4px;
  --space-sm: 10px;
  --space-md: 18px;
  --space-lg: 35px;
  --space-xl: 60px;
  --tracking-label: 0.4px;
  --container-max: 1199px;
}