Skip to content

Commit 6c0b0e3

Browse files
vintaclaude
andcommitted
docs: add .impeccable.md design context file
Co-Authored-By: Claude <noreply@anthropic.com>
1 parent fb33f90 commit 6c0b0e3

1 file changed

Lines changed: 97 additions & 0 deletions

File tree

.impeccable.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Design Context
2+
3+
awesome-python.com is a searchable, filterable index of ~650 curated Python projects. It is a reference tool, not a landing page and not a GitHub README mirror.
4+
5+
## Users
6+
7+
Working Python developers (mid to senior). They already write Python daily and arrive with a specific question in mind: "what's a good HTTP client these days", "is there still a maintained ORM for X", "what are people using for task queues now". Secondary readers: polyglot developers evaluating Python's ecosystem, and curious browsers.
8+
9+
Jobs to be done:
10+
11+
1. Find a library for a specific need fast (search + tag filter).
12+
2. Compare candidates at a glance (stars, last commit, tags, one-line description).
13+
3. Confirm a project is alive before clicking through.
14+
15+
These users skim. They reward density and terse copy. They penalize marketing fluff.
16+
17+
## Brand Personality
18+
19+
Three words: **opinionated, confident, dense**.
20+
21+
Voice:
22+
23+
- Editorial. Every word earns its place.
24+
- Confident, not combative. "This is the list" energy, not "check out these cool projects".
25+
- No hype. The content is what's interesting.
26+
- Calm authority. Closer to a well-edited technical reference (O'Reilly index, The Economist briefing, a good man page) than a blog or product site.
27+
28+
Emotional goals: trust, efficiency, craft. The reader should feel the list was edited by someone with taste, find what they need in seconds, and notice the typographic care as a signal that the curation is careful too.
29+
30+
## Aesthetic Direction
31+
32+
Stay close to the current direction. It works.
33+
34+
- Warm editorial palette in OKLCH. Cream/ivory page, dark earthy hero, warm brown-red accent near `oklch(58% 0.16 45)`.
35+
- Type pairing: `Cormorant Garamond` (serif display, 600) with `Manrope` (sans body, 400/600/700/800). Do not swap.
36+
- Magazine-cover scale for the main headline (`clamp(4.5rem, 11vw, 8.5rem)`), then a tight modular scale for the rest.
37+
- Textured hero: subtle grid, slow sheen, warm radial gradients. Respect `prefers-reduced-motion`.
38+
- Light theme only (`color-scheme: light`). No dark mode toggle, no alternate palettes.
39+
- Table-driven index (sticky header, sortable columns, expandable rows). Not a card grid.
40+
- Dark warm charcoal footer, part of the same system.
41+
42+
References (what to stay close to):
43+
44+
- Magazine reference pages (The Economist, FT Weekend, Monocle).
45+
- Field-guide books. Curated, functional, hand-made.
46+
- Library card catalogs. Dense tabular information, excellent typography, no decoration for decoration's sake.
47+
48+
Anti-references (avoid strictly):
49+
50+
- Generic dark developer-tool look. No cyan on near-black, neon gradients, VSCode-palette dashboards, terminal-green monospace branding.
51+
- Other awesome-* sites. No plain README dumps, bare lists of links, no voice.
52+
- SaaS marketing pages. No big metric counters, testimonial cards, feature grids, pricing tiers, or "join 10,000+ developers" social proof bands.
53+
54+
## Design Principles
55+
56+
1. **The list is the hero.** Hero, sponsor band, and CTA exist, but they must not compete with the table for attention.
57+
2. **Density is a feature.** Prefer tables and tight rhythm over giant cards with one fact each. Mid-senior developers want to see more at once.
58+
3. **Editorial typography over decoration.** Visual interest comes from the serif/sans pairing, type hierarchy, and whitespace. Not from gradients, shadows, badges, or icon boxes above headings.
59+
4. **Warm, not cool.** Neutrals tint toward warm hues (roughly 55 to 80 in OKLCH). Pure grays and cool blues do not belong.
60+
5. **One point of view.** No dark mode, no theme picker, no alternate palettes. Consistency signals curation.
61+
62+
## Implementation Rules
63+
64+
The project already follows these. Future work must keep them.
65+
66+
Layout and sizing:
67+
68+
- Keep existing `--shell-max: 84rem` (~1344px). Do not drop below 1280px for the main column.
69+
- Body type floor is 16px (`--text-base: 1rem`). Content-heavy passages may go to 1.125rem.
70+
- Adjacent heading levels differ by at least 0.25rem of rendered size.
71+
72+
Color:
73+
74+
- Use OKLCH for any new color. Not HSL, not hex.
75+
- Accent colors (`--accent`, `--accent-deep`) only on interactive elements.
76+
- Tags, badges, pills, inline code, source badges use `--ink-muted`, `--ink-soft`, or `--bg-paper-strong`. Never the accent.
77+
78+
CSS hygiene:
79+
80+
- CSS custom properties for all colors and repeated values.
81+
- `rem` for spacing and type. `px` only for borders and shadows.
82+
- `gap` over child margins in flex and grid.
83+
- Logical properties (`margin-inline`, `padding-block`) over physical (`margin-left`, `padding-top`).
84+
- Never `!important`. Fix specificity instead.
85+
- Never `text-transform`. Write the casing in the markup.
86+
- Sibling components (card lists, grid items) share identical spacing.
87+
88+
Absolute bans (from the impeccable skill):
89+
90+
- No `border-left` or `border-right` greater than 1px as a colored accent stripe on cards, list items, callouts, or alerts. Use a different structure.
91+
- No gradient text (`background-clip: text` on gradients). Solid color only.
92+
- No glassmorphism as default decoration.
93+
- No bounce or elastic easing. Real objects decelerate smoothly.
94+
95+
## Verification
96+
97+
After any frontend change, use the `playwright-cli` skill to visually verify in a real browser. Check layout, responsiveness, and interactive behavior. Do not claim a UI change works based on code alone.

0 commit comments

Comments
 (0)