repositories / dotfiles
dotfiles
bugabingas dorkfiles
owned by admin
nugu/pufferpanel.nu
Raw# Native PufferPanel theme adapter; retains upstream layout and accessibility modes.
def variables [theme: record, mode: string] {
let p = $theme.palette
let values = {
"color-scheme": $mode
"--primary": $p.ui.accent
"--text-primary": $p.ui.backdrop
"--primary-hover": $"($p.ui.accent)26"
"--backdrop": $p.content.backdrop
"--background": $p.ui.backdrop
"--code-background": $p.content.backdrop
"--text": $p.content.normal
"--text-disabled": $p.content.minor
"--success": $p.content.focus
"--success-bg": $"($p.content.focus)26"
"--info": $p.info
"--info-bg": $"($p.info)26"
"--warning": $p.warning
"--warning-bg": $"($p.warning)26"
"--error": $p.error
"--error-bg": $"($p.error)26"
"--ace-theme": (if $mode == "dark" { "monokai" } else { "github" })
"--chartjs-color": $p.content.normal
"--chartjs-tooltip-font-color": $p.content.normal
"--chartjs-tooltip-background-color": $p.ui.backdrop
"--chartjs-grid-color": $"($p.content.minor)40"
"--chartjs-series-line-cpu": $p.info
"--chartjs-series-fill-cpu": $"($p.info)26"
"--chartjs-series-line-memory": $p.content.accent
"--chartjs-series-fill-memory": $"($p.content.accent)26"
"--scrollshadow-color": $p.content.backdrop
}
$values | transpose name value | each {|entry| $" ($entry.name): ($entry.value);" } | str join (char newline)
}
export def css [] {
let light = (variables (open output/light.toml) light)
let dark = (variables (open output/dark.toml) dark)
$"/* Generated from dotfiles/nugu/pufferpanel.nu. Do not edit. */
#app #root.mode-light {
($light)
}
#app #root.mode-dark {
($dark)
}
/* Keep upstream high-contrast mode intact, including OS contrast preference. */
@media not \(prefers-contrast: more\) {
#app #root.mode-auto {
($light)
}
@media \(prefers-color-scheme: dark\) {
#app #root.mode-auto {
($dark)
}
}
}
"
}