diff --git a/CHANGELOG.md b/CHANGELOG.md index dbd0bc4..3735378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Download page (`site/download.html`): centered OS picker, clearer prerequisites table, tighter install steps, condensed trust section. - README header uses `site/gitdock-logo-removebg-preview.png` (transparent logo for GitHub light and dark themes). - `server.js` imports validation helpers from `lib/` (behavior preserved; easier to test). - Account name validation now rejects names that require stripping unsafe characters (e.g. `bad name!`, `work;rm`). diff --git a/scripts/pr-site-download-body.md b/scripts/pr-site-download-body.md new file mode 100644 index 0000000..2cb2725 --- /dev/null +++ b/scripts/pr-site-download-body.md @@ -0,0 +1,21 @@ +## Summary + +Improves the gitdock.dev download page layout and copy: clearer prerequisites, shorter install flow, centered platform buttons, no redundant Node.js row. + +## What changed + +- **Download card:** OS buttons (Windows / macOS / Linux) centered +- **Before you start:** moved above install steps; 3-row table (Git, `gh`, SSH); standalone zip note (no Node.js) +- **How to install:** 4 steps per OS; first-run workspace + Add Account only (no repeat of prerequisites) +- **OS warnings:** shorter SmartScreen / Gatekeeper text +- **Why it's safe:** 3 bullets (open source + CI builds, localhost, no tracking) +- Hero clarifies **no GitDock signup** (GitHub setup stays in-app) + +## Release + +**No GitHub Release or version bump.** Site-only change (redeploy `site/` when you publish the site). + +## Test plan + +- [x] Open `site/download.html` locally and switch OS tabs +- [ ] After deploy: spot-check https://www.gitdock.dev/download.html diff --git a/site/download.html b/site/download.html index 4507171..b2db4c3 100644 --- a/site/download.html +++ b/site/download.html @@ -84,8 +84,9 @@ .dl-alt a{color:var(--t2);font-size:13px} /* Other platforms */ - .dl-others{display:flex;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);flex-wrap:wrap} - .dl-others-label{font-size:12px;color:var(--t3);width:100%;margin-bottom:4px} + .dl-others{display:flex;flex-direction:column;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);text-align:center} + .dl-others-label{font-size:12px;color:var(--t3);margin-bottom:10px} + .dl-others-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center} .btn-other{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:1px solid var(--border);background:var(--bg2);color:var(--t2);font-size:13px;transition:all .2s;text-decoration:none;cursor:pointer} .btn-other:hover{border-color:var(--t3);color:var(--t1);text-decoration:none} .btn-other.active{border-color:var(--blue);color:var(--blue)} @@ -109,11 +110,15 @@ .os-warning strong{color:var(--yellow);font-weight:500} /* Requirements */ - .req-list{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0} - .req-list li{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--t2);padding:8px 0;width:50%} - .req-list li svg{flex-shrink:0} - .req-list li strong{color:var(--t1);font-weight:500} - .req-optional{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--bg2);color:var(--t3);margin-left:2px} + .req-lead{font-size:14px;color:var(--t2);margin-bottom:14px;line-height:1.55} + .req-box{border:1px solid var(--border);border-radius:8px;background:var(--bg1);overflow:hidden} + .req-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 16px;font-size:14px;border-bottom:1px solid var(--border)} + .req-row:last-child{border-bottom:none} + .req-name{font-weight:600;color:var(--t1);flex-shrink:0} + .req-detail{color:var(--t2);text-align:right;line-height:1.45} + .req-foot{margin-top:12px;font-size:13px;color:var(--t3);line-height:1.55} + .req-foot strong{color:var(--t2);font-weight:500} + .req-box code{background:var(--bg0);padding:1px 5px;border-radius:4px;font-size:12px;color:var(--blue)} /* Trust */ .trust-list{list-style:none;margin:0;padding:0} @@ -141,12 +146,12 @@ .dl-card{padding:24px} .dl-meta{gap:16px} .dl-hero h1{font-size:24px} - .dl-others{flex-direction:column} .dl-actions{flex-direction:column;align-items:flex-start} } @media(max-width:480px){ .dl-detected{flex-direction:column;text-align:center} - .req-list li{width:100%} + .req-row{flex-direction:column;align-items:flex-start;gap:4px} + .req-detail{text-align:left} } @@ -173,7 +178,7 @@
Free, open-source, and runs 100% on your machine. No account required. No data collected.
+Free, open-source, runs on your machine only. No GitDock signup; no data collected.
Standalone zip (no Node.js). On your computer:
+gh)
+ list repos, GitHub API
+ Install from source needs Node.js — README prerequisites.
C:\GitDock)localhost:3847localhost:3847Windows SmartScreen may show a warning since the app is unsigned. Click "More info" then "Run anyway". This is standard for open-source apps. View the source code.
+SmartScreen may warn (unsigned build): More info → Run anyway. Source on GitHub.
unzip gitdock-macos-x64.zip)./gitdocklocalhost:3847./gitdock in Terminal → localhost:3847macOS Gatekeeper may block the app. Go to System Settings > Privacy & Security > "Open Anyway", or run xattr -cr ./gitdock. View the source code.
Gatekeeper may block: Privacy & Security → Open Anyway, or xattr -cr ./gitdock. Source on GitHub.
unzip gitdock-linux-x64.zipchmod +x gitdock./gitdock (opens in your browser at localhost:3847)chmod +x gitdock, then ./gitdock → localhost:3847GitDock | Open source. Built for developers who want to organize their Git projects and stop wasting time.
+GitDock · Open source · Privacy