Commit b5eb598
authored
v6: Align GraphQL syntax colors and color type names by category (#4403)
## Summary
This PR does two related things for GraphQL identifier coloring across
the first-party plugins.
**1. Align colors across plugins.** Type names, field names, and
argument names now use the same colors across the doc explorer, history,
and query builder. Doc explorer was already internally consistent
(orange types, green fields, purple arguments), so it's the reference
the other two now follow. History's saved query labels (previously plain
foreground text) are now the same green as field names. Query builder
previously colored composite return types and type-condition names blue
and left argument names uncolored; both now match doc explorer.
**2. Color type names by category.** Instead of every type name being
orange, type-name references are colored by GraphQL kind, so a field
list is no longer a monotonous wall of orange:
| Kind | Color |
|---|---|
| object / interface / union | orange |
| scalar | blue |
| enum | green |
| input object | gold |
This applies in the schema-aware plugins (doc explorer and query
builder). The Monaco query editor is unchanged — it isn't schema-aware,
so type names in query text stay orange.
### Public API
The scheme is exposed so third-party plugins can conform to it and
retheme it:
- Four CSS tokens — `--type-composite`, `--type-scalar`, `--type-enum`,
`--type-input` — are the supported retheming surface (documented in
`tokens.css`).
- `typeCategory(type)` is exported from `@graphiql/react`; it buckets
any GraphQL type into `'scalar' | 'enum' | 'input' | 'composite'`,
unwrapping list/non-null wrappers.
Class names, internal selectors, and the `data-type-kind` attribute
remain private. Light-theme `--type-input` uses a darker gold than the
dark theme so it clears WCAG AA as text (~5–6.5:1 against the
doc-explorer surfaces).
## Test plan
- [x] **Alignment:** Open the doc explorer, history, and query builder
in the same session. A field name is the same green in all three; an
argument name is the same purple in both doc explorer and query builder.
- [x] **Category colors (doc explorer):** Browse a schema with mixed
field types. Scalar return types (`String`/`Int`/`Boolean`/`ID`/custom
scalars) are blue, enum types green, object/interface/union types
orange, and input object types gold.
- [x] **Category colors (query builder):** Expand the field tree.
Scalar-returning fields are blue, enum-returning fields green,
object/interface/union fields orange.
- [x] **Arguments (doc explorer):** A field with an input-object
argument shows the input type name in gold, clearly distinct from the
purple argument name beside it.
- [x] **Type conditions (query builder):** Expand an interface/union
field's possible types. The `... on TypeName` labels are orange.
- [x] **Search (doc explorer):** Search results show type names colored
by the same category scheme.
- [x] **History:** Saved query entries show their label/operation name
in green.
- [x] **Light theme:** Switch themes and spot-check the same views. All
four category colors stay legible against the panel background — the
gold in particular should read as a clear dark gold, not washed out.
Refs: #42191 parent cf0ebba commit b5eb598
20 files changed
Lines changed: 317 additions & 56 deletions
File tree
- .changeset
- docs/migration
- packages
- graphiql-plugin-doc-explorer/src/components
- __tests__
- graphiql-plugin-history/src
- graphiql-plugin-query-builder/src
- components
- __tests__
- graphiql-react/src
- style
- utility
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
52 | 76 | | |
53 | 77 | | |
54 | 78 | | |
| |||
Lines changed: 50 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
5 | 12 | | |
6 | 13 | | |
7 | 14 | | |
| |||
70 | 77 | | |
71 | 78 | | |
72 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
73 | 122 | | |
Lines changed: 1 addition & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
| 81 | + | |
90 | 82 | | |
91 | 83 | | |
92 | 84 | | |
| |||
Lines changed: 1 addition & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
| 29 | + | |
38 | 30 | | |
39 | 31 | | |
40 | 32 | | |
| |||
Lines changed: 3 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
| 108 | + | |
108 | 109 | | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
| 110 | + | |
119 | 111 | | |
120 | 112 | | |
121 | 113 | | |
| |||
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
| 59 | + | |
59 | 60 | | |
60 | | - | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
Lines changed: 7 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
163 | 164 | | |
164 | 165 | | |
165 | 166 | | |
166 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
167 | 173 | | |
168 | 174 | | |
169 | 175 | | |
| |||
Lines changed: 13 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
90 | 102 | | |
91 | 103 | | |
92 | 104 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
0 commit comments