diff --git a/.grok/hooks/impeccable.json b/.grok/hooks/impeccable.json new file mode 100644 index 00000000..31d2d420 --- /dev/null +++ b/.grok/hooks/impeccable.json @@ -0,0 +1,29 @@ +{ + "hooks": { + "PostToolUse": [ + { + "matcher": "Edit|Write|MultiEdit", + "hooks": [ + { + "type": "command", + "command": "[ ! -f \".grok/skills/impeccable/scripts/impeccable\" ] || \".grok/skills/impeccable/scripts/impeccable\" hook", + "timeout": 5, + "statusMessage": "Checking UI changes" + } + ] + } + ], + "Stop": [ + { + "hooks": [ + { + "type": "command", + "command": "[ ! -f \".grok/skills/impeccable/scripts/impeccable\" ] || \".grok/skills/impeccable/scripts/impeccable\" hook", + "timeout": 30, + "statusMessage": "Design deep pass" + } + ] + } + ] + } +} diff --git a/.impeccable/config.json b/.impeccable/config.json new file mode 100644 index 00000000..91a24265 --- /dev/null +++ b/.impeccable/config.json @@ -0,0 +1,9 @@ +{ + "hook": { + "enabled": true, + "limits": { + "maxFindings": 5, + "maxChars": 8000 + } + } +} diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 00000000..9d732cf0 --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,92 @@ +--- +name: Snapper +description: Public page for the semantic line-break formatter. +colors: + teal: "#004D40" + teal-light: "#00695C" + coral: "#FF655D" + yellow: "#F1DB4B" + background: "#FDFCF9" + text: "#1a2e1f" +typography: + body: + fontFamily: "Atkinson Hyperlegible Next, system-ui, sans-serif" + fontWeight: 400 + mono: + fontFamily: "JetBrains Mono, monospace" + fontWeight: 400 +rounded: + logo: "28px" + control: "8px" + panel: "12px" +spacing: + section: "6rem 0" +components: + button-primary: + backgroundColor: "{colors.teal}" + textColor: "{colors.background}" +--- + +# Design System: Snapper + +## Overview + +**Creative North Star: "The forest page"** + +(Inferred from `site/index.html`.) The static page sets its own custom properties: deep teal, coral, cream, and forest greens, with Atkinson Hyperlegible Next for text and JetBrains Mono for code. + +**Key Characteristics:** + +- Teal `#004D40`. +- Background `#FDFCF9`. +- Atkinson Hyperlegible Next and JetBrains Mono. + +## Colors + +### Primary + +- **Teal** (`#004D40`): `--teal`. + +### Secondary + +- **Coral** (`#FF655D`): `--coral`. +- **Yellow** (`#F1DB4B`): `--yellow`. + +### Neutral + +- **Paper** (`#FDFCF9`): `--bg`. +- **Ink** (`#1a2e1f`): `--text`. + +## Typography + +**Body Font:** Atkinson Hyperlegible Next +**Label/Mono Font:** JetBrains Mono + +### Hierarchy + +- **Body**: `var(--sans)` on the page sections. +- **Label**: `var(--mono)` on code samples. + +## Layout + +`section` padding is `6rem 0` in `site/index.html`. The recorded spacing value is that same `6rem 0`. + +## Shapes + +The logo uses a 28px radius. Controls use 8px. Panels and the demo close at 12px. + +## Components + +### Navigation + +- Text uses `var(--sans)` and the teal custom properties. + +## Do's and Don'ts + +### Do: + +- **Do** keep `#004D40` and Atkinson Hyperlegible Next as written in `site/index.html`. + +### Don't: + +- **Don't** load a second display face. This page uses Atkinson Hyperlegible Next for text and JetBrains Mono for code. diff --git a/PRODUCT.md b/PRODUCT.md new file mode 100644 index 00000000..799127e0 --- /dev/null +++ b/PRODUCT.md @@ -0,0 +1,41 @@ +# Product + + + +## Platform + +web + +## Users + +(Inferred) People who format prose so that a sentence is one line and a diff stays readable. They may use the command, an editor, or the public page. + +## Product Purpose + +(Inferred from `README.md`) Snapper is a format-aware semantic line-break formatter. The static page in `site/` is the public face of that tool. + +## Positioning + +(Inferred) Snapper is the free formatter. It is not the citation product and not the account site. + +## Operating Context + +(Inferred) The page in `site/index.html` is the rendered interface in this checkout. The ops catalogue also names `Git/Github/Rust/snapper`, and that path is not on this machine. + +## Capabilities and Constraints + +(Inferred) Do not invent editor integrations beyond the ones the README already lists. + +## Brand Commitments + +The site sets `--teal: #004D40` and `--sans: 'Atkinson Hyperlegible Next', system-ui, sans-serif` in `site/index.html`. + +## Evidence on Hand + +`README.md` and `site/index.html`. + +## Product Principles + +- (Inferred) The page explains the formatter that this repository ships. +- (Inferred) Keep the teal and the shared Atkinson face in the site stylesheet. +- (Inferred) Do not move this record into a different repository. diff --git a/site-svelte/src/app.html b/site-svelte/src/app.html index 07bf72d7..d0dc8793 100644 --- a/site-svelte/src/app.html +++ b/site-svelte/src/app.html @@ -39,7 +39,7 @@ - + %sveltekit.head%
diff --git a/site/404.html b/site/404.html index 3b4361e5..3ea2ff33 100644 --- a/site/404.html +++ b/site/404.html @@ -5,10 +5,12 @@