Skip to content

Commit 707b144

Browse files
committed
feat: add shared icon style utilities
1 parent e022e68 commit 707b144

2 files changed

Lines changed: 65 additions & 0 deletions

File tree

packages/web/src/styles/base.css

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,58 @@ textarea::placeholder {
251251
color: var(--color-error);
252252
}
253253

254+
/* Icon utilities */
255+
.icon-tone-primary {
256+
color: var(--icon-primary);
257+
}
258+
.icon-tone-secondary {
259+
color: var(--icon-secondary);
260+
}
261+
.icon-tone-muted {
262+
color: var(--icon-muted);
263+
}
264+
.icon-tone-accent {
265+
color: var(--icon-accent);
266+
}
267+
.icon-tone-success {
268+
color: var(--icon-success);
269+
}
270+
.icon-tone-warning {
271+
color: var(--icon-warning);
272+
}
273+
.icon-tone-error {
274+
color: var(--icon-error);
275+
}
276+
.icon-tone-info {
277+
color: var(--icon-info);
278+
}
279+
280+
.icon-surface-subtle {
281+
background: var(--icon-surface-subtle);
282+
}
283+
.icon-surface-accent {
284+
background: var(--icon-surface-accent);
285+
}
286+
.icon-surface-success {
287+
background: var(--icon-surface-success);
288+
}
289+
.icon-surface-warning {
290+
background: var(--icon-surface-warning);
291+
}
292+
.icon-surface-error {
293+
background: var(--icon-surface-error);
294+
}
295+
.icon-surface-info {
296+
background: var(--icon-surface-info);
297+
}
298+
299+
.icon-chip {
300+
display: inline-flex;
301+
align-items: center;
302+
justify-content: center;
303+
border-radius: var(--radius-md);
304+
}
305+
254306
/* Spacing utilities (using 4px grid) */
255307
.p-1 {
256308
padding: var(--sp-1);

packages/web/src/styles/base.theme.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,17 @@ describe("base.css theme-sensitive shells", () => {
3333
expect(card).toContain("var(--bg-surface)");
3434
expect(card).not.toContain("rgba(17, 24, 31, 0.96)");
3535
});
36+
37+
it("defines shared icon tone and surface utilities", () => {
38+
const tone = getRuleBlock(".icon-tone-secondary");
39+
const surface = getRuleBlock(".icon-surface-warning");
40+
const chip = getRuleBlock(".icon-chip");
41+
42+
expect(tone).toContain("color: var(--icon-secondary)");
43+
expect(surface).toContain("background: var(--icon-surface-warning)");
44+
expect(chip).toContain("display: inline-flex");
45+
expect(chip).toContain("align-items: center");
46+
expect(chip).toContain("justify-content: center");
47+
expect(chip).toContain("border-radius: var(--radius-md)");
48+
});
3649
});

0 commit comments

Comments
 (0)