All files / src/themes/packs terminal.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107                  1x                                                                                                                                                                                                  
import type { ThemePackage } from '../types.js';
 
/**
 * Terminal theme - first-party turbo palette
 * CRT phosphor green on void, inspired by classic monochrome terminals.
 * Canonical, hand-authored palette maintained in turbo-themes (no upstream sync).
 * @see https://github.com/lgtm-hq/turbo-themes
 * @license MIT
 */
export const terminalThemes: ThemePackage = {
  id: 'terminal',
  name: 'Terminal',
  homepage: 'https://github.com/lgtm-hq/turbo-themes',
  license: {
    spdx: 'MIT',
    url: 'https://github.com/lgtm-hq/turbo-themes/blob/main/LICENSE',
    copyright: 'Turbo Themes contributors',
  },
  source: {
    repository: 'https://github.com/lgtm-hq/turbo-themes',
  },
  flavors: [
    {
      id: 'terminal',
      label: 'Terminal',
      vendor: 'turbo',
      appearance: 'dark',
      tokens: {
        background: {
          base: '#0d0d0d', // Void
          surface: '#080808',
          overlay: '#111111',
        },
        text: {
          primary: '#c8ffc8', // Body green
          secondary: '#8fbc8f', // Muted green
          inverse: '#0d0d0d',
        },
        brand: {
          primary: '#39ff14', // Phosphor green
        },
        state: {
          info: '#7dd3fc', // Cyan
          success: '#39ff14', // Phosphor green
          warning: '#ffb000', // Amber
          danger: '#ff4444', // Red
        },
        border: {
          default: '#1f3d1f',
        },
        accent: {
          link: '#7dd3fc', // Cyan
        },
        typography: {
          fonts: {
            sans: '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
            mono: '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
          },
          webFonts: [
            'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap',
          ],
        },
        content: {
          heading: {
            h1: '#39ff14', // Phosphor green
            h2: '#7dd3fc', // Cyan
            h3: '#ffb000', // Amber
            h4: '#39ff14', // Phosphor green
            h5: '#8fbc8f', // Muted green
            h6: '#c8ffc8', // Body green
          },
          body: {
            primary: '#c8ffc8',
            secondary: '#8fbc8f',
          },
          link: {
            default: '#7dd3fc', // Cyan
          },
          selection: {
            fg: '#0d0d0d',
            bg: '#39ff14', // Phosphor green highlight
          },
          blockquote: {
            border: '#39ff14',
            fg: '#8fbc8f',
            bg: '#111111',
          },
          codeInline: {
            fg: '#ffb000', // Amber
            bg: '#111111',
          },
          codeBlock: {
            fg: '#c8ffc8',
            bg: '#080808',
          },
          table: {
            border: '#1f3d1f',
            stripe: '#111111',
            theadBg: '#080808',
            headerFg: '#c8ffc8',
          },
        },
      },
    },
  ],
} as const;