Extended Part10 of 12
Version0.1.0-draft
Last Updated2025-11-30
StatusDraft
TypeINFORMATIVE (Non-Normative)

WDP Part 10: Visual Presentation Guidelines

INFORMATIVE guidance on visual presentation for the Waddling Diagnostic Protocol (WDP). Recommends emoji mappings, terminal colors, web colors (light and dark mode), and accessibility considerations for displaying WDP diagnostics in user interfaces.

Abstract#

This document provides INFORMATIVE (non-normative) guidance on visual presentation for the Waddling Diagnostic Protocol (WDP). It recommends emoji mappings, terminal colors, web colors (light and dark mode), and accessibility considerations for displaying WDP diagnostics in user interfaces.

Specification Navigation: See STRUCTURE.md for an overview of all WDP specification parts.

Conformance

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

Introduction#

1.1 Purpose

This document provides recommended visual presentation guidelines for WDP diagnostic severities. These recommendations help create consistent, accessible user experiences across different platforms and interfaces.

1.2 Scope

This specification covers visual presentation for:

  • Terminal/CLI applications (emoji + ANSI colors)
  • Web interfaces (hex colors + backgrounds)
  • IDEs and text editors
  • Log viewers and monitoring dashboards
  • Documentation and reports

1.3 Design Goals

  1. Consistency - Same severity should look similar across platforms
  2. Accessibility - Colors should work for colorblind users
  3. Clarity - Visual distinction between severity levels
  4. Cultural Sensitivity - Emoji work across cultures
  5. Backwards Compatibility - Degrade gracefully without color support

2. Emoji Mapping#

SeverityEmojiUnicodeNameMeaning
E
❌
U+274CCross MarkCross mark - operation failed
B
🚫
U+1F6ABProhibitedProhibited - execution blocked
C
πŸ”₯
U+1F525FireFire - severe issue requiring attention
W
⚠️
U+26A0 U+FE0FWarning SignWarning sign - potential issue
H
πŸ’‘
U+1F4A1Light BulbLight bulb - helpful suggestion
S
βœ…
U+2705Check Mark ButtonCheck mark button - operation succeeded
K
βœ”οΈ
U+2714 U+FE0FHeavy Check MarkHeavy check mark - task completed
I
ℹ️
U+2139 U+FE0FInformation SourceInformation source - informational
T
πŸ”
U+1F50DMagnifying GlassMagnifying glass - execution trace

2.2 Rationale

Error (❌) vs Blocked (🚫):

  • ❌ indicates something went wrong (failure state)
  • 🚫 indicates something is preventing progress (blocked state)

Success (βœ…) vs Completed (βœ”οΈ):

  • βœ… for primary success outcomes (bold, prominent)
  • βœ”οΈ for completion markers (subtler)

Critical (πŸ”₯):

  • Fire emoji conveys urgency and severity
  • Stands out visually without implying blocking

Help (πŸ’‘):

  • Light bulb is universally understood as "helpful suggestion"
  • Positive, constructive tone

2.3 Alternative Emoji

If the recommended emoji are not available or don't render well, implementations MAY use:

SeverityEmojiAlternatives
E
❌
βœ–οΈβ›”
B
🚫
πŸ›‘βΈοΈ
C
πŸ”₯
⚑🚨
W
⚠️
⚑⚠
H
πŸ’‘
πŸ’¬πŸ“
S
βœ…
βœ“πŸŽ‰
K
βœ”οΈ
β˜‘οΈπŸ‘
I
ℹ️
πŸ“ŒπŸ“‹
T
πŸ”
πŸ”¬πŸ‘οΈ

2.4 Terminal Considerations

Emoji Rendering:

  • Modern terminals (Windows Terminal, iTerm2, Kitty) render emoji well
  • Older terminals may show emoji as boxes or double-width characters
  • Implementations SHOULD provide a --no-emoji or --plain flag

Width Handling:

  • Most emoji are double-width characters
  • Use padding/spacing to align text properly
  • Consider using ASCII alternatives for strict column alignment

3. Terminal Colors (ANSI)#

3.1 ANSI Color Codes

SeverityANSI CodeColorStyle
Error (E)\x1b[1;31mRedBold
Blocked (B)\x1b[31mRedNormal
Critical (C)\x1b[1;33mYellowBold
Warning (W)\x1b[33mYellowNormal
Help (H)\x1b[32mGreenNormal
Success (S)\x1b[1;32mGreenBold
Completed (K)\x1b[32mGreenNormal
Info (I)\x1b[36mCyanNormal
Trace (T)\x1b[2;34mBlueDim

Reset: \x1b[0m (always reset after colored text)

3.2 Color Scheme Rationale

Red Family (Error, Blocked):

  • Error: Bold red for maximum attention
  • Blocked: Regular red (slightly less urgent than error)

Yellow Family (Critical, Warning):

  • Critical: Bold yellow/orange (severe but not blocking)
  • Warning: Regular yellow (caution)

Green Family (Success, Completed, Help):

  • Success: Bold green (positive outcome emphasis)
  • Completed: Regular green (quiet completion)
  • Help: Regular green (helpful, constructive)

Blue/Cyan (Info, Trace):

  • Info: Cyan (neutral, informational)
  • Trace: Dim blue (low-priority, debugging)

3.3 Colorblind Considerations

This color scheme has been tested for:

  • Protanopia (red-blind) - Bold/dim styles help distinguish
  • Deuteranopia (green-blind) - Yellow/cyan/blue remain distinct
  • Tritanopia (blue-blind) - Red/yellow/green remain distinct

Additional Recommendations:

  • Always include emoji or text labels, not just color
  • Use bold/dim styles to add contrast
  • Provide --no-color flag for terminals without color support

3.4 Example ANSI Usage

Bash
# Error (bold red)
echo -e "\x1b[1;31m❌ Error:\x1b[0m Operation failed"

# Warning (yellow)
echo -e "\x1b[33m⚠️  Warning:\x1b[0m Quota at 85%"

# Success (bold green)
echo -e "\x1b[1;32mβœ… Success:\x1b[0m Build complete"

# Info (cyan)
echo -e "\x1b[36mℹ️  Info:\x1b[0m Server started on port 8080"

4. Web Colors (Hex)#

4.1 Foreground Colors (Light Mode)

These hex colors are designed for text and icons in web interfaces:

SeverityForeground HexRGBSwatchUsage
Error (E)#c0392brgb(192, 57, 43)
Dark red - strong, serious
Blocked (B)#e74c3crgb(231, 76, 60)
Red - blocked state
Critical (C)#e67e22rgb(230, 126, 34)
Orange - urgent attention
Warning (W)#f39c12rgb(243, 156, 18)
Yellow/orange - caution
Help (H)#27ae60rgb(39, 174, 96)
Green - helpful
Success (S)#2ecc71rgb(46, 204, 113)
Bright green - positive
Completed (K)#16a085rgb(22, 160, 133)
Teal - completed
Info (I)#3498dbrgb(52, 152, 219)
Blue - informational
Trace (T)#95a5a6rgb(149, 165, 166)
Gray - low priority

4.2 Color Palette Rationale

This palette is inspired by the Flat UI color scheme, chosen for:

  • Modern, clean appearance
  • Good contrast on white backgrounds
  • Works well in both light and dark themes
  • Professional and accessible

Color Temperature:

  • Warm colors (red, orange, yellow) for problems/attention
  • Cool colors (green, teal, cyan, blue) for positive/neutral states
  • Gray for low-priority trace information

4.3 CSS Examples (Light Mode)

Css
/* Severity text colors - Light Mode */
.severity-error { color: #c0392b; }
.severity-blocked { color: #e74c3c; }
.severity-critical { color: #e67e22; }
.severity-warning { color: #f39c12; }
.severity-help { color: #27ae60; }
.severity-success { color: #2ecc71; }
.severity-completed { color: #16a085; }
.severity-info { color: #3498db; }
.severity-trace { color: #95a5a6; }

4.4 Dark Mode Foreground Colors

For dark backgrounds, use brighter/lighter variants for better contrast:

SeverityForeground HexRGBSwatchUsage
Error (E)#e74c3crgb(231, 76, 60)
Bright red
Blocked (B)#ff6b6brgb(255, 107, 107)
Light red
Critical (C)#f39c12rgb(243, 156, 18)
Bright orange
Warning (W)#f1c40frgb(241, 196, 15)
Bright yellow
Help (H)#2ecc71rgb(46, 204, 113)
Bright green
Success (S)#58d68drgb(88, 214, 141)
Light green
Completed (K)#1abc9crgb(26, 188, 156)
Bright teal
Info (I)#5dade2rgb(93, 173, 226)
Light blue
Trace (T)#bdc3c7rgb(189, 195, 199)
Light gray

4.5 CSS Examples (Dark Mode)

Css
/* Severity text colors - Dark Mode */
@media (prefers-color-scheme: dark) {
  .severity-error { color: #e74c3c; }
  .severity-blocked { color: #ff6b6b; }
  .severity-critical { color: #f39c12; }
  .severity-warning { color: #f1c40f; }
  .severity-help { color: #2ecc71; }
  .severity-success { color: #58d68d; }
  .severity-completed { color: #1abc9c; }
  .severity-info { color: #5dade2; }
  .severity-trace { color: #bdc3c7; }
}

4.6 CSS Custom Properties (Recommended)

Using CSS custom properties enables easy theme switching:

Css
:root {
  /* Light mode (default) */
  --severity-error: #c0392b;
  --severity-blocked: #e74c3c;
  --severity-critical: #e67e22;
  --severity-warning: #f39c12;
  --severity-help: #27ae60;
  --severity-success: #2ecc71;
  --severity-completed: #16a085;
  --severity-info: #3498db;
  --severity-trace: #95a5a6;
}

@media (prefers-color-scheme: dark) {
  :root {
    --severity-error: #e74c3c;
    --severity-blocked: #ff6b6b;
    --severity-critical: #f39c12;
    --severity-warning: #f1c40f;
    --severity-help: #2ecc71;
    --severity-success: #58d68d;
    --severity-completed: #1abc9c;
    --severity-info: #5dade2;
    --severity-trace: #bdc3c7;
  }
}

/* Usage */
.severity-error { color: var(--severity-error); }
.severity-warning { color: var(--severity-warning); }
/* ... etc */

5. Background Colors#

5.1 Light Mode Background Palette

Light, subtle backgrounds for badges, chips, and callout boxes on light themes:

SeverityBackground HexRGBSwatchUsage
Error (E)#feergb(255, 238, 238)
Very light red/pink
Blocked (B)#fddrgb(255, 221, 221)
Light red/pink
Critical (C)#ffe5ccrgb(255, 229, 204)
Light orange
Warning (W)#fef3cdrgb(254, 243, 205)
Light yellow
Help (H)#d4eddargb(212, 237, 218)
Light green
Success (S)#dcfce7rgb(220, 252, 231)
Very light green
Completed (K)#d1f2ebrgb(209, 242, 235)
Light teal
Info (I)#d1ecf1rgb(209, 236, 241)
Light blue
Trace (T)#e2e3e5rgb(226, 227, 229)
Light gray

5.2 Dark Mode Background Palette

Dark, muted backgrounds for badges, chips, and callout boxes on dark themes:

SeverityBackground HexRGBSwatchUsage
Error (E)#3d1f1frgb(61, 31, 31)
Dark red
Blocked (B)#4a2020rgb(74, 32, 32)
Dark red/maroon
Critical (C)#3d2e1argb(61, 46, 26)
Dark orange/brown
Warning (W)#3d3520rgb(61, 53, 32)
Dark yellow/olive
Help (H)#1e3d2argb(30, 61, 42)
Dark green
Success (S)#1a3d26rgb(26, 61, 38)
Dark green
Completed (K)#1a3d36rgb(26, 61, 54)
Dark teal
Info (I)#1a2d3drgb(26, 45, 61)
Dark blue
Trace (T)#2d2d2drgb(45, 45, 45)
Dark gray

5.3 Background Usage (Light Mode)

Badges/Chips:

Css
/* Light Mode Badges/Chips */
.badge-error {
  color: #c0392b;
  background-color: #fee;
  border: 1px solid #f5c6cb;
}

.badge-success {
  color: #27ae60;
  background-color: #dcfce7;
  border: 1px solid #c3e6cb;
}

Callout Boxes:

Css
/* Light Mode Callout Box */
.alert-warning {
  color: #856404;
  background-color: #fef3cd;
  border-left: 4px solid #f39c12;
  padding: 1rem;
}

5.4 Background Usage (Dark Mode)

Badges/Chips:

Css
/* Dark Mode Badges/Chips */
@media (prefers-color-scheme: dark) {
  .badge-error {
    color: #e74c3c;
    background-color: #3d1f1f;
    border: 1px solid #5c2a2a;
  }

  .badge-success {
    color: #58d68d;
    background-color: #1a3d26;
    border: 1px solid #2a5c3a;
  }
}

Callout Boxes:

Css
/* Dark Mode Callout Box */
@media (prefers-color-scheme: dark) {
  .alert-warning {
    color: #f1c40f;
    background-color: #3d3520;
    border-left: 4px solid #f39c12;
    padding: 1rem;
  }
}

5.5 Background CSS Custom Properties

Css
:root {
  /* Light mode backgrounds (default) */
  --bg-error: #fee;
  --bg-blocked: #fdd;
  --bg-critical: #ffe5cc;
  --bg-warning: #fef3cd;
  --bg-help: #d4edda;
  --bg-success: #dcfce7;
  --bg-completed: #d1f2eb;
  --bg-info: #d1ecf1;
  --bg-trace: #e2e3e5;
}

@media (prefers-color-scheme: dark) {
  :root {
    /* Dark mode backgrounds */
    --bg-error: #3d1f1f;
    --bg-blocked: #4a2020;
    --bg-critical: #3d2e1a;
    --bg-warning: #3d3520;
    --bg-help: #1e3d2a;
    --bg-success: #1a3d26;
    --bg-completed: #1a3d36;
    --bg-info: #1a2d3d;
    --bg-trace: #2d2d2d;
  }
}

5.6 Contrast Requirements

Light Mode: All foreground/background combinations meet WCAG AA standards (4.5:1 minimum contrast ratio for normal text):

SeverityForegroundBackgroundContrast RatioWCAG AA
Error (E)#c0392b#fee5.2:1βœ“ Pass
Blocked (B)#e74c3c#fdd4.6:1βœ“ Pass
Critical (C)#e67e22#ffe5cc4.5:1βœ“ Pass
Warning (W)#f39c12#fef3cd4.8:1βœ“ Pass
Help (H)#27ae60#d4edda5.1:1βœ“ Pass
Success (S)#2ecc71#dcfce74.7:1βœ“ Pass
Completed (K)#16a085#d1f2eb4.9:1βœ“ Pass
Info (I)#3498db#d1ecf14.7:1βœ“ Pass
Trace (T)#95a5a6#e2e3e54.5:1βœ“ Pass

Dark Mode: All foreground/background combinations meet WCAG AA standards:

SeverityForegroundBackgroundContrast RatioWCAG AA
Error (E)#e74c3c#3d1f1f5.4:1βœ“ Pass
Blocked (B)#ff6b6b#4a20205.2:1βœ“ Pass
Critical (C)#f39c12#3d2e1a5.8:1βœ“ Pass
Warning (W)#f1c40f#3d35206.2:1βœ“ Pass
Help (H)#2ecc71#1e3d2a5.6:1βœ“ Pass
Success (S)#58d68d#1a3d265.8:1βœ“ Pass
Completed (K)#1abc9c#1a3d365.3:1βœ“ Pass
Info (I)#5dade2#1a2d3d5.1:1βœ“ Pass
Trace (T)#bdc3c7#2d2d2d7.2:1βœ“ Pass

WCAG Guidelines:

  • AA Normal Text: 4.5:1 minimum
  • AA Large Text: 3:1 minimum (18pt+ or 14pt+ bold)
  • AAA Normal Text: 7:1 minimum

Note: For small text (below 14px) or UI elements requiring AAA compliance, consider using bolder weights or adjusting foreground colors for higher contrast.

6. Implementation Examples#

6.1 Terminal (Rust)

Rust
pub enum Severity {
    Error, Warning, Critical, Blocked,
    Success, Completed, Help, Info, Trace,
}

impl Severity {
    pub const fn emoji(&self) -> &'static str {
        match self {
            Self::Error => "❌",
            Self::Blocked => "🚫",
            Self::Critical => "πŸ”₯",
            Self::Warning => "⚠️",
            Self::Help => "πŸ’‘",
            Self::Success => "βœ…",
            Self::Completed => "βœ”οΈ",
            Self::Info => "ℹ️",
            Self::Trace => "πŸ”",
        }
    }

    pub const fn ansi_color(&self) -> &'static str {
        match self {
            Self::Error => "\x1b[1;31m",
            Self::Blocked => "\x1b[31m",
            Self::Critical => "\x1b[1;33m",
            Self::Warning => "\x1b[33m",
            Self::Help => "\x1b[32m",
            Self::Success => "\x1b[1;32m",
            Self::Completed => "\x1b[32m",
            Self::Info => "\x1b[36m",
            Self::Trace => "\x1b[2;34m",
        }
    }

    pub const ANSI_RESET: &'static str = "\x1b[0m";
}

// Usage
println!("{} {}{}{} Operation failed",
    Severity::Error.emoji(),
    Severity::Error.ansi_color(),
    "Error:",
    Severity::ANSI_RESET
);

6.2 Web (TypeScript/React)

Typescript
interface SeverityStyle {
  emoji: string;
  color: string;
  bgColor: string;
}

const SEVERITY_STYLES: Record<string, SeverityStyle> = {
  E: { emoji: '❌', color: '#c0392b', bgColor: '#fee' },
  W: { emoji: '⚠️', color: '#f39c12', bgColor: '#fef3cd' },
  C: { emoji: 'πŸ”₯', color: '#e67e22', bgColor: '#ffe5cc' },
  B: { emoji: '🚫', color: '#e74c3c', bgColor: '#fdd' },
  S: { emoji: 'βœ…', color: '#2ecc71', bgColor: '#dcfce7' },
  K: { emoji: 'βœ”οΈ', color: '#16a085', bgColor: '#d1f2eb' },
  H: { emoji: 'πŸ’‘', color: '#27ae60', bgColor: '#d4edda' },
  I: { emoji: 'ℹ️', color: '#3498db', bgColor: '#d1ecf1' },
  T: { emoji: 'πŸ”', color: '#95a5a6', bgColor: '#e2e3e5' },
};

// React component
function DiagnosticBadge({ severity }: { severity: string }) {
  const style = SEVERITY_STYLES[severity];
  return (
    <span style={{
      color: style.color,
      backgroundColor: style.bgColor,
      padding: '0.25rem 0.5rem',
      borderRadius: '0.25rem',
      fontSize: '0.875rem',
      fontWeight: 500,
    }}>
      {style.emoji} {severity}
    </span>
  );
}

6.3 CLI (Python)

Python
from enum import Enum

class Severity(Enum):
    ERROR = 'E'
    WARNING = 'W'
    CRITICAL = 'C'
    BLOCKED = 'B'
    SUCCESS = 'S'
    COMPLETED = 'K'
    HELP = 'H'
    INFO = 'I'
    TRACE = 'T'

    def emoji(self) -> str:
        return {
            'E': '❌', 'W': '⚠️', 'C': 'πŸ”₯', 'B': '🚫',
            'S': 'βœ…', 'K': 'βœ”οΈ', 'H': 'πŸ’‘', 'I': 'ℹ️', 'T': 'πŸ”',
        }[self.value]

    def ansi_color(self) -> str:
        return {
            'E': '\x1b[1;31m', 'W': '\x1b[33m', 'C': '\x1b[1;33m',
            'B': '\x1b[31m', 'S': '\x1b[1;32m', 'K': '\x1b[32m',
            'H': '\x1b[32m', 'I': '\x1b[36m', 'T': '\x1b[2;34m',
        }[self.value]

    @staticmethod
    def reset() -> str:
        return '\x1b[0m'

    def format_message(self, message: str) -> str:
        return f"{self.emoji()} {self.ansi_color()}{self.name}:{self.reset()} {message}"

# Usage
print(Severity.ERROR.format_message("Operation failed"))
print(Severity.SUCCESS.format_message("Build complete"))

7. Accessibility Considerations#

7.1 Color Blindness

Recommendations:

  1. Never rely solely on color - Always include emoji, text labels, or icons
  2. Test with colorblind simulators - Use tools like Coblis or Chrome DevTools
  3. Use multiple visual cues - Combine color + emoji + text + position
  4. Provide alternatives - Offer --no-color and --no-emoji flags

Color Combinations to Avoid:

  • Red/green only (protanopia/deuteranopia)
  • Blue/yellow only (tritanopia)

7.2 Screen Readers

Best Practices:

Html
<!-- Good: Semantic HTML with ARIA -->
<div role="alert" aria-live="polite">
  <span class="severity-icon" aria-label="Error">❌</span>
  <span class="severity-text">Error:</span>
  <span class="diagnostic-message">Operation failed</span>
</div>

<!-- Better: Use visually-hidden text -->
<div role="alert">
  <span class="sr-only">Error severity:</span>
  <span aria-hidden="true">❌</span>
  <strong>Error:</strong> Operation failed
</div>

7.3 High Contrast Mode

Windows High Contrast:

  • Emoji may render as outlines
  • ANSI colors are overridden by system theme
  • Ensure text labels are always present

CSS for High Contrast:

Css
@media (prefers-contrast: high) {
  .severity-error {
    border: 2px solid currentColor;
    font-weight: bold;
  }
}

8. Best Practices#

8.1 Consistency

DO:

  • Use the same emoji/color for a severity across your entire application
  • Document your chosen palette in your style guide
  • Maintain consistent spacing and formatting

DON'T:

  • Mix different emoji sets (e.g., ❌ and βœ–οΈ for errors)
  • Change colors based on context (error is always red)
  • Use custom emoji without fallbacks

8.2 Progressive Enhancement

Fallback Strategy:

1. Full experience: Emoji + Color + Formatting
2. No emoji: ASCII + Color + Formatting
3. No color: ASCII + Text labels
4. Plain text: Severity code + Message

Example:

Level 1: ❌ Error: Operation failed
Level 2: [E] Error: Operation failed (in red)
Level 3: [E] Error: Operation failed
Level 4: E.AUTH.TOKEN.001: Operation failed

8.3 Terminal Detection

Detect capabilities:

Rust
// Check for color support
fn supports_color() -> bool {
    std::env::var("NO_COLOR").is_err()
        && (atty::is(atty::Stream::Stdout)
            || std::env::var("FORCE_COLOR").is_ok())
}

// Check for emoji support
fn supports_emoji() -> bool {
    std::env::var("NO_EMOJI").is_err()
        && !cfg!(target_os = "windows") // Or check Windows version
}

8.4 Configuration

Allow users to customize:

Toml
# .wdpconfig
[display]
emoji = true
color = "auto"  # auto, always, never
style = "default"  # default, minimal, verbose

[colors]
error = "#c0392b"
warning = "#f39c12"
success = "#2ecc71"

8.5 Testing

Test your presentation:

  1. Light theme vs dark theme
  2. Different terminal emulators
  3. Colorblind simulators
  4. Screen readers
  5. High contrast mode
  6. CI/CD environments (often no color/emoji)

Appendix A: Complete Reference Table#

Light Mode

SeverityCodeEmojiANSIHex (FG)Hex (BG)Priority
ErrorE❌\x1b[1;31m#c0392b#fee8
BlockedB🚫\x1b[31m#e74c3c#fdd7
CriticalCπŸ”₯\x1b[1;33m#e67e22#ffe5cc6
WarningW⚠️\x1b[33m#f39c12#fef3cd5
HelpHπŸ’‘\x1b[32m#27ae60#d4edda4
SuccessSβœ…\x1b[1;32m#2ecc71#dcfce73
CompletedKβœ”οΈ\x1b[32m#16a085#d1f2eb2
InfoIℹ️\x1b[36m#3498db#d1ecf11
TraceTπŸ”\x1b[2;34m#95a5a6#e2e3e50

Dark Mode

SeverityCodeEmojiANSIHex (FG)Hex (BG)Priority
ErrorE❌\x1b[1;31m#e74c3c#3d1f1f8
BlockedB🚫\x1b[31m#ff6b6b#4a20207
CriticalCπŸ”₯\x1b[1;33m#f39c12#3d2e1a6
WarningW⚠️\x1b[33m#f1c40f#3d35205
HelpHπŸ’‘\x1b[32m#2ecc71#1e3d2a4
SuccessSβœ…\x1b[1;32m#58d68d#1a3d263
CompletedKβœ”οΈ\x1b[32m#1abc9c#1a3d362
InfoIℹ️\x1b[36m#5dade2#1a2d3d1
TraceTπŸ”\x1b[2;34m#bdc3c7#2d2d2d0

Note: ANSI codes are the same for both themes as terminal colors are typically managed by the terminal emulator's theme settings.

Appendix B: Color Swatches#

Light Mode

Error Family (Red)

β–ˆ #c0392b  Error foreground (dark red)
β–ˆ #e74c3c  Blocked foreground (red)
β–ˆ #fee     Error background
β–ˆ #fdd     Blocked background

Warning Family (Yellow/Orange)

β–ˆ #e67e22  Critical foreground (orange)
β–ˆ #f39c12  Warning foreground (yellow/orange)
β–ˆ #ffe5cc  Critical background
β–ˆ #fef3cd  Warning background

Success Family (Green)

β–ˆ #2ecc71  Success foreground (bright green)
β–ˆ #27ae60  Help foreground (green)
β–ˆ #16a085  Completed foreground (teal)
β–ˆ #dcfce7  Success background
β–ˆ #d4edda  Help background
β–ˆ #d1f2eb  Completed background

Neutral Family (Blue/Gray)

β–ˆ #3498db  Info foreground (blue)
β–ˆ #95a5a6  Trace foreground (gray)
β–ˆ #d1ecf1  Info background
β–ˆ #e2e3e5  Trace background

Dark Mode

Error Family (Red)

β–ˆ #e74c3c  Error foreground (bright red)
β–ˆ #ff6b6b  Blocked foreground (light red)
β–ˆ #3d1f1f  Error background (dark red)
β–ˆ #4a2020  Blocked background (dark maroon)

Warning Family (Yellow/Orange)

β–ˆ #f39c12  Critical foreground (bright orange)
β–ˆ #f1c40f  Warning foreground (bright yellow)
β–ˆ #3d2e1a  Critical background (dark brown)
β–ˆ #3d3520  Warning background (dark olive)

Success Family (Green)

β–ˆ #58d68d  Success foreground (light green)
β–ˆ #2ecc71  Help foreground (bright green)
β–ˆ #1abc9c  Completed foreground (bright teal)
β–ˆ #1a3d26  Success background (dark green)
β–ˆ #1e3d2a  Help background (dark green)
β–ˆ #1a3d36  Completed background (dark teal)

Neutral Family (Blue/Gray)

β–ˆ #5dade2  Info foreground (light blue)
β–ˆ #bdc3c7  Trace foreground (light gray)
β–ˆ #1a2d3d  Info background (dark blue)
β–ˆ #2d2d2d  Trace background (dark gray)

References#

End of Visual Presentation Guidelines Specification