Skip to content

feat(design): add primitive token layer (tokens.css)#11299

Open
jd wants to merge 1 commit intomainfrom
devs/jd/worktree-design/add-primitive-token-layer-tokens-css--6e0fbd73
Open

feat(design): add primitive token layer (tokens.css)#11299
jd wants to merge 1 commit intomainfrom
devs/jd/worktree-design/add-primitive-token-layer-tokens-css--6e0fbd73

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented Apr 29, 2026

No description provided.

Copilot AI review requested due to automatic review settings April 29, 2026 12:03
@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 29, 2026 12:03 Failure
@jd
Copy link
Copy Markdown
Member Author

jd commented Apr 29, 2026

This pull request is part of a Mergify stack:

# Pull Request Link
1 feat(design): add primitive token layer (tokens.css) #11299 👈
2 feat(design): add typography utilities (typography.css) #11300
3 feat(design): load tokens.css and typography.css #11301
4 docs(design): add DESIGN.md design system documentation #11302
5 docs(design): link DESIGN.md from AGENTS.md and CLAUDE.md #11303
6 fix(lint): exclude root *.md files from remark-lint rules #11304
7 fix(design): address Phase 1 code review findings #11305
8 refactor(design): map semantic tokens to new primitive layer #11307
9 fix(header): tighten navbar opacity for link readability #11308

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 29, 2026

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🔴 🤖 Continuous Integration

Waiting for any of:

  • check-success = test-broken-links
  • label = ignore-broken-links
This rule is failing.
  • all of:
    • any of:
      • check-success = test-broken-links
      • label = ignore-broken-links
    • check-success = build
    • check-success = lint
    • check-success = test
    • any of:
      • check-success=Cloudflare Pages
      • -head-repo-full-name~=^Mergifyio/

🔴 👀 Review Requirements

Waiting for:

  • #approved-reviews-by >= 2
This rule is failing.
  • any of:
    • #approved-reviews-by >= 2
    • author = dependabot[bot]
    • author = mergify-ci-bot

🔴 🔎 Reviews

Waiting for:

  • #review-requested = 0
  • #review-threads-unresolved = 0
This rule is failing.
  • #review-requested = 0
  • #review-threads-unresolved = 0
  • #changes-requested-reviews-by = 0

🔴 📕 PR description

Waiting for:

  • body ~= (?ms:.{48,})
This rule is failing.
  • body ~= (?ms:.{48,})

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new CSS file intended to introduce a “primitive” (non-theme-remapped) design token layer for color values.

Changes:

  • Added src/styles/tokens.css defining primitive neutral and product/brand color CSS custom properties.
  • Documented intended usage: components should consume semantic tokens from theme.css, not primitives directly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/styles/tokens.css
--color-gray-800: #1f2937;
--color-gray-900: #111827;

/* Product palette — verbatim from mergify.com/DESIGN.md.
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment says the product palette is “verbatim from mergify.com/DESIGN.md”, but there’s no DESIGN.md in this repository (search returns no matches). To keep this maintainable/auditable, link to an actual canonical source (URL) or add the referenced doc to the repo and point at its path.

Suggested change
/* Product paletteverbatim from mergify.com/DESIGN.md.
/* Product palettebrand colors used by product areas.

Copilot uses AI. Check for mistakes.
Comment thread src/styles/tokens.css
Comment on lines +10 to +37
--color-white: #ffffff;
--color-dark: #000000;
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-300: #d1d5db;
--color-gray-400: #9ca3af;
--color-gray-500: #6b7280;
--color-gray-600: #4b5563;
--color-gray-700: #374151;
--color-gray-800: #1f2937;
--color-gray-900: #111827;

/* Product palette — verbatim from mergify.com/DESIGN.md.
Brand colors. Do NOT flip in dark mode. */
--color-teal-400: #82ddbe; /* Merge Queue accent */
--color-teal-700: #1cb893; /* Merge Queue label */
--color-purple-400: #858ef4; /* CI Insights accent */
--color-purple-700: #4d59e0; /* CI Insights label */
--color-orange-400: #f9b070; /* Test Insights accent */
--color-orange-700: #f27b2a; /* Test Insights label */
--color-blue-400: #85c9f4; /* Merge Protections accent */
--color-blue-700: #43a7e5; /* Merge Protections label */
--color-blue-800: #237caf; /* Link hover (docs-only) */
--color-coral-400: #ef9a9a; /* Stacks accent */
--color-coral-700: #e53935; /* Stacks label */
--color-rose-400: #f485b3; /* Workflow Automation accent */
--color-rose-700: #e61e71; /* Workflow Automation label */
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tokens.css defines custom properties like --color-gray-50/--color-gray-700 that already exist in src/styles/theme.css (e.g. theme.css defines them as HSL tuple fragments used via hsla(var(--color-gray-70), 1)). If this file is ever imported/loaded, it will override those variables with hex values and break any hsla(var(--color-gray-*), …) usages. Consider namespacing primitive tokens (e.g. --primitive-color-gray-50) and explicitly mapping semantic/theme vars to them, or refactoring theme.css to consume these hex values without the HSL-tuple pattern.

Suggested change
--color-white: #ffffff;
--color-dark: #000000;
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-300: #d1d5db;
--color-gray-400: #9ca3af;
--color-gray-500: #6b7280;
--color-gray-600: #4b5563;
--color-gray-700: #374151;
--color-gray-800: #1f2937;
--color-gray-900: #111827;
/* Product palette — verbatim from mergify.com/DESIGN.md.
Brand colors. Do NOT flip in dark mode. */
--color-teal-400: #82ddbe; /* Merge Queue accent */
--color-teal-700: #1cb893; /* Merge Queue label */
--color-purple-400: #858ef4; /* CI Insights accent */
--color-purple-700: #4d59e0; /* CI Insights label */
--color-orange-400: #f9b070; /* Test Insights accent */
--color-orange-700: #f27b2a; /* Test Insights label */
--color-blue-400: #85c9f4; /* Merge Protections accent */
--color-blue-700: #43a7e5; /* Merge Protections label */
--color-blue-800: #237caf; /* Link hover (docs-only) */
--color-coral-400: #ef9a9a; /* Stacks accent */
--color-coral-700: #e53935; /* Stacks label */
--color-rose-400: #f485b3; /* Workflow Automation accent */
--color-rose-700: #e61e71; /* Workflow Automation label */
--primitive-color-white: #ffffff;
--primitive-color-dark: #000000;
--primitive-color-gray-50: #f9fafb;
--primitive-color-gray-100: #f3f4f6;
--primitive-color-gray-200: #e5e7eb;
--primitive-color-gray-300: #d1d5db;
--primitive-color-gray-400: #9ca3af;
--primitive-color-gray-500: #6b7280;
--primitive-color-gray-600: #4b5563;
--primitive-color-gray-700: #374151;
--primitive-color-gray-800: #1f2937;
--primitive-color-gray-900: #111827;
/* Product palette — verbatim from mergify.com/DESIGN.md.
Brand colors. Do NOT flip in dark mode. */
--primitive-color-teal-400: #82ddbe; /* Merge Queue accent */
--primitive-color-teal-700: #1cb893; /* Merge Queue label */
--primitive-color-purple-400: #858ef4; /* CI Insights accent */
--primitive-color-purple-700: #4d59e0; /* CI Insights label */
--primitive-color-orange-400: #f9b070; /* Test Insights accent */
--primitive-color-orange-700: #f27b2a; /* Test Insights label */
--primitive-color-blue-400: #85c9f4; /* Merge Protections accent */
--primitive-color-blue-700: #43a7e5; /* Merge Protections label */
--primitive-color-blue-800: #237caf; /* Link hover (docs-only) */
--primitive-color-coral-400: #ef9a9a; /* Stacks accent */
--primitive-color-coral-700: #e53935; /* Stacks label */
--primitive-color-rose-400: #f485b3; /* Workflow Automation accent */
--primitive-color-rose-700: #e61e71; /* Workflow Automation label */

Copilot uses AI. Check for mistakes.
Comment thread src/styles/tokens.css
Comment on lines +1 to +8
/*
Primitive tokens — fixed values. Do NOT remap in dark mode.
Components must NEVER reference these directly. Use semantic tokens
in theme.css instead.
*/

:root {
/* Neutrals — clean ramp, no duplicates (intentionally diverges from
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new token file doesn’t appear to be imported/loaded anywhere in src (searching for tokens.css only finds this file), so the variables won’t be available at runtime. If the intent is to make these tokens the foundation for theme.css, ensure tokens.css is imported before theme/index styles (or integrated via an import chain) and then update theme variables to reference it.

Copilot uses AI. Check for mistakes.
Change-Id: I6e0fbd73f4d59f2779d48cdedb8979da36c63271
@jd jd force-pushed the devs/jd/worktree-design/add-primitive-token-layer-tokens-css--6e0fbd73 branch from 45bf009 to a182ff8 Compare April 29, 2026 13:21
@jd
Copy link
Copy Markdown
Member Author

jd commented Apr 29, 2026

Revision history

# Type Changes Reason Date
1 initial 45bf009 2026-04-29 13:21 UTC
2 content 45bf009 → a182ff8 2026-04-29 13:21 UTC

@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 29, 2026 13:22 Failure
@jd jd marked this pull request as ready for review April 29, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants