guest-portfolio.dev ships with two phosphor monitor themes — green (default) and amber — that evoke classic CRT terminals. Both themes are controlled entirely through CSS custom properties defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/guest-portfolio.dev/llms.txt
Use this file to discover all available pages before exploring further.
assets/main.css. You can switch between them at runtime from inside the terminal, or add entirely new themes by defining a new CSS class and wiring it up in Terminal.js.
Built-in Themes
Switching Themes at Runtime
Type either command directly into the terminal prompt:Terminal.js handles the theme command in its switch statement and calls setTheme from TerminalContext, which applies a corresponding class to the root element:
Theme Comparison
- Green (default)
- Amber
Applied via the
:root selector — no extra class needed.| Variable | Value | Usage |
|---|---|---|
--color-primary | #39ff14 | All primary text, cursor, scrollbar thumb |
--color-bg | #000000 | Terminal background |
--color-dim | rgba(57, 255, 20, .3) | Dimmed text, progress bar fill, borders |
--color-glow | rgba(57, 255, 20, .5) | CRT text shadow, scrollbar hover |
Tailwind Color Tokens
Components use Tailwind utility classes backed by a custom color palette. The token values are baked directly into the compiledassets/main.css output:
| Utility class | Hex / RGBA value | Typical use |
|---|---|---|
text-terminal-green | #39ff14 | Labels, prompts, ASCII art (green mode) |
text-terminal-amber | #ffb000 | Category headers, commit hashes |
text-terminal-white | #e6e6e6 | Body text, command output |
text-terminal-red | #ff003c | Error messages, glitch hover effect |
text-terminal-dim | #39ff144d | Unfilled progress bar segments |
bg-terminal-bg | #000000 | Terminal and CRT container background |
bg-terminal-dim | #39ff144d | Dimmed background fills |
border-terminal-dim | #39ff144d | Subtle dividers and borders |
border-terminal-green | #39ff14 | Highlighted or active borders |
Tailwind tokens are hardcoded to green values regardless of the active theme. For theme-aware coloring in new components, use the CSS custom properties (
var(--color-primary), etc.) directly rather than Tailwind utility classes.Typography
The terminal uses the VT323 monospace bitmap font, which is loaded from Google Fonts via an@import at the top of main.css:
body rule sets it as the base font with a slightly enlarged size to ensure legibility at typical monitor resolutions:
code, kbd, pre, and samp elements also explicitly inherit VT323, monospace so that all terminal output — including preformatted blocks — remains visually consistent.
Adding a Third Theme
You can define any number of custom themes by following three steps.1. Define the CSS class
Add a new theme block toassets/main.css overriding the same three custom properties:
2. Wire up the terminal command
Incomponents/Terminal.js, extend the theme case in the command switch to accept the new name:
3. Update TerminalContext to apply the class
TerminalContext sets document.body.className when setTheme is called. The current logic is a ternary that only handles the two built-in themes:
theme cyan will be a valid command in the live terminal.