npx skills add ...
npx skills add freecodecamp-universe/marketplace --skill command-line-chic
freeCodeCamp's "Command-line Chic" UI design system and aesthetic guidelines. Apply these rules whenever building, styling, or reviewing any UI that should look and feel like a freeCodeCamp product — web apps, dashboards, landing pages, admin tools, component libraries, or themes. Use this skill when the user mentions freeCodeCamp styling, fCC design, "Command-line Chic", dark theme development for fCC, or asks for a UI that follows freeCodeCamp's visual identity. Also use when working on any freeCodeCamp repository, contributing to freeCodeCamp projects, or building tools and dashboards for freeCodeCamp staff, even if the user doesn't explicitly mention the design system.
npx skills add freecodecamp-universe/marketplace --skill command-line-chic
You are a UI design advisor applying freeCodeCamp's "Command-line Chic" aesthetic. This design language draws from the look and feel of terminal interfaces and code editors — the tools professional developers live in every day. It pairs the authority of a dark IDE with high readability, generous type, and a restrained but vivid accent palette.
The philosophy was articulated by Quincy Larson when freeCodeCamp redesigned its platform: the interface should resemble the command-line interfaces and code editors that professional developers use for work. Dark mode is the default because most code editors and terminals ship that way, and it is easier on the eyes during long coding sessions.
This is not a CSS framework. These are design principles and token values that you translate into whatever technology the project uses — vanilla CSS, Tailwind, CSS-in-JS, SwiftUI, Flutter, or anything else. The goal is visual consistency with the freeCodeCamp ecosystem, not a specific implementation.
Design for dark mode first — it is the primary experience. But always structure your color system so light mode works by swapping foreground and background roles. The gray scale is intentionally designed as mirrored pairs: what serves as background in dark mode becomes foreground in light mode and vice versa.
Minimum 18px base font size. This is non-negotiable. The platform was redesigned around the insight that larger type reduces cognitive load during long coding sessions. Monospace for code and technical content, proportional sans-serif for prose.
Target a minimum 7:1 contrast ratio — well above WCAG AA (4.5:1). The
palette achieves this through deep navy backgrounds and bright but slightly
muted foregrounds. Avoid pure black (#000000) backgrounds — the signature
fCC dark is a deep navy (#0a0a23) that has warmth without sacrificing
contrast.
Five accent hues (purple, yellow, blue, green, red) each serve a specific semantic role. Use accents to communicate state or type; when color is not semantic, keep it in the neutral surface system. Each color carries meaning: purple for emphasis and code keywords, yellow for calls-to-action and warnings, blue for links and interactive elements, green for success and completion, red for errors and destructive actions.
Layouts should feel efficient like a well-configured terminal — not cramped, but not wasteful. Single-column layouts for focused content (like coding challenges). Multi-column for dashboards and data-rich views. Let the content determine the layout, not a rigid grid.
The palette is built from 11 gray values and 5 accent color pairs. Each accent has a "light" variant (for use on dark backgrounds) and a "dark" variant (for use on light backgrounds).
For the full token reference with hex values, read references/color-system.md.
Use the gray pairs to establish visual hierarchy. In dark mode:
| Role | Token | Hex |
|---|---|---|
| Deepest background | gray-90 | #0a0a23 |
| Secondary background | gray-85 | #1b1b32 |
| Surface / editor | gray-80 | #2a2a40 |
| Borders / subtle | gray-75 | #3b3b4f |
| Muted text | gray-40 | #939393 |
| Comments, disabled | gray-45 | #858591 |
| Subtle foreground | gray-15 | #d0d0d5 |
| Secondary foreground | gray-10 | #dfdfe2 |
| Bright foreground | gray-05 | #f5f6f7 |
| Primary foreground | gray-00 | #ffffff |
In light mode, the roles reverse: gray-00 becomes the deepest background, gray-90 becomes the primary foreground. This mirror structure means a well-built theme flips cleanly by swapping which end of the gray scale is "background" vs "foreground."
| Role | Hex | Use for |
|---|---|---|
| Purple | #dbb8ff | Emphasis, keywords, attributes, highlights |
| Yellow | #f1be32 | CTAs, buttons, classes, warnings |
| Blue | #99c9ff | Links, functions, interactive elements |
| Green | #acd157 | Success, completion, strings, inserted |
| Red/Pink | #ffadad | Errors, danger, destructive actions |
On light backgrounds, use the darker counterparts: purple #5a01a7,
yellow #4d3800, blue #002ead, green #00471b, red #850000.
When building components, map colors by role, not by name:
This semantic layer is what makes theme switching painless. Components
reference --primary-background, not #0a0a23.
| Role | Font Family | Notes |
|---|---|---|
| Code / mono | Hack-ZeroSlash | Primary monospace. Slashed zero. |
| Body / prose | Lato | Weights: 300, 400, 700 + italics |
| Logo only | SaxMono | Use only in logo context |
| Fallback mono | Fira Mono, Menlo, Consolas, monospace | |
| Fallback sans | -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif |
html. This is the floor, not a suggestion.#f1be32 or #ffbf00), dark
text (#0a0a23). The CTA button is the most visually prominent element
on any screen.btn-sm and btn-lg variants.#198eee (blue-mid), 2px solid. This is the focus ring
color across the entire system.rgba(10, 10, 35, 0.85)).#2a2a40 dark, #fffffe light).references/syntax-theme.md for the full token-to-color mapping.These are not optional extras — they are load-bearing design requirements:
#198eee)..sr-only class for visually hidden labels.Define the token variables on :root, swap them via .dark-palette and
.light-palette classes on body. This is exactly how freecodecamp.org
works.
Map fCC tokens to Tailwind's theme.extend.colors in tailwind.config. The
@freecodecamp/ui component library uses Tailwind this way. Use semantic
class names that map to the role-based color system.
Create a theme object with the same semantic structure. Pass it via
ThemeProvider. Components reference theme.primaryBackground, not hex
values.
Translate the token values to platform-native color systems. The principle is the same: named semantic tokens, dark-first, high contrast.
Map the surface grays to editor chrome, the accent palette to syntax tokens.
The VS Code theme and Sandpack theme both demonstrate this mapping. See
references/syntax-theme.md for the exact syntax-to-color mapping used
across all fCC editor environments.
#000000) as a background; use the navy grays starting from
#0a0a23.For detailed token tables that would be too large for this file:
references/color-system.md — Full gray scale, accent pairs, semantic
mappings, translucent variants, and the complete CSS variable inventory
from the freeCodeCamp platform.references/syntax-theme.md — Syntax highlighting palette used across
the VS Code theme, CodeSandbox/Sandpack theme, and platform code blocks.
Maps language tokens (keywords, strings, functions, etc.) to specific hex
colors.