Skip to content

Commit df4adcb

Browse files
kateebonnerclaude
andcommitted
feat(amicode): flat soft-yellow settings toggle (was blue gradient)
ON state was --v2-background-bg-accent (= --v2-blue-600 upstream), off-brand. Flat soft-yellow track (accent mixed into the base, both themes) + --accent-edge ring; tokenized the raw-px radius (pill) and the retired font-weight; flat solids (no gradients); removed the hover thumb-resize/position jitter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent ead3274 commit df4adcb

1 file changed

Lines changed: 30 additions & 54 deletions

File tree

‎packages/ui/src/v2/components/switch-v2.css‎

Lines changed: 30 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -26,38 +26,29 @@
2626
width: 24px;
2727
height: 16px;
2828
flex-shrink: 0;
29-
border-radius: 4px;
29+
border-radius: var(--radius-full);
3030
border: none;
31-
background:
32-
linear-gradient(180deg, var(--v2-alpha-light-0) 0%, var(--v2-alpha-light-20) 100%),
33-
var(--v2-background-bg-layer-03);
31+
background: var(--v2-background-bg-layer-03);
3432
box-shadow: var(--v2-elevation-switch-off);
3533
transition:
36-
background 90ms ease-out,
37-
opacity 90ms ease-out,
38-
outline-color 90ms ease-out;
34+
background 150ms ease-out,
35+
box-shadow 150ms ease-out,
36+
opacity 150ms ease-out,
37+
outline-color 150ms ease-out;
3938
}
4039

4140
[data-slot="switch-thumb"] {
4241
box-sizing: border-box;
4342
width: 12px;
4443
height: 12px;
4544
transform: translateX(0);
46-
border-radius: 2px;
45+
border-radius: var(--radius-full);
4746
border: 0.5px solid var(--v2-overlay-gradient-depth-overlay-depth-top);
48-
background:
49-
linear-gradient(
50-
180deg,
51-
var(--v2-overlay-gradient-depth-overlay-depth-top) 0%,
52-
var(--v2-overlay-gradient-depth-overlay-depth-bot) 100%
53-
),
54-
var(--v2-grey-200);
47+
background: var(--v2-grey-200);
5548
box-shadow: var(--v2-elevation-elements);
5649
transition:
57-
transform 90ms ease-out,
58-
width 90ms ease-out,
59-
border-radius 90ms,
60-
background 90ms;
50+
transform 150ms ease-out,
51+
background 150ms ease-out;
6152
}
6253

6354
[data-slot="switch-label"] {
@@ -66,11 +57,11 @@
6657
height: 16px;
6758
user-select: none;
6859
color: var(--v2-text-text-faint);
69-
font-size: 11px;
60+
font-size: var(--font-size-xs);
7061
font-style: normal;
71-
font-weight: 440;
62+
font-weight: var(--font-weight-regular);
7263
line-height: 16px;
73-
letter-spacing: 0.05px;
64+
letter-spacing: var(--letter-spacing-normal);
7465
font-variation-settings: "slnt" 0;
7566
}
7667

@@ -86,53 +77,38 @@
8677
display: none;
8778
}
8879

80+
/* Hover — flat color shift only. No thumb resize / position jitter
81+
(design system: no layout-shifting transform). */
8982
&:hover:not([data-disabled], [data-readonly]) [data-slot="switch-control"] {
90-
background:
91-
linear-gradient(0deg, var(--v2-overlay-simple-overlay-hover), var(--v2-overlay-simple-overlay-hover)),
92-
linear-gradient(180deg, var(--v2-alpha-light-0) 0%, var(--v2-alpha-light-20) 100%),
93-
var(--v2-background-bg-layer-03);
94-
}
95-
96-
&:hover:not([data-disabled], [data-readonly]) [data-slot="switch-thumb"] {
97-
width: 13px;
98-
border-radius: 3px;
83+
background: color-mix(in srgb, var(--v2-text-text-base) 7%, var(--v2-background-bg-layer-03));
9984
}
10085

10186
&:not([data-readonly]) [data-slot="switch-input"]:focus-visible ~ [data-slot="switch-control"] {
10287
outline: 2px solid var(--v2-border-border-focus);
10388
outline-offset: 1px;
10489
}
10590

91+
/* ON — flat soft-yellow: accent mixed into the track base (solid, no gradient,
92+
same base as OFF in both themes) + an --accent-edge ring for definition
93+
(neutral on light, yellow on dark). Was --v2-background-bg-accent, which
94+
resolves to --v2-blue-600 upstream — off-brand. */
10695
&[data-checked] [data-slot="switch-control"] {
107-
background:
108-
linear-gradient(180deg, var(--v2-alpha-light-0) 0%, var(--v2-alpha-light-10) 100%), var(--v2-background-bg-accent);
109-
box-shadow: var(--v2-elevation-switch-on);
96+
background: color-mix(in srgb, var(--accent) 16%, var(--v2-background-bg-layer-03));
97+
box-shadow:
98+
inset 0 0 0 1px var(--accent-edge),
99+
var(--v2-elevation-switch-on);
110100
}
111101

112102
&[data-checked] [data-slot="switch-thumb"] {
113103
transform: translateX(8px);
114-
border-radius: 2px;
115-
background:
116-
linear-gradient(
117-
180deg,
118-
var(--v2-overlay-gradient-depth-overlay-depth-top) 0%,
119-
var(--v2-overlay-gradient-depth-overlay-depth-bot) 100%
120-
),
121-
var(--v2-grey-300);
104+
background: var(--v2-grey-300);
122105
}
123106

124107
&[data-checked]:hover:not([data-disabled], [data-readonly]) [data-slot="switch-control"] {
125-
background:
126-
linear-gradient(
127-
0deg,
128-
var(--v2-overlay-simple-overlay-contrast-hover),
129-
var(--v2-overlay-simple-overlay-contrast-hover)
130-
),
131-
linear-gradient(180deg, var(--v2-alpha-light-0) 0%, var(--v2-alpha-light-10) 100%), var(--v2-background-bg-accent);
132-
}
133-
134-
&[data-checked]:hover:not([data-disabled], [data-readonly]) [data-slot="switch-thumb"] {
135-
transform: translateX(7px);
108+
background: color-mix(in srgb, var(--accent) 24%, var(--v2-background-bg-layer-03));
109+
box-shadow:
110+
inset 0 0 0 1px var(--accent-edge),
111+
var(--v2-elevation-switch-on);
136112
}
137113

138114
&[data-disabled] {
@@ -144,7 +120,7 @@
144120
}
145121

146122
&[data-invalid] [data-slot="switch-control"] {
147-
border-color: var(--v2-state-border-danger);
123+
box-shadow: inset 0 0 0 1px var(--v2-state-border-danger);
148124
}
149125

150126
&[data-readonly] {

0 commit comments

Comments
 (0)