@uniai-fe/uds-templates 0.0.8 → 0.0.10

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.
package/dist/styles.css CHANGED
@@ -18,6 +18,7 @@
18
18
  letter-spacing: -0.05em;
19
19
  flex-shrink: 0;
20
20
  overscroll-behavior-y: none;
21
+ font-family: var(--font-family-sans, "Pretendard JP Variable", "Pretendard JP", "Pretendard Variable", "Pretendard", "Inter", sans-serif);
21
22
  }
22
23
  *:focus,
23
24
  *:focus-within,
@@ -626,23 +627,41 @@
626
627
  --theme-radius-xlarge: 16px;
627
628
  }
628
629
  }
630
+ @layer theme.tokens.typography {
631
+ @font-face {
632
+ font-family: "Pretendard JP Variable";
633
+ src: url("./fonts/pretendard-jp/PretendardJPVariable.woff2") format("woff2");
634
+ font-weight: 100 900;
635
+ font-style: normal;
636
+ font-display: swap;
637
+ }
638
+ @font-face {
639
+ font-family: "InterVariable";
640
+ src: url("./fonts/inter/InterVariable.woff2") format("woff2");
641
+ font-weight: 100 900;
642
+ font-style: normal;
643
+ font-display: swap;
644
+ }
645
+ }
629
646
  @layer theme.tokens.typography {
630
647
  :root {
631
648
  --font-family-pretendard:
632
649
  "Pretendard JP Variable", "Pretendard JP", "Pretendard Variable",
633
- "Pretendard", "Noto Sans KR", "-apple-system", "BlinkMacSystemFont",
634
- "Apple SD Gothic Neo", "Segoe UI", "Roboto", "Helvetica",
635
- "Helvetica Neue", "Apple Color Emoji", "Segoe UI Emoji",
650
+ "Pretendard", "InterVariable", "Inter", "Noto Sans KR", "-apple-system",
651
+ "BlinkMacSystemFont", "Apple SD Gothic Neo", "Segoe UI", "Roboto",
652
+ "Helvetica Neue", "Helvetica", "Apple Color Emoji", "Segoe UI Emoji",
636
653
  "Segoe UI Symbol", "Malgun Gothic", "맑은 고딕", "돋움", "dotum",
637
654
  "Oxygen", "Oxygen-Sans", "Ubuntu", "Cantarell", "sans-serif";
638
655
  --font-family-inter:
639
- "InterVariable", "Inter", "-apple-system", "BlinkMacSystemFont",
640
- "Segoe UI", "Roboto", "Helvetica", "Helvetica Neue", "Apple Color Emoji",
641
- "Segoe UI Emoji", "Segoe UI Symbol", "Malgun Gothic", "맑은 고딕", "돋움",
642
- "dotum", "Oxygen", "Oxygen-Sans", "Ubuntu", "Cantarell", "sans-serif";
656
+ "InterVariable", "Inter", "Pretendard JP Variable", "Pretendard JP",
657
+ "Pretendard Variable", "Pretendard", "-apple-system",
658
+ "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Helvetica",
659
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Malgun Gothic",
660
+ "맑은 고딕", "돋움", "dotum", "Oxygen", "Oxygen-Sans", "Ubuntu",
661
+ "Cantarell", "sans-serif";
643
662
  --font-family-system:
644
- "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica",
645
- "Helvetica Neue", "Apple Color Emoji", "Segoe UI Emoji",
663
+ "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto",
664
+ "Helvetica Neue", "Helvetica", "Apple Color Emoji", "Segoe UI Emoji",
646
665
  "Segoe UI Symbol", "Malgun Gothic", "맑은 고딕", "돋움", "dotum",
647
666
  "Oxygen", "Oxygen-Sans", "Ubuntu", "Cantarell", "sans-serif";
648
667
  --font-family-sans: var(--font-family-pretendard);
@@ -1051,7 +1070,7 @@
1051
1070
  --badge-fill-label-color: var(--color-primary-default, #1a6aff);
1052
1071
  }
1053
1072
 
1054
- .badge:where([data-style=fill][data-intent=teritary]) {
1073
+ .badge:where([data-style=fill][data-intent=tertiary]) {
1055
1074
  --badge-fill-bg-color: var(--color-cool-gray-10, #18191b);
1056
1075
  --badge-fill-label-color: var(--color-common-100, #ffffff);
1057
1076
  }
@@ -1092,7 +1111,7 @@
1092
1111
  --badge-outline-label-color: var(--color-primary-strong, #0050e5);
1093
1112
  }
1094
1113
 
1095
- .badge:where([data-style=outlined][data-intent=teritary]) {
1114
+ .badge:where([data-style=outlined][data-intent=tertiary]) {
1096
1115
  --badge-outline-border-color: var(--color-border-standard-heavy, #313235);
1097
1116
  --badge-outline-label-color: var(--color-label-strong, #18191b);
1098
1117
  }
@@ -1131,7 +1150,7 @@
1131
1150
  --badge-dot-color: var(--color-red-55, #f43625);
1132
1151
  }
1133
1152
 
1134
- :where(.radix-themes, .theme-root, :root) {
1153
+ :root {
1135
1154
  /* spacing */
1136
1155
  --theme-button-gap-1: var(--spacing-gap-1);
1137
1156
  --theme-button-gap-2: var(--spacing-gap-2);
@@ -1145,6 +1164,24 @@
1145
1164
  --theme-button-padding-7: var(--spacing-padding-7);
1146
1165
  --theme-button-padding-9: var(--spacing-padding-9);
1147
1166
  --theme-button-min-width: var(--theme-size-small-2);
1167
+ --theme-button-text-padding-block: var(--spacing-padding-4, 8px);
1168
+ --theme-button-text-padding-inline-small: var(--spacing-padding-4, 8px);
1169
+ --theme-button-text-padding-inline-medium: var(--spacing-padding-5, 12px);
1170
+ --theme-button-text-padding-inline-large: var(--spacing-padding-5, 12px);
1171
+ --theme-button-text-min-height-small: var(--theme-size-small-1, 20px);
1172
+ --theme-button-text-min-height-medium: var(--theme-size-small-2, 24px);
1173
+ --theme-button-text-min-height-large: var(--theme-size-small-3, 32px);
1174
+ --theme-button-text-radius: var(--theme-radius-small, 4px);
1175
+ --theme-button-round-padding-inline-small: var(--spacing-padding-5, 12px);
1176
+ --theme-button-round-padding-inline-medium: var(--spacing-padding-6, 16px);
1177
+ --theme-button-round-padding-inline-large: var(--spacing-padding-7, 20px);
1178
+ --theme-button-round-padding-block: var(--spacing-padding-2, 4px);
1179
+ --theme-button-round-min-height-small: var(--theme-size-small-2, 24px);
1180
+ --theme-button-round-min-height-medium: var(--theme-size-small-3, 32px);
1181
+ --theme-button-round-min-height-large: var(--theme-size-medium-1, 40px);
1182
+ --theme-button-round-radius-small: var(--theme-radius-xlarge-2, 16px);
1183
+ --theme-button-round-radius-medium: var(--theme-radius-xlarge-2, 16px);
1184
+ --theme-button-round-radius-large: 30px;
1148
1185
  /* size/radius */
1149
1186
  --theme-button-size-small-1: var(--theme-size-small-1);
1150
1187
  --theme-button-size-small-2: var(--theme-size-small-2);
@@ -1231,16 +1268,9 @@
1231
1268
  --theme-button-overlay-outlined-primary-bg: var(--color-blue-90);
1232
1269
  --theme-button-overlay-outlined-secondary-bg: var(--color-cool-gray-95);
1233
1270
  --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
1271
  }
1242
1272
 
1243
- /* Radix reset 이후에도 primitives 스타일이 유지되도록 공통 클래스에 스타일 부여 */
1273
+ /* Primitives 버튼 공통 스타일 */
1244
1274
  .button {
1245
1275
  display: flex;
1246
1276
  align-items: center;
@@ -1256,477 +1286,365 @@
1256
1286
  background-color: transparent;
1257
1287
  color: var(--theme-button-color-neutral-base, var(--color-neutral-20));
1258
1288
  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
1289
  filter: none;
1272
1290
  cursor: pointer;
1273
1291
  }
1274
-
1275
- .button:where([data-block=true]) {
1292
+ .button span {
1293
+ font-family: var(--font-caption-medium-family, var(--theme-button-font-body-medium-family, var(--font-body-medium-family, "Pretendard")));
1294
+ font-size: var(--font-caption-medium-size, var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 16px)));
1295
+ font-weight: var(--font-caption-medium-weight, var(--theme-button-font-weight, 400));
1296
+ line-height: var(--font-caption-medium-line-height, var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 24px)));
1297
+ letter-spacing: var(--font-caption-medium-letter-spacing, var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px)));
1298
+ }
1299
+ .button .button-icon,
1300
+ .button .button-label,
1301
+ .button .button-left,
1302
+ .button .button-right {
1303
+ display: inline-flex;
1304
+ align-items: center;
1305
+ justify-content: center;
1306
+ }
1307
+ .button.button-block {
1276
1308
  width: 100%;
1277
1309
  }
1278
1310
 
1279
- .button:where([data-loading=true]) {
1311
+ .button[aria-busy=true] {
1280
1312
  pointer-events: none;
1281
1313
  cursor: progress;
1282
1314
  }
1283
1315
 
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]) {
1316
+ .button.button-fill-solid.button-priority-primary {
1294
1317
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1295
1318
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1296
1319
  color: var(--theme-button-color-common-100, var(--color-common-100));
1297
1320
  }
1298
- .button:where([data-variant=solid][data-intent=primary]):disabled, .button:where([data-variant=solid][data-intent=primary])[data-disabled=true] {
1321
+ .button.button-fill-solid.button-priority-primary:disabled, .button.button-fill-solid.button-priority-primary[aria-disabled=true] {
1299
1322
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1300
1323
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1301
1324
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1302
1325
  }
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) {
1326
+ .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
1327
  background-color: var(--theme-button-color-blue-50, var(--color-blue-50));
1305
1328
  border-color: var(--theme-button-color-blue-50, var(--color-blue-50));
1306
1329
  }
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) {
1330
+ .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
1331
  background-color: var(--theme-button-color-blue-45, var(--color-blue-45));
1309
1332
  border-color: var(--theme-button-color-blue-45, var(--color-blue-45));
1310
1333
  }
1311
1334
 
1312
- .button:where([data-variant=outlined][data-intent=primary]) {
1335
+ .button.button-fill-outlined.button-priority-primary {
1313
1336
  background-color: transparent;
1314
1337
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1315
1338
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1316
1339
  }
1317
- .button:where([data-variant=outlined][data-intent=primary]):disabled, .button:where([data-variant=outlined][data-intent=primary])[data-disabled=true] {
1340
+ .button.button-fill-outlined.button-priority-primary:disabled, .button.button-fill-outlined.button-priority-primary[aria-disabled=true] {
1318
1341
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1319
1342
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1320
1343
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1321
1344
  }
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) {
1345
+ .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
1346
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1324
1347
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1325
1348
  }
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) {
1349
+ .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
1350
  background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1328
1351
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1329
1352
  }
1330
1353
 
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]) {
1354
+ .button.button-fill-solid.button-priority-secondary {
1349
1355
  background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1350
1356
  border-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1351
1357
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1352
1358
  }
1353
- .button:where([data-variant=solid][data-intent=secondary]):disabled, .button:where([data-variant=solid][data-intent=secondary])[data-disabled=true] {
1359
+ .button.button-fill-solid.button-priority-secondary:disabled, .button.button-fill-solid.button-priority-secondary[aria-disabled=true] {
1354
1360
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1355
1361
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1356
1362
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1357
1363
  }
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) {
1364
+ .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
1365
  background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1360
1366
  border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1361
1367
  }
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) {
1368
+ .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
1369
  background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1364
1370
  border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1365
1371
  }
1366
1372
 
1367
- .button:where([data-variant=outlined][data-intent=secondary]) {
1373
+ .button.button-fill-outlined.button-priority-secondary {
1368
1374
  background-color: transparent;
1369
1375
  color: var(--theme-button-color-primary-default, var(--color-primary-default));
1370
1376
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1371
1377
  }
1372
- .button:where([data-variant=outlined][data-intent=secondary]):disabled, .button:where([data-variant=outlined][data-intent=secondary])[data-disabled=true] {
1378
+ .button.button-fill-outlined.button-priority-secondary:disabled, .button.button-fill-outlined.button-priority-secondary[aria-disabled=true] {
1373
1379
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1374
1380
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1375
1381
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1376
1382
  }
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) {
1383
+ .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
1384
  background-color: var(--theme-button-color-blue-90, var(--color-blue-90));
1379
1385
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1380
1386
  }
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) {
1387
+ .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
1388
  background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
1383
1389
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1384
1390
  }
1385
1391
 
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]) {
1392
+ .button.button-fill-solid.button-priority-tertiary {
1404
1393
  background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1405
1394
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1406
1395
  color: var(--theme-button-tertiary-solid-foreground, var(--color-label-neutral));
1407
1396
  }
1408
- .button:where([data-variant=solid][data-intent=teritary]):disabled, .button:where([data-variant=solid][data-intent=teritary])[data-disabled=true] {
1397
+ .button.button-fill-solid.button-priority-tertiary:disabled, .button.button-fill-solid.button-priority-tertiary[aria-disabled=true] {
1409
1398
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1410
1399
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1411
1400
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1412
1401
  }
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) {
1402
+ .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
1403
  background-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
1415
1404
  border-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
1416
1405
  }
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) {
1406
+ .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
1407
  background-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
1419
1408
  border-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
1420
1409
  }
1421
1410
 
1422
- .button:where([data-variant=outlined][data-intent=teritary]) {
1411
+ .button.button-fill-outlined.button-priority-tertiary {
1423
1412
  background-color: transparent;
1424
1413
  color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
1425
1414
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1426
1415
  }
1427
- .button:where([data-variant=outlined][data-intent=teritary]):disabled, .button:where([data-variant=outlined][data-intent=teritary])[data-disabled=true] {
1416
+ .button.button-fill-outlined.button-priority-tertiary:disabled, .button.button-fill-outlined.button-priority-tertiary[aria-disabled=true] {
1428
1417
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1429
1418
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1430
1419
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1431
1420
  }
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) {
1421
+ .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
1422
  background-color: var(--theme-button-color-cool-gray-95, var(--color-cool-gray-95));
1434
1423
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1435
1424
  }
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) {
1425
+ .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
1426
  background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1438
1427
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1439
1428
  }
1440
1429
 
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));
1430
+ .button.button-size-small {
1431
+ padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1432
+ gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
1433
+ padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1434
+ min-height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
1435
+ border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1456
1436
  }
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));
1437
+ .button.button-size-small span {
1462
1438
  font-size: var(--theme-button-font-label-medium-size, var(--font-label-medium-size, 14px));
1463
1439
  font-weight: var(--theme-button-font-weight, 400);
1464
1440
  line-height: var(--theme-button-font-label-medium-line-height, var(--font-label-medium-line-height, 1.5em));
1465
1441
  letter-spacing: var(--theme-button-font-label-medium-letter-spacing, var(--font-label-medium-letter-spacing, 0px));
1466
1442
  }
1467
1443
 
1468
- .button:where([data-size=medium]) {
1469
- padding-inline: var(--theme-button-padding-4, var(--spacing-padding-4, 16px));
1444
+ .button.button-size-medium {
1445
+ padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
1470
1446
  gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
1471
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
1447
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1448
+ min-height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
1449
+ border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
1450
+ }
1451
+ .button.button-size-medium span {
1472
1452
  font-size: var(--theme-button-font-label-large-size, var(--font-label-large-size, 16px));
1473
1453
  font-weight: var(--theme-button-font-weight, 400);
1474
1454
  line-height: var(--theme-button-font-label-large-line-height, var(--font-label-large-line-height, 1.5em));
1475
1455
  letter-spacing: var(--theme-button-font-label-large-letter-spacing, var(--font-label-large-letter-spacing, 0px));
1476
1456
  }
1477
1457
 
1478
- .button:where([data-size=large]) {
1479
- padding-inline: var(--theme-button-padding-5, var(--spacing-padding-5, 20px));
1458
+ .button.button-size-large {
1459
+ padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1480
1460
  gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
1481
- padding-block: var(--theme-button-padding-3, var(--spacing-padding-3, 6px));
1461
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1462
+ min-height: var(--theme-button-size-medium-2, var(--theme-size-medium-2, 48px));
1463
+ border-radius: var(--theme-button-radius-large-1, var(--theme-radius-large-1, 12px));
1464
+ }
1465
+ .button.button-size-large span {
1482
1466
  font-size: var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 17px));
1483
1467
  font-weight: var(--theme-button-font-weight, 400);
1484
1468
  line-height: var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 1.5em));
1485
1469
  letter-spacing: var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px));
1486
1470
  }
1487
1471
 
1488
- .button:where([data-size=xlarge]) {
1489
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
1472
+ .button.button-size-xlarge {
1473
+ padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
1490
1474
  gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
1491
- padding-block: var(--theme-button-padding-4, var(--spacing-padding-4, 8px));
1475
+ padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
1476
+ min-height: var(--theme-button-size-medium-3, var(--theme-size-medium-3, 56px));
1477
+ border-radius: var(--theme-button-radius-large-2, var(--theme-radius-large-2, 16px));
1478
+ }
1479
+ .button.button-size-xlarge span {
1492
1480
  font-size: var(--theme-button-font-body-large-size, var(--font-body-large-size, 19px));
1493
1481
  font-weight: var(--theme-button-font-weight, 400);
1494
1482
  line-height: var(--theme-button-font-body-large-line-height, var(--font-body-large-line-height, 1.5em));
1495
1483
  letter-spacing: var(--theme-button-font-body-large-letter-spacing, var(--font-body-large-letter-spacing, 0px));
1496
1484
  }
1497
1485
 
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]) {
1486
+ .button.button-fill-outlined {
1641
1487
  box-shadow: none;
1642
1488
  }
1643
1489
 
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) {
1490
+ .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
1491
  background-color: transparent;
1646
1492
  border-color: transparent;
1647
1493
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
1648
1494
  }
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) {
1495
+ .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
1496
  background-color: transparent;
1651
1497
  border-color: transparent;
1652
1498
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
1653
1499
  }
1654
1500
 
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) {
1501
+ .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
1502
  background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1657
1503
  border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
1658
1504
  box-shadow: none;
1659
1505
  }
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) {
1506
+ .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
1507
  background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1662
1508
  border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
1663
1509
  box-shadow: none;
1664
1510
  }
1665
1511
 
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) {
1512
+ .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
1513
  background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
1668
1514
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1669
1515
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1670
1516
  }
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) {
1517
+ .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
1518
  background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
1673
1519
  border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
1674
1520
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.48);
1675
1521
  }
1676
1522
 
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) {
1523
+ .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
1524
  background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
1679
1525
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1680
1526
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1681
1527
  }
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) {
1528
+ .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
1529
  background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
1684
1530
  border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
1685
1531
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1686
1532
  }
1687
1533
 
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) {
1534
+ .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
1535
  background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
1690
1536
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1691
1537
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1692
1538
  }
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) {
1539
+ .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
1540
  background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
1695
1541
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1696
1542
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1697
1543
  }
1698
1544
 
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) {
1545
+ .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
1546
  background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
1701
1547
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1702
1548
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
1703
1549
  }
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) {
1550
+ .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
1551
  background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
1706
1552
  border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
1707
1553
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
1708
1554
  }
1709
1555
 
1710
1556
  .button:disabled,
1711
- .button:where([data-disabled=true]) {
1557
+ .button[aria-disabled=true] {
1712
1558
  background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1713
1559
  border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
1714
1560
  color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
1715
1561
  cursor: not-allowed;
1716
1562
  }
1717
1563
 
1718
- .button:where([data-shape=round]) {
1719
- border-radius: 9999px;
1720
- }
1721
-
1722
- .button:where([data-icon-slot=left]) .button-label {
1564
+ .button.button-icon-left .button-label {
1723
1565
  margin-left: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
1724
1566
  }
1725
1567
 
1726
- .button:where([data-icon-slot=right]) .button-label {
1568
+ .button.button-icon-right .button-label {
1727
1569
  margin-right: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
1728
1570
  }
1729
1571
 
1572
+ .button.button-template-text {
1573
+ min-width: auto;
1574
+ border-color: transparent;
1575
+ background-color: transparent;
1576
+ padding-block: var(--theme-button-text-padding-block, var(--spacing-padding-4, 8px));
1577
+ padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
1578
+ border-width: 0;
1579
+ gap: var(--spacing-gap-1, 4px);
1580
+ border-radius: var(--theme-button-text-radius, var(--theme-radius-small, 4px));
1581
+ }
1582
+
1583
+ .button.button-template-text-size-small {
1584
+ min-height: var(--theme-button-text-min-height-small, var(--theme-size-small-1, 20px));
1585
+ padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
1586
+ }
1587
+
1588
+ .button.button-template-text-size-medium {
1589
+ min-height: var(--theme-button-text-min-height-medium, var(--theme-size-small-2, 24px));
1590
+ padding-inline: var(--theme-button-text-padding-inline-medium, var(--spacing-padding-5, 12px));
1591
+ }
1592
+
1593
+ .button.button-template-text-size-large {
1594
+ min-height: var(--theme-button-text-min-height-large, var(--theme-size-small-3, 32px));
1595
+ padding-inline: var(--theme-button-text-padding-inline-large, var(--spacing-padding-5, 12px));
1596
+ }
1597
+
1598
+ .button.button-template-text:disabled {
1599
+ background-color: transparent;
1600
+ border-color: transparent;
1601
+ }
1602
+
1603
+ .button.button-template-text.button-priority-secondary {
1604
+ color: var(--theme-button-color-primary-default, var(--color-primary-default));
1605
+ }
1606
+ .button.button-template-text.button-priority-secondary:hover:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=hover]:not(:disabled) {
1607
+ background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
1608
+ }
1609
+ .button.button-template-text.button-priority-secondary:active:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=pressed]:not(:disabled) {
1610
+ background-color: var(--color-secondary-strong, var(--color-blue-90));
1611
+ }
1612
+
1613
+ .button.button-template-text.button-priority-tertiary {
1614
+ color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
1615
+ }
1616
+ .button.button-template-text.button-priority-tertiary:hover:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=hover]:not(:disabled) {
1617
+ background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
1618
+ }
1619
+ .button.button-template-text.button-priority-tertiary:active:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=pressed]:not(:disabled) {
1620
+ background-color: var(--color-bg-surface-strong, var(--color-cool-gray-20));
1621
+ }
1622
+
1623
+ .button.button-template-round {
1624
+ min-width: auto;
1625
+ padding-block: var(--theme-button-round-padding-block, var(--spacing-padding-2, 4px));
1626
+ padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
1627
+ gap: var(--spacing-gap-2, 8px);
1628
+ }
1629
+
1630
+ .button.button-template-round-size-small {
1631
+ min-height: var(--theme-button-round-min-height-small, var(--theme-size-small-2, 24px));
1632
+ padding-inline: var(--theme-button-round-padding-inline-small, var(--spacing-padding-5, 12px));
1633
+ border-radius: var(--theme-button-round-radius-small, var(--theme-radius-xlarge-2, 16px));
1634
+ }
1635
+
1636
+ .button.button-template-round-size-medium {
1637
+ min-height: var(--theme-button-round-min-height-medium, var(--theme-size-small-3, 32px));
1638
+ padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
1639
+ border-radius: var(--theme-button-round-radius-medium, var(--theme-radius-xlarge-2, 16px));
1640
+ }
1641
+
1642
+ .button.button-template-round-size-large {
1643
+ min-height: var(--theme-button-round-min-height-large, var(--theme-size-medium-1, 40px));
1644
+ padding-inline: var(--theme-button-round-padding-inline-large, var(--spacing-padding-7, 20px));
1645
+ border-radius: var(--theme-button-round-radius-large, 30px);
1646
+ }
1647
+
1730
1648
  /* TODO(calendar): 스타일을 SOT 토큰 값으로 정의한다. */
1731
1649
  :where(.radix-themes, .theme-root, :root) {
1732
1650
  --theme-checkbox-frame-size-medium: 20px;
@@ -2500,12 +2418,12 @@ figure.chip {
2500
2418
  --theme-input-height-small: var(--theme-size-medium-1);
2501
2419
  --theme-input-height-medium: var(--theme-size-medium-2);
2502
2420
  --theme-input-height-large: var(--theme-size-medium-3);
2503
- --theme-input-height-teritary: calc(var(--theme-size-medium-2) + 24px);
2421
+ --theme-input-height-tertiary: calc(var(--theme-size-medium-2) + 24px);
2504
2422
  --theme-input-padding-x: var(--spacing-padding-6);
2505
2423
  --theme-input-padding-y: var(--spacing-padding-4);
2506
2424
  --theme-input-gap: var(--spacing-gap-4);
2507
2425
  --theme-input-radius-default: var(--theme-radius-large-1);
2508
- --theme-input-radius-teritary: var(--theme-radius-large-2);
2426
+ --theme-input-radius-tertiary: var(--theme-radius-large-2);
2509
2427
  --theme-input-label-color: var(--color-label-standard);
2510
2428
  --theme-input-helper-color: var(--color-label-neutral);
2511
2429
  --theme-input-helper-disabled-color: var(--color-label-disabled);
@@ -2583,7 +2501,7 @@ figure.chip {
2583
2501
  .input-field[data-size=large] {
2584
2502
  min-height: var(--theme-input-height-large);
2585
2503
  }
2586
- .input-field[data-appearance=secondary] {
2504
+ .input-field[data-priority=secondary] {
2587
2505
  border: none;
2588
2506
  border-bottom: var(--theme-input-border-width-default) solid var(--theme-input-border-color);
2589
2507
  border-radius: 0;
@@ -2591,38 +2509,38 @@ figure.chip {
2591
2509
  padding-block: var(--spacing-padding-4);
2592
2510
  background-color: transparent;
2593
2511
  }
2594
- .input-field[data-appearance=teritary] {
2595
- border-radius: var(--theme-input-radius-teritary);
2512
+ .input-field[data-priority=tertiary] {
2513
+ border-radius: var(--theme-input-radius-tertiary);
2596
2514
  background-color: var(--theme-input-surface);
2597
- min-height: var(--theme-input-height-teritary);
2515
+ min-height: var(--theme-input-height-tertiary);
2598
2516
  flex-wrap: wrap;
2599
2517
  row-gap: var(--spacing-gap-1);
2600
2518
  column-gap: var(--theme-input-gap);
2601
2519
  }
2602
- .input-field[data-appearance=teritary] .input-inline-label {
2520
+ .input-field[data-priority=tertiary] .input-inline-label {
2603
2521
  flex-basis: 100%;
2604
2522
  }
2605
- .input-field[data-appearance=teritary] .input-element {
2523
+ .input-field[data-priority=tertiary] .input-element {
2606
2524
  min-height: var(--theme-size-medium-2);
2607
2525
  width: auto;
2608
2526
  flex: 1 1 auto;
2609
2527
  }
2610
- .input-field[data-appearance=teritary] .input-element + .input-affix {
2528
+ .input-field[data-priority=tertiary] .input-element + .input-affix {
2611
2529
  margin-left: auto;
2612
2530
  }
2613
- .input-field:not([data-appearance=secondary])[data-state=active], .input-field:not([data-appearance=secondary])[data-state=focused] {
2531
+ .input-field:not([data-priority=secondary])[data-state=active], .input-field:not([data-priority=secondary])[data-state=focused] {
2614
2532
  border-color: var(--theme-input-border-active);
2615
2533
  border-width: var(--theme-input-border-width-emphasis);
2616
2534
  }
2617
- .input-field:not([data-appearance=secondary])[data-state=success] {
2535
+ .input-field:not([data-priority=secondary])[data-state=success] {
2618
2536
  border-color: var(--theme-input-border-success);
2619
2537
  border-width: var(--theme-input-border-width-emphasis);
2620
2538
  }
2621
- .input-field:not([data-appearance=secondary])[data-state=error] {
2539
+ .input-field:not([data-priority=secondary])[data-state=error] {
2622
2540
  border-color: var(--theme-input-border-error);
2623
2541
  border-width: var(--theme-input-border-width-emphasis);
2624
2542
  }
2625
- .input-field:not([data-appearance=secondary])[data-state=disabled] {
2543
+ .input-field:not([data-priority=secondary])[data-state=disabled] {
2626
2544
  border-color: var(--theme-input-border-disabled);
2627
2545
  border-width: var(--theme-input-border-width-default);
2628
2546
  background-color: var(--theme-input-surface-disabled);
@@ -2662,11 +2580,11 @@ figure.chip {
2662
2580
  color: var(--theme-input-label-color);
2663
2581
  }
2664
2582
 
2665
- .input-field[data-appearance=secondary] .input-element {
2583
+ .input-field[data-priority=secondary] .input-element {
2666
2584
  padding-inline: 0;
2667
2585
  }
2668
2586
 
2669
- .input-field[data-appearance=teritary] .input-element {
2587
+ .input-field[data-priority=tertiary] .input-element {
2670
2588
  min-height: var(--theme-size-medium-2);
2671
2589
  }
2672
2590
 
@@ -2689,14 +2607,14 @@ figure.chip {
2689
2607
  min-width: 20px;
2690
2608
  color: var(--theme-input-helper-color);
2691
2609
  }
2692
- .input-affix--prefix {
2610
+ .input-affix--left {
2693
2611
  order: -1;
2694
2612
  margin-right: var(--spacing-gap-3);
2695
2613
  }
2696
- .input-affix--suffix, .input-affix--reset, .input-affix--status {
2614
+ .input-affix--right, .input-affix--clear, .input-affix--status {
2697
2615
  margin-left: var(--spacing-gap-3);
2698
2616
  }
2699
- .input-affix--reset, .input-affix--status {
2617
+ .input-affix--clear, .input-affix--status {
2700
2618
  color: var(--theme-input-text-color);
2701
2619
  }
2702
2620
  .input-affix--status[data-state=error] {
@@ -2706,22 +2624,22 @@ figure.chip {
2706
2624
  color: var(--color-primary-default);
2707
2625
  }
2708
2626
 
2709
- .input-field[data-appearance=secondary] {
2627
+ .input-field[data-priority=secondary] {
2710
2628
  border-bottom-width: var(--theme-input-border-width-default);
2711
2629
  }
2712
- .input-field[data-appearance=secondary][data-state=active], .input-field[data-appearance=secondary][data-state=focused] {
2630
+ .input-field[data-priority=secondary][data-state=active], .input-field[data-priority=secondary][data-state=focused] {
2713
2631
  border-bottom-color: var(--theme-input-border-active);
2714
2632
  border-bottom-width: var(--theme-input-border-width-emphasis);
2715
2633
  }
2716
- .input-field[data-appearance=secondary][data-state=success] {
2634
+ .input-field[data-priority=secondary][data-state=success] {
2717
2635
  border-bottom-color: var(--theme-input-border-success);
2718
2636
  border-bottom-width: var(--theme-input-border-width-emphasis);
2719
2637
  }
2720
- .input-field[data-appearance=secondary][data-state=error] {
2638
+ .input-field[data-priority=secondary][data-state=error] {
2721
2639
  border-bottom-color: var(--theme-input-border-error);
2722
2640
  border-bottom-width: var(--theme-input-border-width-emphasis);
2723
2641
  }
2724
- .input-field[data-appearance=secondary][data-state=disabled] {
2642
+ .input-field[data-priority=secondary][data-state=disabled] {
2725
2643
  border-bottom-color: var(--theme-input-border-underline-disabled);
2726
2644
  border-bottom-width: var(--theme-input-border-width-default);
2727
2645
  }
@@ -2753,7 +2671,7 @@ figure.chip {
2753
2671
  border-color: var(--theme-input-border-color);
2754
2672
  background-color: var(--theme-input-surface-disabled);
2755
2673
  }
2756
- .input[data-state=disabled] .input-field[data-appearance=secondary] {
2674
+ .input[data-state=disabled] .input-field[data-priority=secondary] {
2757
2675
  background-color: transparent;
2758
2676
  }
2759
2677
 
@@ -3443,17 +3361,14 @@ figure.chip {
3443
3361
  /* Figma node 694:4619 측정값을 CSS 변수로 고정해 Storybook과 실 서비스 간 시각 편차를 줄인다. */
3444
3362
  --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
3445
3363
  --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;
3364
+ --tab-label-line-height: 1.4;
3365
+ --tab-label-letter-spacing: 0px;
3366
+ --tab-gap: var(--spacing-gap-2, 8px);
3449
3367
  --tab-padding-y: 10px;
3450
- --tab-padding-x: 20px;
3368
+ --tab-padding-x: var(--spacing-padding-8, 24px);
3451
3369
  --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;
3370
+ --tab-line-track-color: var(--color-border-divider, #f2f2f3);
3371
+ --tab-line-track-height: 1px;
3457
3372
  --tab-line-indicator-height: 2px;
3458
3373
  --tab-color-active-default: #1a6aff;
3459
3374
  --tab-color-active: var(--tab-color-active-default);
@@ -3463,12 +3378,33 @@ figure.chip {
3463
3378
  --tab-fill-active-color: var(--color-common-100, #ffffff);
3464
3379
  --tab-inactive-color: var(--color-label-alternative, #afb1b6);
3465
3380
  --tab-disabled-opacity: 0.4;
3381
+ --tab-height: 48px;
3466
3382
  width: 100%;
3467
3383
  display: flex;
3468
3384
  flex-direction: column;
3469
3385
  gap: var(--spacing-gap-3);
3470
3386
  }
3471
3387
 
3388
+ .tab-root:where([data-scale=small]) {
3389
+ --tab-label-font-size: var(--font-heading-xxsmall-size, 15px);
3390
+ --tab-label-font-weight: var(--font-heading-xxsmall-weight, 600);
3391
+ --tab-height: 40px;
3392
+ --tab-padding-x: var(--spacing-padding-4, 8px);
3393
+ }
3394
+
3395
+ .tab-root:where([data-scale=medium]) {
3396
+ --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
3397
+ --tab-label-font-weight: var(--font-heading-xsmall-weight, 600);
3398
+ --tab-height: 48px;
3399
+ }
3400
+
3401
+ .tab-root:where([data-scale=large]) {
3402
+ --tab-label-font-size: var(--font-heading-small-size, 19px);
3403
+ --tab-label-font-weight: var(--font-heading-small-weight, 600);
3404
+ --tab-height: 56px;
3405
+ --tab-padding-x: var(--spacing-padding-8, 24px);
3406
+ }
3407
+
3472
3408
  .tab-list {
3473
3409
  display: flex;
3474
3410
  align-items: stretch;
@@ -3492,6 +3428,7 @@ figure.chip {
3492
3428
  align-items: center;
3493
3429
  justify-content: center;
3494
3430
  gap: var(--tab-icon-gap);
3431
+ min-height: var(--tab-height);
3495
3432
  padding: var(--tab-padding-y) var(--tab-padding-x);
3496
3433
  background: transparent;
3497
3434
  border: none;
@@ -3591,7 +3528,6 @@ figure.chip {
3591
3528
  .tab-trigger:where([data-variant=fill]) {
3592
3529
  border-radius: 12px;
3593
3530
  min-width: 0;
3594
- padding: var(--tab-padding-y) var(--tab-padding-x);
3595
3531
  }
3596
3532
 
3597
3533
  .tab-trigger:where([data-variant=fill][data-state=active]) {
@@ -3612,6 +3548,23 @@ figure.chip {
3612
3548
  }
3613
3549
 
3614
3550
  /* TODO(table): 스타일을 SOT 토큰 값으로 정의한다. */
3551
+ :root {
3552
+ --divider-width: 1px;
3553
+ --divider-height: 12px;
3554
+ --divider-color: var(--color-border-standard-cool-gray, #e4e5e7);
3555
+ --divider-margin: var(--spacing-gap-4, 8px);
3556
+ }
3557
+
3558
+ .divider {
3559
+ width: var(--divider-width);
3560
+ height: var(--divider-height);
3561
+ background-color: var(--divider-color);
3562
+ margin: 0 var(--divider-margin);
3563
+ vertical-align: middle;
3564
+ align-self: center;
3565
+ font-size: 0;
3566
+ }
3567
+
3615
3568
  /* 템플릿 레벨 스타일을 통합해 서비스 앱이 단일 엔트리만 import하도록 구성한다. */
3616
3569
  :root {
3617
3570
  --frame-device-height: 812px;