7e64c55333ee

light theme warm parchment restoration — bg #EFEEE9, card #F0E9DF, input #EEE7DD, overlay #F5EDE2; text-secondary #3D2E18, placeholder #A8A099; border #DDD5CB; ghost-opacity 0.06; settings label #79766F; btn/lock-secondary to input-well surface; entry row hover to bg-row/bg-elevated. Bump v3.6.4

time
2026-05-18 18:42 UTC · 5 months ago
machine
koh2
parent
052e5e8a3e2f
5 files manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/styles/popup.css+31 −32src/popup/styles/vars.css+33 −18
manifest.firefox.json+1 −1
@@ -2,7 +2,7 @@22   "_comment_audio_capture": "Firefox does not honor the Chrome 'audioCapture' optional_permission — getUserMedia in WebExtensions is gated solely by the runtime permission prompt. Microphone access for chirp pairing works from the popup under the existing '<all_urls>' host permission; no manifest entry is required or accepted here.",33   "manifest_version": 3,44   "name": "Peach",5-  "version": "3.6.3",5+  "version": "3.6.4",66   "description": "Zero-knowledge password manager",77   "browser_specific_settings": {88     "gecko": {

view file

manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "3.6.3",4+  "version": "3.6.4",55   "description": "Zero-knowledge password manager",66   "action": {77     "default_popup": "src/popup/index.html",

view file

package.json+1 −1
@@ -1,6 +1,6 @@11 {22   "name": "peach",3-  "version": "3.6.3",3+  "version": "3.6.4",44   "description": "Zero-knowledge password manager",55   "type": "module",66   "scripts": {

view file

src/popup/styles/popup.css+31 −32
@@ -1604,8 +1604,8 @@16041604 16051605 .light .peach-settings-group,16061606 [data-theme="light"] .peach-settings-group {1607-  background: rgba(210, 180, 140, 0.68);1608-  border-color: rgba(26, 18, 8, 0.10);1607+  background: rgba(245, 237, 226, 0.70);1608+  border-color: rgba(26, 18, 8, 0.08);16091609   backdrop-filter: blur(10px) saturate(1.2);16101610   -webkit-backdrop-filter: blur(10px) saturate(1.2);16111611 }@@ -1613,8 +1613,8 @@16131613 @supports not (backdrop-filter: blur(1px)) {16141614   .light .peach-settings-group,16151615   [data-theme="light"] .peach-settings-group {1616-    background: rgba(210, 180, 140, 0.95);1617-    border-color: rgba(26, 18, 8, 0.12);1616+    background: rgba(245, 237, 226, 0.97);1617+    border-color: rgba(26, 18, 8, 0.10);16181618   }16191619 }16201620 .peach-export-intro {@@ -3529,8 +3529,8 @@35293529 35303530 .light .peach-glass,35313531 [data-theme="light"] .peach-glass {3532-  background: rgba(210, 180, 140, 0.70);3533-  border: 1px solid rgba(26, 18, 8, 0.10);3532+  background: rgba(240, 233, 223, 0.72);3533+  border: 1px solid rgba(26, 18, 8, 0.08);35343534   backdrop-filter: blur(12px) saturate(1.2);35353535   -webkit-backdrop-filter: blur(12px) saturate(1.2);35363536 }@@ -3538,8 +3538,8 @@35383538 @supports not (backdrop-filter: blur(1px)) {35393539   .light .peach-glass,35403540   [data-theme="light"] .peach-glass {3541-    background: rgba(210, 180, 140, 0.95);3542-    border: 1px solid rgba(26, 18, 8, 0.12);3541+    background: rgba(240, 233, 223, 0.97);3542+    border: 1px solid rgba(26, 18, 8, 0.10);35433543   }35443544 }35453545 @@ -3555,11 +3555,11 @@35553555 35563556 .light .peach-lock-panel.peach-glass,35573557 [data-theme="light"] .peach-lock-panel.peach-glass {3558-  background: rgba(188, 155, 114, 0.78);3559-  border: 1px solid rgba(26, 18, 8, 0.12);3558+  background: rgba(240, 233, 223, 0.82);3559+  border: 1px solid rgba(26, 18, 8, 0.08);35603560   box-shadow:3561-    inset 0 1px 0 rgba(255, 255, 255, 0.4),3562-    0 8px 24px rgba(80, 56, 32, 0.20);3561+    inset 0 1px 0 rgba(255, 255, 255, 0.5),3562+    0 8px 24px rgba(80, 56, 32, 0.12);35633563 }35643564 35653565 @supports not (backdrop-filter: blur(1px)) {@@ -3571,7 +3571,7 @@35713571   }35723572   .light .peach-lock-panel.peach-glass,35733573   [data-theme="light"] .peach-lock-panel.peach-glass {3574-    background: rgba(188, 155, 114, 0.97);3574+    background: rgba(240, 233, 223, 0.98);35753575   }35763576 }35773577 @@ -8683,56 +8683,55 @@86838683    Tokens that cannot be expressed as variable substitutions — hardcoded86848684    context-specific values that need separate light-mode rules. */86858685 8686-/* Settings section headers: use text-label (#5C4228) for more presence8687-   than --t2 alone — gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY8688-   the dark anchor they need against the warmer background. */8686+/* Settings section headers: use text-label (#79766F) per restoration brief —8687+   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY8688+   presence without fighting the light parchment background. */86898689 .light .peach-settings-sub-label,86908690 [data-theme="light"] .peach-settings-sub-label,86918691 .light .peach-settings-nav-label,86928692 [data-theme="light"] .peach-settings-nav-label {8693-  color: #5C4228;8693+  color: #79766F;86948694 }86958695 8696-/* Secondary action buttons (ghost / subtle): filled with the sunken surface8697-   colour so they read as embedded and intentional on the linen background8698-   rather than floating. Values track --s3 (bg-sunken) and border-default. */8696+/* Secondary action buttons (ghost / subtle): filled with input-well surface8697+   so they read as recessed against the parchment card background. */86998698 .light .peach-btn--ghost,87008699 [data-theme="light"] .peach-btn--ghost {8701-  background: #BC9B72;8702-  border-color: #96724C;8700+  background: #EEE7DD;8701+  border-color: #DDD5CB;87038702   color: #1A1208;87048703 }87058704 .light .peach-btn--subtle,87068705 [data-theme="light"] .peach-btn--subtle {8707-  background: #BC9B72;8708-  border-color: #96724C;8706+  background: #EEE7DD;8707+  border-color: #DDD5CB;87098708 }87108709 87118710 /* Wide secondary action button on the lock screen — override the8712-   hardcoded dark-mode rgba values with warm-surface equivalents. */8711+   hardcoded dark-mode rgba values with warm parchment equivalents. */87138712 .light .peach-lock-secondary,87148713 [data-theme="light"] .peach-lock-secondary {8715-  background: #BC9B72;8716-  border-color: #96724C;8714+  background: #EEE7DD;8715+  border-color: #DDD5CB;87178716   color: #1A1208;87188717 }87198718 .light .peach-lock-secondary:hover,87208719 [data-theme="light"] .peach-lock-secondary:hover {8721-  background: #C4A47C;8720+  background: #F0E9DF;87228721 }87238722 8724-/* Entry row hover: replace the near-invisible light-on-light rgba value. */8723+/* Entry row hover: warm parchment bg-row lifts the row above the card surface. */87258724 .light .peach-entry-row:hover,87268725 [data-theme="light"] .peach-entry-row:hover {8727-  background: rgba(26, 18, 8, 0.05);8726+  background: #F2EBE1;87288727 }87298728 .light .peach-entry-row.is-active,87308729 [data-theme="light"] .peach-entry-row.is-active {8731-  background: rgba(26, 18, 8, 0.04);8730+  background: #F2EBE1;87328731 }87338732 .light .peach-entry-row.is-selected,87348733 [data-theme="light"] .peach-entry-row.is-selected {8735-  background: rgba(26, 18, 8, 0.06);8734+  background: #F5EDE2;87368735 }87378736 87388737 /* ──────────────────────────────────────────────────────────────────────────

view file

src/popup/styles/vars.css+33 −18
@@ -162,31 +162,46 @@162162 }163163 164164 .light {165-  /* v3: warm toasted linen — hsl(29°, 26–28%, 72–84%)166-     User-selected base: hsl(29, 28%, 77%) = #C9A882. Elevated +4% L,167-     overlay +7% L, sunken −5% L. Hue held at 29° across all surfaces. */168-  --bg: #C9A882;169-  --s1: #D2B48C;170-  --s2: #D9BF98;171-  --s3: #BC9B72;165+  /* Warm parchment restoration — pixel-sampled from reference screenshots.166+     Outer bg is hsl(50,16%,93%), card surfaces shift to hsl(35,36-49%,91-92%).167+     The two hue families are intentional — do not normalize them to one hue. */168+  --bg: #EFEEE9;169+  --s1: #F0E9DF;170+  --s2: #F5EDE2;171+  --s3: #EEE7DD;172172   --bg-1: var(--s1);173173   --bg-2: var(--s2);174174   --bg-3: var(--s3);175175   --t0: #1A1208;176-  --t1: #2E2010;177-  --t2: #6B4E30;178-  --t3: rgba(168, 132, 94, 0.4);176+  --t1: #3D2E18;177+  --t2: #A8A099;178+  --t3: #DDD5CB;179179   --t4: rgba(26, 18, 8, 0.06);180-  --surface-card: rgba(26, 18, 8, 0.03);181-  --surface-elevated: rgba(210, 180, 140, 0.97);182-  --shell-top-solid: rgba(201, 168, 130, 0.98);183-  --shell-top-fade: rgba(210, 180, 140, 0.96);180+  --surface-card: #F0E9DF;181+  --surface-elevated: rgba(245, 237, 226, 0.97);182+  --shell-top-solid: rgba(239, 238, 233, 0.98);183+  --shell-top-fade: rgba(245, 237, 226, 0.96);184184   --shell-accent-a: color-mix(in srgb, var(--peach-accent) 6%, transparent);185185   --shell-accent-b: color-mix(in srgb, var(--peach-accent) 3%, transparent);186-  --copy-shadow: 0 2px 8px rgba(80, 56, 32, 0.15), 0 14px 48px rgba(80, 56, 32, 0.15), 0 0 0 1px rgba(26, 18, 8, 0.06);187-  --peach-rune-idle: rgba(26, 18, 8, 0.16);188-  /* darker base than v3.1: step opacity down so watermark stays subtle */189-  --peach-ghost-opacity: 0.10;186+  --copy-shadow: 0 2px 8px rgba(80, 56, 32, 0.10), 0 14px 48px rgba(80, 56, 32, 0.10), 0 0 0 1px rgba(26, 18, 8, 0.05);187+  --peach-rune-idle: rgba(26, 18, 8, 0.12);188+  /* Ghost watermark: brief specifies 0.06 opacity for light parchment base */189+  --peach-ghost-opacity: 0.06;190+191+  /* Light-only semantic tokens from restoration brief */192+  --peach-bg-card: #F0E9DF;193+  --peach-bg-row: #F2EBE1;194+  --peach-bg-input: #EEE7DD;195+  --peach-bg-elevated: #F5EDE2;196+  --peach-bg-search: #F2EBE1;197+  --peach-text-label: #79766F;198+  --peach-text-link: #B87155;199+  --peach-text-dim: #9E9890;200+  --peach-border-subtle: #E8E2D8;201+  --peach-border-strong: #C4BAB0;202+  --peach-breach-bg: #F1E5D9;203+  --peach-breach-text: #DA6931;204+  --peach-warning-text: #DA6931;190205 }191206 192207 /* ─── Text size scaling ────────────────────────────────────────────────

view file