2d236b3fa7d9

PeachScript display: 22px glyphs, accent-tinted surface and glow, fill remaining vertical space, hidden horizontal scroll, styled vertical scrollbar; export menu: distribute three format cards across the popup (v2.5.1)

time
2026-04-27 17:26 UTC · 6 months ago
machine
koh2
parent
337f921aba65
5 files manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/styles/popup.css+65 −10src/popup/views/Export.tsx+3 −3
manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.5.0",4+  "version": "2.5.1",55   "description": "Zero-knowledge password manager",66   "browser_specific_settings": {77     "gecko": {

view file

manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.5.0",4+  "version": "2.5.1",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": "2.5.0",3+  "version": "2.5.1",44   "description": "Zero-knowledge password manager",55   "type": "module",66   "scripts": {

view file

src/popup/styles/popup.css+65 −10
@@ -1577,21 +1577,37 @@15771577 }15781578 .peach-script-string {15791579   font-family: "PeachScript", monospace;1580-  font-size: 11px;1581-  line-height: 1.9;1582-  letter-spacing: 0.06em;1580+  font-size: 22px;1581+  line-height: 1.55;1582+  letter-spacing: 0.04em;15831583   color: var(--peach-t0);15841584   word-break: break-all;1585+  overflow-wrap: anywhere;1586+  white-space: normal;15851587   user-select: all;1586-  background: var(--peach-input-bg, var(--surface-card));1587-  border: 1px solid var(--peach-t3);1588-  border-radius: 6px;1589-  padding: 12px;1590-  margin: 0 0 8px;1591-  max-height: 180px;1588+  background: color-mix(in srgb, var(--peach-accent) 5%, var(--peach-bg));1589+  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, var(--peach-t3));1590+  border-radius: 8px;1591+  padding: 14px 16px;1592+  margin: 0;1593+  flex: 1;1594+  min-height: 140px;1595+  overflow-x: hidden;15921596   overflow-y: auto;1593-  white-space: pre-wrap;1597+  scrollbar-width: thin;1598+  scrollbar-color: var(--peach-accent-dim) transparent;1599+  text-shadow: 0 0 24px color-mix(in srgb, var(--peach-accent) 32%, transparent);15941600 }1601+.peach-script-string::-webkit-scrollbar {1602+  width: 6px;1603+}1604+.peach-script-string::-webkit-scrollbar-thumb {1605+  background: var(--peach-accent-dim);1606+  border-radius: 3px;1607+}1608+.peach-script-string::-webkit-scrollbar-track {1609+  background: transparent;1610+}15951611 .peach-script-input {15961612   font-family: "PeachScript", monospace;15971613   font-size: 11px;@@ -1648,6 +1664,45 @@16481664 .peach-export-card--primary {16491665   background:16501666     linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1667+}1668+1669+/* Export menu — distribute the three format cards across the popup. */1670+.peach-export-menu {1671+  display: flex;1672+  flex-direction: column;1673+  flex: 1;1674+  min-height: 0;1675+}1676+.peach-export-menu .peach-settings-group {1677+  flex: 1;1678+  display: flex;1679+  flex-direction: column;1680+  justify-content: center;1681+  gap: 10px;1682+}1683+1684+/* Result view — the script-string fills the remaining vertical surface. */1685+.peach-export-result-group {1686+  flex: 1;1687+  display: flex;1688+  flex-direction: column;1689+  min-height: 0;1690+}1691+.peach-export-result-group .peach-export-card {1692+  flex: 1;1693+  min-height: 0;1694+  display: flex;1695+  flex-direction: column;1696+  gap: 10px;1697+}1698+.peach-export-result-group .peach-export-card-copy {1699+  flex-shrink: 0;1700+}1701+.peach-export-result-group .peach-settings-label {1702+  flex-shrink: 0;1703+}1704+.peach-export-result-group button {1705+  flex-shrink: 0;16511706 }16521707 .peach-export-card-head {16531708   display: flex;

view file

src/popup/views/Export.tsx+3 −3
@@ -50,7 +50,7 @@5050   return (5151     <>5252       <OverlayHeader title="export" onBack={props.onBack} />53-      <div class="peach-settings-body">53+      <div class="peach-settings-body peach-export-menu">5454         <div class="peach-settings-group peach-export-card peach-export-card--primary">5555           <p class="peach-settings-label">peachscript</p>5656           <p class="peach-export-card-copy">@@ -160,7 +160,7 @@160160         <Show161161           when={script()}162162           fallback={163-            <div class="peach-settings-group peach-export-card peach-export-card--primary">163+            <div class="peach-settings-group peach-export-card peach-export-card--primary peach-export-pass-group">164164               <p class="peach-settings-label">backup password</p>165165               <p class="peach-export-card-copy">166166                 Choose a password to lock this PeachScript. You'll need it@@ -202,7 +202,7 @@202202             </div>203203           }204204         >205-          <div class="peach-settings-group peach-export-card peach-export-card--primary">205+          <div class="peach-settings-group peach-export-card peach-export-card--primary peach-export-result-group">206206             <p class="peach-settings-label">peachscript</p>207207             <div class="peach-script-string">{script()}</div>208208             <p class="peach-export-card-copy" style="margin:0 0 8px">

view file