psturtle.com/_includes/SelectPalette.ps1

<#
.SYNOPSIS
    Includes a palette selector
.DESCRIPTION
    Includes a palette selector in a page. This allows the page to use multiple color palettes.
#>

param(
[uri]
$PaletteListSource = 'https://4bitcss.com/Palette-List.json',

# The Palette CDN. This is the root URL of all palettes.
[uri]
$PaletteCDN = 'https://cdn.jsdelivr.net/gh/2bitdesigns/4bitcss@latest/css/',

# The identifier for the palette `<select>`.
[string]
$SelectPaletteId = 'SelectPalette',

# The identifier for the stylesheet. By default, palette.
[string]
$PaletteId = 'palette'
)


$JavaScript = @"
function SetPalette() {
    var palette = document.getElementById('$PaletteId')
    if (! palette) {
        palette = document.createElement('link')
        palette.rel = 'stylesheet'
        palette.id = 'palette'
        document.head.appendChild(palette)
    }
    var selectedPalette = document.getElementById('$SelectPaletteId').value
    palette.href = '$PaletteCDN' + selectedPalette + '.css'
}
"@


$paletteSelector = @"
<select id='$SelectPaletteId' onchange='SetPalette()'>
$(
    if (-not $script:PaletteList) {
        $script:PaletteList = Invoke-RestMethod $PaletteListSource
    }
    foreach ($paletteName in $script:PaletteList) {
        "<option value='$([Web.HttpUtility]::HtmlAttributeEncode($paletteName))'>$([Web.HttpUtility]::HtmlEncode($paletteName))</option>"
    }
)
</select>
"@



$HTML = @"
<script>
$JavaScript
</script>
$PaletteSelector
"@


$HTML