@bigtablet/design-system 3.11.0 → 3.13.0

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/README.md CHANGED
@@ -139,7 +139,8 @@ showAlert({ title: "Delete?", showCancel: true, onConfirm: ... });
139
139
  }
140
140
  ```
141
141
 
142
- > The React entry's `style.css` only emits `--bt-color-*`, `--bt-elevation-*`, `--bt-focus-*`, `--bt-sidebar-*`, and `--bt-bottom-nav-*`. Spacing, radius, and typography are **SCSS-only** on this entry - use `scss/token` for them (`--bt-spacing-*` / `--bt-radius-*` exist only in the [Vanilla bundle](./docs/VANILLA.md)).
142
+ <!-- css-var-claim: 아래 줄이 React entry 변수 계열 전부를 주장한다. scripts/check-css-vars.sh 줄만 검사한다. -->
143
+ > The React entry's `style.css` only emits `--bt-color-*`, `--bt-elevation-*`, `--bt-focus-*`, `--bt-sidebar-*`, `--bt-bottom-nav-*`, `--bt-bottom-inset*`, `--bt-scrollbar-width`. Spacing, radius, and typography are **SCSS-only** on this entry - use `scss/token` for them (`--bt-spacing-*` / `--bt-radius-*` exist only in the [Vanilla bundle](./docs/VANILLA.md)).
143
144
 
144
145
  `colors`&nbsp;·&nbsp;`spacing`&nbsp;·&nbsp;`typography`&nbsp;·&nbsp;`radius`&nbsp;·&nbsp;`elevation`&nbsp;·&nbsp;`motion`&nbsp;·&nbsp;`z-index`&nbsp;·&nbsp;`breakpoints`&nbsp;·&nbsp;`border-width`&nbsp;·&nbsp;`opacity`&nbsp;·&nbsp;`skeleton`&nbsp;·&nbsp;`icon`&nbsp;·&nbsp;`a11y`&nbsp;·&nbsp;`layout`<sup>SCSS only</sup>
145
146
 
package/dist/index.css CHANGED
@@ -65,6 +65,11 @@
65
65
  --bt-elevation-level3: 0 3px 3px -3px rgba(0, 0, 0, 0.20), 0 9px 9px 0px rgba(0, 0, 0, 0.12);
66
66
  --bt-elevation-level4: 0 5px 5px -5px rgba(0, 0, 0, 0.20), 0 15px 15px 0px rgba(0, 0, 0, 0.12);
67
67
  --bt-elevation-level5: 0 8px 10px -5px rgba(0, 0, 0, 0.20), 0 20px 20px 0px rgba(0, 0, 0, 0.12);
68
+ --bt-bottom-nav-inset: 0px;
69
+ --bt-bottom-inset-app: 0px;
70
+ }
71
+ body {
72
+ --bt-bottom-inset: calc( var(--bt-bottom-nav-inset, 0px) + var(--bt-bottom-inset-app, 0px) );
68
73
  }
69
74
  :root {
70
75
  --bt-scrollbar-width: 0px;
@@ -502,6 +507,10 @@ select:-webkit-autofill:disabled {
502
507
  width: 100%;
503
508
  gap: 12px;
504
509
  }
510
+ .empty_state_fill_height {
511
+ flex: 1;
512
+ justify-content: center;
513
+ }
505
514
  .empty_state_illustration {
506
515
  color: var(--bt-color-text-caption);
507
516
  display: inline-flex;
@@ -634,6 +643,9 @@ select:-webkit-autofill:disabled {
634
643
  --bt-bottom-nav-safe-area: env(safe-area-inset-bottom, 0px);
635
644
  --bt-bottom-nav-total-height: calc( var(--bt-bottom-nav-height) + var(--bt-bottom-nav-safe-area) );
636
645
  }
646
+ body:has(.bottom_nav) {
647
+ --bt-bottom-nav-inset: var(--bt-bottom-nav-total-height);
648
+ }
637
649
  .bottom_nav {
638
650
  position: fixed;
639
651
  left: 0;
@@ -643,6 +655,7 @@ select:-webkit-autofill:disabled {
643
655
  display: flex;
644
656
  align-items: stretch;
645
657
  justify-content: space-around;
658
+ box-sizing: border-box;
646
659
  height: var(--bt-bottom-nav-total-height);
647
660
  padding-bottom: var(--bt-bottom-nav-safe-area);
648
661
  background: var(--bt-color-bg-solid);
@@ -1337,7 +1350,8 @@ select:-webkit-autofill:disabled {
1337
1350
  padding: 0;
1338
1351
  margin: -1px;
1339
1352
  overflow: hidden;
1340
- clip: rect(0, 0, 0, 0);
1353
+ clip: rect(0 0 0 0);
1354
+ clip-path: inset(50%);
1341
1355
  white-space: nowrap;
1342
1356
  border: 0;
1343
1357
  }
@@ -1443,6 +1457,8 @@ select:-webkit-autofill:disabled {
1443
1457
  margin: 0;
1444
1458
  overflow: visible;
1445
1459
  clip: auto;
1460
+ clip-path: none;
1461
+ white-space: normal;
1446
1462
  }
1447
1463
  }
1448
1464
  @media (prefers-reduced-motion: reduce) {
@@ -1666,7 +1682,7 @@ select:-webkit-autofill:disabled {
1666
1682
  line-height: 1.4;
1667
1683
  font-weight: 500;
1668
1684
  white-space: normal;
1669
- overflow-wrap: break-word;
1685
+ overflow-wrap: anywhere;
1670
1686
  word-break: keep-all;
1671
1687
  text-align: center;
1672
1688
  box-shadow: var(--bt-elevation-level2);
@@ -2266,7 +2282,8 @@ select:-webkit-autofill:disabled {
2266
2282
  .button_label {
2267
2283
  position: relative;
2268
2284
  white-space: normal;
2269
- word-break: break-word;
2285
+ overflow-wrap: anywhere;
2286
+ word-break: keep-all;
2270
2287
  text-align: center;
2271
2288
  }
2272
2289
  .button_full_width {
@@ -2789,6 +2806,244 @@ select:-webkit-autofill:disabled {
2789
2806
  }
2790
2807
  }
2791
2808
 
2809
+ /* src/ui/display/prose/style.scss */
2810
+ @keyframes skeleton_loading {
2811
+ 0% {
2812
+ background-position: 100% 0;
2813
+ }
2814
+ 100% {
2815
+ background-position: 0 0;
2816
+ }
2817
+ }
2818
+ .prose {
2819
+ font-family: "Pretendard", sans-serif;
2820
+ color: var(--bt-color-text-heading);
2821
+ font-size: 15px;
2822
+ font-weight: 400;
2823
+ line-height: 22.5px;
2824
+ letter-spacing: 0px;
2825
+ }
2826
+ .prose p,
2827
+ .prose ul,
2828
+ .prose ol,
2829
+ .prose blockquote,
2830
+ .prose table,
2831
+ .prose pre {
2832
+ margin: 0 0 16px;
2833
+ }
2834
+ .prose > :last-child {
2835
+ margin-bottom: 0;
2836
+ }
2837
+ .prose,
2838
+ .prose p,
2839
+ .prose li,
2840
+ .prose blockquote,
2841
+ .prose h1,
2842
+ .prose h2,
2843
+ .prose h3,
2844
+ .prose h4,
2845
+ .prose h5,
2846
+ .prose h6,
2847
+ .prose dl,
2848
+ .prose dd,
2849
+ .prose ul,
2850
+ .prose ol {
2851
+ white-space: normal;
2852
+ }
2853
+ .prose h1,
2854
+ .prose h2,
2855
+ .prose h3,
2856
+ .prose h4,
2857
+ .prose h5,
2858
+ .prose h6 {
2859
+ color: var(--bt-color-text-heading);
2860
+ margin: 20px 0 8px;
2861
+ }
2862
+ .prose h1:first-child,
2863
+ .prose h2:first-child,
2864
+ .prose h3:first-child,
2865
+ .prose h4:first-child,
2866
+ .prose h5:first-child,
2867
+ .prose h6:first-child {
2868
+ margin-top: 0;
2869
+ }
2870
+ .prose h1 {
2871
+ font-size: 24px;
2872
+ font-weight: 400;
2873
+ line-height: 32px;
2874
+ letter-spacing: 0px;
2875
+ padding-bottom: 8px;
2876
+ border-bottom: 1px solid var(--bt-color-border-default);
2877
+ }
2878
+ .prose h2 {
2879
+ font-size: 20px;
2880
+ font-weight: 400;
2881
+ line-height: 28px;
2882
+ letter-spacing: 0px;
2883
+ }
2884
+ .prose h3 {
2885
+ font-size: 18px;
2886
+ font-weight: 700;
2887
+ line-height: 24px;
2888
+ letter-spacing: 0px;
2889
+ }
2890
+ .prose h4,
2891
+ .prose h5,
2892
+ .prose h6 {
2893
+ font-size: 16px;
2894
+ font-weight: 700;
2895
+ line-height: 24px;
2896
+ letter-spacing: 0px;
2897
+ }
2898
+ .prose ul,
2899
+ .prose ol {
2900
+ padding-left: 24px;
2901
+ }
2902
+ .prose ul {
2903
+ list-style: disc;
2904
+ }
2905
+ .prose ol {
2906
+ list-style: decimal;
2907
+ }
2908
+ .prose li {
2909
+ margin-bottom: 4px;
2910
+ }
2911
+ .prose li > p {
2912
+ margin-bottom: 0;
2913
+ }
2914
+ .prose li ul,
2915
+ .prose li ol {
2916
+ margin: 4px 0 0;
2917
+ }
2918
+ .prose code {
2919
+ font-family:
2920
+ ui-monospace,
2921
+ "SF Mono",
2922
+ Menlo,
2923
+ Consolas,
2924
+ monospace;
2925
+ font-size: 13px;
2926
+ line-height: 18px;
2927
+ background: var(--bt-color-bg-solid-dim);
2928
+ color: var(--bt-color-text-heading);
2929
+ border-radius: 4px;
2930
+ padding: 0.2em 0.45em;
2931
+ }
2932
+ .prose pre {
2933
+ background: var(--bt-color-bg-inverse-surface);
2934
+ border-radius: 8px;
2935
+ padding: 20px;
2936
+ overflow-x: auto;
2937
+ }
2938
+ .prose pre code {
2939
+ background: transparent;
2940
+ color: var(--bt-color-text-inverse);
2941
+ padding: 0;
2942
+ border-radius: 0;
2943
+ }
2944
+ .prose blockquote {
2945
+ border-left: 4px solid var(--bt-color-accent-default);
2946
+ background: color-mix(in srgb, var(--bt-color-accent-default) 5%, transparent);
2947
+ border-radius: 0 6px 6px 0;
2948
+ padding: 8px 12px;
2949
+ color: var(--bt-color-text-body);
2950
+ }
2951
+ .prose blockquote > :last-child {
2952
+ margin-bottom: 0;
2953
+ }
2954
+ .prose blockquote blockquote {
2955
+ border-left: none;
2956
+ padding-left: 0;
2957
+ background: transparent;
2958
+ margin-bottom: 0;
2959
+ }
2960
+ .prose a {
2961
+ color: var(--bt-color-accent-default);
2962
+ text-decoration: underline;
2963
+ text-underline-offset: 0.15em;
2964
+ }
2965
+ .prose a:hover {
2966
+ text-decoration-thickness: 2px;
2967
+ }
2968
+ .prose a:focus-visible {
2969
+ outline: none;
2970
+ border-radius: 4px;
2971
+ box-shadow: var(--bt-focus-ring);
2972
+ }
2973
+ .prose strong {
2974
+ font-weight: 600;
2975
+ }
2976
+ .prose em {
2977
+ font-style: italic;
2978
+ }
2979
+ .prose del {
2980
+ text-decoration: line-through;
2981
+ color: var(--bt-color-text-caption);
2982
+ }
2983
+ .prose hr {
2984
+ border: none;
2985
+ border-top: 2px solid var(--bt-color-border-default);
2986
+ margin: 24px 0;
2987
+ }
2988
+ .prose img {
2989
+ max-width: 100%;
2990
+ height: auto;
2991
+ border-radius: 6px;
2992
+ display: block;
2993
+ margin: 16px auto;
2994
+ }
2995
+ .prose table {
2996
+ display: block;
2997
+ width: 100%;
2998
+ overflow-x: auto;
2999
+ border-collapse: collapse;
3000
+ }
3001
+ .prose pre[tabindex]:focus-visible,
3002
+ .prose table[tabindex]:focus-visible {
3003
+ outline: none;
3004
+ box-shadow: var(--bt-focus-ring);
3005
+ }
3006
+ .prose th,
3007
+ .prose td {
3008
+ padding: 4px 12px;
3009
+ border: 1px solid var(--bt-color-border-default);
3010
+ text-align: left;
3011
+ white-space: nowrap;
3012
+ }
3013
+ .prose th {
3014
+ background: var(--bt-color-bg-solid-dim);
3015
+ font-weight: 600;
3016
+ }
3017
+ .prose_size_lg h1,
3018
+ .prose_size_lg h2,
3019
+ .prose_size_lg h3,
3020
+ .prose_size_lg h4,
3021
+ .prose_size_lg h5,
3022
+ .prose_size_lg h6 {
3023
+ margin-top: 32px;
3024
+ }
3025
+ .prose_size_lg h1 {
3026
+ font-size: 28px;
3027
+ line-height: 36px;
3028
+ }
3029
+ .prose_size_lg h2 {
3030
+ font-size: 24px;
3031
+ line-height: 32px;
3032
+ }
3033
+ .prose_size_lg h3 {
3034
+ font-size: 20px;
3035
+ line-height: 28px;
3036
+ }
3037
+ .prose_size_lg h4,
3038
+ .prose_size_lg h5,
3039
+ .prose_size_lg h6 {
3040
+ font-size: 16px;
3041
+ line-height: 24px;
3042
+ }
3043
+ .prose_size_lg li {
3044
+ margin-bottom: 8px;
3045
+ }
3046
+
2792
3047
  /* src/ui/feedback/skeleton/style.scss */
2793
3048
  @keyframes skeleton_loading {
2794
3049
  0% {
@@ -2874,10 +3129,13 @@ select:-webkit-autofill:disabled {
2874
3129
  position: absolute;
2875
3130
  width: 1px;
2876
3131
  height: 1px;
3132
+ padding: 0;
3133
+ margin: -1px;
2877
3134
  overflow: hidden;
2878
3135
  clip: rect(0 0 0 0);
2879
3136
  clip-path: inset(50%);
2880
3137
  white-space: nowrap;
3138
+ border: 0;
2881
3139
  }
2882
3140
  .checkbox_state_layer {
2883
3141
  display: inline-flex;
@@ -3014,7 +3272,8 @@ select:-webkit-autofill:disabled {
3014
3272
  padding: 0;
3015
3273
  margin: -1px;
3016
3274
  overflow: hidden;
3017
- clip: rect(0, 0, 0, 0);
3275
+ clip: rect(0 0 0 0);
3276
+ clip-path: inset(50%);
3018
3277
  white-space: nowrap;
3019
3278
  border: 0;
3020
3279
  }
@@ -3496,7 +3755,7 @@ select:-webkit-autofill:disabled {
3496
3755
  @media (max-width: 599px) {
3497
3756
  .toast_container {
3498
3757
  top: auto;
3499
- bottom: 16px;
3758
+ bottom: calc(16px + var(--bt-bottom-inset, 0px));
3500
3759
  left: 16px;
3501
3760
  right: 16px;
3502
3761
  width: auto;
@@ -3561,7 +3820,8 @@ select:-webkit-autofill:disabled {
3561
3820
  }
3562
3821
  .toast_message {
3563
3822
  flex: 1;
3564
- word-break: break-word;
3823
+ overflow-wrap: anywhere;
3824
+ word-break: keep-all;
3565
3825
  }
3566
3826
  .toast_close {
3567
3827
  flex-shrink: 0;
@@ -4074,7 +4334,8 @@ select:-webkit-autofill:disabled {
4074
4334
  padding: 0;
4075
4335
  margin: -1px;
4076
4336
  overflow: hidden;
4077
- clip: rect(0, 0, 0, 0);
4337
+ clip: rect(0 0 0 0);
4338
+ clip-path: inset(50%);
4078
4339
  white-space: nowrap;
4079
4340
  border: 0;
4080
4341
  }
@@ -4378,7 +4639,8 @@ select:-webkit-autofill:disabled {
4378
4639
  padding: 0;
4379
4640
  margin: -1px;
4380
4641
  overflow: hidden;
4381
- clip: rect(0, 0, 0, 0);
4642
+ clip: rect(0 0 0 0);
4643
+ clip-path: inset(50%);
4382
4644
  white-space: nowrap;
4383
4645
  border: 0;
4384
4646
  }
@@ -4526,10 +4788,13 @@ select:-webkit-autofill:disabled {
4526
4788
  position: absolute;
4527
4789
  width: 1px;
4528
4790
  height: 1px;
4791
+ padding: 0;
4792
+ margin: -1px;
4529
4793
  overflow: hidden;
4530
4794
  clip: rect(0 0 0 0);
4531
4795
  clip-path: inset(50%);
4532
4796
  white-space: nowrap;
4797
+ border: 0;
4533
4798
  }
4534
4799
  .radio_state_layer {
4535
4800
  display: inline-flex;
@@ -4894,6 +5159,10 @@ select:-webkit-autofill:disabled {
4894
5159
  cursor: not-allowed;
4895
5160
  color: var(--bt-color-text-disabled);
4896
5161
  }
5162
+ .text_field_input_identifier {
5163
+ font-feature-settings: "cv05" 1, "cv08" 1;
5164
+ font-variant-numeric: slashed-zero;
5165
+ }
4897
5166
  .text_field_icon {
4898
5167
  display: inline-flex;
4899
5168
  align-items: center;
@@ -5033,6 +5302,20 @@ select:-webkit-autofill:disabled {
5033
5302
  transition: background 0.2s ease-in-out, border-color 0.2s ease-in-out;
5034
5303
  cursor: pointer;
5035
5304
  }
5305
+ .toggle::after {
5306
+ content: "";
5307
+ position: absolute;
5308
+ top: 50%;
5309
+ left: 50%;
5310
+ transform: translate(-50%, -50%);
5311
+ width: 100%;
5312
+ min-height: 32px;
5313
+ }
5314
+ @media (max-width: 599px) {
5315
+ .toggle::after {
5316
+ min-height: 40px;
5317
+ }
5318
+ }
5036
5319
  .toggle_thumb {
5037
5320
  position: relative;
5038
5321
  width: 12px;
@@ -5455,6 +5738,10 @@ select:-webkit-autofill:disabled {
5455
5738
  line-height: 22.5px;
5456
5739
  letter-spacing: 0px;
5457
5740
  }
5741
+ .drawer_body:focus-visible {
5742
+ outline: none;
5743
+ box-shadow: var(--bt-focus-ring);
5744
+ }
5458
5745
  .drawer_footer {
5459
5746
  flex: 0 0 auto;
5460
5747
  display: flex;
@@ -5502,6 +5789,8 @@ select:-webkit-autofill:disabled {
5502
5789
  border-radius: 12px;
5503
5790
  box-shadow: var(--bt-elevation-level3);
5504
5791
  max-width: calc(100% - 64px);
5792
+ max-height: calc(100vh - 64px);
5793
+ max-height: calc(100dvh - 64px);
5505
5794
  padding: 24px;
5506
5795
  overflow: visible;
5507
5796
  will-change: transform, opacity;
@@ -5544,6 +5833,14 @@ select:-webkit-autofill:disabled {
5544
5833
  line-height: 36px;
5545
5834
  letter-spacing: -0.01em;
5546
5835
  }
5836
+ @media (max-width: 599px) {
5837
+ .modal_title {
5838
+ font-size: 24px;
5839
+ font-weight: 700;
5840
+ line-height: 32px;
5841
+ letter-spacing: -0.01em;
5842
+ }
5843
+ }
5547
5844
  .modal_description {
5548
5845
  margin: 0;
5549
5846
  color: var(--bt-color-text-body);
@@ -5559,12 +5856,19 @@ select:-webkit-autofill:disabled {
5559
5856
  margin-bottom: 0;
5560
5857
  }
5561
5858
  .modal_body {
5859
+ flex: 1 1 auto;
5860
+ min-height: 0;
5861
+ overflow-y: auto;
5562
5862
  color: var(--bt-color-text-body);
5563
5863
  font-size: 15px;
5564
5864
  font-weight: 400;
5565
5865
  line-height: 22.5px;
5566
5866
  letter-spacing: 0px;
5567
5867
  }
5868
+ .modal_body:focus-visible {
5869
+ outline: none;
5870
+ box-shadow: var(--bt-focus-ring);
5871
+ }
5568
5872
  .modal_footer {
5569
5873
  display: flex;
5570
5874
  gap: 8px;