Files
blackroad-docs/brand/BLACKROAD_DESIGN_SYSTEM.css
Alexa Amundson 396b24e3a0 Sync 96 documentation files across 13 categories (35K lines)
Architecture, brand system, business plans, governance/licensing,
guides, integrations, marketing, operations, technology specs,
strategy, whitepapers, roadmaps, and reference materials.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:13:49 -06:00

264 lines
6.8 KiB
CSS

/**
* ═══════════════════════════════════════════════════════
* BLACKROAD OS — OFFICIAL DESIGN SYSTEM
* ═══════════════════════════════════════════════════════
*
* ⚠️ IMPORTANT: THIS IS THE ONLY APPROVED DESIGN SYSTEM
*
* DO NOT CREATE DESIGNS OUTSIDE OF THIS SYSTEM.
* ALL CLOUDFLARE PROJECTS MUST USE THESE EXACT VALUES.
*
* Brand Colors, Spacing, Typography, Animations
* Source: blackroad-template-01-homepage.html
*
* ═══════════════════════════════════════════════════════
*/
:root {
/* ========== BRAND COLORS (OFFICIAL) ========== */
--black: #000000;
--deep-black: #0A0A0A;
--charcoal: #1A1A1A;
--white: #FFFFFF;
--sunrise-orange: #FF9D00;
--warm-orange: #FF6B00;
--hot-pink: #FF0066;
--electric-magenta: #FF006B;
--deep-magenta: #D600AA;
--vivid-purple: #7700FF;
--cyber-blue: #0066FF;
/* ========== BRAND GRADIENTS ========== */
--gradient-br: linear-gradient(180deg,
var(--sunrise-orange) 0%,
var(--warm-orange) 25%,
var(--hot-pink) 75%,
var(--electric-magenta) 100%
);
--gradient-os: linear-gradient(180deg,
var(--electric-magenta) 0%,
var(--deep-magenta) 25%,
var(--vivid-purple) 75%,
var(--cyber-blue) 100%
);
--gradient-full: linear-gradient(180deg,
var(--sunrise-orange) 0%,
var(--warm-orange) 14%,
var(--hot-pink) 28%,
var(--electric-magenta) 42%,
var(--deep-magenta) 57%,
var(--vivid-purple) 71%,
var(--cyber-blue) 100%
);
--gradient-brand: var(--gradient-full);
/* ========== GOLDEN RATIO SPACING ========== */
--phi: 1.618;
--space-xs: 8px;
--space-sm: 13px;
--space-md: 21px;
--space-lg: 34px;
--space-xl: 55px;
--space-2xl: 89px;
--space-3xl: 144px;
/* ========== ANIMATIONS ========== */
--ease: cubic-bezier(0.25, 0.1, 0.25, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
/* ========== RESET ========== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Courier New', monospace;
background: var(--deep-black);
color: var(--white);
overflow-x: hidden;
line-height: 1.618;
-webkit-font-smoothing: antialiased;
}
/* ========== TYPOGRAPHY ========== */
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
line-height: 1.2;
}
h1 { font-size: calc(2.5rem * var(--phi)); }
h2 { font-size: calc(2rem * var(--phi)); }
h3 { font-size: calc(1.5rem * var(--phi)); }
h4 { font-size: calc(1.25rem * var(--phi)); }
h5 { font-size: calc(1rem * var(--phi)); }
h6 { font-size: 1rem; }
/* ========== BUTTONS ========== */
.btn {
padding: var(--space-sm) var(--space-lg);
border-radius: var(--space-xs);
border: none;
font-weight: 600;
cursor: pointer;
transition: all 0.3s var(--ease);
}
.btn-primary {
background: var(--gradient-brand);
color: var(--white);
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(255, 157, 0, 0.3);
}
.btn-secondary {
background: transparent;
color: var(--white);
border: 2px solid var(--white);
}
.btn-secondary:hover {
background: var(--white);
color: var(--black);
}
/* ========== CARDS ========== */
.card {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(10px);
border-radius: var(--space-md);
padding: var(--space-xl);
border: 1px solid rgba(255, 255, 255, 0.1);
}
/* ========== NAVIGATION ========== */
nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
padding: var(--space-md) var(--space-xl);
display: flex;
justify-content: space-between;
align-items: center;
background: rgba(0, 0, 0, 0.85);
backdrop-filter: saturate(180%) blur(20px);
}
/* ========== SCROLL PROGRESS ========== */
.scroll-progress {
position: fixed;
top: 0;
left: 0;
height: 2px;
background: var(--gradient-brand);
z-index: 9999;
width: 0%;
}
/* ========== GRADIENTS ========== */
.gradient-text {
background: var(--gradient-brand);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gradient-border {
position: relative;
background: var(--black);
}
.gradient-border::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
padding: 2px;
background: var(--gradient-brand);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
/* ========== ANIMATIONS ========== */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes slideInLeft {
from { opacity: 0; transform: translateX(-30px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight {
from { opacity: 0; transform: translateX(30px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
/* ========== UTILITY CLASSES ========== */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 var(--space-xl);
}
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.mt-xs { margin-top: var(--space-xs); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mb-xs { margin-bottom: var(--space-xs); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
h1 { font-size: calc(1.5rem * var(--phi)); }
h2 { font-size: calc(1.25rem * var(--phi)); }
h3 { font-size: calc(1rem * var(--phi)); }
.container {
padding: 0 var(--space-md);
}
}