Brand Style Guide
Typography, color, components, motion, and decorative elements — the complete visual system for onesupport.com
Brand Colors
Six spot colors. Used with precision — each has a role. Never used all at once except in the spectrum gradient.
Dark Surface System
Four-level depth stack. All UI lives on these — never on white or light backgrounds.
Text Hierarchy
Three text levels on dark. Use them to create rhythm — not just one flat color for everything.
:root { /* Spot Colors */ --os-pink: #e04072; /* Primary CTA, key highlights */ --os-purple: #424082; /* Gradient partner, accent */ --os-royal: #0072bc; /* Platform / tech UI */ --os-lblue: #40d3e2; /* Links, focus rings, eyebrows */ --os-green: #43d1a1; /* Success, AI, CX positive */ --os-yellow: #f4e84e; /* Callouts, alerts */ /* Glow tints (for badge/pill backgrounds) */ --os-pink-glow: rgba(224, 64, 114, 0.14); --os-purple-glow: rgba( 66, 64, 130, 0.18); --os-royal-glow: rgba( 0, 114, 188, 0.14); --os-lblue-glow: rgba( 64, 211, 226, 0.12); --os-green-glow: rgba( 67, 209, 161, 0.12); --os-yellow-glow: rgba(244, 232, 78, 0.12); /* Dark surfaces */ --bg: #0d0e10; /* Page base */ --card: #13151a; /* Cards, nav */ --card2: #16181f; /* Elevated elements */ --border: #1e2128; /* Borders, dividers */ /* Text */ --text: #f2f3f5; /* Primary */ --muted: #858a96; /* Secondary */ --dim: #40444e; /* Tertiary / ghost */ /* Spectrum (use sparingly — see gradient kit for full docs) */ --os-spectrum: linear-gradient(90deg, #e04072, #424082, #0072bc, #40d3e2, #43d1a1); }
Font System
Inter carries the weight. Manrope is the accent — used for section labels, the logo, and select callouts only.
CAPS labels, and decorative callouts. Not for body text.
Type Scale
Inter 800 ExtraBold leads all display sizes. Letter-spacing tightens as size increases.
Text Treatments
Gradient text and spectrum accents — used on hero headlines and key callouts only.
not just software."
Button System
Two fills only: white (primary action) and #40d3e2 outline (secondary action). No solid color fills. Ghost for tertiary.
/* Base */ .btn { display: inline-flex; align-items: center; gap: 8px; font-family: 'Inter', sans-serif; font-weight: 700; font-size: 14px; border: none; cursor: pointer; border-radius: 10px; padding: 12px 24px; transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1); } /* White — primary fill */ .btn-white { background: #ffffff; color: #0d0e10; box-shadow: 0 2px 12px rgba(255,255,255,0.12); } .btn-white:hover { background: #e8e9eb; transform: translateY(-2px); box-shadow: 0 6px 24px rgba(255,255,255,0.18); } /* LBlue outline — secondary */ .btn-outline-lblue { background: transparent; color: #40d3e2; border: 1.5px solid #40d3e2; } .btn-outline-lblue:hover { background: rgba(64,211,226,0.08); transform: translateY(-2px); box-shadow: 0 4px 20px rgba(64,211,226,0.18); } /* White outline — for hero/dark bg use */ .btn-outline-white { background: transparent; color: #f2f3f5; border: 1.5px solid rgba(255,255,255,0.25); } .btn-outline-white:hover { border-color: rgba(255,255,255,0.55); background: rgba(255,255,255,0.06); transform: translateY(-2px); } /* Ghost — tertiary */ .btn-ghost { background: transparent; color: #858a96; border: 1.5px solid #252830; } .btn-ghost:hover { border-color: #40444e; color: #f2f3f5; transform: translateY(-2px); } /* Sizes */ .btn-sm { padding: 8px 16px; font-size: 12px; border-radius: 8px; } .btn-lg { padding: 15px 32px; font-size: 16px; border-radius: 12px; } .btn-pill { border-radius: 100px; }
Pills
Default style is gray — three levels of muted. Color tints are contextual only, used to carry meaning (status, category). Gradient border for featured/hero labels.
/* Base pill */ .pill { display: inline-flex; align-items: center; gap: 7px; font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600; border-radius: 100px; padding: 5px 14px; } /* Default gray — primary use */ .pill-default { background: rgba(255,255,255,0.05); color: #858a96; border: 1px solid #252830; } .pill-text { background: rgba(242,243,245,0.08); color: #f2f3f5; border: 1px solid rgba(255,255,255,0.1); } .pill-dim { background: transparent; color: #40444e; border: 1px solid #1e2128; } /* Featured — spectrum gradient border */ .pill-featured { background: var(--card); color: #858a96; position: relative; border: 1px solid transparent; background-clip: padding-box; } .pill-featured::before { content: ''; position: absolute; inset: 0; border-radius: 100px; padding: 1px; background: var(--os-spectrum); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; } /* Contextual color tints — pattern for all six */ .pill-green { background: rgba(67,209,161,0.12); color: #43d1a1; border: 1px solid rgba(67,209,161,0.3); } .pill-pink { background: rgba(224,64,114,0.14); color: #e04072; border: 1px solid rgba(224,64,114,0.3); } .pill-lblue { background: rgba(64,211,226,0.12); color: #40d3e2; border: 1px solid rgba(64,211,226,0.3); } /* etc. */
Card Variants
Cards live on --card. Top accent bars use a single spot color or the spectrum. Hover lifts 3px with shadow.
.card { background: #13151a; border: 1px solid #1e2128; border-radius: 16px; overflow: hidden; transition: border-color 0.22s, transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s; } .card:hover { border-color: #252830; transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0,0,0,0.5); } /* Top accent bar */ .card-bar { height: 3px; background: #e04072; } /* Or gradient: */ .card-bar-spectrum { background: var(--os-spectrum); }
Decorative Glow Elements
Blurred radial blobs placed behind content. They add depth without literal imagery. Use one or two per section — never all colors at once.
/* Section wrapper must have position:relative; overflow:hidden */ .orb { position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.45; pointer-events: none; z-index: 0; } /* Example placements */ .orb-pink-tl { background: #e04072; width:260px; height:260px; top:-80px; left:-60px; } .orb-purple-tr { background: #424082; width:320px; height:320px; top:-100px; right:-80px; filter:blur(80px); opacity:0.35; } .orb-green-br { background: #43d1a1; width:200px; height:200px; bottom:-60px; right:10%; } /* Content must be z-index:1 relative to orbs */
Subtle Background Textures
Minimal and geometric. Two patterns: the dot grid (used on the main page bg) and the line grid (used in hero sections).
body::before./* Dot grid — global page background */ body::before { content: ''; position: fixed; inset: 0; z-index: 0; background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 28px 28px; pointer-events: none; } /* Line grid — hero / feature sections */ .hero-section::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px); background-size: 40px 40px; pointer-events: none; }
Accent Bars
Horizontal lines using spectrum or single spot colors. Used as section dividers, card tops, and decorative rule elements.
Motion Principles
Fast, purposeful, spring-forward. All transitions use cubic-bezier(0.16,1,0.3,1) — an ease-out-expo that feels snappy and confident.
:root { /* Easing — all UI uses ease-out-expo */ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1); --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* micro-interactions */ /* Durations */ --dur-snap: 120ms; /* color changes, opacity */ --dur-fast: 200ms; /* hover states */ --dur-base: 250ms; /* default transitions */ --dur-slow: 400ms; /* reveals, page elements */ --dur-enter: 600ms; /* page load / section enters */ } /* Standard card hover */ .card { transition: transform 0.25s var(--ease-out-expo), box-shadow 0.25s, border-color 0.2s; } .card:hover { transform: translateY(-3px); } /* Button hover */ .btn { transition: all 0.22s var(--ease-out-expo); } .btn:hover { transform: translateY(-2px); }
Site Nav
Dark bar on --card. Logo uses Manrope 800. Nav links use Inter 500. Sticky with backdrop-filter: blur(16px) on scroll.
Form Elements
Inputs sit on #0f1015. Focus ring is --lblue. Error state is --pink. Label is Inter 600 uppercase 11px.
Spacing Scale
4px base unit. All layout spacing uses multiples of 4.
xs
sm
—
md
—
lg
xl
—
2xl
3xl
4xl
5xl
Border Radius
sm
md
—
lg
—
xl
2xl
pill
Shadows (Dark Mode)
Small Components
Avatar rings, progress bars, focus rings, and dividers.