docs: add terminal theme redesign spec (Dracula purple focus)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
150
docs/superpowers/specs/2026-05-18-terminal-theme-design.md
Normal file
150
docs/superpowers/specs/2026-05-18-terminal-theme-design.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# Terminal Theme Redesign — Design Spec
|
||||
|
||||
**Date:** 2026-05-18
|
||||
**Status:** Approved
|
||||
|
||||
## Summary
|
||||
|
||||
Redesign the existing Terminal design theme from a sparse green-on-black aesthetic into a polished **Dracula-palette, soft-modern** style. The theme keeps its forced-dark, monospace character while gaining a richer color story, rounded cards, and a more refined hover system.
|
||||
|
||||
## Design Direction
|
||||
|
||||
**Palette:** Dracula
|
||||
**Card style:** Soft modern — rounded corners, surface color fill, subtle shadow
|
||||
**Background:** Dot matrix — `#282a36` base with 20px radial dot grid
|
||||
**Accent strategy:** Purple Focus — single primary accent `#bd93f9`, pink `#ff79c6` used only in the title gradient
|
||||
|
||||
## Color Tokens
|
||||
|
||||
| Token | Value | Usage |
|
||||
|---|---|---|
|
||||
| Background | `#282a36` | Page base |
|
||||
| Surface | `#313244` | Card background |
|
||||
| Surface-alt | `#383a4a` | Pin card background |
|
||||
| Border | `#44475a` | Card/control border |
|
||||
| Accent (purple) | `#bd93f9` | Primary accent — borders on hover, h2 on hover, controls on hover, title start |
|
||||
| Pink | `#ff79c6` | Title gradient end only |
|
||||
| Foreground | `#f8f8f2` | Body text, card h2 |
|
||||
| Muted | `#6272a4` | Card p, beian, description |
|
||||
| Hover fg | `#cdd6f4` | Card p on hover |
|
||||
|
||||
CSS variables to set on `html[data-design-theme="terminal"]`:
|
||||
|
||||
```css
|
||||
--accent: #bd93f9;
|
||||
--accent-rgb: 189, 147, 249;
|
||||
--accent-2: #ff79c6;
|
||||
--accent-3: #8be9fd;
|
||||
--accent-secondary-rgb: 255, 121, 198;
|
||||
--page-gradient: #282a36;
|
||||
--page-texture: radial-gradient(circle, rgba(98,114,164,0.55) 1px, transparent 1px);
|
||||
--title-gradient: linear-gradient(90deg, #bd93f9 0%, #ff79c6 100%);
|
||||
--control-bg: rgba(40, 42, 54, 0.92);
|
||||
--control-border: #44475a;
|
||||
--control-inset: transparent;
|
||||
--control-fg: #f8f8f2;
|
||||
```
|
||||
|
||||
The `--page-texture` background-size must be set to `20px 20px` on the `body::before` element for terminal theme.
|
||||
|
||||
## Components
|
||||
|
||||
### Background
|
||||
|
||||
`body` uses `--page-gradient` (`#282a36`) as a flat color.
|
||||
`body::before` applies the dot matrix texture via `--page-texture` at `background-size: 20px 20px`.
|
||||
No `backdrop-filter` anywhere in the terminal theme.
|
||||
|
||||
### Title
|
||||
|
||||
- Gradient text: `linear-gradient(90deg, #bd93f9 0%, #ff79c6 100%)` via `-webkit-background-clip: text`
|
||||
- Uppercase, `letter-spacing: 0.04em`
|
||||
- Blinking `█` cursor via `::after` (`\2588`, unchanged), color `#bd93f9`
|
||||
- Remove the current `text-shadow` (conflicts with gradient text)
|
||||
|
||||
### Cards
|
||||
|
||||
| Property | Value |
|
||||
|---|---|
|
||||
| `background` | `#313244` |
|
||||
| `border` | `1px solid #44475a` |
|
||||
| `border-radius` | `10px` |
|
||||
| `box-shadow` | `0 4px 16px rgba(0,0,0,0.45)` |
|
||||
| `backdrop-filter` | `none` |
|
||||
| `transform` | none (no translateY at rest) |
|
||||
|
||||
**Pin card:** `background: #383a4a`
|
||||
|
||||
**Hover / focus:**
|
||||
- `border-color: #bd93f9`
|
||||
- `box-shadow: 0 0 0 1px rgba(189,147,249,0.25), 0 8px 28px rgba(189,147,249,0.15), 0 4px 12px rgba(0,0,0,0.5)`
|
||||
- `transform: translateY(-2px)`
|
||||
- `h2 color: #bd93f9`
|
||||
- `p color: #cdd6f4`
|
||||
|
||||
**Card `::before`:** `display: none` (no gradient border overlay)
|
||||
|
||||
**Card h2:** `#f8f8f2` at rest
|
||||
**Card p:** `#6272a4` at rest
|
||||
|
||||
### Controls (theme button + toggle)
|
||||
|
||||
| Property | Value |
|
||||
|---|---|
|
||||
| `background` | `rgba(40, 42, 54, 0.92)` |
|
||||
| `border` | `1px solid #44475a` |
|
||||
| `border-radius` | `8px` |
|
||||
| `color` | `#f8f8f2` |
|
||||
| `box-shadow` | `none` |
|
||||
| `backdrop-filter` | `none` |
|
||||
|
||||
**Hover:**
|
||||
- `border-color: #bd93f9`
|
||||
- `color: #bd93f9`
|
||||
- `background: rgba(189, 147, 249, 0.08)`
|
||||
- No `transform`
|
||||
|
||||
**Dark toggle:** remains `cursor: not-allowed` and visually disabled (terminal forces dark).
|
||||
|
||||
### Dropdown list
|
||||
|
||||
| Property | Value |
|
||||
|---|---|
|
||||
| `background` | `rgba(40, 42, 54, 0.96)` |
|
||||
| `border` | `1px solid #44475a` |
|
||||
| `border-radius` | `10px` |
|
||||
| `box-shadow` | `none` |
|
||||
|
||||
**Options hover / selected:** `background: rgba(189, 147, 249, 0.15)`, `color: #bd93f9`
|
||||
**Options:** keep `text-transform: uppercase` (terminal feel)
|
||||
|
||||
### Beian
|
||||
|
||||
- Rest: `#6272a4`
|
||||
- Hover: `#bd93f9` (remove current invert-to-black-bg behavior)
|
||||
|
||||
### Body text
|
||||
|
||||
- `color: #f8f8f2`
|
||||
- Font chain unchanged: `ui-monospace, "JetBrains Mono", "Fira Code", "VT323", Menlo, Consolas, "Liberation Mono", monospace`
|
||||
|
||||
## What Changes vs Current
|
||||
|
||||
| Element | Before | After |
|
||||
|---|---|---|
|
||||
| Accent color | `#33ff00` green | `#bd93f9` purple |
|
||||
| Background | `#0a0a0a` | `#282a36` |
|
||||
| Texture | Horizontal scanlines | Dot matrix 20px |
|
||||
| Card bg | Transparent | `#313244` surface fill |
|
||||
| Card corners | `border-radius: 0` | `border-radius: 10px` |
|
||||
| Card hover | Green tint bg | Purple glow + lift |
|
||||
| Title | Green text-shadow | Purple→pink gradient |
|
||||
| Button hover | Full green bg invert | Subtle purple tint |
|
||||
| Dropdown options | Uppercase, green invert | Uppercase, purple highlight |
|
||||
|
||||
## Out of Scope
|
||||
|
||||
- No changes to any other theme (Fluent, Material You, Nord, Cyberpunk, Animal Crossing, Minecraft)
|
||||
- No new animations beyond the existing cursor blink
|
||||
- No changes to `FORCED_DARK_DESIGN_THEMES` logic — terminal still forces dark
|
||||
- No font changes
|
||||
Reference in New Issue
Block a user