Skip to content

feat(spec): add 9 standard CSS component sub-tokens#89

Open
tn819 wants to merge 1 commit into
google-labs-code:mainfrom
tn819:add-component-sub-tokens
Open

feat(spec): add 9 standard CSS component sub-tokens#89
tn819 wants to merge 1 commit into
google-labs-code:mainfrom
tn819:add-component-sub-tokens

Conversation

@tn819
Copy link
Copy Markdown

@tn819 tn819 commented May 25, 2026

Summary

Extends the component_sub_tokens vocabulary from 8 to 17 entries to support real-world design systems that use standard CSS properties within component definitions.

Problem

The current 8-token vocabulary (backgroundColor, textColor, typography, rounded, padding, size, height, width) is insufficient for production design systems. Real-world components need additional standard CSS properties:

Missing Token Real-World Usage
minHeight / minWidth Touch-target compliance (44 px, 56 px buttons)
fontFamily / fontWeight / fontStyle Per-component type overrides (serif CTAs, italic margin-notes)
borderColor Card, chip, and container borders
borderLeftColor / borderLeftWidth Directional border patterns (left-edge accent)
paddingLeft Directional padding (margin-note inset)
elevation Shadow classes (floating SOS/elevated buttons)

Without these in the spec, every real design system that uses them gets a wall of "not a recognized component sub-token" warnings. This makes lint output noisy and obscures actual issues.

Change

Adds 9 new entries to component_sub_tokens in spec-config.yaml, each with:

  • A descriptive name matching CSS naming conventions
  • An appropriate type (Color, Dimension, string, or number | string)
  • An optional description with usage context

All additions follow existing spec patterns. Directional variants (borderLeftColor, paddingLeft) use standard CSS box-model naming.

Testing

Existing tests should pass (no token removals, only additions). The change is backwards-compatible — existing valid DESIGN.md files continue to validate, and the new tokens are recognized.

Extend the component_sub_tokens vocabulary from 8 to 17 entries to
support real-world design systems that use standard CSS properties
within component definitions.

Added sub-tokens (with usage examples):
- minHeight / minWidth: touch-target compliance (44px, 56px buttons)
- fontFamily / fontWeight / fontStyle: per-component type overrides
  (serif CTAs, italic margin-notes)
- borderColor: card, chip, and container borders
- borderLeftColor / borderLeftWidth: directional border patterns
  (left-edge accent for margin-note components)
- paddingLeft: directional padding (margin-note inset pattern)
- elevation: shadow classes (floating SOS button)

All follow existing spec patterns: Color for colour references,
Dimension for px/rem values, string for named values.
Directional variants use CSS box-model naming conventions.
@google-cla
Copy link
Copy Markdown

google-cla Bot commented May 25, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant