diff --git a/config/dot/quickshell/scripts/panama-lock b/config/dot/quickshell/scripts/panama-lock
index f38ff66..9e3350b 100755
--- a/config/dot/quickshell/scripts/panama-lock
+++ b/config/dot/quickshell/scripts/panama-lock
@@ -118,15 +118,25 @@ load_preferences() {
esac
if [[ "$color_scheme" == light ]]; then
- background_color='rgba(245, 246, 250, 1.0)'
- foreground_color='rgba(55, 63, 87, 1.0)'
- dim_color='rgba(111, 119, 151, 1.0)'
- field_color='rgba(220, 223, 232, 0.88)'
+ background_color='rgba(225, 226, 231, 1.0)'
+ foreground_color='rgba(55, 96, 191, 1.0)'
+ dim_color='rgba(97, 114, 176, 1.0)'
+ accent_color='rgba(46, 125, 233, 1.0)'
+ accent_ring_color='rgba(46, 125, 233, 0.9)'
+ error_color='rgba(245, 42, 101, 1.0)'
+ field_color='rgba(208, 213, 227, 0.85)'
+ dim_hex='6172b0'
+ error_hex='f52a65'
else
background_color='rgba(34, 36, 54, 1.0)'
foreground_color='rgba(200, 211, 245, 1.0)'
dim_color='rgba(130, 139, 184, 1.0)'
+ accent_color='rgba(130, 170, 255, 1.0)'
+ accent_ring_color='rgba(130, 170, 255, 0.9)'
+ error_color='rgba(255, 117, 127, 1.0)'
field_color='rgba(46, 47, 61, 0.85)'
+ dim_hex='828bb8'
+ error_hex='ff757f'
fi
}
@@ -239,16 +249,16 @@ emit_config() {
printf ' valign = center\n'
printf ' outline_thickness = 2\n'
printf ' rounding = 26\n'
- printf ' outer_color = rgba(130, 170, 255, 0.9)\n'
+ printf ' outer_color = %s\n' "$accent_ring_color"
printf ' inner_color = %s\n' "$field_color"
printf ' font_color = %s\n' "$foreground_color"
- printf ' check_color = rgba(130, 170, 255, 1.0)\n'
- printf ' fail_color = rgba(255, 117, 127, 1.0)\n'
+ printf ' check_color = %s\n' "$accent_color"
+ printf ' fail_color = %s\n' "$error_color"
printf ' dots_size = 0.25\n'
printf ' dots_spacing = 0.3\n'
printf ' dots_center = true\n'
- printf ' placeholder_text = Password\n'
- printf ' fail_text = $FAIL ($ATTEMPTS)\n'
+ printf ' placeholder_text = Password\n' "$dim_hex"
+ printf ' fail_text = $FAIL ($ATTEMPTS)\n' "$error_hex"
printf ' fade_on_empty = %s\n' "$fade_on_empty"
printf ' hide_input = false\n'
printf '}\n\n'
diff --git a/tests/quickshell/lock-screen-helper-contract.sh b/tests/quickshell/lock-screen-helper-contract.sh
index b3ec062..f7aa2ef 100755
--- a/tests/quickshell/lock-screen-helper-contract.sh
+++ b/tests/quickshell/lock-screen-helper-contract.sh
@@ -91,7 +91,14 @@ write_settings '{
"colorScheme":"light"
}'
run_helper generate
-rg -Fq 'color = rgba(245, 246, 250, 1.0)' "$generated" || fail 'light solid mode has the wrong colour'
+rg -Fq 'color = rgba(225, 226, 231, 1.0)' "$generated" || fail 'light solid mode does not match Theme.bg'
+rg -Fq 'inner_color = rgba(208, 213, 227, 0.85)' "$generated" || fail 'light password field does not match the themed fallback'
+rg -Fq 'font_color = rgba(55, 96, 191, 1.0)' "$generated" || fail 'light foreground does not match Theme.fg'
+rg -Fq 'outer_color = rgba(46, 125, 233, 0.9)' "$generated" || fail 'light focus ring does not match Theme.accent'
+rg -Fq 'check_color = rgba(46, 125, 233, 1.0)' "$generated" || fail 'light success colour does not match Theme.accent'
+rg -Fq 'fail_color = rgba(245, 42, 101, 1.0)' "$generated" || fail 'light error colour does not match Theme.red'
+rg -Fq 'foreground="##6172b0"' "$generated" || fail 'light placeholder markup retained the dark muted colour'
+rg -Fq 'foreground="##f52a65"' "$generated" || fail 'light failure markup retained the dark error colour'
rg -Fq 'blur_passes = 0' "$generated" || fail 'blur level zero did not disable passes'
rg -Fq 'blur_size = 1' "$generated" || fail 'blur level zero did not use the safe size'
rg -Fq 'fade_on_empty = true' "$generated" || fail 'fade-on-empty setting was ignored'