vanilla-jui 1.4.4 → 1.4.6

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 (103) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.ts +1273 -1896
  3. package/dist/index.js +1 -1
  4. package/dist/index.umd.js +1 -1
  5. package/dist/style.css +1 -1
  6. package/package.json +22 -3
  7. package/src/components/accordion.ts +297 -216
  8. package/src/components/flow.ts +222 -258
  9. package/src/components/form.ts +44 -102
  10. package/src/components/menu.ts +268 -356
  11. package/src/components/modal.ts +181 -641
  12. package/src/components/offcanvas.ts +225 -106
  13. package/src/components/pagination.ts +296 -326
  14. package/src/components/sticky.ts +55 -54
  15. package/src/components/swiper.ts +237 -247
  16. package/src/components/tabs.ts +278 -271
  17. package/src/components/toc.ts +42 -46
  18. package/src/core/Component.ts +69 -47
  19. package/src/css/accordion.css +2 -2
  20. package/src/css/animation.css +1 -5
  21. package/src/css/avatar.css +1 -1
  22. package/src/css/badge.css +1 -1
  23. package/src/css/breadcrumb.css +9 -10
  24. package/src/css/button.css +1 -1
  25. package/src/css/card.css +2 -2
  26. package/src/css/color.css +974 -1002
  27. package/src/css/color_p3.css +974 -1004
  28. package/src/css/components.css +1 -1
  29. package/src/css/content.css +72 -63
  30. package/src/css/drop.css +1 -1
  31. package/src/css/editor.css +14 -14
  32. package/src/css/flow.css +4 -14
  33. package/src/css/font.css +5 -4
  34. package/src/css/form.css +76 -52
  35. package/src/css/gradient.css +299 -222
  36. package/src/css/icon.css +57 -57
  37. package/src/css/index.css +1 -1
  38. package/src/css/layout.css +13 -10
  39. package/src/css/loading.css +60 -12
  40. package/src/css/menu.css +262 -188
  41. package/src/css/modal.css +1 -1
  42. package/src/css/offcanvas.css +9 -13
  43. package/src/css/pagination.css +5 -1
  44. package/src/css/popup.css +1 -1
  45. package/src/css/skeleton.css +3 -2
  46. package/src/css/status.css +2 -3
  47. package/src/css/swiper.css +1 -1
  48. package/src/css/table.css +1 -1
  49. package/src/css/tabs.css +12 -11
  50. package/src/css/tag.css +1 -1
  51. package/src/css/theme-palette.css +19 -5
  52. package/src/css/themes/default/accordion.css +61 -61
  53. package/src/css/themes/default/avatar.css +54 -54
  54. package/src/css/themes/default/badge.css +62 -62
  55. package/src/css/themes/default/breadcrumb.css +23 -23
  56. package/src/css/themes/default/button.css +203 -203
  57. package/src/css/themes/default/content.css +53 -53
  58. package/src/css/themes/default/drop.css +10 -10
  59. package/src/css/themes/default/editor.css +9 -9
  60. package/src/css/themes/default/index.css +1 -1
  61. package/src/css/themes/default/loading.css +26 -20
  62. package/src/css/themes/default/menu.css +75 -11
  63. package/src/css/themes/default/modal.css +32 -36
  64. package/src/css/themes/default/pagination.css +7 -7
  65. package/src/css/themes/default/popup.css +6 -6
  66. package/src/css/themes/default/swiper.css +32 -32
  67. package/src/css/themes/default/table.css +16 -16
  68. package/src/css/themes/default/tabs.css +30 -30
  69. package/src/css/themes/default/tag.css +71 -71
  70. package/src/css/themes/default/theme-palette.css +11 -11
  71. package/src/css/themes/default/tip.css +42 -42
  72. package/src/css/themes/default/toast.css +60 -60
  73. package/src/css/themes/default/toolbar.css +23 -29
  74. package/src/css/themes/default/tooltip.css +43 -13
  75. package/src/css/themes/index.css +1 -1
  76. package/src/css/tip.css +2 -2
  77. package/src/css/toast.css +3 -3
  78. package/src/css/tokens.css +12 -17
  79. package/src/css/toolbar.css +9 -10
  80. package/src/css/tooltip.css +3 -2
  81. package/src/index.ts +22 -19
  82. package/src/{components → primitives}/drop.ts +58 -49
  83. package/src/{components → primitives}/icons.ts +1 -1
  84. package/src/primitives/loading.ts +23 -0
  85. package/src/primitives/parabola.ts +388 -0
  86. package/src/primitives/popup.ts +61 -0
  87. package/src/{components → primitives}/theme.ts +88 -57
  88. package/src/{components → primitives}/toast.ts +18 -25
  89. package/src/{components → primitives}/tooltip.ts +100 -25
  90. package/src/utilities/browser.ts +23 -49
  91. package/src/utilities/class-name.ts +5 -0
  92. package/src/utilities/dom.ts +14 -32
  93. package/src/utilities/function.ts +4 -0
  94. package/src/utilities/http.ts +7 -7
  95. package/src/utilities/id.ts +57 -0
  96. package/src/utilities/object.ts +5 -0
  97. package/src/utilities/timer.ts +38 -0
  98. package/src/utilities/types.ts +420 -0
  99. package/src/{components → validation}/validator.ts +64 -53
  100. package/src/components/parabola.ts +0 -335
  101. package/src/utilities/cache.ts +0 -57
  102. package/src/utilities/core.ts +0 -614
  103. package/src/utilities/storage.ts +0 -46
package/src/css/modal.css CHANGED
@@ -62,4 +62,4 @@
62
62
  padding: var(--modal-footer-padding);
63
63
  border-top: var(--modal-footer-top-border);
64
64
  }
65
- }
65
+ }
@@ -5,16 +5,11 @@
5
5
  left: 0;
6
6
  width: 100%;
7
7
  height: 100%;
8
- opacity: 0;
9
8
  transition: opacity 0.3s ease;
10
9
  background: var(--offcanvas-overlay-bg);
11
10
  z-index: var(--z-overlay);
12
11
  }
13
12
 
14
- .j-offcanvas-overlay.is-active {
15
- opacity: 1;
16
- }
17
-
18
13
  .j-offcanvas {
19
14
  position: fixed;
20
15
  z-index: var(--z-offcanvas);
@@ -22,15 +17,15 @@
22
17
  box-shadow: var(--offcanvas-box-shadow);
23
18
  }
24
19
 
25
- .j-offcanvas.is-slide {
20
+ .j-offcanvas[data-animate='slide'] {
26
21
  transition: transform 0.3s ease;
27
22
  }
28
23
 
29
- .j-offcanvas:not(.is-slide) {
24
+ .j-offcanvas:not([data-animate='slide']) {
30
25
  transition: none;
31
26
  }
32
27
 
33
- .j-offcanvas.is-left {
28
+ .j-offcanvas[data-direction='left'] {
34
29
  top: 0;
35
30
  left: 0;
36
31
  width: var(--offcanvas-block-width);
@@ -39,7 +34,7 @@
39
34
  border-right: var(--offcanvas-border);
40
35
  }
41
36
 
42
- .j-offcanvas.is-right {
37
+ .j-offcanvas[data-direction='right'] {
43
38
  top: 0;
44
39
  right: 0;
45
40
  width: var(--offcanvas-block-width);
@@ -48,7 +43,7 @@
48
43
  border-left: var(--offcanvas-border);
49
44
  }
50
45
 
51
- .j-offcanvas.is-top {
46
+ .j-offcanvas[data-direction='top'] {
52
47
  top: 0;
53
48
  left: 0;
54
49
  width: 100%;
@@ -57,7 +52,7 @@
57
52
  border-bottom: var(--offcanvas-border);
58
53
  }
59
54
 
60
- .j-offcanvas.is-bottom {
55
+ .j-offcanvas[data-direction='bottom'] {
61
56
  bottom: 0;
62
57
  left: 0;
63
58
  width: 100%;
@@ -66,13 +61,14 @@
66
61
  border-top: var(--offcanvas-border);
67
62
  }
68
63
 
69
- .j-offcanvas.is-active {
64
+ .j-offcanvas[aria-expanded='true'] {
70
65
  transform: translate(0, 0);
71
66
  }
72
67
 
73
68
  .j-offcanvas .offcanvas-content {
69
+ position: relative;
74
70
  height: 100%;
75
71
  overflow-y: auto;
76
- position: relative;
72
+ scrollbar-width: none;
77
73
  }
78
74
  }
@@ -22,4 +22,8 @@
22
22
  .j-pagination .is-active {
23
23
  cursor: default;
24
24
  }
25
- }
25
+
26
+ .j-pagination ul.pagination li {
27
+ margin: 0;
28
+ }
29
+ }
package/src/css/popup.css CHANGED
@@ -66,4 +66,4 @@
66
66
  justify-content: flex-end;
67
67
  align-items: flex-end;
68
68
  }
69
- }
69
+ }
@@ -12,7 +12,8 @@
12
12
  color: transparent;
13
13
  pointer-events: none;
14
14
  user-select: none;
15
- animation: animate-pulse var(--skeleton-duration) cubic-bezier(0.4, 0, 0.6, 1) infinite;
15
+ animation: animate-pulse var(--skeleton-duration)
16
+ cubic-bezier(0.4, 0, 0.6, 1) infinite;
16
17
  }
17
18
 
18
19
  .j-skeleton::selection {
@@ -73,4 +74,4 @@
73
74
  animation: none;
74
75
  }
75
76
  }
76
- }
77
+ }
@@ -8,7 +8,6 @@
8
8
  * - drag status
9
9
  */
10
10
  @layer status {
11
-
12
11
  /* sad mode */
13
12
  .is-sad {
14
13
  filter: grayscale(100%);
@@ -48,8 +47,8 @@
48
47
  [disabled],
49
48
  :disabled,
50
49
  .is-disabled,
51
- [aria-disabled="true"] {
50
+ [aria-disabled='true'] {
52
51
  cursor: not-allowed;
53
52
  user-select: none;
54
53
  }
55
- }
54
+ }
@@ -142,4 +142,4 @@
142
142
  cursor: default;
143
143
  opacity: 0.36;
144
144
  }
145
- }
145
+ }
package/src/css/table.css CHANGED
@@ -49,4 +49,4 @@
49
49
  table.j-table.is-bordered th {
50
50
  border-width: var(--table-bordered-width);
51
51
  }
52
- }
52
+ }
package/src/css/tabs.css CHANGED
@@ -4,19 +4,19 @@
4
4
  }
5
5
 
6
6
  .j-tabs,
7
- .j-tabs.is-top {
7
+ .j-tabs[data-tabs-direction='top'] {
8
8
  flex-direction: column;
9
9
  }
10
10
 
11
- .j-tabs.is-bottom {
11
+ .j-tabs[data-tabs-direction='bottom'] {
12
12
  flex-direction: column-reverse;
13
13
  }
14
14
 
15
- .j-tabs.is-left {
15
+ .j-tabs[data-tabs-direction='left'] {
16
16
  flex-direction: row;
17
17
  }
18
18
 
19
- .j-tabs.is-right {
19
+ .j-tabs[data-tabs-direction='right'] {
20
20
  flex-direction: row-reverse;
21
21
  }
22
22
 
@@ -33,8 +33,8 @@
33
33
  scroll-behavior: smooth;
34
34
  }
35
35
 
36
- .j-tabs.is-left .tab-list,
37
- .j-tabs.is-right .tab-list {
36
+ .j-tabs[data-tabs-direction='left'] .tab-list,
37
+ .j-tabs[data-tabs-direction='right'] .tab-list {
38
38
  flex-direction: column;
39
39
  }
40
40
 
@@ -42,18 +42,19 @@
42
42
  padding: var(--tab-list-item-padding);
43
43
  margin: var(--tab-list-item-margin);
44
44
  color: var(--tab-fg);
45
- font-weight: var(--tab-font-weight);
45
+ font-weight: var(--tab-list-font-weight);
46
46
  flex-shrink: 0;
47
47
  cursor: pointer;
48
48
  }
49
49
 
50
- .j-tabs .tab-list .tab-item[aria-disabled="true"] {
50
+ .j-tabs .tab-list .tab-item[aria-disabled='true'] {
51
51
  cursor: not-allowed;
52
52
  }
53
53
 
54
54
  .j-tabs .tab-panel {
55
55
  padding: var(--tab-panel-padding);
56
56
  margin: var(--tab-panel-margin);
57
+ flex: 1;
57
58
  }
58
59
 
59
60
  .j-tabs .tab-panel .panel-item {
@@ -63,11 +64,11 @@
63
64
  min-height: var(--tab-panel-item-min-height);
64
65
  }
65
66
 
66
- .j-tabs .tab-panel .panel-item[aria-hidden="false"] {
67
+ .j-tabs .tab-panel .panel-item[aria-hidden='false'] {
67
68
  display: block;
68
69
  }
69
70
 
70
- .j-tabs .tab-panel .panel-item>* {
71
+ .j-tabs .tab-panel .panel-item > * {
71
72
  margin: var(--tab-panel-item-content-margin);
72
73
  }
73
- }
74
+ }
package/src/css/tag.css CHANGED
@@ -33,4 +33,4 @@
33
33
  .j-tag:hover {
34
34
  opacity: var(--opacity-hover);
35
35
  }
36
- }
36
+ }
@@ -26,17 +26,26 @@
26
26
  gap: var(--palette-items-gap);
27
27
  }
28
28
 
29
- .j-theme-palette .palette-container .palette-item .items>button {
29
+ .j-theme-palette .palette-container .palette-item .items > button {
30
30
  padding-inline: var(--s2);
31
31
  min-width: 0;
32
32
  overflow: hidden;
33
33
  }
34
34
 
35
- .j-theme-palette .palette-container .palette-item[data-palette='theme'] .items>button {
35
+ .j-theme-palette
36
+ .palette-container
37
+ .palette-item[data-palette='theme']
38
+ .items
39
+ > button {
36
40
  justify-content: flex-start;
37
41
  }
38
42
 
39
- .j-theme-palette .palette-container .palette-item .items>button span.item-hex {
43
+ .j-theme-palette
44
+ .palette-container
45
+ .palette-item
46
+ .items
47
+ > button
48
+ span.item-hex {
40
49
  display: inline-block;
41
50
  width: var(--palette-items-icon-size);
42
51
  height: var(--palette-items-icon-size);
@@ -45,8 +54,13 @@
45
54
  margin-right: var(--space);
46
55
  }
47
56
 
48
- .j-theme-palette .palette-container .palette-item .items>button span.button-text {
57
+ .j-theme-palette
58
+ .palette-container
59
+ .palette-item
60
+ .items
61
+ > button
62
+ span.button-text {
49
63
  overflow: hidden;
50
64
  text-overflow: ellipsis;
51
65
  }
52
- }
66
+ }
@@ -1,62 +1,62 @@
1
1
  @layer themes {
2
- .j-accordion {
3
- --accordion-font-size: var(--font-size-md);
4
- --accordion-font-weight: var(--font-medium);
5
- --accordion-header-font-size: var(--font-size-md);
6
- --accordion-header-padding: var(--s2) var(--s3);
7
- --accordion-header-margin: 0;
8
- --accordion-border: 1px solid var(--ui-border-subtle);
9
- --accordion-icon-size: var(--font-size-lg);
10
- --accordion-icon-transform: rotate(0deg);
11
- --accordion-panel-margin: 0;
12
- --accordion-panel-content-margin: 0;
13
- --accordion-panel-content-padding: 0 var(--s3) var(--s2);
14
- }
15
-
16
- .j-accordion .accordion-header {
17
- padding: var(--accordion-header-padding);
18
- margin: var(--accordion-header-margin);
19
- font-weight: var(--accordion-font-weight);
20
- font-size: var(--accordion-header-font-size);
21
- background: var(--accordion-bg);
22
- border-bottom: var(--accordion-border);
23
- }
24
-
25
- .j-accordion .accordion-header[aria-expanded="true"] {
26
- border-color: transparent;
27
- }
28
-
29
- .j-accordion .accordion-header[aria-expanded="true"] .header-title {
30
- --accordion-font-weight: var(--font-bold);
31
- }
32
-
33
- .j-accordion .accordion-header[aria-expanded="false"]:hover {
34
- --accordion-bg: var(--ui-surface-hover)
35
- }
36
-
37
- .j-accordion .accordion-header .header-arrow {
38
- width: var(--accordion-icon-size);
39
- height: var(--accordion-icon-size);
40
- transition: transform 0.3s ease-out;
41
- transform: var(--accordion-icon-transform);
42
- }
43
-
44
- .j-accordion .accordion-header[aria-expanded="true"] .header-arrow {
45
- --accordion-icon-transform: rotate(180deg);
46
- }
47
-
48
- .j-accordion .accordion-panel {
49
- margin: var(--accordion-panel-margin);
50
- font-size: var(--accordion-font-size);
51
- }
52
-
53
- .j-accordion .accordion-panel .panel-content {
54
- margin: var(--accordion-panel-content-margin);
55
- padding: var(--accordion-panel-content-padding);
56
- border-bottom: var(--accordion-border);
57
- }
58
-
59
- .j-accordion .accordion-panel:last-child .panel-content {
60
- border-bottom: none;
61
- }
62
- }
2
+ .j-accordion {
3
+ --accordion-font-size: var(--font-size-md);
4
+ --accordion-font-weight: var(--font-medium);
5
+ --accordion-header-font-size: var(--font-size-md);
6
+ --accordion-header-padding: var(--s2) var(--s3);
7
+ --accordion-header-margin: 0;
8
+ --accordion-border: 1px solid var(--ui-border-subtle);
9
+ --accordion-icon-size: var(--font-size-lg);
10
+ --accordion-icon-transform: rotate(0deg);
11
+ --accordion-panel-margin: 0;
12
+ --accordion-panel-content-margin: 0;
13
+ --accordion-panel-content-padding: 0 var(--s3) var(--s2);
14
+ }
15
+
16
+ .j-accordion .accordion-header {
17
+ padding: var(--accordion-header-padding);
18
+ margin: var(--accordion-header-margin);
19
+ font-weight: var(--accordion-font-weight);
20
+ font-size: var(--accordion-header-font-size);
21
+ background: var(--accordion-bg);
22
+ border-bottom: var(--accordion-border);
23
+ }
24
+
25
+ .j-accordion .accordion-header[aria-expanded='true'] {
26
+ border-color: transparent;
27
+ }
28
+
29
+ .j-accordion .accordion-header[aria-expanded='true'] .header-title {
30
+ --accordion-font-weight: var(--font-bold);
31
+ }
32
+
33
+ .j-accordion .accordion-header[aria-expanded='false']:hover {
34
+ --accordion-bg: var(--ui-surface-hover);
35
+ }
36
+
37
+ .j-accordion .accordion-header .header-arrow {
38
+ width: var(--accordion-icon-size);
39
+ height: var(--accordion-icon-size);
40
+ transition: transform 0.3s ease-out;
41
+ transform: var(--accordion-icon-transform);
42
+ }
43
+
44
+ .j-accordion .accordion-header[aria-expanded='true'] .header-arrow {
45
+ --accordion-icon-transform: rotate(180deg);
46
+ }
47
+
48
+ .j-accordion .accordion-panel {
49
+ margin: var(--accordion-panel-margin);
50
+ font-size: var(--accordion-font-size);
51
+ }
52
+
53
+ .j-accordion .accordion-panel .panel-content {
54
+ margin: var(--accordion-panel-content-margin);
55
+ padding: var(--accordion-panel-content-padding);
56
+ border-bottom: var(--accordion-border);
57
+ }
58
+
59
+ .j-accordion .accordion-panel:last-child .panel-content {
60
+ border-bottom: none;
61
+ }
62
+ }
@@ -1,55 +1,55 @@
1
1
  @layer themes {
2
- .j-avatar {
3
- --avatar-size: var(--el-height-md);
4
- --avatar-border-radius: var(--radius-md);
5
- --avatar-box-shadow: var(--shadow-sm);
6
- }
7
-
8
- .j-avatar.is-2xs {
9
- --avatar-size: var(--el-height-2xs);
10
- }
11
-
12
- .j-avatar.is-xs {
13
- --avatar-size: var(--el-height-xs);
14
- }
15
-
16
- .j-avatar.is-sm {
17
- --avatar-size: var(--el-height-sm);
18
- }
19
-
20
- .j-avatar.is-lg {
21
- --avatar-size: var(--el-height-lg);
22
- }
23
-
24
- .j-avatar.is-xl {
25
- --avatar-size: var(--el-height-xl);
26
- }
27
-
28
- .j-avatar.is-2xl {
29
- --avatar-size: var(--el-height-2xl);
30
- }
31
-
32
- .j-avatar.is-round {
33
- --avatar-border-radius: 0.5rem;
34
- }
35
-
36
- .j-avatar.is-text {
37
- --avatar-bg: var(--tone-subtle);
38
- --avatar-fg: var(--tone-solid);
39
- --avatar-font-weight: var(--font-medium);
40
- }
41
-
42
- .j-avatar-group .j-avatar {
43
- --avatar-border: 1.5px solid var(--ui-bg)
44
- }
45
-
46
- .j-avatar-group .j-avatar:not(:first-child) {
47
- margin-inline-start: calc(var(--space) * -3);
48
- }
49
-
50
- .j-avatar-group .j-avatar:last-child {
51
- --avatar-font-size: var(--font-size-sm);
52
- --avatar-bg: var(--ui-bg);
53
- --avatar-box-shadow: var(--shadow-sm);
54
- }
55
- }
2
+ .j-avatar {
3
+ --avatar-size: var(--el-height-md);
4
+ --avatar-border-radius: var(--radius-md);
5
+ --avatar-box-shadow: var(--shadow-sm);
6
+ }
7
+
8
+ .j-avatar.is-2xs {
9
+ --avatar-size: var(--el-height-2xs);
10
+ }
11
+
12
+ .j-avatar.is-xs {
13
+ --avatar-size: var(--el-height-xs);
14
+ }
15
+
16
+ .j-avatar.is-sm {
17
+ --avatar-size: var(--el-height-sm);
18
+ }
19
+
20
+ .j-avatar.is-lg {
21
+ --avatar-size: var(--el-height-lg);
22
+ }
23
+
24
+ .j-avatar.is-xl {
25
+ --avatar-size: var(--el-height-xl);
26
+ }
27
+
28
+ .j-avatar.is-2xl {
29
+ --avatar-size: var(--el-height-2xl);
30
+ }
31
+
32
+ .j-avatar.is-round {
33
+ --avatar-border-radius: 0.5rem;
34
+ }
35
+
36
+ .j-avatar.is-text {
37
+ --avatar-bg: var(--tone-subtle);
38
+ --avatar-fg: var(--tone-solid);
39
+ --avatar-font-weight: var(--font-medium);
40
+ }
41
+
42
+ .j-avatar-group .j-avatar {
43
+ --avatar-border: 1.5px solid var(--ui-bg);
44
+ }
45
+
46
+ .j-avatar-group .j-avatar:not(:first-child) {
47
+ margin-inline-start: calc(var(--space) * -3);
48
+ }
49
+
50
+ .j-avatar-group .j-avatar:last-child {
51
+ --avatar-font-size: var(--font-size-sm);
52
+ --avatar-bg: var(--ui-bg);
53
+ --avatar-box-shadow: var(--shadow-sm);
54
+ }
55
+ }
@@ -1,63 +1,63 @@
1
1
  @layer themes {
2
- .j-badge {
3
- --badge-padding: 0 calc(var(--space) * 1.5);
4
- --badge-min-width: 1.25rem;
5
- --badge-height: 1.25rem;
6
- --badge-font-size: var(--font-size-sm);
7
- --badge-font-weight: var(--font-medium);
8
- --badge-line-height: var(--line-height-self);
9
- --badge-radius: 500px;
10
- --badge-border-color: var(--ui-border);
11
- --badge-fg: var(--ui-fg);
12
- --badge-bg: var(--ui-bg);
13
- --badge-box-shadow: none;
14
- }
15
-
16
- .j-badge.is-sm {
17
- --badge-padding: 0 calc(var(--space) * 0.75);
18
- --badge-min-width: 1rem;
19
- --badge-height: 1rem;
20
- --badge-font-size: 0.625rem;
21
- }
22
-
23
- .j-badge.is-contrast {
24
- --badge-bg: var(--ui-fg);
25
- --badge-fg: var(--ui-bg);
26
- }
27
-
28
- .j-badge.is-primary {
29
- --badge-bg: var(--tone-solid);
30
- --badge-fg: var(--tone-fg);
31
- --badge-border-color: var(--tone-solid);
32
- }
33
-
34
- .j-badge.is-secondary {
35
- --badge-bg: var(--tone-soft);
36
- --badge-fg: var(--tone-text);
37
- --badge-border-color: var(--tone-soft);
38
- }
39
-
40
- .j-badge.is-success {
41
- --badge-bg: var(--state-success);
42
- --badge-fg: var(--state-success-fg);
43
- --badge-border-color: var(--state-success);
44
- }
45
-
46
- .j-badge.is-warning {
47
- --badge-bg: var(--state-warning);
48
- --badge-fg: var(--state-warning-fg);
49
- --badge-border-color: var(--state-warning);
50
- }
51
-
52
- .j-badge.is-danger {
53
- --badge-bg: var(--state-danger);
54
- --badge-fg: var(--state-danger-fg);
55
- --badge-border-color: var(--state-danger);
56
- }
57
-
58
- .j-badge.is-error {
59
- --badge-border-color: var(--state-danger-subtle);
60
- --badge-bg: var(--state-danger-subtle);
61
- --badge-fg: var(--state-danger-text);
62
- }
63
- }
2
+ .j-badge {
3
+ --badge-padding: 0 calc(var(--space) * 1.5);
4
+ --badge-min-width: 1.25rem;
5
+ --badge-height: 1.25rem;
6
+ --badge-font-size: var(--font-size-sm);
7
+ --badge-font-weight: var(--font-medium);
8
+ --badge-line-height: var(--line-height-self);
9
+ --badge-radius: 500px;
10
+ --badge-border-color: var(--ui-border);
11
+ --badge-fg: var(--ui-fg);
12
+ --badge-bg: var(--ui-bg);
13
+ --badge-box-shadow: none;
14
+ }
15
+
16
+ .j-badge.is-sm {
17
+ --badge-padding: 0 calc(var(--space) * 0.75);
18
+ --badge-min-width: 1rem;
19
+ --badge-height: 1rem;
20
+ --badge-font-size: 0.625rem;
21
+ }
22
+
23
+ .j-badge.is-contrast {
24
+ --badge-bg: var(--ui-fg);
25
+ --badge-fg: var(--ui-bg);
26
+ }
27
+
28
+ .j-badge.is-primary {
29
+ --badge-bg: var(--tone-solid);
30
+ --badge-fg: var(--tone-fg);
31
+ --badge-border-color: var(--tone-solid);
32
+ }
33
+
34
+ .j-badge.is-secondary {
35
+ --badge-bg: var(--tone-soft);
36
+ --badge-fg: var(--tone-text);
37
+ --badge-border-color: var(--tone-soft);
38
+ }
39
+
40
+ .j-badge.is-success {
41
+ --badge-bg: var(--state-success);
42
+ --badge-fg: var(--state-success-fg);
43
+ --badge-border-color: var(--state-success);
44
+ }
45
+
46
+ .j-badge.is-warning {
47
+ --badge-bg: var(--state-warning);
48
+ --badge-fg: var(--state-warning-fg);
49
+ --badge-border-color: var(--state-warning);
50
+ }
51
+
52
+ .j-badge.is-danger {
53
+ --badge-bg: var(--state-danger);
54
+ --badge-fg: var(--state-danger-fg);
55
+ --badge-border-color: var(--state-danger);
56
+ }
57
+
58
+ .j-badge.is-error {
59
+ --badge-border-color: var(--state-danger-subtle);
60
+ --badge-bg: var(--state-danger-subtle);
61
+ --badge-fg: var(--state-danger-text);
62
+ }
63
+ }