Private/UI/Get-PSMBColorPalette.ps1
|
function Get-PSMBColorPalette { <# .SYNOPSIS Returns the color palette for premium menu rendering. .DESCRIPTION Returns a hashtable of ANSI 24-bit escape code strings using a light olive green / teal color scheme. On non-interactive hosts, returns empty strings so callers degrade gracefully. #> [CmdletBinding()] [OutputType([hashtable])] param() $esc = [char]27 if ($PSVersionTable.PSVersion.Major -ge 7) { return @{ Text = "${esc}[38;2;224;231;222m" # soft greenish white Subtext = "${esc}[38;2;170;183;166m" # muted sage gray Dim = "${esc}[38;2;108;120;105m" # dim olive gray Amber = "${esc}[38;2;168;213;162m" # primary accent (light olive green) Rose = "${esc}[38;2;94;234;212m" # secondary accent (teal) Green = "${esc}[38;2;134;239;172m" # success green Red = "${esc}[38;2;251;113;133m" # error red Yellow = "${esc}[38;2;253;224;71m" # warning yellow Peach = "${esc}[38;2;129;199;132m" # warm mid-green Teal = "${esc}[38;2;94;234;212m" # cool teal accent Surface = "${esc}[38;2;60;68;58m" # border/surface color BgSelect = "${esc}[48;2;40;52;38m" # selected row background Bold = "${esc}[1m" Italic = "${esc}[3m" DimStyle = "${esc}[2m" Reset = "${esc}[0m" } } $empty = @{} foreach ($key in @('Text', 'Subtext', 'Dim', 'Amber', 'Rose', 'Green', 'Red', 'Yellow', 'Peach', 'Teal', 'Surface', 'BgSelect', 'Bold', 'Italic', 'DimStyle', 'Reset')) { $empty[$key] = '' } return $empty } |