blob: fff3822ca6d24a000c8f0ea5fef832e4d35f6e70 [file]
/**
* Apache Ignite Typography
* Font system extracted from legacy site
*
* Typography scale is based on a 10px root font size (1rem = 10px)
* which allows for precise control over sizing throughout the site.
*/
:root {
/* === Font Families === */
/* Primary font stack - Arial fallback system */
--ai-font-primary: Arial, Helvetica, sans-serif;
/* Monospace font for code blocks */
--ai-font-mono: Monaco, 'Courier New', monospace;
/* === Fluid Font Sizes === */
/* Scales smoothly between viewport widths using clamp() */
/* Format: clamp(min, preferred, max) */
/* Eliminates need for most media query font-size overrides */
--ai-text-xs: clamp(1rem, 0.9rem + 0.25vw, 1.2rem); /* 10-12px */
--ai-text-sm: clamp(1.2rem, 1.1rem + 0.3vw, 1.4rem); /* 12-14px */
--ai-text-base: clamp(1.4rem, 1.3rem + 0.3vw, 1.6rem); /* 14-16px */
--ai-text-lg: clamp(1.6rem, 1.4rem + 0.3vw, 1.7rem); /* 16-17px */
--ai-text-xl: clamp(1.7rem, 1.5rem + 0.5vw, 2rem); /* 17-20px */
--ai-text-2xl: clamp(2rem, 1.8rem + 0.6vw, 2.4rem); /* 20-24px */
--ai-text-3xl: clamp(2.4rem, 2rem + 1vw, 3rem); /* 24-30px */
--ai-text-4xl: clamp(3rem, 2.5rem + 1.5vw, 4rem); /* 30-40px */
--ai-text-5xl: clamp(3.6rem, 3rem + 2vw, 4.8rem); /* 36-48px */
--ai-text-6xl: clamp(4.5rem, 4rem + 2.5vw, 6rem); /* 45-60px */
--ai-text-7xl: clamp(5.5rem, 5rem + 2.5vw, 7rem); /* 55-70px */
--ai-text-8xl: clamp(6rem, 5.5rem + 3vw, 8rem); /* 60-80px */
/* === Fluid Line Heights === */
/* Also scale smoothly with viewport */
--ai-leading-tight: clamp(1.1, 1.05 + 0.1vw, 1.15);
--ai-leading-snug: clamp(1.15, 1.1 + 0.1vw, 1.2);
--ai-leading-normal: clamp(1.4, 1.3 + 0.2vw, 1.5);
--ai-leading-relaxed: clamp(1.5, 1.4 + 0.2vw, 1.6);
--ai-leading-loose: clamp(1.6, 1.5 + 0.25vw, 1.75);
/* === Font Weights === */
--ai-font-normal: 400;
--ai-font-bold: 700;
/* === Letter Spacing === */
--ai-tracking-normal: normal;
--ai-tracking-wide: 2px;
}
/* === Base Typography Reset === */
html {
/* Fluid root font size scales from 8px to 10px based on viewport */
/* Replaces media query overrides at 1199px (9px) and 992px (8px) */
font-size: clamp(8px, 0.7vw + 7px, 10px);
box-sizing: border-box;
-ms-overflow-style: scrollbar;
}
body {
font-family: var(--ai-font-primary);
font-size: var(--ai-text-base);
line-height: 2.4rem;
color: var(--ai-text-primary);
font-weight: var(--ai-font-normal);
}
/* === Heading Styles === */
/* Default heading sizes for content pages (blog, docs, etc.) */
h1 {
font-size: 4rem;
line-height: 1.2;
font-weight: var(--ai-font-bold);
margin: 0;
}
h2 {
font-size: 3rem;
line-height: 1.3;
font-weight: var(--ai-font-bold);
margin: 0;
}
h3 {
font-size: 2.4rem;
line-height: 1.4;
font-weight: var(--ai-font-bold);
margin: 0;
}
h4 {
font-size: 2rem;
line-height: 1.4;
font-weight: var(--ai-font-bold);
margin: 0;
}
h5 {
font-size: 1.8rem;
line-height: 1.4;
font-weight: var(--ai-font-bold);
margin: 0;
}
/* === Hero Heading Classes === */
/* Large heading sizes for landing pages and hero sections */
.h1,
.hero-h1 {
font-size: var(--ai-text-8xl);
line-height: 9.4rem;
font-weight: var(--ai-font-normal);
margin: 0;
}
.h2,
.hero-h2 {
font-size: var(--ai-text-6xl);
line-height: var(--ai-text-7xl);
font-weight: var(--ai-font-normal);
margin: 0;
}
.h3,
.hero-h3 {
font-size: var(--ai-text-5xl);
line-height: 6.4rem;
font-weight: var(--ai-font-normal);
margin: 0;
}
.h4,
.hero-h4 {
font-size: var(--ai-text-3xl);
line-height: var(--ai-text-4xl);
font-weight: var(--ai-font-normal);
margin: 0;
}
.h5,
.hero-h5 {
font-size: var(--ai-text-2xl);
line-height: 3.4rem;
font-weight: var(--ai-font-normal);
margin: 0;
}
/* === Utility Font Size Classes === */
/* Pre-defined font sizes for consistent sizing */
.fz20 {
font-size: var(--ai-text-xl);
line-height: 2.6rem;
}
.fz30 {
font-size: var(--ai-text-3xl);
line-height: 4.2rem;
}
.fz40 {
font-size: var(--ai-text-4xl);
line-height: 5rem;
}
.fz50 {
font-size: 5rem;
line-height: 5.5rem;
}
.fz60 {
font-size: var(--ai-text-6xl);
line-height: var(--ai-text-7xl);
}
/* === Text Utilities === */
/* Capitalized text with letter spacing */
.capstext {
font-size: var(--ai-text-base);
line-height: 1;
letter-spacing: var(--ai-tracking-wide);
text-transform: uppercase;
font-weight: var(--ai-font-normal);
padding-bottom: 1.2rem;
}
/* Line clamping utilities */
.maxline2 {
display: -webkit-box !important;
-webkit-line-clamp: 2;
line-clamp: 2;
overflow: hidden;
-webkit-box-orient: vertical;
}
.maxline3 {
display: -webkit-box !important;
-webkit-line-clamp: 3;
line-clamp: 3;
overflow: hidden;
-webkit-box-orient: vertical;
}
/* Emphasis */
em {
font-style: italic;
}
/* === Responsive Typography === */
/*
* PHASE 3 OPTIMIZATION: Most responsive typography is now handled by
* fluid clamp() values in the CSS variables above. This eliminates
* the need for most media query overrides.
*
* Only keep media queries for layout changes, not font-size adjustments.
*/
/* Mobile-specific line height adjustments */
@media (max-width: 767px) {
/* Adjust line heights for better mobile readability */
.h5,
h5 {
line-height: 1.4;
}
.capstext {
line-height: var(--ai-leading-normal);
}
}