New to Claude Skills? Learn how to install them →

nexu-io on GitHub

Terminal Mono

Free

Create structured presentations with a terminal aesthetic.

by nexu-io84.9k stars on nexu-io/open-design
2 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Terminal Mono does

Terminal Mono is a presentation deck plugin designed for developers and power users who prefer a minimalist, typographically strict aesthetic. Built on the foundation of the visual-explainer template, this plugin emphasizes a near-black background with a monospace typeface, creating a clean and focused environment for presenting information. The design philosophy is rooted in simplicity, avoiding any skeuomorphic elements or visual distractions, allowing the content to take center stage.

The plugin is structured to support both dark and light themes, automatically switching based on user preferences. This dual-theme capability is essential for accessibility, ensuring that presentations remain legible in various lighting conditions. The typography is strictly controlled, utilizing the Geist Mono font family exclusively, which reinforces the terminal-like feel of the slides. Each slide is designed with a dot grid background and hairline borders, adhering to a disciplined visual language that enhances readability and engagement.

Users can start their presentations by copying the provided example.html file, which serves as a template. This file includes all necessary CSS and JavaScript inline, ensuring that the presentation is self-contained and easy to deploy. The layout masters provided in the documentation offer a variety of options for organizing content, from title slides to code blocks, allowing for flexibility while maintaining adherence to the established design rules.

Terminal Mono is particularly suited for developers and technical teams looking to present complex information in a straightforward manner. Its emphasis on clarity and structure makes it an excellent choice for technical presentations, workshops, or any setting where information needs to be conveyed efficiently and effectively.

When to use it

Use Terminal Mono when you need to create structured presentations that prioritize clarity and typographic discipline.

When not to use it

This skill is not suitable for users looking for highly visual or animated presentations, as it adheres strictly to a minimalist aesthetic.

What you can build with it

Technical Workshops

Use Terminal Mono to deliver clear and structured presentations during technical workshops, focusing on code and concepts.

Project Updates

Present project updates to stakeholders with a clean and professional look, ensuring clarity in communication.

AI Literacy Training

Leverage Terminal Mono for training sessions aimed at enhancing AI literacy among developers, using a focused design.

How to install Terminal Mono

View source

1. Install with the skills CLI

npx skills add nexu-io/open-design/ve-terminal-mono --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by nexu-io

Terminal Mono(等宽终端)

A locked, single-theme deck plugin derived from the MIT-licensed nicobailon/visual-explainer slide-deck template, restyled with the Terminal Mono aesthetic from its references/slide-patterns.md. Developer-native and typographically strict: near-black ground, monospace everything, one green voice, a faint dot grid.

Zero skeuomorphism, zero effects. No $ prompts, no red/yellow/green window chrome, no CRT scanlines, no vignettes, no glows. This theme stands on typographic discipline and the dot-grid texture alone. (The skeuomorphic "terminal theater" look belongs to a different plugin — do not drift there.)

Start from example.html in this plugin folder. It is the proven seed: copy its :root tokens (both themes), deck/slide CSS, dot-grid treatment, and the entire SlideEngine script verbatim, then replace only the slide content. Do not rewrite the design system, and do not introduce any color or font outside this spec.

Design tokens (locked — list verbatim in :root)

Dark is the default theme; light mode switches automatically via prefers-color-scheme: light. Both blocks are part of the locked spec — dual-theme support is the visual-explainer family signature and must ship in every deck.

:root {
  --font-body: 'Geist Mono', 'SF Mono', Consolas, monospace;
  --font-mono: 'Geist Mono', 'SF Mono', Consolas, monospace;
  --bg: #0a0e14;                         /* near-black ground */
  --surface: #12161e;
  --surface2: #1a1f2a;
  --surface-elevated: #222836;
  --border: rgba(80, 250, 123, 0.06);    /* low-opacity green hairline */
  --border-bright: rgba(80, 250, 123, 0.12);
  --text: #c8d6e5;
  --text-dim: #7d8c9b;                   /* AA on --bg for body text */
  --accent: #50fa7b;                     /* Dracula green — the only voice */
  --accent-dim: rgba(80, 250, 123, 0.08);
  --code-bg: #060a10;
  --code-text: #c8d6e5;
  --dot: rgba(80, 250, 123, 0.05);       /* dot-grid ink */
}

@media (prefers-color-scheme: light) {
  :root {
    --bg: #f4f6f8;
    --surface: #ffffff;
    --surface2: #eaecf0;
    --surface-elevated: #f8f9fa;
    --border: rgba(0, 80, 40, 0.08);
    --border-bright: rgba(0, 80, 40, 0.16);
    --text: #1a2332;
    --text-dim: #5a6a7a;
    --accent: #0d7a3e;                   /* deep green for light ground */
    --accent-dim: rgba(13, 122, 62, 0.08);
    --code-bg: #1a2332;                  /* code blocks stay dark in light mode */
    --code-text: #c8d6e5;
    --dot: rgba(13, 122, 62, 0.07);
  }
}

Typography (locked)

  • One typeface for everything: Geist Mono 400/500/600/700 from Google Fonts (https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&display=swap). Fallback stack 'SF Mono', Consolas, monospace. No second typeface, ever.
  • Titles are large weight-400 mono, never bold display. Display clamp(36px, 7vw, 88px) weight 400 letter-spacing -2px; headings clamp(24px, 4vw, 42px) weight 400 letter-spacing -1px.
  • Labels/eyebrows: 10-13px, weight 600, uppercase, letter-spacing 1.5-2px, accent color. Subtitles: uppercase mono in --text-dim.
  • Body and bullets: 15-20px, line-height ~1.6, --text-dim.
  • Numbers use font-variant-numeric: tabular-nums.

Signature devices (locked)

  • Dot grid on every slide: background-image: radial-gradient(var(--dot) 1px, transparent 1px); background-size: 24px 24px; This replaces the radial accent glows other family themes use — no glows here.
  • Hairlines, not shadows: 1px borders in --border / --border-bright. No box-shadows, no blurs (except the nav-dots backdrop blur from the seed).
  • Square geometry: border-radius 0-2px everywhere; bullet ticks are 7px squares in --accent (no round dots); deck dots are squares.
  • Corner bracket decor (title/closing slides only): two 1.5px accent lines at ~0.25 opacity forming an L in a corner, as inline SVG.
  • Section divider numbers: giant mono numerals (up to 260px), weight 400, accent color at 0.05 opacity, centered behind the heading.

Deck engine & navigation (keep verbatim from the seed)

  • .deck is a 100dvh scroll-snap container; each page is one <section class="slide"> (also 100dvh, scroll-snap-align: start).
  • SlideEngine (plain JS, no dependencies) builds the chrome: 2px accent progress bar, square dot rail (right, backdrop-blurred), n / N counter, fading hints. Keyboard /, /, Space, PageUp/PageDown, Home/End; touch swipe (50px threshold); IntersectionObserver toggles .visible for entrance reveals.
  • Hash routing: current slide mirrored to #/<n> via history.replaceState; deep links restore on load and hashchange.
  • Reveals: .reveal children stagger in at 0.1s steps when the slide gains .visible; animate only opacity/transform; prefers-reduced-motion disables all of it.

Layout masters (all present in example.html — compose from these)

  1. Title — centered; corner brackets; uppercase eyebrow, accent display title, uppercase sub-line.
  2. Section divider — giant ghost numeral behind heading + subtitle.
  3. Content — 3fr/2fr grid: label + heading + square-tick bullets left, restrained line-art SVG aside right (1px strokes, accent, low opacity).
  4. Split before/after — two full-height panels (--surface / --surface2), 1px --border-bright divider; "before" label in --text-dim, "after" label in --accent.
  5. Diagram — pure CSS/SVG pipeline: .pipe-node boxes (1px hairline, mono name + uppercase meta) joined by 1px connector lines with CSS-triangle arrowheads and tiny uppercase edge labels; accent-bordered nodes mark emphasis; legend row below. Never mermaid, never any external JS.
  6. Dashboard — KPI card grid: big tabular-nums value (accent or text), uppercase label, dim trend line.
  7. Table — hairline-framed table; uppercase mono headers on --surface2, zebra rows, accent-tint hover, inline code chips in --accent-dim.
  8. Code--code-bg block with accent filename tab; .hl accent and .cm dim spans for highlighting (code stays dark in both themes).
  9. Quote — centered; an oversized > glyph in accent at 0.08 opacity as the quote mark (no curly serif quotes), upright mono blockquote, uppercase cite.
  10. Closing — left-aligned display heading with one accent <em> word, top hairline, corner bracket, uppercase next-steps sub-line.

Hard rules

  • Single self-contained HTML file: all CSS and JS inline; only the Google Fonts stylesheet may be external. No Chart.js, no mermaid, no CDN scripts, no remote images; icons and diagram art are inline SVG or pure CSS.
  • Default 8-11 slides for a standard deck; honor the requested slide count when the user picks one. Split content into more slides instead of shrinking type or letting a slide scroll.
  • Only the spec colors: the two greens (#50fa7b dark / #0d7a3e light), the listed surfaces and text tones. No red/blue/yellow semantic colors — express "before/risk/off" with --text-dim and "after/win/on" with --accent.
  • Only Geist Mono. Bold weights (600/700) are reserved for labels and small emphasis, never for titles.
  • Keep both theme token blocks; never hard-code a themed color where a token exists.
  • Start from example.html; replace content only — never redesign the theme.

Frequently asked questions about Terminal Mono

Similar skills