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
↓ peach-browser-7e64c553.tar.gzatlas at this save
files changed5 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/styles/popup.css+31 −32src/popup/styles/vars.css+33 −18manifest.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": {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",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": {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 /* ──────────────────────────────────────────────────────────────────────────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 ────────────────────────────────────────────────