Luigit
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)
    }
  }
}
"
}