|
| 1 | +--- |
| 2 | +name: CodingCat.dev 2026 — Duolingo Chalkboard & Excalidraw |
| 3 | +colors: |
| 4 | + background: '#131F24' |
| 5 | + surface: '#131F24' |
| 6 | + surface-card: '#202F36' |
| 7 | + surface-elevated: '#283B44' |
| 8 | + surface-border: '#37464F' |
| 9 | + chalk-white: '#FFFFFF' |
| 10 | + chalk-muted: '#DCE6EC' |
| 11 | + chalk-subtle: '#8FA6B2' |
| 12 | + primary: '#58CC02' |
| 13 | + primary-lip: '#46A302' |
| 14 | + primary-hover: '#89E219' |
| 15 | + secondary: '#1CB0F6' |
| 16 | + secondary-lip: '#1899D6' |
| 17 | + tertiary: '#FF9600' |
| 18 | + tertiary-lip: '#E58700' |
| 19 | + highlight-yellow: '#FFC800' |
| 20 | + highlight-yellow-lip: '#E5B400' |
| 21 | + danger-coral: '#FF4B4B' |
| 22 | + danger-coral-lip: '#EA2B2B' |
| 23 | + accent-purple: '#CE82FF' |
| 24 | + accent-purple-lip: '#A560E8' |
| 25 | + canvas-diagram: '#0D1519' |
| 26 | +typography: |
| 27 | + display-xl: |
| 28 | + fontFamily: Nunito |
| 29 | + fontSize: 56px |
| 30 | + fontWeight: '900' |
| 31 | + lineHeight: 62px |
| 32 | + letterSpacing: '-0.02em' |
| 33 | + display-lg: |
| 34 | + fontFamily: Nunito |
| 35 | + fontSize: 44px |
| 36 | + fontWeight: '900' |
| 37 | + lineHeight: 50px |
| 38 | + letterSpacing: '-0.02em' |
| 39 | + headline-lg: |
| 40 | + fontFamily: Nunito |
| 41 | + fontSize: 32px |
| 42 | + fontWeight: '800' |
| 43 | + lineHeight: 38px |
| 44 | + headline-md: |
| 45 | + fontFamily: Nunito |
| 46 | + fontSize: 24px |
| 47 | + fontWeight: '800' |
| 48 | + lineHeight: 32px |
| 49 | + sketch-label: |
| 50 | + fontFamily: Caveat |
| 51 | + fontSize: 24px |
| 52 | + fontWeight: '700' |
| 53 | + lineHeight: 28px |
| 54 | + body-lg: |
| 55 | + fontFamily: Plus Jakarta Sans |
| 56 | + fontSize: 18px |
| 57 | + fontWeight: '500' |
| 58 | + lineHeight: 28px |
| 59 | + body-md: |
| 60 | + fontFamily: Plus Jakarta Sans |
| 61 | + fontSize: 16px |
| 62 | + fontWeight: '500' |
| 63 | + lineHeight: 24px |
| 64 | + code-inline: |
| 65 | + fontFamily: Space Mono |
| 66 | + fontSize: 14px |
| 67 | + fontWeight: '400' |
| 68 | + lineHeight: 20px |
| 69 | +rounded: |
| 70 | + sm: 0.5rem |
| 71 | + DEFAULT: 0.75rem |
| 72 | + md: 1rem |
| 73 | + lg: 1.25rem |
| 74 | + xl: 1.5rem |
| 75 | + full: 9999px |
| 76 | +--- |
| 77 | + |
| 78 | +# CodingCat.dev 2026 — Duolingo Chalkboard & Hand-Drawn Excalidraw Design System |
| 79 | + |
| 80 | +## 1. Core Brand Philosophy ("free. fun. purrfect.") |
| 81 | +CodingCat.dev 2026 combines **Duolingo's joyful, high-saturation gamified learning UX** with **authentic hand-drawn Excalidraw chalkboard diagrams** so learners from Day-1 beginners to staff-level engineers feel welcomed, energized, and never intimidated. |
| 82 | + |
| 83 | +- **No Generic Corporate Slop:** Never use muted slate-purple SaaS dashboards, tiny low-contrast text, or cramped 4-column bento grids. |
| 84 | +- **Spacious Scrollytelling Rhythm:** Each scroll section focuses on **one big idea**, pairing a giant, friendly rounded lowercase headline in Feather Green (`#58CC02`) with a short scannable explanation and a playful hand-drawn Excalidraw chalkboard diagram. |
| 85 | + |
| 86 | +## 2. Color Palette & Tactile 3D Tokens |
| 87 | + |
| 88 | +| Token Role | Name | Main Hex | 3D Lip / Shadow Hex | Usage | |
| 89 | +| :--- | :--- | :--- | :--- | :--- | |
| 90 | +| **Chalkboard Canvas** | Deep Teal-Charcoal | `#131F24` | `#0D1519` (Diagram Well) | Primary background across all pages | |
| 91 | +| **Elevated Card Surface** | Chalk Slate | `#202F36` | `#37464F` (`2px–3px` border + `4px` bottom lip) | Topic cards, podcast cards, interactive modules | |
| 92 | +| **Primary Brand & Action** | Feather Green | `#58CC02` | `#46A302` (`4px` bottom lip) | Display headlines (`free. fun. purrfect.`), primary CTAs, AJ's eyes, `✓` pass states | |
| 93 | +| **Secondary / Builder** | Macaw Sky Blue | `#1CB0F6` | `#1899D6` (`4px` bottom lip) | Inline highlighted copy, AJ's headphones, Excalidraw diagram boxes, Builder track | |
| 94 | +| **Yarn & Energy Accent** | Fox Flame Orange | `#FF9600` | `#E58700` (`4px` bottom lip) | AJ's glowing yarn ball & scroll-unwinding string, cross-hatched Excalidraw nodes | |
| 95 | +| **Spark & Tag Accent** | Bee Sunny Yellow | `#FFC800` | `#E5B400` (`4px` bottom lip) | AJ's headphone ear-cups & collar tag, star doodles, annotation callouts | |
| 96 | +| **Play / Anti-Pattern** | Cardinal Coral Red | `#FF4B4B` | `#EA2B2B` (`4px` bottom lip) | YouTube/Podcast play buttons & Excalidraw `✗` anti-pattern strokes | |
| 97 | +| **Pro / Agent Accent** | Beetle Candy Purple | `#CE82FF` | `#A560E8` (`4px` bottom lip) | Advanced AI Agent nodes & pro badges | |
| 98 | +| **Chalk Ink** | Crisp White Chalk | `#FFFFFF` | `#DCE6EC` (Body) | Hand-drawn Excalidraw box strokes, sketchy arrows, and primary copy | |
| 99 | + |
| 100 | +## 3. AJ the Mascot (2026 Feather Green & Macaw Blue Edition) |
| 101 | +- **Silhouette & Sticker Rim-Light:** Friendly black cat (`#131F24` / `#0B1114`) with a bold, crisp white (`#FFFFFF`) die-cut sticker outline so AJ pops off every dark chalkboard surface. |
| 102 | +- **Eyes:** Huge, expressive **Feather Green (`#58CC02`)** eyes with white catchlights. |
| 103 | +- **Headphones & Collar:** Chunky **Macaw Sky Blue (`#1CB0F6`)** headband and outer cups accented with **Sunny Yellow (`#FFC800`)** ear-cup cushions and collar + golden `"AJ"` tag. |
| 104 | +- **Interactive Prop:** A glowing **Flame Orange (`#FF9600`)** ball of yarn that unwinds into a scroll-driven SVG string winding down the page across Excalidraw diagrams and section dividers. |
| 105 | + |
| 106 | +## 4. Hand-Drawn Excalidraw Diagram & Card Conventions |
| 107 | +- **Sketchy Double Borders & Cross-Hatching:** Diagrams use crisp white (`#FFFFFF`) hand-drawn double-stroked boxes filled with diagonal cross-hatched marker strokes in `#1CB0F6` (Sky Blue), `#FF9600` (Flame Orange), `#58CC02` (Feather Green), `#FFC800` (Sunny Yellow), and `#CE82FF` (Candy Purple). |
| 108 | +- **Tactile 3D Buttons:** All primary and secondary buttons use `16px` border-radius, bold uppercase/lowercase tracking, and a `4px` solid bottom lip (`border-bottom-width: 4px`) that physically depresses (`translateY(2px)`) on active click. |
| 109 | +- **Podcast & YouTube Cover Unification:** Every 16:9 episode thumbnail & cover uses the `#131F24` / `#0D1519` blackboard canvas, a bold hand-drawn + chunky display title on top, an episode-specific Excalidraw cross-hatched diagram on the left/center, and a die-cut outlined cutout of host Alex Patterson + guest on the right with AJ & his orange yarn ball. |
0 commit comments