Skip to main content
Glama
alexander-zuev

Kollektiv | Your private LLM knowledgebase

typography.css11.8 kB
/** * Typography system * * This file defines our typography system in four main sections: * * 1. :root - Base variables that don't directly map to Tailwind utilities. * Used as references and accessed globally in CSS. * * 2. @theme inline - Variables that generate standard Tailwind utility classes * (e.g., font-bold, text-lg, text-primary). * * 3. @layer base - Default styles for basic HTML elements (h1, p, etc.). * Provides a sensible fallback but might be overridden by component-specific styles. * * 4. @layer utilities - Custom typography utility classes (`.app-typography-*`). * These are the PREFERRED way to apply consistent typography across the application, * ensuring styles apply predictably, even within components. * @plugin '@tailwindcss/typography'; /* === BASE TYPOGRAPHY VARIABLES === */ /* These variables don't generate utility classes but serve as the foundation */ :root { /* Font sizes */ --font-size-1: 0.75rem; /* 12px */ --font-size-2: 0.875rem; /* 14px */ --font-size-3: 1rem; /* 16px */ --font-size-4: 1.125rem; /* 18px */ --font-size-5: 1.25rem; /* 20px */ --font-size-6: 1.5rem; /* 24px */ --font-size-7: 1.75rem; /* 28px */ --font-size-8: 2.1875rem; /* 35px */ --font-size-9: 3.75rem; /* 60px */ /* Add fluid typography scale (preserves desktop sizes) */ --font-size-fluid-1: clamp(0.8125rem, calc(0.76rem + 0.2vw), 0.75rem); /* 13px → 12px */ --font-size-fluid-2: clamp(0.875rem, calc(0.83rem + 0.2vw), 0.875rem); /* 14px → 14px */ --font-size-fluid-3: clamp(1rem, calc(0.95rem + 0.25vw), 1rem); /* 16px → 16px */ --font-size-fluid-4: clamp(1.0625rem, calc(1rem + 0.25vw), 1.125rem); /* 17px → 18px */ --font-size-fluid-5: clamp(1.125rem, calc(1.05rem + 0.5vw), 1.25rem); /* 18px → 20px */ --font-size-fluid-6: clamp(1.25rem, calc(1.15rem + 0.5vw), 1.5rem); /* 20px → 24px */ --font-size-fluid-7: clamp(1.5rem, calc(1.35rem + 0.75vw), 1.75rem); /* 24px → 28px */ --font-size-fluid-8: clamp(1.75rem, calc(1.5rem + 1.25vw), 2.1875rem); /* 28px → 35px */ --font-size-fluid-9: clamp(2.5rem, calc(2rem + 1.75vw), 3.75rem); /* 40px → 60px */ /* Letter spacing */ --letter-spacing-1: 0.0025em; --letter-spacing-2: 0em; --letter-spacing-3: 0em; --letter-spacing-4: -0.0025em; --letter-spacing-5: -0.005em; --letter-spacing-6: -0.00625em; --letter-spacing-7: -0.0075em; --letter-spacing-8: -0.01em; --letter-spacing-9: -0.025em; /* Line heights */ --line-height-1: 1.333; /* 16px for 12px text (Size 1) */ --line-height-2: 1.428; /* 20px for 14px text (Size 2) */ --line-height-3: 1.5; /* 24px for 16px text (Size 3) */ --line-height-4: 1.444; /* 26px for 18px text (Size 4) */ --line-height-5: 1.4; /* 28px for 20px text (Size 5) */ --line-height-6: 1.25; /* 30px for 24px text (Size 6) */ --line-height-7: 1.285; /* 36px for 28px text (Size 7) */ --line-height-8: 1.142; /* 40px for 35px text (Size 8) */ --line-height-9: 1; /* 60px for 60px text (Size 9) */ /* Heading line heights */ --heading-line-height-1: 1.333; /* Same as --line-height-1 */ --heading-line-height-2: 1.428; /* Same as --line-height-2 */ --heading-line-height-3: 1.5; /* Same as --line-height-3 */ --heading-line-height-4: 1.444; /* Same as --line-height-4 */ --heading-line-height-5: 1.4; /* Same as --line-height-5 */ --heading-line-height-6: 1.25; /* Same as --line-height-6 */ --heading-line-height-7: 1.285; /* Same as --line-height-7 */ --heading-line-height-8: 1.142; /* Same as --line-height-8 */ --heading-line-height-9: 1; /* Same as --line-height-9 */ } /* Scaled down shell for AppLayout*/ [data-app-shell] { /* knock every step down by 1 step */ --font-size-fluid-3: clamp(0.875rem, calc(0.83rem + 0.2vw), 0.875rem); /* 14px → 14px */ --font-size-fluid-4: clamp(1rem, calc(0.95rem + 0.25vw), 1rem); /* 16px → 16px */ --font-size-fluid-5: clamp(1.0625rem, calc(1rem + 0.25vw), 1.125rem); /* 17px → 18px */ --font-size-fluid-6: clamp(1.125rem, calc(1.05rem + 0.5vw), 1.25rem); /* 18px → 20px */ --font-size-fluid-7: clamp(1.25rem, calc(1.15rem + 0.5vw), 1.5rem); /* 20px → 24px */ --font-size-fluid-8: clamp(1.5rem, calc(1.35rem + 0.75vw), 1.75rem); /* 24px → 28px */ --font-size-fluid-9: clamp(1.75rem, calc(1.5rem + 1.25vw), 2.1875rem); /* 28px → 35px */ /* OPTIONAL — if you see vertical crowding, uncomment these --heading-line-height-7: 1.35; --heading-line-height-8: 1.25; --heading-line-height-9: 1.15; */ } [data-app-shell] h2, [data-app-shell] h3 { /* medium (e.g. 500) instead of bold */ font-weight: var(--font-weight-medium); } [data-app-shell] ol, [data-app-shell] ul, [data-app-shell] li { font-size: var(--font-size-fluid-3); line-height: var(--line-height-3); } [data-app-shell] h4, [data-app-shell] h5, [data-app-shell] h6 { /* regular (e.g. 400) instead of medium/bold */ font-weight: var(--font-weight-regular); } /* === TAILWIND UTILITY GENERATORS === */ /* These variables generate Tailwind utility classes */ @theme inline { /* Font families */ --font-sans: Inter, sans-serif; --font-serif: Inter, serif; --font-mono: "Space Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji"; --font-brand: "Space Grotesk", sans-serif; --font-heading: var(--heading-font-family); --font-body: var(--default-font-family); /* Font weights - these generate utility classes like font-bold */ --font-weight-light: 300; --font-weight-regular: 400; --font-weight-medium: 500; --font-weight-bold: 900; /* Default typography values */ --default-font-family: "Inter", sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; --default-font-size: var(--font-size-3); /* Same size used for `<Text size="3">` */ --default-font-style: normal; --default-font-weight: var(--font-weight-regular); --default-line-height: 1.5; --default-letter-spacing: 0em; --default-leading-trim-start: 0.42em; --default-leading-trim-end: 0.36em; /* Heading typography */ --heading-font-family: var(--default-font-family); --heading-font-size-adjust: 1; --heading-font-style: normal; --heading-leading-trim-start: var(--default-leading-trim-start); --heading-leading-trim-end: var(--default-leading-trim-end); --heading-letter-spacing: 0em; /* Code typography */ --code-font-family: var(--font-mono); --code-font-size-adjust: 0.95; --code-font-style: normal; --code-font-weight: inherit; --code-letter-spacing: -0.007em; --code-padding-top: 0.1em; --code-padding-bottom: 0.1em; --code-padding-left: 0.25em; --code-padding-right: 0.25em; /* Strong typography */ --strong-font-family: var(--default-font-family); --strong-font-size-adjust: 1; --strong-font-style: inherit; --strong-font-weight: var(--font-weight-bold); --strong-letter-spacing: 0em; /* Em typography */ --em-font-family: "Georgia", "Georgia Pro", serif; --em-font-size-adjust: 1.18; --em-font-style: italic; --em-font-weight: inherit; --em-letter-spacing: -0.025em; /* Quote typography */ --quote-font-family: "Georgia", "Georgia Pro", serif; --quote-font-size-adjust: 1.18; --quote-font-style: italic; --quote-font-weight: inherit; --quote-letter-spacing: -0.025em; /* Tab typography */ --tab-active-letter-spacing: -0.01em; --tab-active-word-spacing: 0em; --tab-inactive-letter-spacing: 0em; --tab-inactive-word-spacing: 0em; /* Tailwind mapping - these create utility classes */ /* Update Tailwind font size mapping */ --text-xs: var(--font-size-fluid-1); --text-sm: var(--font-size-fluid-2); --text-base: var(--font-size-fluid-3); --text-lg: var(--font-size-fluid-4); --text-xl: var(--font-size-fluid-5); --text-2xl: var(--font-size-fluid-6); --text-3xl: var(--font-size-fluid-7); --text-4xl: var(--font-size-fluid-8); /* Line heights for Tailwind utilities */ --leading-none: var(--line-height-9); /* 1 */ --leading-tight: var(--line-height-6); /* 1.25 */ --leading-normal: var(--line-height-3); /* 1.5 */ --leading-relaxed: var(--line-height-2); /* 1.428 */ /* Letter spacing for Tailwind utilities */ --tracking-tight: var(--letter-spacing-9); --tracking-normal: var(--letter-spacing-6); --tracking-wide: var(--letter-spacing-3); --tracking-widest: var(--letter-spacing-1); } /* === BASE HTML ELEMENT STYLING === */ /* * @layer base is used to apply our typography system to HTML elements. * We use this instead of @theme inline for element styling because: * 1. It follows the proper cascade order in CSS * 2. It allows us to style HTML elements directly without classes * 3. It provides default styling that can be overridden with utility classes */ @layer base { body { font-family: var(--font-sans); font-size: var(--font-size-fluid-3); /* Your body text size */ line-height: var(--line-height-3); font-weight: var(--font-weight-regular); } /* Headings */ h1 { font-size: var(--font-size-fluid-9); letter-spacing: var(--letter-spacing-9); line-height: var(--heading-line-height-9); font-weight: var(--font-weight-bold); } h2 { font-size: var(--font-size-fluid-8); letter-spacing: var(--letter-spacing-8); line-height: var(--heading-line-height-8); font-weight: var(--font-weight-bold); } h3 { font-size: var(--font-size-fluid-7); letter-spacing: var(--letter-spacing-7); line-height: var(--heading-line-height-7); font-weight: var(--font-weight-bold); } h4 { font-size: var(--font-size-fluid-6); letter-spacing: var(--letter-spacing-6); line-height: var(--heading-line-height-6); font-weight: var(--font-weight-medium); } h5 { font-size: var(--font-size-fluid-5); letter-spacing: var(--letter-spacing-5); line-height: var(--heading-line-height-5); font-weight: var(--font-weight-medium); } h6 { font-size: var(--font-size-fluid-4); letter-spacing: var(--letter-spacing-4); line-height: var(--heading-line-height-4); font-weight: var(--font-weight-medium); } /* Paragraphs and text */ p { font-size: var(--font-size-fluid-3); letter-spacing: var(--letter-spacing-3); line-height: var(--line-height-3); } small { font-size: var(--font-size-fluid-1); letter-spacing: var(--letter-spacing-2); line-height: var(--line-height-2); } /* Links */ a { font-weight: var(--font-weight-medium); @apply transition-colors duration-200; } a:hover { color: var(--color-primary); } /* Code element */ code { font-family: var(--code-font-family); font-size: calc(1em * var(--code-font-size-adjust)); font-style: var(--code-font-style); font-weight: var(--code-font-weight); letter-spacing: var(--code-letter-spacing); padding-top: var(--code-padding-top); padding-bottom: var(--code-padding-bottom); padding-left: var(--code-padding-left); padding-right: var(--code-padding-right); background-color: var(--color-muted); border-radius: 3px; } /* Strong element */ strong { font-family: var(--strong-font-family); font-size: calc(1em * var(--strong-font-size-adjust)); font-style: var(--strong-font-style); font-weight: var(--strong-font-weight); letter-spacing: var(--strong-letter-spacing); } /* Emphasis element */ em { font-family: var(--em-font-family); font-size: calc(1em * var(--em-font-size-adjust)); font-style: var(--em-font-style); font-weight: var(--em-font-weight); letter-spacing: var(--em-letter-spacing); } /* Blockquote element */ blockquote { font-family: var(--quote-font-family); font-size: calc(1em * var(--quote-font-size-adjust)); font-style: var(--quote-font-style); font-weight: var(--quote-font-weight); letter-spacing: var(--quote-letter-spacing); border-left: 4px solid var(--color-border); padding-left: 1rem; margin-left: 0; margin-right: 0; } pre { white-space: pre-wrap; word-break: break-word; overflow-wrap: break-word; overflow-x: auto; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexander-zuev/kollektiv-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server