Replace "no grey text" rule with 3-tier neutral hierarchy tokens and opacity ban#3
Merged
Merged
Conversation
…orcement - Tokens: replace `color.muted` with `color.fgMuted` + add `color.fgSubtle`, `color.hairlineStrong` - Components: Field description → fg-muted, Input placeholder → fg-subtle, LeaderboardRow handle → fg-muted (remove rgba), Stat meta labels → fg-muted, SessionSummaryCard date → fg-muted - Docs: update Color page (new swatches, NO OPACITY HIERARCHY rule), Typography page (3-tier hierarchy section, new rule), Accessibility/Releases/Spacing pages (update muted refs) - Enforcement: lint-brutal.mjs + eslint-plugin ban opacity utilities and rgba() alpha - Docs/contract: update BRAND.md, README.md, CONTRIBUTING.md, tokens README - Tests: update token build and integration tests for new tokens - All 82 tests pass, lint clean, full build succeeds Agent-Logs-Url: https://github.com/thiagoxikota/touch-grass/sessions/2a8d04a9-156b-465f-ae6a-0d841c530101 Co-authored-by: thiagoxikota <62438332+thiagoxikota@users.noreply.github.com>
…ix release note Agent-Logs-Url: https://github.com/thiagoxikota/touch-grass/sessions/2a8d04a9-156b-465f-ae6a-0d841c530101 Co-authored-by: thiagoxikota <62438332+thiagoxikota@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update design system to allow greys and neutrals for hierarchy
Replace "no grey text" rule with 3-tier neutral hierarchy tokens and opacity ban
Apr 15, 2026
Owner
|
@copilot resolve the merge conflicts in this pull request |
Owner
|
@copilot resolve the merge conflicts in this pull request |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The DS lacked readable text hierarchy — everything was
#FFFFFFor nothing. This replaces the old "no grey text" rule with a strict, token-driven neutral tier while banning opacity/rgba-based hierarchy.Tokens
color.muted→color.fgMuted(#B3B3B3, >7:1), addedcolor.fgSubtle(#808080, >4.5:1, metadata-only),color.hairlineStrong(#333333)Components
Fielddescription →fg-muted,Inputplaceholder →fg-subtleLeaderboardRowhandle →fg-muted, removedrgba(166,255,0,0.06)→bg-altStatmeta labels →fg-muted,SessionSummaryCarddate →fg-mutedEnforcement
lint-brutal.mjs+eslint-plugin-touch-grass: new rules banopacity-utilities andrgba(..., 0.x)in DS sourceDocs & contract
BRAND.md,README.md,CONTRIBUTING.md: "zero grey text" → "no opacity hierarchy"NO GREY TEXT→NO OPACITY HIERARCHYfg/fg-muted/fg-subtleusage--color-mutedrefsCore constraints preserved
Radius 0, zero motion, tokens-first, 48px tap targets, mono usage — all unchanged.
Original prompt
Update the existing WIP PR on
thiagoxikota/touch-grass(currently titled "[WIP] Fix inconsistencies in documentation, tokens, and components", branchcopilot/fix-inconsistencies-in-design-system) to incorporate the revised direction:Updated direction (authoritative)
Touch Grass should be bold/creative/viral/pleasing, while preserving core authenticity:
Key change: allow greys/neutrals for hierarchy
Replace the old "No grey text" rule with:
opacityor alphargba()to mute text; instead use neutral tokens.Required implementation changes
Tokens: introduce a small, strict neutral tier (Option A):
--color-fg,--color-fg-muted,--color-fg-subtle.fg-subtleis used for metadata/labels only, not body copy.--color-hairline,--color-hairline-strong.earned,danger) and backgrounds (bg,bg-alt).dist/tokens.css,dist/tailwind.theme.css,dist/figma-tokens.json, Swift outputs, etc.Docs and contract:
docs/contract.md(or equivalent) and README to reflect the new neutrality rule.Components:
fg-muted/fg-subtlewhere appropriate: labels, helper text, placeholders, metadata.fg/fg-muted.Enforcement:
opacity:and alphargba()usage (scoped to DS packages; exclude generated token outputs).Ensure CI/tests/build pass.
Notes
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: the repo is the source of truth, both
Assistant: To “fix all” (docs + code) I need you to explicitly tell me whether you want a PR opened, because code changes should land as a pull request.
Choose one
thiagoxikota/touch-grass(tell me the base branch:main?)What I will fix (both docs + code), rigidly
asChild).asChild+ disabled behaviorReply with:
main)User: pr
Assistant: I’m waiting for the PR creation run to finish; once it completes, I’ll summarize exactly what changed (docs, tokens, components, and enforcement) and what you should review before merging.
User: @copilot Accepted Confirmation: Confirm agent session
Assistant: Copilot coding agent has started working on the PR. You can track progress at the task link below.
User: any other suggestions?
Assistant: Yes—assuming you keep the “brutalist, no motion, no grey” stance, these are the highest-leverage additions I’d suggest beyond the PR scope.
1) Make “No grey text” operational (not vibes)
Define a text hierarchy system that doesn’t rely on grey/opacity:
--color-fgThis prevents every screen from becoming “everything screams equally.”
2) Add a “Decision log” for weird rules
A
docs/decisions/folder with short ADR-style notes:This stops future contributors from “fixing” the system back into a generic one.
3) Expand tokens...
This pull request was created from Copilot chat.