This guide defines the mandatory standards for implementing the @kartikarora brand design system. AI agents MUST follow these instructions strictly to ensure visual and functional consistency across all branded projects.
<head> of every HTML file.var(--accent), var(--space-md), etc.) for all styling. Never use hardcoded hex codes or pixel values for brand-related properties..btn-primary, .tabs, .step-number, etc.) instead of creating new ones.prefers-color-scheme. Never implement a custom theme toggle, data-theme attribute, or local storage theme persistence.kartikarora-compose-theme skill (references/Color.kt, references/Theme.kt, and SKILL.md).Include these in the <head> of every project. Do not attempt to bundle or copy these files locally.
<!-- Brand Identity CSS -->
<link href="https://distribute.kartikarora.me/css/kartikarora.css" rel="stylesheet">
<!-- Required Fonts & Icons -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Albert+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Material+Symbols+Outlined:opsz,wght,FILL,[email protected],100..700,0..1,-50..200" rel="stylesheet">
For JavaScript CDN assets, automated behavior, and API initialization methods (e.g. KartikArora.initTabs()), refer to Brand JavaScript API & Interactivity.
The brand has strict mandates on typography and pull quotes. For the full requirements and CSS definitions, refer to Typographic Identity & Blockquote Mandates.
To access detailed specifications, guidelines, and markup templates, read these files:
You can validate local web assets against brand design constraints using this Node.js scanning script:
brand-linter.js: Scans directories to check for token violations (hardcoded hex/pixels/fonts) in CSS/HTML.var(--accent)) instead of hardcoded hex values or px counts.var(--space-lg) instead of manual sizing (e.g. margin: 35px)..btn-primary, .btn-secondary, or .btn-outline exclusively.class="language-js") for highlighters to map correctly.@media (min-width: 768px)) for desktop adjustments.❌ Bundling Local Files: Do not copy kartikarora.css or kartikarora.js into your project’s local file system. Use the CDN links.
❌ Hardcoded Hex Codes: Do not use hex codes like #0066cc. Use var(--accent).
❌ Custom Button/Tab CSS/JS: Do not write custom selectors or event listeners for components that are already implemented natively.
❌ Redundant Fonts: Do not import your own fonts if the brand fonts (Albert Sans, JetBrains Mono) are already available via the CDN.
❌ Manual Theme Toggling: Do not implement custom theme switchers or write to localStorage to save theme preferences.
Before finishing any branded implementation, verify the following:
kartikarora.css, kartikarora.js, and the required fonts included in the HTML <head>?.btn-primary, .tabs, .tab-item, etc. instead of custom classes?var(--accent), var(--space-md))?data-theme usage?.material-symbols-outlined class?language-* class for syntax highlighting?kartikarora-compose-theme and its Kotlin references been updated in lockstep?