The @kartikarora design system establishes the visual, spatial, and interaction language for Kartik Arora’s digital presence across kartikarora.me, technical publications, open-source documentation, and native Android applications.
Design Thesis: Craft over costume. Restraint over decoration. Authority over generic templates.
Kartik Arora is a Staff Android Engineer and Google Developer Expert (GDE) for Android based in Sydney, Australia. The design system rejects generic “AI slop” tropes—such as neon gradients, artificial typewriter animations, circular photo stamps, fake metric counters, and uniform 3-box feature cards—in favor of high-craft editorial clarity, authentic engineering artifacts (real terminal output, architectural deep dives), and rigorous typography.
The Anti-Slop Rule. No component or decorative element may exist without conveying authentic information. If an element exists solely to “look technical” (e.g. decorative telemetry counters, fake binary streams, ornamental step numbers), it must be removed.
The palette is built on high-contrast neutrals anchored by a single intentional interactive signal: Precision Cobalt.
#0066cc in Light Mode, #40a9ff Electric Cobalt in Dark Mode). Used for primary calls-to-action, active indicators, keyboard focus rings, and link hovers.#ffffff) in Light Mode; Obsidian (#0d1117) in Dark Mode.#ffffff on #f6f8fa (Light) and #161b22 on #0d1117 (Dark).#eaeef2 (Light) and #090d13 (Dark).#0d1117 / #e6edf3) maintains ≥12:1 contrast against canvas. Muted secondary text (#57606a / #8d96a0) maintains ≥4.5:1 contrast for strict WCAG AAA conformance.rgba(31, 35, 40, 0.12) in Light, rgba(240, 246, 252, 0.10) in Dark).The Single Anchor Rule. One accent hue per surface. No chromatic rainbow buttons, no purple-to-blue gradients, and no colored drop shadows. Elevation is achieved through lightness and subtle hairlines.
Typography pairs a human, legible modern sans-serif with a monospace face reserved strictly for code, technical figures, and data.
Albert Sans. A geometric sans-serif with open apertures and high legibility across mobile viewports and editorial reading lengths.
clamp(2.5rem, 5.5vw, 4.25rem), 700 weight, letter-spacing: -0.03em, text-wrap: balance.clamp(1.4rem, 2.75vw, 2.0rem), 700 weight, letter-spacing: -0.02em.1.0rem (16px), line-height: 1.6, max-width: 65ch for prose, text-wrap: pretty.JetBrains Mono.
font-variant-numeric: tabular-nums.The Mono As Substance Rule. Monospace is never used as a decorative costume for labels, eyebrows, or regular UI copy. Monospace is reserved exclusively for actual code, terminal commands, data figures, and file paths.
1200px (--max-width); narrow reading container is 800px (--max-width-narrow).4px, 8px, 16px, 24px, 32px, 48px, 64px, 96px).var(--space-3xl)), tight grouping between headings and direct descriptions (var(--space-xs)).The Asymmetric Work Rule. Projects and technical achievements are given visual structure tailored to their real medium (e.g., CLI tools showcase real terminal syntax; libraries showcase multiplatform architectures), rather than forcing every project into identical 3-column cards.
1px solid var(--border)) on slightly elevated surfaces (var(--card)).0 8px 24px var(--shadow)). Zero-offset colored glowing halos are forbidden.backdrop-filter: blur(12px) with 85% opacity surface tint) to maintain spatial context during scroll.100px full pill radius (--radius-pill) on buttons, filter chips, and navigation items. This establishes a tactile, friendly interaction affordance.12px radius (--radius-md) for content cards and dialogue surfaces.6px radius (--radius-sm) for inline technical badges, inputs, and code containers.border-radius: 50%). Editorial imagery should respect the photograph’s natural aspect ratio or use grounded rectangular framing (12px radius)..btn).btn-primary: Precision Cobalt fill (var(--accent)), white text (var(--color-signal-ink)), 100px pill radius, instant focus ring on tab..btn-outline: Hairline border (1px solid var(--border)), transparent background, hover shifts to subtle surface tint.transform: translateY(1px)). Focus state: Instant outline: 2px solid var(--focus); outline-offset: 3px..tabs)transform: translateX()..talk-row)Slides, Video). Replaces clumsy video preview tiles with a clean, searchable index..project-feature)tokens/design-tokens.json).:focus-visible rings on all interactive elements.typing-text) with blinking cursors.background-clip: text).backdrop-filter on standard content cards.