@channel.io/bezier-react 3.6.6 → 4.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cjs/components/AlphaButton/Button.js +1 -1
  2. package/dist/cjs/components/AlphaButton/Button.js.map +1 -1
  3. package/dist/cjs/components/AlphaButton/Button.module.scss.js +1 -1
  4. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js +1 -1
  5. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js.map +1 -1
  6. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.module.scss.js +1 -1
  7. package/dist/cjs/components/AlphaIconButton/IconButton.module.scss.js +1 -1
  8. package/dist/cjs/components/Button/Button.js +1 -1
  9. package/dist/cjs/components/Button/Button.js.map +1 -1
  10. package/dist/cjs/components/Button/Button.module.scss.js +1 -1
  11. package/dist/cjs/components/Text/Text.js +2 -0
  12. package/dist/cjs/components/Text/Text.js.map +1 -1
  13. package/dist/cjs/packages/bezier-tokens/dist/beta/esm/darkTheme.js +20 -20
  14. package/dist/cjs/packages/bezier-tokens/dist/beta/esm/darkTheme.js.map +1 -1
  15. package/dist/cjs/packages/bezier-tokens/dist/beta/esm/lightTheme.js +20 -20
  16. package/dist/cjs/packages/bezier-tokens/dist/beta/esm/lightTheme.js.map +1 -1
  17. package/dist/cjs/styles.css +1 -1
  18. package/dist/esm/components/AlphaButton/Button.mjs +1 -1
  19. package/dist/esm/components/AlphaButton/Button.mjs.map +1 -1
  20. package/dist/esm/components/AlphaButton/Button.module.scss.mjs +1 -1
  21. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs +1 -1
  22. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs.map +1 -1
  23. package/dist/esm/components/AlphaFloatingButton/FloatingButton.module.scss.mjs +1 -1
  24. package/dist/esm/components/AlphaIconButton/IconButton.module.scss.mjs +1 -1
  25. package/dist/esm/components/Button/Button.mjs +1 -1
  26. package/dist/esm/components/Button/Button.mjs.map +1 -1
  27. package/dist/esm/components/Button/Button.module.scss.mjs +1 -1
  28. package/dist/esm/components/Text/Text.mjs +2 -0
  29. package/dist/esm/components/Text/Text.mjs.map +1 -1
  30. package/dist/esm/packages/bezier-tokens/dist/beta/esm/darkTheme.mjs +20 -20
  31. package/dist/esm/packages/bezier-tokens/dist/beta/esm/darkTheme.mjs.map +1 -1
  32. package/dist/esm/packages/bezier-tokens/dist/beta/esm/lightTheme.mjs +20 -20
  33. package/dist/esm/packages/bezier-tokens/dist/beta/esm/lightTheme.mjs.map +1 -1
  34. package/dist/esm/styles.css +1 -1
  35. package/dist/types/components/Text/Text.d.ts.map +1 -1
  36. package/dist/types/components/Text/Text.types.d.ts +8 -0
  37. package/dist/types/components/Text/Text.types.d.ts.map +1 -1
  38. package/package.json +3 -3
  39. package/src/components/AlphaButton/Button.module.scss +49 -18
  40. package/src/components/AlphaButton/Button.tsx +1 -1
  41. package/src/components/AlphaFloatingButton/FloatingButton.module.scss +38 -5
  42. package/src/components/AlphaFloatingButton/FloatingButton.tsx +1 -1
  43. package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +21 -0
  44. package/src/components/AlphaIconButton/IconButton.module.scss +44 -13
  45. package/src/components/Button/Button.module.scss +61 -25
  46. package/src/components/Button/Button.tsx +1 -1
  47. package/src/components/Text/Text.module.scss +3 -2
  48. package/src/components/Text/Text.test.tsx +13 -0
  49. package/src/components/Text/Text.tsx +2 -0
  50. package/src/components/Text/Text.types.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/Text.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAI7C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,mGAgDhB,CAAA"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/Text.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAI7C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,mGAkDhB,CAAA"}
@@ -3,6 +3,7 @@ import { type BezierComponentProps, type ChildrenProps, type MarginProps, type P
3
3
  import { type SemanticColor } from "../../types/tokens";
4
4
  type Typography = '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '22' | '24' | '30' | '36';
5
5
  type TextAlign = 'left' | 'center' | 'right';
6
+ type TextFontWeight = 400 | 500 | 600 | 700;
6
7
  interface TextOwnProps {
7
8
  /**
8
9
  * Typography style of the text.
@@ -18,6 +19,13 @@ interface TextOwnProps {
18
19
  * @default false
19
20
  */
20
21
  bold?: boolean;
22
+ /**
23
+ * Font weight of the text.
24
+ * If `bold` and `fontWeight` are used together, `fontWeight` takes precedence.
25
+ * This prop is currently intended for internal Bezier component usage.
26
+ * @internal
27
+ */
28
+ fontWeight?: TextFontWeight;
21
29
  /**
22
30
  * Whether the text is italic.
23
31
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,gCAA+B;AAChE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,0BAAyB;AAC1B,OAAO,EAAE,KAAK,aAAa,EAAE,2BAA0B;AAEvD,KAAK,UAAU,GACX,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE5C,UAAU,YAAY;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAA;IACzC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,YAAY,CAAC,EACpD,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY;CAAG"}
1
+ {"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,gCAA+B;AAChE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,0BAAyB;AAC1B,OAAO,EAAE,KAAK,aAAa,EAAE,2BAA0B;AAEvD,KAAK,UAAU,GACX,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC5C,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAE3C,UAAU,YAAY;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAA;IACzC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,YAAY,CAAC,EACpD,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY;CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/bezier-react",
3
- "version": "3.6.6",
3
+ "version": "4.0.0-next.1",
4
4
  "description": "React components library that implements Bezier design system.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,7 +63,7 @@
63
63
  "@babel/preset-env": "^7.26.0",
64
64
  "@babel/preset-react": "^7.26.3",
65
65
  "@babel/preset-typescript": "^7.26.0",
66
- "@channel.io/bezier-icons": "0.56.0",
66
+ "@channel.io/bezier-icons": "0.57.0",
67
67
  "@chromatic-com/storybook": "^3.2.2",
68
68
  "@figma/code-connect": "^1.2.4",
69
69
  "@rollup/plugin-alias": "^5.1.1",
@@ -131,7 +131,7 @@
131
131
  }
132
132
  },
133
133
  "dependencies": {
134
- "@channel.io/bezier-tokens": "0.6.0",
134
+ "@channel.io/bezier-tokens": "1.0.0-next.1",
135
135
  "@radix-ui/react-checkbox": "^1.1.3",
136
136
  "@radix-ui/react-dialog": "^1.1.3",
137
137
  "@radix-ui/react-radio-group": "^1.2.2",
@@ -39,7 +39,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
39
39
  height: 20px;
40
40
  padding: 0 4px;
41
41
 
42
- & :where(.ButtonText) {
42
+ & .ButtonText {
43
43
  padding: 0 3px;
44
44
  }
45
45
  }
@@ -48,7 +48,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
48
48
  height: 24px;
49
49
  padding: 0 6px;
50
50
 
51
- & :where(.ButtonText) {
51
+ & .ButtonText {
52
52
  padding: 0 3px;
53
53
  }
54
54
  }
@@ -57,7 +57,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
57
57
  height: 36px;
58
58
  padding: 0 10px;
59
59
 
60
- & :where(.ButtonText) {
60
+ & .ButtonText {
61
61
  padding: 0 4px;
62
62
  }
63
63
  }
@@ -66,7 +66,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
66
66
  height: 44px;
67
67
  padding: 0 14px;
68
68
 
69
- & :where(.ButtonText) {
69
+ & .ButtonText {
70
70
  padding: 0 6px;
71
71
  }
72
72
  }
@@ -75,7 +75,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
75
75
  height: 54px;
76
76
  padding: 0 18px;
77
77
 
78
- & :where(.ButtonText) {
78
+ & .ButtonText {
79
79
  padding: 0 6px;
80
80
  }
81
81
  }
@@ -87,6 +87,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
87
87
  background-color: var(#{$background-color});
88
88
  }
89
89
  }
90
+
90
91
  }
91
92
 
92
93
  &:where(.variant-secondary) {
@@ -95,6 +96,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
95
96
  background-color: var(#{$background-color});
96
97
  }
97
98
  }
99
+
100
+ &:where(.color-blue) {
101
+ background-color: var(--color-fill-neutral-light);
102
+ }
98
103
  }
99
104
 
100
105
  &:where(.variant-tertiary) {
@@ -112,6 +117,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
112
117
  &:where(.color-white-absolute) {
113
118
  background-color: var(--color-fill-absolute-white-transparent);
114
119
  }
120
+
115
121
  }
116
122
 
117
123
  /* color */
@@ -130,6 +136,15 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
130
136
  &:where(.color-white-absolute) {
131
137
  color: var(--color-text-absolute-black);
132
138
  }
139
+
140
+ &:where(.color-blue) {
141
+ color: var(--color-text-inverse);
142
+ background-color: var(--color-fill-neutral-heaviest);
143
+
144
+ & :is(.ButtonIcon, .ButtonLoader) {
145
+ color: var(--color-icon-inverse-heavier);
146
+ }
147
+ }
133
148
  }
134
149
 
135
150
  &:where(.variant-secondary, .variant-tertiary) {
@@ -162,6 +177,22 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
162
177
  color: var(--color-icon-neutral);
163
178
  }
164
179
  }
180
+
181
+ &:where(.variant-secondary.color-blue) {
182
+ color: var(--color-text-neutral);
183
+
184
+ & :is(.ButtonIcon, .ButtonLoader) {
185
+ color: var(--color-icon-neutral-heavy);
186
+ }
187
+ }
188
+
189
+ &:where(.variant-tertiary.color-blue) {
190
+ color: var(--color-text-neutral-light);
191
+
192
+ & :is(.ButtonIcon, .ButtonLoader) {
193
+ color: var(--color-icon-neutral-heavy);
194
+ }
195
+ }
165
196
  }
166
197
 
167
198
  &:where(.variant-tertiary, .variant-secondary):where(.color-white-absolute) {
@@ -176,19 +207,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
176
207
 
177
208
  /* border-radius */
178
209
  &:where(.variant-primary, .variant-secondary, .variant-tertiary) {
179
- $border-radius-by-size: (
180
- xs: var(--radius-6),
181
- s: var(--radius-7),
182
- m: var(--radius-10),
183
- l: var(--radius-12),
184
- xl: var(--radius-14),
185
- );
186
-
187
- @each $size, $border-radius in $border-radius-by-size {
188
- &:where(.size-#{$size}) {
189
- border-radius: $border-radius;
190
- }
191
- }
210
+ border-radius: 9999px;
192
211
  }
193
212
 
194
213
  /* TODO: use v2 token when design is specified */
@@ -201,6 +220,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
201
220
  background-color: var(#{$background-color}-hovered);
202
221
  }
203
222
  }
223
+
224
+ &:where(.color-blue) {
225
+ background-color: var(--color-fill-neutral-heaviest-hovered);
226
+ }
204
227
  }
205
228
 
206
229
  &:where(.variant-secondary) {
@@ -209,6 +232,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
209
232
  background-color: var(#{$background-color}-hovered);
210
233
  }
211
234
  }
235
+
236
+ &:where(.color-blue) {
237
+ background-color: var(--color-fill-neutral-light-hovered);
238
+ }
212
239
  }
213
240
 
214
241
  &:where(.variant-tertiary) {
@@ -228,6 +255,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
228
255
  &:where(.color-white-absolute) {
229
256
  background-color: var(--color-fill-absolute-white-transparent-hovered);
230
257
  }
258
+
259
+ &:where(.color-blue) {
260
+ background-color: var(--color-fill-neutral-transparent-hovered);
261
+ }
231
262
  }
232
263
 
233
264
  &:where(.color-dark-grey):where(.variant-secondary, .variant-tertiary) {
@@ -109,7 +109,7 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
109
109
  <Text
110
110
  className={styles.ButtonText}
111
111
  typo={getTypography(size)}
112
- bold
112
+ fontWeight={500}
113
113
  >
114
114
  {text}
115
115
  </Text>
@@ -57,7 +57,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
57
57
  height: 20px;
58
58
  padding: 0 6px;
59
59
 
60
- & :where(.ButtonText) {
60
+ & .ButtonText {
61
61
  padding: 0 3px;
62
62
  }
63
63
  }
@@ -66,7 +66,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
66
66
  height: 24px;
67
67
  padding: 0 8px;
68
68
 
69
- & :where(.ButtonText) {
69
+ & .ButtonText {
70
70
  padding: 0 4px;
71
71
  }
72
72
  }
@@ -75,7 +75,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
75
75
  height: 36px;
76
76
  padding: 0 12px;
77
77
 
78
- & :where(.ButtonText) {
78
+ & .ButtonText {
79
79
  padding: 0 4px;
80
80
  }
81
81
  }
@@ -84,7 +84,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
84
84
  height: 44px;
85
85
  padding: 0 14px;
86
86
 
87
- & :where(.ButtonText) {
87
+ & .ButtonText {
88
88
  padding: 0 6px;
89
89
  }
90
90
  }
@@ -93,7 +93,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
93
93
  height: 54px;
94
94
  padding: 0 18px;
95
95
 
96
- & :where(.ButtonText) {
96
+ & .ButtonText {
97
97
  padding: 0 6px;
98
98
  }
99
99
  }
@@ -105,10 +105,12 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
105
105
  background-color: var(#{$background-color});
106
106
  }
107
107
  }
108
+
108
109
  }
109
110
 
110
111
  &:where(.variant-secondary) {
111
112
  background-color: var(--color-fill-grey);
113
+
112
114
  }
113
115
 
114
116
  /* color */
@@ -119,6 +121,15 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
119
121
  &:where(.color-dark-grey) {
120
122
  color: var(--color-text-inverse);
121
123
  }
124
+
125
+ &:where(.color-blue) {
126
+ color: var(--color-text-inverse);
127
+ background-color: var(--color-fill-neutral-heaviest);
128
+
129
+ & :is(.ButtonIcon, .ButtonLoader) {
130
+ color: var(--color-icon-inverse-heavier);
131
+ }
132
+ }
122
133
  }
123
134
 
124
135
  /* stylelint-disable-next-line no-duplicate-selectors */
@@ -136,6 +147,15 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
136
147
  }
137
148
  }
138
149
  }
150
+
151
+ &:where(.color-blue) {
152
+ color: var(--color-text-neutral);
153
+ background-color: var(--color-fill-neutral-light);
154
+
155
+ & :is(.ButtonIcon, .ButtonLoader) {
156
+ color: var(--color-icon-neutral-heavy);
157
+ }
158
+ }
139
159
  }
140
160
 
141
161
  /* visual effect on interaction */
@@ -148,6 +168,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
148
168
  }
149
169
  }
150
170
 
171
+ &:where(.variant-primary.color-blue) {
172
+ background-color: var(--color-fill-neutral-heaviest-hovered);
173
+ }
174
+
151
175
  @each $button-color, $color in $hovered-color-map {
152
176
  &:where(.variant-secondary.color-#{'' + $button-color}) {
153
177
  color: var(#{$color});
@@ -157,6 +181,15 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
157
181
  }
158
182
  }
159
183
  }
184
+
185
+ &:where(.variant-secondary.color-blue) {
186
+ color: var(--color-text-neutral-hovered);
187
+ background-color: var(--color-fill-neutral-light-hovered);
188
+
189
+ & :is(.ButtonIcon, .ButtonLoader) {
190
+ color: var(--color-icon-neutral-heavy-hovered);
191
+ }
192
+ }
160
193
  }
161
194
 
162
195
  &:where(.variant-primary.color-blue:focus-visible) {
@@ -107,7 +107,7 @@ export const FloatingButton = forwardRef<
107
107
  <Text
108
108
  className={styles.ButtonText}
109
109
  typo={getTypography(size)}
110
- bold
110
+ fontWeight={500}
111
111
  >
112
112
  {text}
113
113
  </Text>
@@ -86,10 +86,12 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
86
86
  background-color: var(#{$background-color});
87
87
  }
88
88
  }
89
+
89
90
  }
90
91
 
91
92
  &:where(.variant-secondary) {
92
93
  background-color: var(--color-fill-grey);
94
+
93
95
  }
94
96
 
95
97
  /* color */
@@ -104,6 +106,11 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
104
106
  &:where(.color-light-grey) {
105
107
  color: var(--color-text-absolute-white);
106
108
  }
109
+
110
+ &:where(.color-blue) {
111
+ color: var(--color-icon-inverse-heavier);
112
+ background-color: var(--color-fill-neutral-heaviest);
113
+ }
107
114
  }
108
115
 
109
116
  /* stylelint-disable-next-line no-duplicate-selectors */
@@ -113,6 +120,11 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
113
120
  color: var(#{$icon-color});
114
121
  }
115
122
  }
123
+
124
+ &:where(.color-blue) {
125
+ color: var(--color-icon-neutral-heavy);
126
+ background-color: var(--color-fill-neutral-light);
127
+ }
116
128
  }
117
129
 
118
130
  /* TODO: use v2 token when design is specified */
@@ -127,6 +139,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
127
139
  background-color: var(#{$background-color}-hovered);
128
140
  }
129
141
  }
142
+
143
+ &:where(.color-blue) {
144
+ background-color: var(--color-fill-neutral-heaviest-hovered);
145
+ }
130
146
  }
131
147
 
132
148
  &:where(.variant-secondary) {
@@ -136,6 +152,11 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
136
152
  color: var(#{$hovered-color});
137
153
  }
138
154
  }
155
+
156
+ &:where(.color-blue) {
157
+ color: var(--color-icon-neutral-heavy-hovered);
158
+ background-color: var(--color-fill-neutral-light-hovered);
159
+ }
139
160
  }
140
161
  }
141
162
 
@@ -60,6 +60,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
60
60
  background-color: $background-color;
61
61
  }
62
62
  }
63
+
63
64
  }
64
65
 
65
66
  &:where(.variant-secondary) {
@@ -81,6 +82,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
81
82
  background-color: $background-color;
82
83
  }
83
84
  }
85
+
86
+ &:where(.color-blue) {
87
+ background-color: var(--color-fill-neutral-light);
88
+ }
84
89
  }
85
90
 
86
91
  &:where(.variant-tertiary) {
@@ -98,6 +103,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
98
103
  &:where(.color-white-absolute) {
99
104
  background-color: var(--color-fill-absolute-white-transparent);
100
105
  }
106
+
101
107
  }
102
108
 
103
109
  /* color */
@@ -116,6 +122,15 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
116
122
  &:where(.color-white-absolute) {
117
123
  color: var(--color-text-absolute-black);
118
124
  }
125
+
126
+ &:where(.color-blue) {
127
+ color: var(--color-text-inverse);
128
+ background-color: var(--color-fill-neutral-heaviest);
129
+
130
+ & :is(.ButtonIcon, .ButtonLoader) {
131
+ color: var(--color-icon-inverse-heavier);
132
+ }
133
+ }
119
134
  }
120
135
 
121
136
  &:where(.variant-secondary, .variant-tertiary) {
@@ -148,6 +163,22 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
148
163
  color: var(--color-icon-neutral);
149
164
  }
150
165
  }
166
+
167
+ &:where(.variant-secondary.color-blue) {
168
+ color: var(--color-text-neutral);
169
+
170
+ & :is(.ButtonIcon, .ButtonLoader) {
171
+ color: var(--color-icon-neutral-heavy);
172
+ }
173
+ }
174
+
175
+ &:where(.variant-tertiary.color-blue) {
176
+ color: var(--color-text-neutral-light);
177
+
178
+ & :is(.ButtonIcon, .ButtonLoader) {
179
+ color: var(--color-icon-neutral-heavy);
180
+ }
181
+ }
151
182
  }
152
183
 
153
184
  &:where(.variant-tertiary, .variant-secondary):where(.color-white-absolute) {
@@ -158,19 +189,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
158
189
 
159
190
  /* border-radius */
160
191
  &:where(.shape-rectangle) {
161
- $border-radius-by-size: (
162
- xs: var(--radius-6),
163
- s: var(--radius-7),
164
- m: var(--radius-10),
165
- l: var(--radius-12),
166
- xl: var(--radius-14),
167
- );
168
-
169
- @each $size, $border-radius in $border-radius-by-size {
170
- &:where(.size-#{$size}) {
171
- border-radius: $border-radius;
172
- }
173
- }
192
+ border-radius: 9999px;
174
193
  }
175
194
 
176
195
  &:where(.shape-circle) {
@@ -196,6 +215,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
196
215
  &:where(.color-light-grey) {
197
216
  background-color: var(--color-fill-neutral-heavier-hovered);
198
217
  }
218
+
219
+ &:where(.color-blue) {
220
+ background-color: var(--color-fill-neutral-heaviest-hovered);
221
+ }
199
222
  }
200
223
 
201
224
  &:where(.variant-secondary) {
@@ -209,6 +232,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
209
232
  &:where(.color-dark-grey, .color-light-grey) {
210
233
  background-color: var(--color-fill-neutral-light-hovered);
211
234
  }
235
+
236
+ &:where(.color-blue) {
237
+ background-color: var(--color-fill-neutral-light-hovered);
238
+ }
212
239
  }
213
240
 
214
241
  &:where(.variant-tertiary) {
@@ -228,6 +255,10 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
228
255
  &:where(.color-white-absolute) {
229
256
  background-color: var(--color-fill-absolute-white-transparent-hovered);
230
257
  }
258
+
259
+ &:where(.color-blue) {
260
+ background-color: var(--color-fill-neutral-heaviest-hovered);
261
+ }
231
262
  }
232
263
 
233
264
  &:where(.color-dark-grey):where(.variant-secondary, .variant-tertiary) {
@@ -13,7 +13,7 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
13
13
  &:where(.size-xs) {
14
14
  min-width: 20px;
15
15
  height: 20px;
16
- padding: 0 2px;
16
+ padding: 0 4px;
17
17
 
18
18
  &:where(.style-floating, .style-floating-alt) {
19
19
  padding: 0 7px;
@@ -23,7 +23,7 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
23
23
  &:where(.size-s) {
24
24
  min-width: 24px;
25
25
  height: 24px;
26
- padding: 0 4px;
26
+ padding: 0 6px;
27
27
 
28
28
  &:where(.style-floating, .style-floating-alt) {
29
29
  padding: 0 9px;
@@ -61,7 +61,7 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
61
61
  }
62
62
 
63
63
  &:where(.size-xs, .size-s) {
64
- & :where(.ButtonText) {
64
+ & .ButtonText {
65
65
  padding: 0 3px;
66
66
  }
67
67
  }
@@ -71,7 +71,7 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
71
71
  gap: 2px;
72
72
  }
73
73
 
74
- & :where(.ButtonText) {
74
+ & .ButtonText {
75
75
  padding: 0 4px;
76
76
  }
77
77
  }
@@ -111,6 +111,19 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
111
111
  color: var(--color-text-inverse);
112
112
  background-color: var(--color-fill-neutral-heaviest);
113
113
  }
114
+
115
+ &:where(.color-blue) {
116
+ color: var(--color-text-inverse);
117
+ background-color: var(--color-fill-neutral-heaviest);
118
+
119
+ & :is(.ButtonIcon, .ButtonLoader) {
120
+ color: var(--color-icon-inverse-heavier);
121
+ }
122
+
123
+ &#{$active-selector} {
124
+ background-color: var(--color-fill-neutral-heaviest-hovered);
125
+ }
126
+ }
114
127
  }
115
128
 
116
129
  &:where(.style-secondary) {
@@ -153,6 +166,19 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
153
166
  background-color: var(--color-fill-neutral-light-hovered);
154
167
  }
155
168
  }
169
+
170
+ &:where(.color-blue) {
171
+ color: var(--color-text-neutral);
172
+ background-color: var(--color-fill-neutral-light);
173
+
174
+ & :is(.ButtonIcon, .ButtonLoader) {
175
+ color: var(--color-icon-neutral-heavy);
176
+ }
177
+
178
+ &#{$active-selector} {
179
+ background-color: var(--color-fill-neutral-light-hovered);
180
+ }
181
+ }
156
182
  }
157
183
 
158
184
  &:where(.style-tertiary) {
@@ -193,9 +219,23 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
193
219
  background-color: var(--color-fill-neutral-light-hovered);
194
220
  }
195
221
  }
222
+
223
+ &:where(.color-blue) {
224
+ color: var(--color-text-neutral-light);
225
+
226
+ & :is(.ButtonIcon, .ButtonLoader) {
227
+ color: var(--color-icon-neutral-heavy);
228
+ }
229
+
230
+ &#{$active-selector} {
231
+ background-color: var(--color-fill-neutral-transparent-hovered);
232
+ }
233
+ }
196
234
  }
197
235
 
198
236
  &:where(.style-floating, .style-floating-alt) {
237
+ overflow: hidden;
238
+
199
239
  @each $color-variant in $chromatic-color-variants {
200
240
  &:where(.color-#{$color-variant}) {
201
241
  color: var(--color-text-absolute-white);
@@ -225,36 +265,32 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
225
265
  color: var(--color-text-neutral);
226
266
  background-color: var(--color-fill-bright);
227
267
  }
228
- }
229
-
230
- /* Effect */
231
- &:where(.style-primary, .style-secondary, .style-tertiary) {
232
- &:where(.size-xs) {
233
- border-radius: var(--radius-6);
234
- }
235
268
 
236
- &:where(.size-s, .size-m) {
237
- border-radius: var(--radius-8);
238
- }
269
+ &:where(.color-blue) {
270
+ color: var(--color-text-inverse);
271
+ background-color: var(--color-fill-neutral-heaviest);
239
272
 
240
- &:where(.size-l) {
241
- border-radius: var(--radius-12);
242
- }
273
+ & :is(.ButtonIcon, .ButtonLoader) {
274
+ color: var(--color-icon-inverse-heavier);
275
+ }
243
276
 
244
- &:where(.size-xl) {
245
- border-radius: var(--radius-16);
277
+ &#{$active-selector} {
278
+ background-color: var(--color-fill-neutral-heaviest-hovered);
279
+ }
246
280
  }
247
281
  }
248
282
 
249
- &:where(.style-floating) {
250
- overflow: hidden;
283
+ /* Effect */
284
+ &:where(
285
+ .style-primary,
286
+ .style-secondary,
287
+ .style-tertiary,
288
+ .style-floating,
289
+ .style-floating-alt
290
+ ) {
251
291
  border-radius: 9999px;
252
292
  }
253
293
 
254
- &:where(.style-floating-alt) {
255
- border-radius: var(--radius-8);
256
- }
257
-
258
294
  &:where(.style-primary.color-blue:focus-visible) {
259
295
  outline: 3px solid var(--color-state-action-light);
260
296
  }