Skip to content

Commit 040c7ba

Browse files
committed
Add missing Tailwind palette colors to themes CSS
1 parent ef88244 commit 040c7ba

6 files changed

Lines changed: 101 additions & 0 deletions

File tree

‎_TODO.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,30 @@ Error Context: .cache/playwright/output/01-smoke-dynamic-pages-Dyn-8a015-ages-ha
213213
--color-orange-100
214214
--color-purple-100
215215
--color-purple-600
216+
217+
Good Next Cascade Candidates (similar spirit to the text-* cleanup)
218+
219+
Global/link-default underline styling (biggest repetition)
220+
221+
Evidence: the exact pattern underline decoration-dotted decoration-content underline-offset-4 ... shows up 15 times across just 3 components (Footer/Calendar/BugReporter).
222+
What to cascade: give “normal text links” a default underline style (dotted + decoration-content + offset) via base CSS (or a shared wrapper scope), and then only override the exceptions.
223+
Tradeoff: global a { … } is powerful but can surprise you (nav links, button-like links). A scoped approach (e.g., only inside markdown/content areas or only inside certain layout wrappers) is safer.
224+
Forms: default label + help text styling
225+
226+
Evidence: text-content-active in forms is still repeated ~25 times across 3 form components (Contact/Download/Privacy), often paired with text-sm font-medium.
227+
What to cascade: set label default to color: var(--color-content-active) and font-weight/size inside a form wrapper (e.g. .form root), so individual labels don’t need to specify it.
228+
Tradeoff: safest when scoped to the Forms components (not global label { … } site-wide).
229+
Inline style in JS validation errors (small but “smelly”)
230+
231+
Evidence: validation.ts sets errorDiv.style.cssText = 'color: var(--color-danger); font-size: 0.85rem; ...'.
232+
What to cascade: assign a class and style it in CSS (then it inherits font family/line-height etc), instead of embedding presentation in JS.
233+
Tradeoff: not a huge volume win, but it’s a maintainability win and keeps styling consistent.
234+
Not worth it (yet)
235+
236+
Placeholder color: only 4 placeholder:text-content-active occurrences right now, so the cascade win is small unless you want a stronger “form system” anyway.
237+
Font families: very few font-sans/serif/mono usages in components; most appear intentional.
238+
If you want me to implement, pick one:
239+
240+
Scoped link cascade (safest)
241+
Forms label/microcopy cascade
242+
Both, but in small, surgical patches

‎src/styles/theme-inline.css‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,17 +150,23 @@
150150
--color-white: var(--theme-color-white); /* Light theme: #fff */
151151

152152
/** Blues */
153+
--color-blue-50: var(--theme-color-blue-50); /* Light theme: #eff6ff */
153154
--color-blue-100: var(--theme-color-blue-100); /* Light theme: #dbeafe */
155+
--color-blue-200: var(--theme-color-blue-200); /* Light theme: #bfdbfe */
154156
--color-blue-300: var(--theme-color-blue-300); /* Light theme: #93c5fd */
157+
--color-blue-400: var(--theme-color-blue-400); /* Light theme: #60a5fa */
158+
--color-blue-500: var(--theme-color-blue-500); /* Light theme: #3b82f6 */
155159
--color-blue-600: var(--theme-color-blue-600); /* Light theme: #2563eb */
156160
--color-blue-800: var(--theme-color-blue-800); /* Light theme: #1e40af */
157161
--color-blue-900: var(--theme-color-blue-900); /* Light theme: #1e3a8a */
158162

159163
/** Grays */
160164
--color-gray-50: var(--theme-color-gray-50); /* Light theme: #f9fafb */
165+
--color-gray-100: var(--theme-color-gray-100); /* Light theme: #f3f4f6 */
161166
--color-gray-200: var(--theme-color-gray-200); /* Light theme: #e5e7eb */
162167
--color-gray-300: var(--theme-color-gray-300); /* Light theme: #d1d5db */
163168
--color-gray-400: var(--theme-color-gray-400); /* Light theme: #9ca3af */
169+
--color-gray-500: var(--theme-color-gray-500); /* Light theme: #6b7280 */
164170
--color-gray-600: var(--theme-color-gray-600); /* Light theme: #4b5563 */
165171
--color-gray-700: var(--theme-color-gray-700); /* Light theme: #374151 */
166172
--color-gray-800: var(--theme-color-gray-800); /* Light theme: #1f2937 */
@@ -175,6 +181,13 @@
175181
--color-green-700: var(--theme-color-green-700); /* Light theme: #15803d */
176182
--color-green-900: var(--theme-color-green-900); /* Light theme: #14532d */
177183

184+
/** Oranges */
185+
--color-orange-100: var(--theme-color-orange-100); /* Light theme: #ffedd5 */
186+
187+
/** Purples */
188+
--color-purple-100: var(--theme-color-purple-100); /* Light theme: #f3e8ff */
189+
--color-purple-600: var(--theme-color-purple-600); /* Light theme: #9333ea */
190+
178191
/** Reds */
179192
--color-red-400: var(--theme-color-red-400); /* Light theme: #f87171 */
180193
--color-red-500: var(--theme-color-red-500); /* Light theme: #ef4444 */

‎src/styles/themes/a11y.css‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,21 @@
4242
--a11y-theme-color-icons-active: #374151;
4343
--a11y-theme-color-black: #000;
4444
--a11y-theme-color-white: #fff;
45+
--a11y-theme-color-blue-50: #eff6ff;
4546
--a11y-theme-color-blue-100: #dbeafe;
47+
--a11y-theme-color-blue-200: #bfdbfe;
4648
--a11y-theme-color-blue-300: #93c5fd;
49+
--a11y-theme-color-blue-400: #60a5fa;
50+
--a11y-theme-color-blue-500: #3b82f6;
4751
--a11y-theme-color-blue-600: #2563eb;
4852
--a11y-theme-color-blue-800: #1e40af;
4953
--a11y-theme-color-blue-900: #1e3a8a;
5054
--a11y-theme-color-gray-50: #f9fafb;
55+
--a11y-theme-color-gray-100: #f3f4f6;
5156
--a11y-theme-color-gray-200: #e5e7eb;
5257
--a11y-theme-color-gray-300: #d1d5db;
5358
--a11y-theme-color-gray-400: #9ca3af;
59+
--a11y-theme-color-gray-500: #6b7280;
5460
--a11y-theme-color-gray-600: #4b5563;
5561
--a11y-theme-color-gray-700: #374151;
5662
--a11y-theme-color-gray-800: #1f2937;
@@ -62,6 +68,9 @@
6268
--a11y-theme-color-green-600: #16a34a;
6369
--a11y-theme-color-green-700: #15803d;
6470
--a11y-theme-color-green-900: #14532d;
71+
--a11y-theme-color-orange-100: #ffedd5;
72+
--a11y-theme-color-purple-100: #f3e8ff;
73+
--a11y-theme-color-purple-600: #9333ea;
6574
--a11y-theme-color-red-400: #f87171;
6675
--a11y-theme-color-red-500: #ef4444;
6776
--a11y-theme-color-yellow-500: #eab308;
@@ -236,17 +245,23 @@
236245
--theme-color-white: var(--a11y-theme-color-white);
237246

238247
/** Blues */
248+
--theme-color-blue-50: var(--a11y-theme-color-blue-50);
239249
--theme-color-blue-100: var(--a11y-theme-color-blue-100);
250+
--theme-color-blue-200: var(--a11y-theme-color-blue-200);
240251
--theme-color-blue-300: var(--a11y-theme-color-blue-300);
252+
--theme-color-blue-400: var(--a11y-theme-color-blue-400);
253+
--theme-color-blue-500: var(--a11y-theme-color-blue-500);
241254
--theme-color-blue-600: var(--a11y-theme-color-blue-600);
242255
--theme-color-blue-800: var(--a11y-theme-color-blue-800);
243256
--theme-color-blue-900: var(--a11y-theme-color-blue-900);
244257

245258
/** Grays */
246259
--theme-color-gray-50: var(--a11y-theme-color-gray-50);
260+
--theme-color-gray-100: var(--a11y-theme-color-gray-100);
247261
--theme-color-gray-200: var(--a11y-theme-color-gray-200);
248262
--theme-color-gray-300: var(--a11y-theme-color-gray-300);
249263
--theme-color-gray-400: var(--a11y-theme-color-gray-400);
264+
--theme-color-gray-500: var(--a11y-theme-color-gray-500);
250265
--theme-color-gray-600: var(--a11y-theme-color-gray-600);
251266
--theme-color-gray-700: var(--a11y-theme-color-gray-700);
252267
--theme-color-gray-800: var(--a11y-theme-color-gray-800);
@@ -261,6 +276,13 @@
261276
--theme-color-green-700: var(--a11y-theme-color-green-700);
262277
--theme-color-green-900: var(--a11y-theme-color-green-900);
263278

279+
/** Oranges */
280+
--theme-color-orange-100: var(--a11y-theme-color-orange-100);
281+
282+
/** Purples */
283+
--theme-color-purple-100: var(--a11y-theme-color-purple-100);
284+
--theme-color-purple-600: var(--a11y-theme-color-purple-600);
285+
264286
/** Reds */
265287
--theme-color-red-400: var(--a11y-theme-color-red-400);
266288
--theme-color-red-500: var(--a11y-theme-color-red-500);

‎src/styles/themes/dark.css‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,17 +152,23 @@
152152
--theme-color-white: #fff;
153153

154154
/** Blues */
155+
--theme-color-blue-50: #eff6ff;
155156
--theme-color-blue-100: #dbeafe;
157+
--theme-color-blue-200: #bfdbfe;
156158
--theme-color-blue-300: #93c5fd;
159+
--theme-color-blue-400: #60a5fa;
160+
--theme-color-blue-500: #3b82f6;
157161
--theme-color-blue-600: #2563eb;
158162
--theme-color-blue-800: #1e40af;
159163
--theme-color-blue-900: #1e3a8a;
160164

161165
/** Grays */
162166
--theme-color-gray-50: #f9fafb;
167+
--theme-color-gray-100: #f3f4f6;
163168
--theme-color-gray-200: #e5e7eb;
164169
--theme-color-gray-300: #d1d5db;
165170
--theme-color-gray-400: #9ca3af;
171+
--theme-color-gray-500: #6b7280;
166172
--theme-color-gray-600: #4b5563;
167173
--theme-color-gray-700: #374151;
168174
--theme-color-gray-800: #1f2937;
@@ -177,6 +183,13 @@
177183
--theme-color-green-700: #15803d;
178184
--theme-color-green-900: #14532d;
179185

186+
/** Oranges */
187+
--theme-color-orange-100: #ffedd5;
188+
189+
/** Purples */
190+
--theme-color-purple-100: #f3e8ff;
191+
--theme-color-purple-600: #9333ea;
192+
180193
/** Reds */
181194
--theme-color-red-400: #f87171;
182195
--theme-color-red-500: #ef4444;

‎src/styles/themes/holiday.css‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,17 +152,23 @@
152152
--theme-color-white: #fff;
153153

154154
/** Blues */
155+
--theme-color-blue-50: #eff6ff;
155156
--theme-color-blue-100: #dbeafe;
157+
--theme-color-blue-200: #bfdbfe;
156158
--theme-color-blue-300: #93c5fd;
159+
--theme-color-blue-400: #60a5fa;
160+
--theme-color-blue-500: #3b82f6;
157161
--theme-color-blue-600: #2563eb;
158162
--theme-color-blue-800: #1e40af;
159163
--theme-color-blue-900: #1e3a8a;
160164

161165
/** Grays */
162166
--theme-color-gray-50: #f9fafb;
167+
--theme-color-gray-100: #f3f4f6;
163168
--theme-color-gray-200: #e5e7eb;
164169
--theme-color-gray-300: #d1d5db;
165170
--theme-color-gray-400: #9ca3af;
171+
--theme-color-gray-500: #6b7280;
166172
--theme-color-gray-600: #4b5563;
167173
--theme-color-gray-700: #374151;
168174
--theme-color-gray-800: #1f2937;
@@ -177,6 +183,13 @@
177183
--theme-color-green-700: #15803d;
178184
--theme-color-green-900: #14532d;
179185

186+
/** Oranges */
187+
--theme-color-orange-100: #ffedd5;
188+
189+
/** Purples */
190+
--theme-color-purple-100: #f3e8ff;
191+
--theme-color-purple-600: #9333ea;
192+
180193
/** Reds */
181194
--theme-color-red-400: #f87171;
182195
--theme-color-red-500: #ef4444;

‎src/styles/themes/light.css‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,17 +152,23 @@
152152
--theme-color-white: #fff;
153153

154154
/** Blues */
155+
--theme-color-blue-50: #eff6ff;
155156
--theme-color-blue-100: #dbeafe;
157+
--theme-color-blue-200: #bfdbfe;
156158
--theme-color-blue-300: #93c5fd;
159+
--theme-color-blue-400: #60a5fa;
160+
--theme-color-blue-500: #3b82f6;
157161
--theme-color-blue-600: #2563eb;
158162
--theme-color-blue-800: #1e40af;
159163
--theme-color-blue-900: #1e3a8a;
160164

161165
/** Grays */
162166
--theme-color-gray-50: #f9fafb;
167+
--theme-color-gray-100: #f3f4f6;
163168
--theme-color-gray-200: #e5e7eb;
164169
--theme-color-gray-300: #d1d5db;
165170
--theme-color-gray-400: #9ca3af;
171+
--theme-color-gray-500: #6b7280;
166172
--theme-color-gray-600: #4b5563;
167173
--theme-color-gray-700: #374151;
168174
--theme-color-gray-800: #1f2937;
@@ -177,6 +183,13 @@
177183
--theme-color-green-700: #15803d;
178184
--theme-color-green-900: #14532d;
179185

186+
/** Oranges */
187+
--theme-color-orange-100: #ffedd5;
188+
189+
/** Purples */
190+
--theme-color-purple-100: #f3e8ff;
191+
--theme-color-purple-600: #9333ea;
192+
180193
/** Reds */
181194
--theme-color-red-400: #f87171;
182195
--theme-color-red-500: #ef4444;

0 commit comments

Comments
 (0)