diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..7c09765 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,18 @@ +{ + "hooks": { + "PreToolUse": [ + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "if": "Bash(gh pr *)", + "command": "cmd=$(jq -r '.tool_input.command'); echo \"$cmd\" | grep -q 'gh pr create' || exit 0; (cd src-tauri && cargo fmt) 2>/dev/null; git diff --quiet src-tauri/src/ || { git add src-tauri/src/ && git commit -m 'style: apply cargo fmt'; }", + "statusMessage": "Running cargo fmt…", + "timeout": 60 + } + ] + } + ] + } +} diff --git a/PRODUCT.md b/PRODUCT.md new file mode 100644 index 0000000..a25f359 --- /dev/null +++ b/PRODUCT.md @@ -0,0 +1,36 @@ +# Product + +## Register + +product + +## Users + +Developers wanting a fast, local PDF compression tool — no account setup, no cloud dependency, no nonsense. Also "stumblers": people who find it on GitHub looking for the simplest solution that doesn't upload their files anywhere. + +## Product Purpose + +Compress PDFs entirely on-device. No internet, no account, no file size limits. Output goes where you tell it, stays on your machine. The value proposition is what it *doesn't* do: no uploads, no tracking, no friction. + +## Brand Personality + +Quiet competence. Unpretentious. Gets out of the way. A good tool doesn't announce itself — it just works. Three words: straightforward, capable, unobtrusive. + +## Anti-references + +- SaaS dashboards with hero metrics, gradient branding, and upsell nudges +- Consumer apps with mascots, confetti, and celebration copy +- Cloud services that make simple tasks feel like an onboarding flow +- Anything that feels like a web app bolted into a native shell + +## Design Principles + +1. **Function is the feature** — every element earns its place by helping the user compress files, nothing else +2. **Quiet when idle, clear when active** — feedback is proportional to what happened; don't over-celebrate routine tasks +3. **Native to the OS** — feels like it could have shipped with macOS developer tools, not like a web app in a wrapper +4. **Trust the user** — no hand-holding copy, no confirmation theater for reversible actions +5. **Invisible when it works** — the best interaction is the one the user doesn't consciously notice + +## Accessibility & Inclusion + +Respects `prefers-reduced-motion` (already implemented). Supports system dark/light mode (already implemented). No additional requirements stated. WCAG AA color contrast as a baseline. diff --git a/src/lib/components/ActionBar.svelte b/src/lib/components/ActionBar.svelte index 839e6c3..764092f 100644 --- a/src/lib/components/ActionBar.svelte +++ b/src/lib/components/ActionBar.svelte @@ -1,5 +1,8 @@