@uniai-fe/uds-primitives 0.0.7 → 0.0.9

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 (56) hide show
  1. package/README.md +64 -5
  2. package/dist/styles.css +220 -303
  3. package/package.json +4 -4
  4. package/src/components/badge/markup/Badge.tsx +10 -0
  5. package/src/components/badge/styles/index.scss +2 -2
  6. package/src/components/badge/types/index.ts +1 -1
  7. package/src/components/button/index.scss +3 -1
  8. package/src/components/button/index.tsx +9 -1
  9. package/src/components/button/markup/ButtonDefault.tsx +162 -0
  10. package/src/components/button/markup/ButtonRounded.tsx +48 -0
  11. package/src/components/button/markup/ButtonText.tsx +49 -0
  12. package/src/components/button/markup/index.ts +3 -0
  13. package/src/components/button/styles/{index.scss → button.scss} +202 -424
  14. package/src/components/button/styles/round-button.scss +56 -0
  15. package/src/components/button/styles/text-button.scss +96 -0
  16. package/src/components/button/types/index.ts +110 -35
  17. package/src/components/button/types/templates.ts +33 -0
  18. package/src/components/button/utils/index.ts +19 -19
  19. package/src/components/checkbox/markup/Checkbox.tsx +20 -2
  20. package/src/components/checkbox/types/checkbox.ts +16 -0
  21. package/src/components/chip/markup/Chip.tsx +8 -0
  22. package/src/components/dialog/markup/{confirm-dialog.tsx → ConfirmDialog.tsx} +23 -0
  23. package/src/components/dialog/markup/{notice-dialog.tsx → NoticeDialog.tsx} +18 -0
  24. package/src/components/dialog/markup/index.tsx +2 -2
  25. package/src/components/dialog/types/index.ts +43 -0
  26. package/src/components/drawer/markup/{drawer.tsx → Drawer.tsx} +58 -0
  27. package/src/components/drawer/markup/index.tsx +1 -1
  28. package/src/components/drawer/types/index.ts +24 -0
  29. package/src/components/input/markup/text/Base.tsx +32 -3
  30. package/src/components/input/markup/text/Identification.tsx +15 -2
  31. package/src/components/input/markup/text/Password.tsx +35 -2
  32. package/src/components/input/markup/text/Phone.tsx +38 -2
  33. package/src/components/input/markup/text/Search.tsx +30 -1
  34. package/src/components/input/styles/index.scss +6 -6
  35. package/src/components/input/types/index.ts +22 -1
  36. package/src/components/input/utils/index.ts +6 -0
  37. package/src/components/navigation/markup/mobile/BottomNavigation.tsx +11 -0
  38. package/src/components/navigation/types/index.ts +22 -0
  39. package/src/components/pagination/markup/Carousel.tsx +1 -0
  40. package/src/components/pagination/markup/Count.tsx +1 -0
  41. package/src/components/pagination/markup/Pagination.tsx +2 -0
  42. package/src/components/radio/markup/Radio.tsx +16 -2
  43. package/src/components/radio/markup/RadioCard.tsx +8 -0
  44. package/src/components/radio/markup/RadioCardGroup.tsx +8 -0
  45. package/src/components/radio/types/radio.ts +39 -0
  46. package/src/components/segmented-control/markup/SegmentedControl.tsx +12 -0
  47. package/src/components/segmented-control/types/index.ts +16 -0
  48. package/src/components/tab/markup/TabContent.tsx +5 -0
  49. package/src/components/tab/markup/TabList.tsx +19 -2
  50. package/src/components/tab/markup/TabRoot.tsx +50 -4
  51. package/src/components/tab/markup/TabTrigger.tsx +9 -1
  52. package/src/components/tab/styles/index.scss +28 -10
  53. package/src/components/tab/types/index.ts +10 -0
  54. package/src/components/tab/utils/tab-context.ts +8 -2
  55. package/src/components/button/markup/Button.tsx +0 -175
  56. package/src/components/button/markup/index.tsx +0 -1
package/dist/styles.css CHANGED
@@ -1051,7 +1051,7 @@
1051
1051
  --badge-fill-label-color: var(--color-primary-default, #1a6aff);
1052
1052
  }
1053
1053
 
1054
- .badge:where([data-style=fill][data-intent=teritary]) {
1054
+ .badge:where([data-style=fill][data-intent=tertiary]) {
1055
1055
  --badge-fill-bg-color: var(--color-cool-gray-10, #18191b);
1056
1056
  --badge-fill-label-color: var(--color-common-100, #ffffff);
1057
1057
  }
@@ -1092,7 +1092,7 @@
1092
1092
  --badge-outline-label-color: var(--color-primary-strong, #0050e5);
1093
1093
  }
1094
1094
 
1095
- .badge:where([data-style=outlined][data-intent=teritary]) {
1095
+ .badge:where([data-style=outlined][data-intent=tertiary]) {
1096
1096
  --badge-outline-border-color: var(--color-border-standard-heavy, #313235);
1097
1097
  --badge-outline-label-color: var(--color-label-strong, #18191b);
1098
1098
  }
@@ -1131,7 +1131,7 @@
1131
1131
  --badge-dot-color: var(--color-red-55, #f43625);
1132
1132
  }
1133
1133
 
1134
- :where(.radix-themes, .theme-root, :root) {
1134
+ :root {
1135
1135
  /* spacing */
1136
1136
  --theme-button-gap-1: var(--spacing-gap-1);
1137
1137
  --theme-button-gap-2: var(--spacing-gap-2);
@@ -1145,6 +1145,24 @@
1145
1145
  --theme-button-padding-7: var(--spacing-padding-7);
1146
1146
  --theme-button-padding-9: var(--spacing-padding-9);
1147
1147
  --theme-button-min-width: var(--theme-size-small-2);
1148
+ --theme-button-text-padding-block: var(--spacing-padding-4, 8px);
1149
+ --theme-button-text-padding-inline-small: var(--spacing-padding-4, 8px);
1150
+ --theme-button-text-padding-inline-medium: var(--spacing-padding-5, 12px);
1151
+ --theme-button-text-padding-inline-large: var(--spacing-padding-5, 12px);
1152
+ --theme-button-text-min-height-small: var(--theme-size-small-1, 20px);
1153
+ --theme-button-text-min-height-medium: var(--theme-size-small-2, 24px);
1154
+ --theme-button-text-min-height-large: var(--theme-size-small-3, 32px);
1155
+ --theme-button-text-radius: var(--theme-radius-small, 4px);
1156
+ --theme-button-round-padding-inline-small: var(--spacing-padding-5, 12px);
1157
+ --theme-button-round-padding-inline-medium: var(--spacing-padding-6, 16px);
1158
+ --theme-button-round-padding-inline-large: var(--spacing-padding-7, 20px);
1159
+ --theme-button-round-padding-block: var(--spacing-padding-2, 4px);
1160
+ --theme-button-round-min-height-small: var(--theme-size-small-2, 24px);
1161
+ --theme-button-round-min-height-medium: var(--theme-size-small-3, 32px);
1162
+ --theme-button-round-min-height-large: var(--theme-size-medium-1, 40px);
1163
+ --theme-button-round-radius-small: var(--theme-radius-xlarge-2, 16px);
1164
+ --theme-button-round-radius-medium: var(--theme-radius-xlarge-2, 16px);
1165
+ --theme-button-round-radius-large: 30px;
1148
1166
  /* size/radius */
1149
1167
  --theme-button-size-small-1: var(--theme-size-small-1);
1150
1168
  --theme-button-size-small-2: var(--theme-size-small-2);
@@ -1231,16 +1249,9 @@
1231
1249
  --theme-button-overlay-outlined-primary-bg: var(--color-blue-90);
1232
1250
  --theme-button-overlay-outlined-secondary-bg: var(--color-cool-gray-95);
1233
1251
  --theme-button-overlay-outlined-tertiary-bg: var(--color-cool-gray-95);
1234
- /* text-button backgrounds */
1235
- --theme-button-text-default-hover-bg: var(--color-tertiary-default);
1236
- --theme-button-text-default-pressed-bg: var(--color-tertiary-strong);
1237
- --theme-button-text-secondary-hover-bg: var(--color-bg-alternative-cool-gray);
1238
- --theme-button-text-secondary-pressed-bg: var(--color-secondary-strong);
1239
- --theme-button-text-tertiary-hover-bg: var(--color-bg-alternative-cool-gray);
1240
- --theme-button-text-tertiary-pressed-bg: var(--color-bg-surface-strong);
1241
1252
  }
1242
1253
 
1243
- /* Radix reset 이후에도 primitives 스타일이 유지되도록 공통 클래스에 스타일 부여 */
1254
+ /* Primitives 버튼 공통 스타일 */
1244
1255
  .button {
1245
1256
  display: flex;
1246
1257
  align-items: center;
@@ -1256,477 +1267,365 @@
1256
1267
  background-color: transparent;
1257
1268
  color: var(--theme-button-color-neutral-base, var(--color-neutral-20));
1258
1269
  box-shadow: none;
1259
- font-family: var(--theme-button-font-body-medium-family, var(--font-body-medium-family, "Pretendard"));
1260
- font-size: var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 16px));
1261
- font-weight: var(--theme-button-font-weight, 400); /* 버튼 텍스트는 스케일과 무관하게 weight 400 유지 */
1262
- line-height: var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 24px));
1263
- letter-spacing: var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px));
1264
- /* Radix Theme pressed filter를 비활성화해 상태 색상이 그대로 노출되도록 한다. */
1265
- --base-button-solid-active-filter: none;
1266
- --base-button-solid-high-contrast-hover-filter: none;
1267
- --base-button-solid-high-contrast-active-filter: none;
1268
- --base-button-classic-active-filter: none;
1269
- --base-button-classic-high-contrast-hover-filter: none;
1270
- --base-button-classic-high-contrast-active-filter: none;
1271
1270
  filter: none;
1272
1271
  cursor: pointer;
1273
1272
  }
1274
-
1275
- .button:where([data-block=true]) {
1273
+ .button span {
1274
+ font-family: var(--font-caption-medium-family, var(--theme-button-font-body-medium-family, var(--font-body-medium-family, "Pretendard")));
1275
+ font-size: var(--font-caption-medium-size, var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 16px)));
1276
+ font-weight: var(--font-caption-medium-weight, var(--theme-button-font-weight, 400));
1277
+ line-height: var(--font-caption-medium-line-height, var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 24px)));
1278
+ letter-spacing: var(--font-caption-medium-letter-spacing, var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px)));
1279
+ }
1280
+ .button .button-icon,
1281
+ .button .button-label,
1282
+ .button .button-left,
1283
+ .button .button-right {
1284
+ display: inline-flex;
1285
+ align-items: center;
1286
+ justify-content: center;
1287
+ }
1288
+ .button.button-block {
1276
1289
  width: 100%;
1277
1290
  }
1278
1291
 
1279
- .button:where([data-loading=true]) {
1292
+ .button[aria-busy=true] {
1280
1293
  pointer-events: none;
1281
1294
  cursor: progress;
1282
1295
  }
1283
1296
 
1284
- .button-icon,
1285
- .button-label,
1286
- .button-prefix,
1287
- .button-suffix {
1288
- display: inline-flex;
1289
- align-items: center;
1290
- justify-content: center;
1291
- }
1292
-
1293
- .button:where([data-variant=solid][data-intent=primary]) {
1297
+ .button.button-fill-solid.button-priority-primary {
1294
1298
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1295
1299
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1296
1300
  color: var(--theme-button-color-common-100, var(--color-common-100));
1297
1301
  }
1298
- .button:where([data-variant=solid][data-intent=primary]):disabled, .button:where([data-variant=solid][data-intent=primary])[data-disabled=true] {
1302
+ .button.button-fill-solid.button-priority-primary:disabled, .button.button-fill-solid.button-priority-primary[aria-disabled=true] {
1299
1303
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1300
1304
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1301
1305
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1302
1306
  }
1303
- .button:where([data-variant=solid][data-intent=primary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=primary])[data-simulated-state=hover]:not(:disabled) {
1307
+ .button.button-fill-solid.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1304
1308
  background-color: var(--theme-button-color-blue-50, var(--color-blue-50));
1305
1309
  border-color: var(--theme-button-color-blue-50, var(--color-blue-50));
1306
1310
  }
1307
- .button:where([data-variant=solid][data-intent=primary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=primary])[data-simulated-state=pressed]:not(:disabled) {
1311
+ .button.button-fill-solid.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1308
1312
  background-color: var(--theme-button-color-blue-45, var(--color-blue-45));
1309
1313
  border-color: var(--theme-button-color-blue-45, var(--color-blue-45));
1310
1314
  }
1311
1315
 
1312
- .button:where([data-variant=outlined][data-intent=primary]) {
1316
+ .button.button-fill-outlined.button-priority-primary {
1313
1317
  background-color: transparent;
1314
1318
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1315
1319
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1316
1320
  }
1317
- .button:where([data-variant=outlined][data-intent=primary]):disabled, .button:where([data-variant=outlined][data-intent=primary])[data-disabled=true] {
1321
+ .button.button-fill-outlined.button-priority-primary:disabled, .button.button-fill-outlined.button-priority-primary[aria-disabled=true] {
1318
1322
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1319
1323
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1320
1324
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1321
1325
  }
1322
- .button:where([data-variant=outlined][data-intent=primary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=primary])[data-simulated-state=hover]:not(:disabled) {
1326
+ .button.button-fill-outlined.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1323
1327
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1324
1328
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1325
1329
  }
1326
- .button:where([data-variant=outlined][data-intent=primary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=primary])[data-simulated-state=pressed]:not(:disabled) {
1330
+ .button.button-fill-outlined.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1327
1331
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1328
1332
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1329
1333
  }
1330
1334
 
1331
- .button:where([data-variant=text-button][data-intent=primary]) {
1332
- border-color: transparent;
1333
- background-color: transparent;
1334
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
1335
- }
1336
- .button:where([data-variant=text-button][data-intent=primary]):hover:not(:disabled), .button:where([data-variant=text-button][data-intent=primary])[data-simulated-state=hover]:not(:disabled) {
1337
- background-color: var(--theme-button-text-default-hover-bg, var(--color-tertiary-default));
1338
- }
1339
- .button:where([data-variant=text-button][data-intent=primary]):active:not(:disabled), .button:where([data-variant=text-button][data-intent=primary])[data-simulated-state=pressed]:not(:disabled) {
1340
- background-color: var(--theme-button-text-default-pressed-bg, var(--color-tertiary-strong));
1341
- }
1342
- .button:where([data-variant=text-button][data-intent=primary]):disabled, .button:where([data-variant=text-button][data-intent=primary])[data-disabled=true] {
1343
- background-color: transparent;
1344
- border-color: transparent;
1345
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1346
- }
1347
-
1348
- .button:where([data-variant=solid][data-intent=secondary]) {
1335
+ .button.button-fill-solid.button-priority-secondary {
1349
1336
  background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1350
1337
  border-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1351
1338
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1352
1339
  }
1353
- .button:where([data-variant=solid][data-intent=secondary]):disabled, .button:where([data-variant=solid][data-intent=secondary])[data-disabled=true] {
1340
+ .button.button-fill-solid.button-priority-secondary:disabled, .button.button-fill-solid.button-priority-secondary[aria-disabled=true] {
1354
1341
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1355
1342
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1356
1343
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1357
1344
  }
1358
- .button:where([data-variant=solid][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1345
+ .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1359
1346
  background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1360
1347
  border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1361
1348
  }
1362
- .button:where([data-variant=solid][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1349
+ .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1363
1350
  background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1364
1351
  border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1365
1352
  }
1366
1353
 
1367
- .button:where([data-variant=outlined][data-intent=secondary]) {
1354
+ .button.button-fill-outlined.button-priority-secondary {
1368
1355
  background-color: transparent;
1369
1356
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1370
1357
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1371
1358
  }
1372
- .button:where([data-variant=outlined][data-intent=secondary]):disabled, .button:where([data-variant=outlined][data-intent=secondary])[data-disabled=true] {
1359
+ .button.button-fill-outlined.button-priority-secondary:disabled, .button.button-fill-outlined.button-priority-secondary[aria-disabled=true] {
1373
1360
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1374
1361
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1375
1362
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1376
1363
  }
1377
- .button:where([data-variant=outlined][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1364
+ .button.button-fill-outlined.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1378
1365
  background-color: var(--theme-button-color-blue-90, var(--color-blue-90));
1379
1366
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1380
1367
  }
1381
- .button:where([data-variant=outlined][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1368
+ .button.button-fill-outlined.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1382
1369
  background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1383
1370
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1384
1371
  }
1385
1372
 
1386
- .button:where([data-variant=text-button][data-intent=secondary]) {
1387
- border-color: transparent;
1388
- background-color: transparent;
1389
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
1390
- }
1391
- .button:where([data-variant=text-button][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=text-button][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1392
- background-color: var(--theme-button-text-secondary-hover-bg, var(--color-bg-alternative-cool-gray));
1393
- }
1394
- .button:where([data-variant=text-button][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=text-button][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1395
- background-color: var(--theme-button-text-secondary-pressed-bg, var(--color-secondary-strong));
1396
- }
1397
- .button:where([data-variant=text-button][data-intent=secondary]):disabled, .button:where([data-variant=text-button][data-intent=secondary])[data-disabled=true] {
1398
- background-color: transparent;
1399
- border-color: transparent;
1400
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1401
- }
1402
-
1403
- .button:where([data-variant=solid][data-intent=teritary]) {
1373
+ .button.button-fill-solid.button-priority-tertiary {
1404
1374
  background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1405
1375
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1406
1376
  color: var(--theme-button-tertiary-solid-foreground, var(--color-label-neutral));
1407
1377
  }
1408
- .button:where([data-variant=solid][data-intent=teritary]):disabled, .button:where([data-variant=solid][data-intent=teritary])[data-disabled=true] {
1378
+ .button.button-fill-solid.button-priority-tertiary:disabled, .button.button-fill-solid.button-priority-tertiary[aria-disabled=true] {
1409
1379
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1410
1380
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1411
1381
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1412
1382
  }
1413
- .button:where([data-variant=solid][data-intent=teritary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=teritary])[data-simulated-state=hover]:not(:disabled) {
1383
+ .button.button-fill-solid.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1414
1384
  background-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
1415
1385
  border-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
1416
1386
  }
1417
- .button:where([data-variant=solid][data-intent=teritary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=teritary])[data-simulated-state=pressed]:not(:disabled) {
1387
+ .button.button-fill-solid.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1418
1388
  background-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
1419
1389
  border-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
1420
1390
  }
1421
1391
 
1422
- .button:where([data-variant=outlined][data-intent=teritary]) {
1392
+ .button.button-fill-outlined.button-priority-tertiary {
1423
1393
  background-color: transparent;
1424
1394
  color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
1425
1395
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1426
1396
  }
1427
- .button:where([data-variant=outlined][data-intent=teritary]):disabled, .button:where([data-variant=outlined][data-intent=teritary])[data-disabled=true] {
1397
+ .button.button-fill-outlined.button-priority-tertiary:disabled, .button.button-fill-outlined.button-priority-tertiary[aria-disabled=true] {
1428
1398
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1429
1399
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1430
1400
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1431
1401
  }
1432
- .button:where([data-variant=outlined][data-intent=teritary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=teritary])[data-simulated-state=hover]:not(:disabled) {
1402
+ .button.button-fill-outlined.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1433
1403
  background-color: var(--theme-button-color-cool-gray-95, var(--color-cool-gray-95));
1434
1404
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1435
1405
  }
1436
- .button:where([data-variant=outlined][data-intent=teritary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=teritary])[data-simulated-state=pressed]:not(:disabled) {
1406
+ .button.button-fill-outlined.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1437
1407
  background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1438
1408
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1439
1409
  }
1440
1410
 
1441
- .button:where([data-variant=text-button][data-intent=teritary]) {
1442
- border-color: transparent;
1443
- background-color: transparent;
1444
- color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
1445
- }
1446
- .button:where([data-variant=text-button][data-intent=teritary]):hover:not(:disabled), .button:where([data-variant=text-button][data-intent=teritary])[data-simulated-state=hover]:not(:disabled) {
1447
- background-color: var(--theme-button-text-tertiary-hover-bg, var(--color-bg-alternative-cool-gray));
1448
- }
1449
- .button:where([data-variant=text-button][data-intent=teritary]):active:not(:disabled), .button:where([data-variant=text-button][data-intent=teritary])[data-simulated-state=pressed]:not(:disabled) {
1450
- background-color: var(--theme-button-text-tertiary-pressed-bg, var(--color-bg-surface-strong));
1451
- }
1452
- .button:where([data-variant=text-button][data-intent=teritary]):disabled, .button:where([data-variant=text-button][data-intent=teritary])[data-disabled=true] {
1453
- background-color: transparent;
1454
- border-color: transparent;
1455
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1411
+ .button.button-size-small {
1412
+ padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1413
+ gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
1414
+ padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1415
+ min-height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1416
+ border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1456
1417
  }
1457
-
1458
- .button:where([data-size=small]) {
1459
- padding-inline: var(--theme-button-padding-3, var(--spacing-padding-3, 12px));
1460
- gap: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
1461
- padding-block: var(--theme-button-padding-1, var(--spacing-padding-1, 2px));
1418
+ .button.button-size-small span {
1462
1419
  font-size: var(--theme-button-font-label-medium-size, var(--font-label-medium-size, 14px));
1463
1420
  font-weight: var(--theme-button-font-weight, 400);
1464
1421
  line-height: var(--theme-button-font-label-medium-line-height, var(--font-label-medium-line-height, 1.5em));
1465
1422
  letter-spacing: var(--theme-button-font-label-medium-letter-spacing, var(--font-label-medium-letter-spacing, 0px));
1466
1423
  }
1467
1424
 
1468
- .button:where([data-size=medium]) {
1469
- padding-inline: var(--theme-button-padding-4, var(--spacing-padding-4, 16px));
1425
+ .button.button-size-medium {
1426
+ padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
1470
1427
  gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
1471
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1428
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1429
+ min-height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1430
+ border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1431
+ }
1432
+ .button.button-size-medium span {
1472
1433
  font-size: var(--theme-button-font-label-large-size, var(--font-label-large-size, 16px));
1473
1434
  font-weight: var(--theme-button-font-weight, 400);
1474
1435
  line-height: var(--theme-button-font-label-large-line-height, var(--font-label-large-line-height, 1.5em));
1475
1436
  letter-spacing: var(--theme-button-font-label-large-letter-spacing, var(--font-label-large-letter-spacing, 0px));
1476
1437
  }
1477
1438
 
1478
- .button:where([data-size=large]) {
1479
- padding-inline: var(--theme-button-padding-5, var(--spacing-padding-5, 20px));
1439
+ .button.button-size-large {
1440
+ padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1480
1441
  gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
1481
- padding-block: var(--theme-button-padding-3, var(--spacing-padding-3, 6px));
1442
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1443
+ min-height: var(--theme-button-size-medium-2, var(--theme-size-medium-2, 48px));
1444
+ border-radius: var(--theme-button-radius-large-1, var(--theme-radius-large-1, 12px));
1445
+ }
1446
+ .button.button-size-large span {
1482
1447
  font-size: var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 17px));
1483
1448
  font-weight: var(--theme-button-font-weight, 400);
1484
1449
  line-height: var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 1.5em));
1485
1450
  letter-spacing: var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px));
1486
1451
  }
1487
1452
 
1488
- .button:where([data-size=xlarge]) {
1489
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1453
+ .button.button-size-xlarge {
1454
+ padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1490
1455
  gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
1491
- padding-block: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1456
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1457
+ min-height: var(--theme-button-size-medium-3, var(--theme-size-medium-3, 56px));
1458
+ border-radius: var(--theme-button-radius-large-2, var(--theme-radius-large-2, 16px));
1459
+ }
1460
+ .button.button-size-xlarge span {
1492
1461
  font-size: var(--theme-button-font-body-large-size, var(--font-body-large-size, 19px));
1493
1462
  font-weight: var(--theme-button-font-weight, 400);
1494
1463
  line-height: var(--theme-button-font-body-large-line-height, var(--font-body-large-line-height, 1.5em));
1495
1464
  letter-spacing: var(--theme-button-font-body-large-letter-spacing, var(--font-body-large-letter-spacing, 0px));
1496
1465
  }
1497
1466
 
1498
- .button:where([data-variant=solid][data-size=small]) {
1499
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1500
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1501
- }
1502
-
1503
- .button:where([data-variant=solid][data-size=medium]) {
1504
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1505
- padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
1506
- }
1507
-
1508
- .button:where([data-variant=solid][data-size=large]) {
1509
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1510
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1511
- }
1512
-
1513
- .button:where([data-variant=solid][data-size=xlarge]) {
1514
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1515
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1516
- }
1517
-
1518
- .button:where([data-variant=outlined][data-size=small]) {
1519
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1520
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1521
- }
1522
-
1523
- .button:where([data-variant=outlined][data-size=medium]) {
1524
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1525
- padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
1526
- }
1527
-
1528
- .button:where([data-variant=outlined][data-size=large]) {
1529
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1530
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1531
- }
1532
-
1533
- .button:where([data-variant=outlined][data-size=xlarge]) {
1534
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1535
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1536
- }
1537
-
1538
- .button:where([data-variant=text-button][data-size=small]) {
1539
- padding-block: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1540
- padding-inline: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1541
- }
1542
-
1543
- .button:where([data-variant=text-button][data-size=medium]) {
1544
- padding-block: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1545
- padding-inline: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1546
- }
1547
-
1548
- .button:where([data-variant=text-button][data-size=large]) {
1549
- padding-block: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1550
- padding-inline: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1551
- }
1552
-
1553
- .button:where([data-shape=round][data-size=small]) {
1554
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1555
- padding-inline: var(--theme-button-padding-5, var(--spacing-padding-5, 20px));
1556
- }
1557
-
1558
- .button:where([data-shape=round][data-size=medium]) {
1559
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1560
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1561
- }
1562
-
1563
- .button:where([data-shape=round][data-size=large]) {
1564
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1565
- padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
1566
- }
1567
-
1568
- .button:where([data-variant=solid][data-size=small]) {
1569
- height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1570
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1571
- }
1572
-
1573
- .button:where([data-variant=solid][data-size=medium]) {
1574
- height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1575
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1576
- }
1577
-
1578
- .button:where([data-variant=solid][data-size=large]) {
1579
- height: var(--theme-button-size-medium-2, var(--theme-size-medium-2, 48px));
1580
- border-radius: var(--theme-button-radius-large-1, var(--theme-radius-large-1, 12px));
1581
- }
1582
-
1583
- .button:where([data-variant=solid][data-size=xlarge]) {
1584
- height: var(--theme-button-size-medium-3, var(--theme-size-medium-3, 56px));
1585
- border-radius: var(--theme-button-radius-large-2, var(--theme-radius-large-2, 16px));
1586
- }
1587
-
1588
- .button:where([data-variant=outlined][data-size=small]) {
1589
- height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1590
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1591
- }
1592
-
1593
- .button:where([data-variant=outlined][data-size=medium]) {
1594
- height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1595
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1596
- }
1597
-
1598
- .button:where([data-variant=outlined][data-size=large]) {
1599
- height: var(--theme-button-size-medium-2, var(--theme-size-medium-2, 48px));
1600
- border-radius: var(--theme-button-radius-large-1, var(--theme-radius-large-1, 12px));
1601
- }
1602
-
1603
- .button:where([data-variant=outlined][data-size=xlarge]) {
1604
- height: var(--theme-button-size-medium-3, var(--theme-size-medium-3, 56px));
1605
- border-radius: var(--theme-button-radius-large-2, var(--theme-radius-large-2, 16px));
1606
- }
1607
-
1608
- .button:where([data-variant=text-button][data-size=small]) {
1609
- height: var(--theme-button-size-small-1, var(--theme-size-small-1, 20px));
1610
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1611
- }
1612
-
1613
- .button:where([data-variant=text-button][data-size=medium]) {
1614
- height: var(--theme-button-size-small-2, var(--theme-size-small-2, 24px));
1615
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1616
- }
1617
-
1618
- .button:where([data-variant=text-button][data-size=large]) {
1619
- height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1620
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1621
- }
1622
-
1623
- .button:where([data-shape=round][data-size=small]) {
1624
- height: var(--theme-button-size-small-2, var(--theme-size-small-2, 24px));
1625
- border-radius: var(--theme-button-size-small-2, var(--theme-size-small-2, 24px));
1626
- }
1627
-
1628
- .button:where([data-shape=round][data-size=medium]) {
1629
- height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1630
- border-radius: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1631
- }
1632
-
1633
- .button:where([data-shape=round][data-size=large]) {
1634
- height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1635
- border-radius: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1636
- }
1637
-
1638
- /* Radix Themes outline variant는 box-shadow가 default로 들어가므로 제거 */
1639
- .button.rt-variant-outline,
1640
- .button:where([data-variant=outlined]) {
1467
+ .button.button-fill-outlined {
1641
1468
  box-shadow: none;
1642
1469
  }
1643
1470
 
1644
- .button:where([data-variant=solid][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1471
+ .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1645
1472
  background-color: transparent;
1646
1473
  border-color: transparent;
1647
1474
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
1648
1475
  }
1649
- .button:where([data-variant=solid][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1476
+ .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1650
1477
  background-color: transparent;
1651
1478
  border-color: transparent;
1652
1479
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
1653
1480
  }
1654
1481
 
1655
- .button:where([data-variant=solid][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1482
+ .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1656
1483
  background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1657
1484
  border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1658
1485
  box-shadow: none;
1659
1486
  }
1660
- .button:where([data-variant=solid][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1487
+ .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1661
1488
  background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1662
1489
  border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1663
1490
  box-shadow: none;
1664
1491
  }
1665
1492
 
1666
- .button:where([data-variant=solid][data-intent=teritary]):hover:not(:disabled), .button:where([data-variant=solid][data-intent=teritary])[data-simulated-state=hover]:not(:disabled) {
1493
+ .button.button-fill-solid.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1667
1494
  background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
1668
1495
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1669
1496
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1670
1497
  }
1671
- .button:where([data-variant=solid][data-intent=teritary]):active:not(:disabled), .button:where([data-variant=solid][data-intent=teritary])[data-simulated-state=pressed]:not(:disabled) {
1498
+ .button.button-fill-solid.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1672
1499
  background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
1673
1500
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1674
1501
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.48);
1675
1502
  }
1676
1503
 
1677
- .button:where([data-variant=outlined][data-intent=primary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=primary])[data-simulated-state=hover]:not(:disabled) {
1504
+ .button.button-fill-outlined.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1678
1505
  background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
1679
1506
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1680
1507
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1681
1508
  }
1682
- .button:where([data-variant=outlined][data-intent=primary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=primary])[data-simulated-state=pressed]:not(:disabled) {
1509
+ .button.button-fill-outlined.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1683
1510
  background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
1684
1511
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1685
1512
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1686
1513
  }
1687
1514
 
1688
- .button:where([data-variant=outlined][data-intent=secondary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=secondary])[data-simulated-state=hover]:not(:disabled) {
1515
+ .button.button-fill-outlined.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1689
1516
  background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
1690
1517
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1691
1518
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1692
1519
  }
1693
- .button:where([data-variant=outlined][data-intent=secondary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=secondary])[data-simulated-state=pressed]:not(:disabled) {
1520
+ .button.button-fill-outlined.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1694
1521
  background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
1695
1522
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1696
1523
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1697
1524
  }
1698
1525
 
1699
- .button:where([data-variant=outlined][data-intent=teritary]):hover:not(:disabled), .button:where([data-variant=outlined][data-intent=teritary])[data-simulated-state=hover]:not(:disabled) {
1526
+ .button.button-fill-outlined.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
1700
1527
  background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
1701
1528
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1702
1529
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1703
1530
  }
1704
- .button:where([data-variant=outlined][data-intent=teritary]):active:not(:disabled), .button:where([data-variant=outlined][data-intent=teritary])[data-simulated-state=pressed]:not(:disabled) {
1531
+ .button.button-fill-outlined.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
1705
1532
  background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
1706
1533
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1707
1534
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1708
1535
  }
1709
1536
 
1710
1537
  .button:disabled,
1711
- .button:where([data-disabled=true]) {
1538
+ .button[aria-disabled=true] {
1712
1539
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1713
1540
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1714
1541
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1715
1542
  cursor: not-allowed;
1716
1543
  }
1717
1544
 
1718
- .button:where([data-shape=round]) {
1719
- border-radius: 9999px;
1720
- }
1721
-
1722
- .button:where([data-icon-slot=left]) .button-label {
1545
+ .button.button-icon-left .button-label {
1723
1546
  margin-left: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
1724
1547
  }
1725
1548
 
1726
- .button:where([data-icon-slot=right]) .button-label {
1549
+ .button.button-icon-right .button-label {
1727
1550
  margin-right: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
1728
1551
  }
1729
1552
 
1553
+ .button.button-template-text {
1554
+ min-width: auto;
1555
+ border-color: transparent;
1556
+ background-color: transparent;
1557
+ padding-block: var(--theme-button-text-padding-block, var(--spacing-padding-4, 8px));
1558
+ padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
1559
+ border-width: 0;
1560
+ gap: var(--spacing-gap-1, 4px);
1561
+ border-radius: var(--theme-button-text-radius, var(--theme-radius-small, 4px));
1562
+ }
1563
+
1564
+ .button.button-template-text-size-small {
1565
+ min-height: var(--theme-button-text-min-height-small, var(--theme-size-small-1, 20px));
1566
+ padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
1567
+ }
1568
+
1569
+ .button.button-template-text-size-medium {
1570
+ min-height: var(--theme-button-text-min-height-medium, var(--theme-size-small-2, 24px));
1571
+ padding-inline: var(--theme-button-text-padding-inline-medium, var(--spacing-padding-5, 12px));
1572
+ }
1573
+
1574
+ .button.button-template-text-size-large {
1575
+ min-height: var(--theme-button-text-min-height-large, var(--theme-size-small-3, 32px));
1576
+ padding-inline: var(--theme-button-text-padding-inline-large, var(--spacing-padding-5, 12px));
1577
+ }
1578
+
1579
+ .button.button-template-text:disabled {
1580
+ background-color: transparent;
1581
+ border-color: transparent;
1582
+ }
1583
+
1584
+ .button.button-template-text.button-priority-secondary {
1585
+ color: var(--theme-button-color-primary-default, var(--color-primary-default));
1586
+ }
1587
+ .button.button-template-text.button-priority-secondary:hover:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=hover]:not(:disabled) {
1588
+ background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
1589
+ }
1590
+ .button.button-template-text.button-priority-secondary:active:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=pressed]:not(:disabled) {
1591
+ background-color: var(--color-secondary-strong, var(--color-blue-90));
1592
+ }
1593
+
1594
+ .button.button-template-text.button-priority-tertiary {
1595
+ color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
1596
+ }
1597
+ .button.button-template-text.button-priority-tertiary:hover:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=hover]:not(:disabled) {
1598
+ background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
1599
+ }
1600
+ .button.button-template-text.button-priority-tertiary:active:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=pressed]:not(:disabled) {
1601
+ background-color: var(--color-bg-surface-strong, var(--color-cool-gray-20));
1602
+ }
1603
+
1604
+ .button.button-template-round {
1605
+ min-width: auto;
1606
+ padding-block: var(--theme-button-round-padding-block, var(--spacing-padding-2, 4px));
1607
+ padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
1608
+ gap: var(--spacing-gap-2, 8px);
1609
+ }
1610
+
1611
+ .button.button-template-round-size-small {
1612
+ min-height: var(--theme-button-round-min-height-small, var(--theme-size-small-2, 24px));
1613
+ padding-inline: var(--theme-button-round-padding-inline-small, var(--spacing-padding-5, 12px));
1614
+ border-radius: var(--theme-button-round-radius-small, var(--theme-radius-xlarge-2, 16px));
1615
+ }
1616
+
1617
+ .button.button-template-round-size-medium {
1618
+ min-height: var(--theme-button-round-min-height-medium, var(--theme-size-small-3, 32px));
1619
+ padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
1620
+ border-radius: var(--theme-button-round-radius-medium, var(--theme-radius-xlarge-2, 16px));
1621
+ }
1622
+
1623
+ .button.button-template-round-size-large {
1624
+ min-height: var(--theme-button-round-min-height-large, var(--theme-size-medium-1, 40px));
1625
+ padding-inline: var(--theme-button-round-padding-inline-large, var(--spacing-padding-7, 20px));
1626
+ border-radius: var(--theme-button-round-radius-large, 30px);
1627
+ }
1628
+
1730
1629
  /* TODO(calendar): 스타일을 SOT 토큰 값으로 정의한다. */
1731
1630
  :where(.radix-themes, .theme-root, :root) {
1732
1631
  --theme-checkbox-frame-size-medium: 20px;
@@ -2500,12 +2399,12 @@ figure.chip {
2500
2399
  --theme-input-height-small: var(--theme-size-medium-1);
2501
2400
  --theme-input-height-medium: var(--theme-size-medium-2);
2502
2401
  --theme-input-height-large: var(--theme-size-medium-3);
2503
- --theme-input-height-teritary: calc(var(--theme-size-medium-2) + 24px);
2402
+ --theme-input-height-tertiary: calc(var(--theme-size-medium-2) + 24px);
2504
2403
  --theme-input-padding-x: var(--spacing-padding-6);
2505
2404
  --theme-input-padding-y: var(--spacing-padding-4);
2506
2405
  --theme-input-gap: var(--spacing-gap-4);
2507
2406
  --theme-input-radius-default: var(--theme-radius-large-1);
2508
- --theme-input-radius-teritary: var(--theme-radius-large-2);
2407
+ --theme-input-radius-tertiary: var(--theme-radius-large-2);
2509
2408
  --theme-input-label-color: var(--color-label-standard);
2510
2409
  --theme-input-helper-color: var(--color-label-neutral);
2511
2410
  --theme-input-helper-disabled-color: var(--color-label-disabled);
@@ -2591,23 +2490,23 @@ figure.chip {
2591
2490
  padding-block: var(--spacing-padding-4);
2592
2491
  background-color: transparent;
2593
2492
  }
2594
- .input-field[data-appearance=teritary] {
2595
- border-radius: var(--theme-input-radius-teritary);
2493
+ .input-field[data-appearance=tertiary] {
2494
+ border-radius: var(--theme-input-radius-tertiary);
2596
2495
  background-color: var(--theme-input-surface);
2597
- min-height: var(--theme-input-height-teritary);
2496
+ min-height: var(--theme-input-height-tertiary);
2598
2497
  flex-wrap: wrap;
2599
2498
  row-gap: var(--spacing-gap-1);
2600
2499
  column-gap: var(--theme-input-gap);
2601
2500
  }
2602
- .input-field[data-appearance=teritary] .input-inline-label {
2501
+ .input-field[data-appearance=tertiary] .input-inline-label {
2603
2502
  flex-basis: 100%;
2604
2503
  }
2605
- .input-field[data-appearance=teritary] .input-element {
2504
+ .input-field[data-appearance=tertiary] .input-element {
2606
2505
  min-height: var(--theme-size-medium-2);
2607
2506
  width: auto;
2608
2507
  flex: 1 1 auto;
2609
2508
  }
2610
- .input-field[data-appearance=teritary] .input-element + .input-affix {
2509
+ .input-field[data-appearance=tertiary] .input-element + .input-affix {
2611
2510
  margin-left: auto;
2612
2511
  }
2613
2512
  .input-field:not([data-appearance=secondary])[data-state=active], .input-field:not([data-appearance=secondary])[data-state=focused] {
@@ -2666,7 +2565,7 @@ figure.chip {
2666
2565
  padding-inline: 0;
2667
2566
  }
2668
2567
 
2669
- .input-field[data-appearance=teritary] .input-element {
2568
+ .input-field[data-appearance=tertiary] .input-element {
2670
2569
  min-height: var(--theme-size-medium-2);
2671
2570
  }
2672
2571
 
@@ -3443,17 +3342,14 @@ figure.chip {
3443
3342
  /* Figma node 694:4619 측정값을 CSS 변수로 고정해 Storybook과 실 서비스 간 시각 편차를 줄인다. */
3444
3343
  --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
3445
3344
  --tab-label-font-weight: var(--font-heading-xsmall-weight, 600);
3446
- --tab-label-line-height: var(--font-heading-xsmall-line-height, 1.5em);
3447
- --tab-label-letter-spacing: var(--font-heading-xsmall-letter-spacing, 0px);
3448
- --tab-gap: 10px;
3345
+ --tab-label-line-height: 1.4;
3346
+ --tab-label-letter-spacing: 0px;
3347
+ --tab-gap: var(--spacing-gap-2, 8px);
3449
3348
  --tab-padding-y: 10px;
3450
- --tab-padding-x: 20px;
3349
+ --tab-padding-x: var(--spacing-padding-8, 24px);
3451
3350
  --tab-icon-gap: 6px;
3452
- --tab-line-track-color: var(
3453
- --color-border-divider,
3454
- var(--color-cool-gray-85)
3455
- );
3456
- --tab-line-track-height: 1.6px;
3351
+ --tab-line-track-color: var(--color-border-divider, #f2f2f3);
3352
+ --tab-line-track-height: 1px;
3457
3353
  --tab-line-indicator-height: 2px;
3458
3354
  --tab-color-active-default: #1a6aff;
3459
3355
  --tab-color-active: var(--tab-color-active-default);
@@ -3463,12 +3359,33 @@ figure.chip {
3463
3359
  --tab-fill-active-color: var(--color-common-100, #ffffff);
3464
3360
  --tab-inactive-color: var(--color-label-alternative, #afb1b6);
3465
3361
  --tab-disabled-opacity: 0.4;
3362
+ --tab-height: 48px;
3466
3363
  width: 100%;
3467
3364
  display: flex;
3468
3365
  flex-direction: column;
3469
3366
  gap: var(--spacing-gap-3);
3470
3367
  }
3471
3368
 
3369
+ .tab-root:where([data-scale=small]) {
3370
+ --tab-label-font-size: var(--font-heading-xxsmall-size, 15px);
3371
+ --tab-label-font-weight: var(--font-heading-xxsmall-weight, 600);
3372
+ --tab-height: 40px;
3373
+ --tab-padding-x: var(--spacing-padding-4, 8px);
3374
+ }
3375
+
3376
+ .tab-root:where([data-scale=medium]) {
3377
+ --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
3378
+ --tab-label-font-weight: var(--font-heading-xsmall-weight, 600);
3379
+ --tab-height: 48px;
3380
+ }
3381
+
3382
+ .tab-root:where([data-scale=large]) {
3383
+ --tab-label-font-size: var(--font-heading-small-size, 19px);
3384
+ --tab-label-font-weight: var(--font-heading-small-weight, 600);
3385
+ --tab-height: 56px;
3386
+ --tab-padding-x: var(--spacing-padding-8, 24px);
3387
+ }
3388
+
3472
3389
  .tab-list {
3473
3390
  display: flex;
3474
3391
  align-items: stretch;
@@ -3492,6 +3409,7 @@ figure.chip {
3492
3409
  align-items: center;
3493
3410
  justify-content: center;
3494
3411
  gap: var(--tab-icon-gap);
3412
+ min-height: var(--tab-height);
3495
3413
  padding: var(--tab-padding-y) var(--tab-padding-x);
3496
3414
  background: transparent;
3497
3415
  border: none;
@@ -3591,7 +3509,6 @@ figure.chip {
3591
3509
  .tab-trigger:where([data-variant=fill]) {
3592
3510
  border-radius: 12px;
3593
3511
  min-width: 0;
3594
- padding: var(--tab-padding-y) var(--tab-padding-x);
3595
3512
  }
3596
3513
 
3597
3514
  .tab-trigger:where([data-variant=fill][data-state=active]) {