Skip to content

Commit c1ad45e

Browse files
r4topunkclaude
andcommitted
chore(claude): memória dos agentes do redesign + launch.json do dev
Memória registrada durante o trabalho no /stake: colisão dos três verbos pt-BR (resgatar/sacar/colher), diferenciação visual e a superfície dark do stake, além dos achados do code review. launch.json declara o dev server (pnpm dev, :3000) para as ferramentas de preview subirem sem adivinhar o comando. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent ddf9c3a commit c1ad45e

6 files changed

Lines changed: 122 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# Memory Index
22

33
- [project_i18n_foundation](project_i18n_foundation.md) — i18n Phase 1 foundation: next-intl installed, [locale] routing wired, proxy.ts merged, 50 message stubs created
4+
- [feedback_ptbr_verb_collisions](feedback_ptbr_verb_collisions.md) — PT-BR: claim/withdraw/harvest = resgatar/sacar/colher, never two of them as "sacar"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: ptbr-verb-collisions
3+
description: In PT-BR, claim/withdraw/harvest must stay three distinct verbs (resgatar/sacar/colher) — never collapse them all into "sacar"
4+
metadata:
5+
type: feedback
6+
---
7+
8+
When translating stake/rewards UI to PT-BR, `claim`, `withdraw` and `harvest` must map to three
9+
distinct verbs: **claim → resgatar/resgate**, **withdraw → sacar/saque**, **harvest → colher**.
10+
Do not let two of them land on "sacar".
11+
12+
**Why:** the user flagged that `messages/pt-br/stake.json` already has this collision in the
13+
`lootbox` and `dlg` blocks (`claim` and `withdraw` both render "Sacar"), which makes two different
14+
onchain actions indistinguishable in the UI. They explicitly asked not to reproduce it in new keys.
15+
CLAUDE.md's glossary already says claim → resgate; the existing file drifted from it.
16+
17+
**How to apply:** any new PT-BR string in the stake/rewards area (and any future cleanup of the
18+
existing `lootbox`/`dlg` keys). Also applies to derived nouns: "Falha no resgate" vs "Falha no saque".
19+
Related: [[project-i18n-foundation]], `docs/i18n/tone-brief.md`.

.claude/agent-memory/ui-designer/MEMORY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@
55
- [project_design_system.md](./project_design_system.md) — Design system setup: Tailwind v4, shadcn/ui New York, theming tokens, font stack
66
- [project_known_issues.md](./project_known_issues.md) — Known UI/accessibility issues found in deep review (2026-03-16)
77
- [user_profile.md](./user_profile.md) — r4to's profile and collaboration preferences
8+
- [project_stake_dark_surface.md](./project_stake_dark_surface.md) — /stake is a committed dark island in a system-theme site: scope it with a `dark` wrapper
9+
- [feedback_visual_differentiation.md](./feedback_visual_differentiation.md) — Redesign = change the visual language and section weights, not the section order
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
name: visual-differentiation-over-reordering
3+
description: A redesign that only reorders sections reads as "practically identical" — change the language (headers, weights, accent discipline), not the order
4+
metadata:
5+
type: feedback
6+
---
7+
8+
When asked to redesign a page, reordering sections and reusing the existing panel
9+
/ eyebrow / accent language is not a redesign. The first `/stake/preview`
10+
prototype did exactly that and was rejected as "practically identical" to
11+
production.
12+
13+
**Why:** section order is invisible in a screenshot comparison. What a reviewer
14+
actually reads as "different" is the visual language: surface recipe, header
15+
pattern, type scale, accent discipline, and — most of all — **section weights**.
16+
Uniform slabs stacked at equal weight is the failure mode; it makes every section
17+
claim the same importance, so the page has no reading order.
18+
19+
**How to apply:** on a redesign brief, commit to ONE recipe per role (one panel,
20+
one row, one muted tier pair, one accent) and then deliberately vary weight:
21+
a 56px inline strip for reference data, a medium panel for the user's own data,
22+
a nearly frameless block for the page's hero visual. Reserve the accent for
23+
primary CTAs, selected states and key numbers; secondary actions get a quiet
24+
`bg-white/[0.06]` treatment, and a second brand colour (e.g. Morpheus green) may
25+
appear as *data* only — never as button, border or glow chrome.
26+
27+
**Corrections the owner made on the next pass (these are taste rules, not
28+
one-offs — they apply to any surface here):**
29+
30+
- **No section-number eyebrows** (`01 Pick your rider`). Numbering sections is a
31+
known AI tell; an eyebrow names a topic in plain language or it doesn't exist.
32+
The first fix for uppercase eyebrows was mono `01``05` indices, and that got
33+
rejected too. Consistent headers are the rhythm.
34+
- **No sub-cards inside a card.** Rows in a panel are transparent and separated by
35+
ONE hairline on the container (`divide-y`), never a lighter fill per row and
36+
never `border-t` + `border-b` in the same gap.
37+
- **Zero decorative dots.** A coloured dot is only allowed when it encodes real
38+
state (milestone done/pending). A dot that repeats what the unit text already
39+
says ("● 84.21 MOR") dies. Same for `·` chains: max one middle dot per line —
40+
separators between list items are CSS borders, not literal characters.
41+
- **Zero em-dashes and en-dashes in user-facing copy** (both locales). Restructure
42+
with period, comma, colon or parentheses. Applies to i18n strings AND to hard
43+
coded visible strings like page metadata titles. Code comments are exempt.
44+
- **No fake precision.** Placeholder numbers drawn as measurement (filled meter
45+
tracks, "Overall 87") get deleted rather than restyled; variable rates print
46+
with ``.
47+
- **Panel fills were too dark at `bg-white/[0.03]`** — the site's own `--card`
48+
step over `--background` is about twice that. `bg-white/[0.06]` is the recipe.
49+
50+
Related: [[stake-dark-surface]]
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: stake-dark-surface
3+
description: The /stake family is a committed dark surface inside a system-theme site — scope it with a `dark` wrapper before using white/alpha tokens
4+
metadata:
5+
type: project
6+
---
7+
8+
The stake pages (production `/stake`, `/stake/[rider]`, and the `/stake/preview`
9+
prototype) are designed as a **dark arcade island**: hardcoded dark panels, white
10+
alpha text (`text-white/50`, `text-white/35`), gold accent. The rest of the site
11+
follows `next-themes` with `defaultTheme="system"` (see `src/app/[locale]/layout.tsx`).
12+
13+
**Why:** a light-theme visitor otherwise gets white/alpha text on a light page —
14+
the pre-existing production stake components already had this bug (near-black
15+
`text-foreground` labels sitting on hardcoded dark panels). Fixing it by switching
16+
to `muted-foreground` would throw away the committed dark direction the art
17+
depends on.
18+
19+
**How to apply:** when a stake surface uses white-alpha tokens, wrap the subtree in
20+
`className="dark bg-background text-foreground"` (Tailwind v4 here defines
21+
`@custom-variant dark (&:is(.dark *))`, and `.dark {}` sets the CSS variables, so
22+
the wrapper both flips shadcn tokens for Buttons/Dialogs inside it and paints its
23+
own dark background). `/stake/preview`'s island in `StakePreview.tsx` does exactly
24+
this. Verify any stake UI change in BOTH color schemes — Playwright
25+
`newContext({ colorScheme: "light" })` catches it in one shot.
26+
27+
**Gotcha:** a spec that says the island is `bg-white/[0.02]` cannot be taken
28+
literally on one element — a 2% white fill is a *tint over an assumed dark page*,
29+
and on a light-theme page it lands on white. Use two nested elements: outer
30+
`dark bg-background` for a guaranteed dark base, inner `bg-white/[0.02]
31+
ring-1 ring-white/[0.06]` (same radius) for the lift. Same trap for any
32+
white-alpha "surface" value inherited from a dark mockup.
33+
34+
Also: the island's h1 and hero paragraph belong OUTSIDE it, on the page's normal
35+
theme tokens (`text-muted-foreground`, not `text-white/50`), so the page opens
36+
like Treasury/Auctions do.
37+
38+
Related: [[design_system_overview]], [[stake-preview-visual-language]]

.claude/launch.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": "0.0.1",
3+
"configurations": [
4+
{
5+
"name": "gnars-dev",
6+
"runtimeExecutable": "pnpm",
7+
"runtimeArgs": ["dev"],
8+
"port": 3000,
9+
"autoPort": true
10+
}
11+
]
12+
}

0 commit comments

Comments
 (0)