You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: make token-change-request form intuitive for designers
Trim the change-type dropdown to the four designer-meaningful
operations (create/edit/rename/deprecate), state rename's actual
outcome (new token, old name deprecated), and remove pipeline
jargon (UUIDs, semver, Figma-sync toggle) that only the design-data
team needs when actioning a request.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Figma file — by property, component, variant, and state. Use that file to find
17
+
the exact current name of a token.
18
+
19
+
Want to remove a token entirely? Request **Deprecate** below — the design-data
20
+
team removes it later, once nothing else depends on it.
21
+
18
22
For proposals bigger than a single token (new taxonomy, schema changes), use the
19
-
RFC discussion link in the issue chooser instead.
23
+
"Propose an RFC" link in the issue chooser instead.
20
24
21
25
- type: dropdown
22
26
id: change-type
23
27
attributes:
24
28
label: Change type
25
-
description: Which token lifecycle operation is this?
29
+
description: What do you want to do?
26
30
options:
27
-
- create
28
-
- edit
29
-
- deprecate
30
-
- rename
31
-
- alias-rewire
32
-
- remove
31
+
- "Create — add a token that doesn't exist yet"
32
+
- "Edit — change a token's value, or what it inherits from"
33
+
- "Rename — creates a token with the new name and deprecates the old name (anything using the old name keeps working, pointed at the new one)"
34
+
- "Deprecate — mark a token as no longer recommended"
33
35
validations:
34
36
required: true
35
37
36
-
- type: checkboxes
37
-
id: platforms
38
-
attributes:
39
-
label: Platform target
40
-
description: Where does this token need to show up?
41
-
options:
42
-
- label: S2 Web
43
-
- label: iOS
44
-
- label: Android
45
-
- label: All platforms
46
-
47
-
- type: textarea
38
+
- type: input
48
39
id: token-name-current
49
40
attributes:
50
-
label: Current token name (or "new" for create)
51
-
description: The existing token being changed. Include property + component/variant/state if known. Use "new" if this is a create request.
52
-
placeholder: e.g. background-color, badge, accent, hover
41
+
label: Token name
42
+
description: >-
43
+
For Edit / Rename / Deprecate: the exact current name, as shown in the S2 Token
44
+
specs (e.g. `component-property-variant-state`). For Create: the name the new
45
+
token should have.
46
+
placeholder: e.g. swatch-border-color
53
47
validations:
54
48
required: true
55
49
56
-
- type: textarea
50
+
- type: input
57
51
id: token-name-new
58
52
attributes:
59
-
label: New token name (rename only)
60
-
description: Required only for **rename** requests — the name the token should have after the change. Leave blank for all other change types.
61
-
placeholder: e.g. background-color, badge, accent, hover-emphasized
53
+
label: New token name — Rename only
54
+
description: The name the token should have after the rename. Leave blank for all other change types.
55
+
placeholder: e.g. swatch-border-color-hover
62
56
63
57
- type: textarea
64
58
id: value-or-alias
65
59
attributes:
66
-
label: Value, or new alias target (create/edit/alias-rewire)
67
-
description: A literal value, OR the name/UUID of the token this should alias to *after* the change. Exactly one, not both. Not required for deprecate/rename/remove.
68
-
placeholder: e.g. "#FF0000" OR alias to blue-900
60
+
label: Value, or token to inherit from — Create / Edit only
61
+
description: >-
62
+
A literal value (e.g. `12px`, `0.42`, `#FF0000`), OR the name of another token
63
+
this one should inherit its value from (e.g. `gray-1000`). Give exactly one, not
64
+
both. Leave blank for Rename / Deprecate.
65
+
placeholder: e.g. "#FF0000" OR gray-1000
69
66
70
67
- type: input
71
-
id: alias-rewire-from
68
+
id: replacement
72
69
attributes:
73
-
label: Previous alias target (alias-rewire only)
74
-
description: Required only for **alias-rewire** requests — the token UUID/name currently being aliased to, so reviewers can confirm what's being replaced.
75
-
placeholder: e.g. currently aliases to blue-800
70
+
label: Replacement token — Deprecate / Rename, if there is one
71
+
description: The token designers/consumers should use instead, by name.
72
+
placeholder: e.g. gray-1000
76
73
77
-
- type: input
74
+
- type: checkboxes
78
75
id: modes
79
76
attributes:
80
-
label: Modes affected (if any)
81
-
description: colorScheme / scale / contrast combinations this value varies by.
82
-
placeholder: e.g. colorScheme=dark, scale=large
77
+
label: Modes / themes affected
78
+
description: Which light/dark, wireframe, or desktop/mobile variants does this apply to?
79
+
options:
80
+
- label: Light
81
+
- label: Dark
82
+
- label: Wireframe
83
+
- label: Desktop
84
+
- label: Mobile
85
+
- label: All / not sure
83
86
84
-
- type: textarea
85
-
id: known-consumers
87
+
- type: checkboxes
88
+
id: platforms
86
89
attributes:
87
-
label: Known consuming components / tokenBindings
88
-
description: >-
89
-
Components or tokenBindings that reference this token today (or should reference
90
-
it after a rename/alias-rewire/deprecate/remove). Dangling tokenBindings after a
91
-
token change are the most common cause of breakage — list what you know, even if
92
-
incomplete, so reviewers can check the rest.
93
-
placeholder: e.g. badge, tag — or "none known, please check"
94
-
validations:
95
-
required: true
90
+
label: Platform target
91
+
description: Where does this token need to show up?
92
+
options:
93
+
- label: S2 Web
94
+
- label: iOS
95
+
- label: Android
96
+
- label: All platforms
96
97
97
98
- type: textarea
98
99
id: motivation
@@ -102,35 +103,34 @@ body:
102
103
validations:
103
104
required: true
104
105
105
-
- type: dropdown
106
-
id: semver
106
+
- type: textarea
107
+
id: migration-note
107
108
attributes:
108
-
label: Expected semver impact
109
-
description: See changeset rules in CLAUDE.md — patch = bug fix, minor = additive/behavior change, major = breaking.
110
-
options:
111
-
- patch
112
-
- minor
113
-
- major
114
-
- not sure
109
+
label: Migration guidance — Deprecate / Rename
110
+
description: What should someone using the old token do instead? This gets carried into the deprecation notice.
111
+
112
+
- type: textarea
113
+
id: known-consumers
114
+
attributes:
115
+
label: Known consuming components
116
+
description: >-
117
+
Components that reference this token today (or should reference it after a
118
+
rename/deprecate). Dangling references after a token change are the most common
119
+
cause of breakage — list what you know, even if incomplete, so reviewers can
120
+
check the rest.
121
+
placeholder: e.g. badge, tag — or "none known, please check"
115
122
validations:
116
123
required: true
117
124
125
+
- type: input
126
+
id: figma-reference
127
+
attributes:
128
+
label: Link or screenshot from the S2 Token specs
129
+
description: Optional, but helps reviewers confirm exactly which token/appearance you mean.
130
+
placeholder: e.g. https://www.figma.com/design/eoZHKJH9a3LJkHYCGt60Vb/S2-Token-specs?node-id=...
131
+
118
132
- type: input
119
133
id: deadline
120
134
attributes:
121
135
label: Deadline / linked issue or epic
122
136
placeholder: e.g. Needed by Thursday — AI branding work (#1234)
123
-
124
-
- type: dropdown
125
-
id: figma-sync
126
-
attributes:
127
-
label: Should this token be visible in Figma (S2 Web) variables?
128
-
description: >-
129
-
Figma export runs for every landed token change by default. Answer "No" only if
130
-
this token is intentionally code-only (e.g. an internal/private token) and should
0 commit comments