@seed-design/css 1.2.16 → 2.0.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.
Files changed (183) hide show
  1. package/all.css +4956 -1925
  2. package/all.layered.css +5922 -2883
  3. package/all.layered.min.css +1 -1
  4. package/all.min.css +1 -1
  5. package/base.css +348 -35
  6. package/base.layered.css +348 -35
  7. package/base.layered.min.css +1 -1
  8. package/base.min.css +1 -1
  9. package/breakpoints/index.d.ts +7 -0
  10. package/breakpoints/index.mjs +17 -0
  11. package/package.json +6 -1
  12. package/recipes/accordion.css +268 -0
  13. package/recipes/accordion.d.ts +33 -0
  14. package/recipes/accordion.layered.css +308 -0
  15. package/recipes/accordion.layered.mjs +94 -0
  16. package/recipes/accordion.mjs +94 -0
  17. package/recipes/action-button.css +56 -4
  18. package/recipes/action-button.d.ts +16 -0
  19. package/recipes/action-button.layered.css +60 -4
  20. package/recipes/app-bar.css +0 -3
  21. package/recipes/app-bar.d.ts +0 -4
  22. package/recipes/app-bar.layered.css +0 -4
  23. package/recipes/app-bar.layered.mjs +1 -5
  24. package/recipes/app-bar.mjs +1 -5
  25. package/recipes/app-screen.css +3 -0
  26. package/recipes/app-screen.layered.css +4 -0
  27. package/recipes/attachment-input-item.css +275 -0
  28. package/recipes/attachment-input-item.d.ts +24 -0
  29. package/recipes/attachment-input-item.layered.css +288 -0
  30. package/recipes/attachment-input-item.layered.mjs +79 -0
  31. package/recipes/attachment-input-item.mjs +79 -0
  32. package/recipes/attachment-input-trigger.css +71 -0
  33. package/recipes/attachment-input-trigger.d.ts +21 -0
  34. package/recipes/attachment-input-trigger.layered.css +85 -0
  35. package/recipes/attachment-input-trigger.layered.mjs +48 -0
  36. package/recipes/attachment-input-trigger.mjs +48 -0
  37. package/recipes/attachment-input.css +55 -0
  38. package/recipes/attachment-input.d.ts +21 -0
  39. package/recipes/attachment-input.layered.css +64 -0
  40. package/recipes/attachment-input.layered.mjs +48 -0
  41. package/recipes/attachment-input.mjs +48 -0
  42. package/recipes/avatar.d.ts +9 -0
  43. package/recipes/badge.d.ts +10 -0
  44. package/recipes/bottom-sheet.css +62 -5
  45. package/recipes/bottom-sheet.layered.css +67 -5
  46. package/recipes/callout.d.ts +7 -0
  47. package/recipes/checkmark.d.ts +3 -0
  48. package/recipes/chip-tabs.css +8 -52
  49. package/recipes/chip-tabs.d.ts +1 -1
  50. package/recipes/chip-tabs.layered.css +8 -62
  51. package/recipes/chip-tabs.layered.mjs +1 -2
  52. package/recipes/chip-tabs.mjs +1 -2
  53. package/recipes/chip.d.ts +4 -0
  54. package/recipes/contextual-floating-button.d.ts +6 -0
  55. package/recipes/dialog.css +14 -11
  56. package/recipes/dialog.layered.css +4 -0
  57. package/recipes/footer.css +44 -0
  58. package/recipes/footer.d.ts +24 -0
  59. package/recipes/footer.layered.css +52 -0
  60. package/recipes/footer.layered.mjs +39 -0
  61. package/recipes/footer.mjs +39 -0
  62. package/recipes/help-bubble.css +29 -1
  63. package/recipes/help-bubble.layered.css +34 -1
  64. package/recipes/image-frame.css +0 -3
  65. package/recipes/image-frame.d.ts +0 -4
  66. package/recipes/image-frame.layered.css +0 -4
  67. package/recipes/image-frame.layered.mjs +1 -6
  68. package/recipes/image-frame.mjs +1 -6
  69. package/recipes/input-button.css +176 -20
  70. package/recipes/input-button.d.ts +8 -1
  71. package/recipes/input-button.layered.css +197 -21
  72. package/recipes/input-button.layered.mjs +10 -2
  73. package/recipes/input-button.mjs +10 -2
  74. package/recipes/layout.css +25 -0
  75. package/recipes/layout.d.ts +24 -0
  76. package/recipes/layout.layered.css +25 -0
  77. package/recipes/layout.layered.mjs +44 -0
  78. package/recipes/layout.mjs +44 -0
  79. package/recipes/list-item.css +72 -4
  80. package/recipes/list-item.layered.css +84 -4
  81. package/recipes/menu-item.css +174 -0
  82. package/recipes/menu-item.d.ts +35 -0
  83. package/recipes/menu-item.layered.css +200 -0
  84. package/recipes/menu-item.layered.mjs +57 -0
  85. package/recipes/menu-item.mjs +57 -0
  86. package/recipes/menu-sheet-item.d.ts +6 -0
  87. package/recipes/menu-sheet.css +19 -1
  88. package/recipes/menu-sheet.layered.css +22 -1
  89. package/recipes/menu.css +119 -0
  90. package/recipes/menu.d.ts +28 -0
  91. package/recipes/menu.layered.css +139 -0
  92. package/recipes/menu.layered.mjs +56 -0
  93. package/recipes/menu.mjs +56 -0
  94. package/recipes/notification-badge.d.ts +3 -0
  95. package/recipes/page-banner.d.ts +5 -0
  96. package/recipes/progress-circle.d.ts +7 -0
  97. package/recipes/{selectBoxCheckmark.css → select-box-checkmark.css} +6 -6
  98. package/recipes/{selectBoxCheckmark.layered.css → select-box-checkmark.layered.css} +6 -6
  99. package/recipes/{selectBoxCheckmark.layered.mjs → select-box-checkmark.layered.mjs} +4 -4
  100. package/recipes/{selectBoxCheckmark.mjs → select-box-checkmark.mjs} +4 -4
  101. package/recipes/side-navigation-inset.css +4 -0
  102. package/recipes/side-navigation-inset.d.ts +19 -0
  103. package/recipes/side-navigation-inset.layered.css +6 -0
  104. package/recipes/side-navigation-inset.layered.mjs +22 -0
  105. package/recipes/side-navigation-inset.mjs +22 -0
  106. package/recipes/side-navigation-menu-item.css +135 -0
  107. package/recipes/side-navigation-menu-item.d.ts +21 -0
  108. package/recipes/side-navigation-menu-item.layered.css +156 -0
  109. package/recipes/side-navigation-menu-item.layered.mjs +48 -0
  110. package/recipes/side-navigation-menu-item.mjs +48 -0
  111. package/recipes/side-navigation.css +115 -0
  112. package/recipes/side-navigation.d.ts +24 -0
  113. package/recipes/side-navigation.layered.css +132 -0
  114. package/recipes/side-navigation.layered.mjs +63 -0
  115. package/recipes/side-navigation.mjs +63 -0
  116. package/recipes/side-panel.css +327 -0
  117. package/recipes/side-panel.d.ts +24 -0
  118. package/recipes/side-panel.layered.css +361 -0
  119. package/recipes/side-panel.layered.mjs +72 -0
  120. package/recipes/side-panel.mjs +72 -0
  121. package/recipes/skeleton.css +36 -2
  122. package/recipes/skeleton.d.ts +8 -0
  123. package/recipes/skeleton.layered.css +40 -2
  124. package/recipes/text-input.css +323 -52
  125. package/recipes/text-input.d.ts +8 -1
  126. package/recipes/text-input.layered.css +385 -51
  127. package/recipes/text-input.layered.mjs +18 -1
  128. package/recipes/text-input.mjs +18 -1
  129. package/recipes/text.css +180 -0
  130. package/recipes/text.d.ts +59 -1
  131. package/recipes/text.layered.css +216 -0
  132. package/recipes/text.layered.mjs +37 -1
  133. package/recipes/text.mjs +37 -1
  134. package/recipes/toggle-button.d.ts +3 -0
  135. package/vars/color/bg.d.ts +2 -2
  136. package/vars/color/bg.mjs +2 -1
  137. package/vars/color/stroke.d.ts +2 -2
  138. package/vars/color/stroke.mjs +2 -2
  139. package/vars/component/accordion-item.d.ts +132 -0
  140. package/vars/component/accordion-item.mjs +126 -0
  141. package/vars/component/accordion.d.ts +22 -0
  142. package/vars/component/accordion.mjs +16 -0
  143. package/vars/component/attachment-input-dropzone.d.ts +32 -0
  144. package/vars/component/attachment-input-dropzone.mjs +30 -0
  145. package/vars/component/attachment-input-item-action-button.d.ts +37 -0
  146. package/vars/component/attachment-input-item-action-button.mjs +37 -0
  147. package/vars/component/attachment-input-item-remove-button.d.ts +28 -0
  148. package/vars/component/attachment-input-item-remove-button.mjs +28 -0
  149. package/vars/component/attachment-input-item.d.ts +103 -0
  150. package/vars/component/attachment-input-item.mjs +102 -0
  151. package/vars/component/attachment-input-trigger.d.ts +46 -0
  152. package/vars/component/attachment-input-trigger.mjs +46 -0
  153. package/vars/component/attachment-input.d.ts +14 -0
  154. package/vars/component/attachment-input.mjs +12 -0
  155. package/vars/component/chip-tablist.d.ts +0 -7
  156. package/vars/component/chip-tablist.mjs +0 -7
  157. package/vars/component/image-frame.d.ts +1 -22
  158. package/vars/component/image-frame.mjs +1 -9
  159. package/vars/component/index.d.ts +12 -1
  160. package/vars/component/index.mjs +12 -1
  161. package/vars/component/input-button.d.ts +90 -17
  162. package/vars/component/input-button.mjs +84 -17
  163. package/vars/component/menu-item.d.ts +129 -0
  164. package/vars/component/menu-item.mjs +117 -0
  165. package/vars/component/menu.d.ts +68 -0
  166. package/vars/component/menu.mjs +60 -0
  167. package/vars/component/side-panel-close-button.d.ts +23 -0
  168. package/vars/component/side-panel-close-button.mjs +23 -0
  169. package/vars/component/side-panel.d.ts +94 -0
  170. package/vars/component/side-panel.mjs +83 -0
  171. package/vars/component/text-input.d.ts +92 -24
  172. package/vars/component/text-input.mjs +76 -24
  173. package/vars/component/typography.d.ts +414 -0
  174. package/vars/component/typography.mjs +324 -0
  175. package/vars/font-size.d.ts +17 -1
  176. package/vars/font-size.mjs +9 -1
  177. package/vars/gradient.d.ts +0 -8
  178. package/vars/gradient.mjs +0 -2
  179. package/vars/line-height.d.ts +17 -1
  180. package/vars/line-height.mjs +9 -1
  181. package/vars/component/chip-tab.d.ts +0 -162
  182. package/vars/component/chip-tab.mjs +0 -162
  183. /package/recipes/{selectBoxCheckmark.d.ts → select-box-checkmark.d.ts} +0 -0
@@ -49,8 +49,6 @@
49
49
  box-sizing: border-box;
50
50
  white-space: nowrap;
51
51
  border-radius: var(--seed-radius-full);
52
- padding-top: var(--seed-dimension-x2);
53
- padding-bottom: var(--seed-dimension-x2);
54
52
  font-family: inherit;
55
53
  font-weight: var(--seed-font-weight-medium);
56
54
  transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing), outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
@@ -73,9 +71,10 @@
73
71
 
74
72
  .seed-chip-tabs__trigger--size_medium {
75
73
  min-height: 36px;
74
+ min-width: var(--seed-dimension-x12);
76
75
  font-size: var(--seed-font-size-t4);
77
- padding-left: var(--seed-dimension-x3_5);
78
- padding-right: var(--seed-dimension-x3_5);
76
+ padding-left: calc(var(--seed-dimension-x2) + var(--seed-dimension-x1_5));
77
+ padding-right: calc(var(--seed-dimension-x2) + var(--seed-dimension-x1_5));
79
78
  }
80
79
 
81
80
  .seed-chip-tabs__list--size_large {
@@ -84,9 +83,10 @@
84
83
 
85
84
  .seed-chip-tabs__trigger--size_large {
86
85
  min-height: 40px;
86
+ min-width: var(--seed-dimension-x13);
87
87
  font-size: var(--seed-font-size-t4);
88
- padding-left: var(--seed-dimension-x4);
89
- padding-right: var(--seed-dimension-x4);
88
+ padding-left: calc(var(--seed-dimension-x2_5) + var(--seed-dimension-x1_5));
89
+ padding-right: calc(var(--seed-dimension-x2_5) + var(--seed-dimension-x1_5));
90
90
  }
91
91
 
92
92
  .seed-chip-tabs__trigger--variant_neutralSolid {
@@ -125,12 +125,7 @@
125
125
 
126
126
  .seed-chip-tabs__trigger--variant_neutralSolid:is(:disabled, [disabled], [data-disabled]) {
127
127
  cursor: not-allowed;
128
- color: var(--seed-color-fg-disabled);
129
- }
130
-
131
- .seed-chip-tabs__trigger--variant_neutralSolid:is(:disabled, [disabled], [data-disabled]):is([aria-selected="true"], [data-selected]) {
132
- background-color: var(--seed-color-bg-disabled);
133
- color: var(--seed-color-fg-disabled);
128
+ opacity: .5;
134
129
  }
135
130
 
136
131
  .seed-chip-tabs__trigger--variant_neutralOutline {
@@ -171,56 +166,7 @@
171
166
 
172
167
  .seed-chip-tabs__trigger--variant_neutralOutline:is(:disabled, [disabled], [data-disabled]) {
173
168
  cursor: not-allowed;
174
- color: var(--seed-color-fg-disabled);
175
- }
176
-
177
- .seed-chip-tabs__trigger--variant_neutralOutline:is(:disabled, [disabled], [data-disabled]):is([aria-selected="true"], [data-selected]) {
178
- background-color: var(--seed-color-bg-disabled);
179
- color: var(--seed-color-fg-disabled);
180
- }
181
-
182
- .seed-chip-tabs__trigger--variant_brandSolid {
183
- background-color: var(--seed-color-bg-neutral-weak);
184
- color: var(--seed-color-fg-neutral-muted);
185
- }
186
-
187
- .seed-chip-tabs__trigger--variant_brandSolid:is([aria-selected="true"], [data-selected]) {
188
- background-color: var(--seed-color-bg-brand-solid);
189
- color: var(--seed-color-palette-static-white);
190
- }
191
-
192
- @media (hover: hover) and (pointer: fine) {
193
- .seed-chip-tabs__trigger--variant_brandSolid:is(:hover, [data-hover]) {
194
- background-color: var(--seed-color-bg-neutral-weak-pressed);
195
- }
196
- }
197
-
198
- @media not all and (hover: hover) and (pointer: fine) {
199
- .seed-chip-tabs__trigger--variant_brandSolid:is(:active, [data-active]) {
200
- background-color: var(--seed-color-bg-neutral-weak-pressed);
201
- }
202
- }
203
-
204
- @media (hover: hover) and (pointer: fine) {
205
- .seed-chip-tabs__trigger--variant_brandSolid:is([aria-selected="true"], [data-selected]):is(:hover, [data-hover]) {
206
- background-color: var(--seed-color-bg-brand-solid-pressed);
207
- }
208
- }
209
-
210
- @media not all and (hover: hover) and (pointer: fine) {
211
- .seed-chip-tabs__trigger--variant_brandSolid:is([aria-selected="true"], [data-selected]):is(:active, [data-active]) {
212
- background-color: var(--seed-color-bg-brand-solid-pressed);
213
- }
214
- }
215
-
216
- .seed-chip-tabs__trigger--variant_brandSolid:is(:disabled, [disabled], [data-disabled]) {
217
- cursor: not-allowed;
218
- background-color: var(--seed-color-bg-disabled);
219
- color: var(--seed-color-fg-disabled);
220
- }
221
-
222
- .seed-chip-tabs__trigger--variant_brandSolid:is(:disabled, [disabled], [data-disabled]):is([aria-selected="true"], [data-selected]) {
223
- background-color: var(--seed-color-bg-disabled);
169
+ opacity: .5;
224
170
  }
225
171
 
226
172
  .seed-chip-tabs__root--contentLayout_fill {
@@ -44,8 +44,7 @@ export const chipTabsVariantMap = {
44
44
  ],
45
45
  "variant": [
46
46
  "neutralSolid",
47
- "neutralOutline",
48
- "brandSolid"
47
+ "neutralOutline"
49
48
  ],
50
49
  "contentLayout": [
51
50
  "fill",
@@ -44,8 +44,7 @@ export const chipTabsVariantMap = {
44
44
  ],
45
45
  "variant": [
46
46
  "neutralSolid",
47
- "neutralOutline",
48
- "brandSolid"
47
+ "neutralOutline"
49
48
  ],
50
49
  "contentLayout": [
51
50
  "fill",
package/recipes/chip.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  declare interface ChipVariant {
2
2
  /**
3
+ * - `solid`: 기본 스타일입니다.
4
+ * - `outlineStrong`: 명확한 구분이 필요한 경우 사용합니다.
5
+ * - `outlineWeak`: Selection 사용 시 주목도가 낮은 스타일로 권장됩니다.
6
+ *
3
7
  * @default "solid"
4
8
  */
5
9
  variant: "solid" | "outlineStrong" | "outlineWeak";
@@ -1,9 +1,15 @@
1
1
  declare interface ContextualFloatingButtonVariant {
2
2
  /**
3
+ * - `solid`: 배경과 대비되는 강조된 보조 액션으로 중요도 높은 행동 유도 시 적합합니다.
4
+ * - `layer`: 시각적 부담 없이 부드럽게 액션을 유도합니다.
5
+ *
3
6
  * @default "solid"
4
7
  */
5
8
  variant: "solid" | "layer";
6
9
  /**
10
+ * - `withText`: label과 prefixIcon을 함께 표시합니다.
11
+ * - `iconOnly`: icon만 표시합니다. 아이콘만으로 의미를 전달하기 때문에 접근성 레이블과 함께 사용해야 합니다.
12
+ *
7
13
  * @default "withText"
8
14
  */
9
15
  layout: "withText" | "iconOnly";
@@ -9,7 +9,7 @@
9
9
  left: 0;
10
10
  overscroll-behavior-y: none;
11
11
  --dialog-z-index: 2;
12
- z-index: calc(var(--dialog-z-index) + var(--layer-index, 0))
12
+ z-index: calc(var(--dialog-z-index) + var(--layer-index, 0));
13
13
  }
14
14
  .seed-dialog__backdrop {
15
15
  position: fixed;
@@ -18,7 +18,7 @@
18
18
  bottom: 0;
19
19
  left: 0;
20
20
  background: var(--seed-color-bg-overlay);
21
- z-index: calc(var(--dialog-z-index) + var(--layer-index, 0))
21
+ z-index: calc(var(--dialog-z-index) + var(--layer-index, 0));
22
22
  }
23
23
  .seed-dialog__content {
24
24
  position: relative;
@@ -32,7 +32,10 @@
32
32
  background: var(--seed-color-bg-layer-floating);
33
33
  max-width: 272px;
34
34
  margin: auto var(--seed-dimension-x8);
35
- border-radius: var(--seed-radius-r5)
35
+ border-radius: var(--seed-radius-r5);
36
+ }
37
+ .seed-dialog__content:is(:focus, [data-focus]) {
38
+ outline: none;
36
39
  }
37
40
  .seed-dialog__header {
38
41
  display: flex;
@@ -40,14 +43,14 @@
40
43
  padding-left: var(--seed-dimension-x5);
41
44
  padding-right: var(--seed-dimension-x5);
42
45
  padding-top: var(--seed-dimension-x5);
43
- gap: var(--seed-dimension-x1_5)
46
+ gap: var(--seed-dimension-x1_5);
44
47
  }
45
48
  .seed-dialog__title {
46
49
  color: var(--seed-color-fg-neutral);
47
50
  font-size: var(--seed-font-size-t7);
48
51
  line-height: var(--seed-line-height-t7);
49
52
  font-weight: var(--seed-font-weight-bold);
50
- margin: 0
53
+ margin: 0;
51
54
  }
52
55
  .seed-dialog__description {
53
56
  color: var(--seed-color-fg-neutral);
@@ -55,7 +58,7 @@
55
58
  line-height: var(--seed-line-height-t5);
56
59
  font-weight: var(--seed-font-weight-regular);
57
60
  margin: 0;
58
- white-space: pre-wrap
61
+ white-space: pre-wrap;
59
62
  }
60
63
  .seed-dialog__footer {
61
64
  display: flex;
@@ -64,7 +67,7 @@
64
67
  padding-left: var(--seed-dimension-x5);
65
68
  padding-right: var(--seed-dimension-x5);
66
69
  padding-top: var(--seed-dimension-x4);
67
- padding-bottom: var(--seed-dimension-x5)
70
+ padding-bottom: var(--seed-dimension-x5);
68
71
  }
69
72
  .seed-dialog__backdrop--skipAnimation_false:is([data-state="open"], [data-open]) {
70
73
  animation: seed-enter;
@@ -73,7 +76,7 @@
73
76
  --seed-enter-translate-x: 0;
74
77
  --seed-enter-translate-y: 0;
75
78
  --seed-enter-opacity: 0;
76
- --seed-enter-scale: 1
79
+ --seed-enter-scale: 1;
77
80
  }
78
81
  .seed-dialog__backdrop--skipAnimation_false:not(:is([data-state="open"], [data-open])) {
79
82
  animation: seed-exit;
@@ -83,7 +86,7 @@
83
86
  --seed-exit-translate-x: 0;
84
87
  --seed-exit-translate-y: 0;
85
88
  --seed-exit-opacity: 0;
86
- --seed-exit-scale: 1
89
+ --seed-exit-scale: 1;
87
90
  }
88
91
  .seed-dialog__content--skipAnimation_false:is([data-state="open"], [data-open]) {
89
92
  animation: seed-enter;
@@ -92,7 +95,7 @@
92
95
  --seed-enter-translate-x: 0;
93
96
  --seed-enter-translate-y: 0;
94
97
  --seed-enter-opacity: 0;
95
- --seed-enter-scale: 1.3
98
+ --seed-enter-scale: 1.3;
96
99
  }
97
100
  .seed-dialog__content--skipAnimation_false:not(:is([data-state="open"], [data-open])) {
98
101
  animation: seed-exit;
@@ -102,5 +105,5 @@
102
105
  --seed-exit-translate-x: 0;
103
106
  --seed-exit-translate-y: 0;
104
107
  --seed-exit-opacity: 0;
105
- --seed-exit-scale: 1
108
+ --seed-exit-scale: 1;
106
109
  }
@@ -32,6 +32,10 @@
32
32
  position: relative;
33
33
  }
34
34
 
35
+ .seed-dialog__content:is(:focus, [data-focus]) {
36
+ outline: none;
37
+ }
38
+
35
39
  .seed-dialog__header {
36
40
  padding-left: var(--seed-dimension-x5);
37
41
  padding-right: var(--seed-dimension-x5);
@@ -0,0 +1,44 @@
1
+ .seed-footer__linkText {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ text-decoration: none;
5
+ cursor: pointer;
6
+ gap: var(--seed-dimension-x1);
7
+ transition: color var(--seed-duration-color-transition) var(--seed-timing-function-easing);
8
+ }
9
+ .seed-footer__linkText--size_large {
10
+ font-size: var(--seed-font-size-t5);
11
+ line-height: var(--seed-line-height-t5);
12
+ font-weight: var(--seed-font-weight-medium);
13
+ color: var(--seed-color-fg-neutral);
14
+ --seed-suffix-icon-size: 14px;
15
+ --seed-suffix-icon-color: var(--seed-color-fg-neutral);
16
+ }
17
+ @media (hover: hover) and (pointer: fine) {
18
+ .seed-footer__linkText--size_large:is(:hover, [data-hover]) {
19
+ color: var(--seed-color-fg-neutral-subtle);
20
+ }
21
+ }
22
+ @media not all and (hover: hover) and (pointer: fine) {
23
+ .seed-footer__linkText--size_large:is(:active, [data-active]) {
24
+ color: var(--seed-color-fg-neutral-subtle);
25
+ }
26
+ }
27
+ .seed-footer__linkText--size_medium {
28
+ font-size: var(--seed-font-size-t4);
29
+ line-height: var(--seed-line-height-t4);
30
+ font-weight: var(--seed-font-weight-medium);
31
+ color: var(--seed-color-fg-neutral-muted);
32
+ --seed-suffix-icon-size: 12px;
33
+ --seed-suffix-icon-color: var(--seed-color-fg-neutral-muted);
34
+ }
35
+ @media (hover: hover) and (pointer: fine) {
36
+ .seed-footer__linkText--size_medium:is(:hover, [data-hover]) {
37
+ color: var(--seed-color-fg-neutral);
38
+ }
39
+ }
40
+ @media not all and (hover: hover) and (pointer: fine) {
41
+ .seed-footer__linkText--size_medium:is(:active, [data-active]) {
42
+ color: var(--seed-color-fg-neutral);
43
+ }
44
+ }
@@ -0,0 +1,24 @@
1
+ declare interface FooterVariant {
2
+ /**
3
+ * @default "medium"
4
+ */
5
+ size: "large" | "medium";
6
+ }
7
+
8
+ declare type FooterVariantMap = {
9
+ [key in keyof FooterVariant]: Array<FooterVariant[key]>;
10
+ };
11
+
12
+ export declare type FooterVariantProps = Partial<FooterVariant>;
13
+
14
+ export declare type FooterSlotName = "linkText";
15
+
16
+ export declare const footerVariantMap: FooterVariantMap;
17
+
18
+ export declare const footer: ((
19
+ props?: FooterVariantProps,
20
+ ) => Record<FooterSlotName, string>) & {
21
+ splitVariantProps: <T extends FooterVariantProps>(
22
+ props: T,
23
+ ) => [FooterVariantProps, Omit<T, keyof FooterVariantProps>];
24
+ }
@@ -0,0 +1,52 @@
1
+ @layer seed-components {
2
+ .seed-footer__linkText {
3
+ cursor: pointer;
4
+ align-items: center;
5
+ gap: var(--seed-dimension-x1);
6
+ transition: color var(--seed-duration-color-transition) var(--seed-timing-function-easing);
7
+ text-decoration: none;
8
+ display: inline-flex;
9
+ }
10
+
11
+ .seed-footer__linkText--size_large {
12
+ font-size: var(--seed-font-size-t5);
13
+ line-height: var(--seed-line-height-t5);
14
+ font-weight: var(--seed-font-weight-medium);
15
+ color: var(--seed-color-fg-neutral);
16
+ --seed-suffix-icon-size: 14px;
17
+ --seed-suffix-icon-color: var(--seed-color-fg-neutral);
18
+ }
19
+
20
+ @media (hover: hover) and (pointer: fine) {
21
+ .seed-footer__linkText--size_large:is(:hover, [data-hover]) {
22
+ color: var(--seed-color-fg-neutral-subtle);
23
+ }
24
+ }
25
+
26
+ @media not all and (hover: hover) and (pointer: fine) {
27
+ .seed-footer__linkText--size_large:is(:active, [data-active]) {
28
+ color: var(--seed-color-fg-neutral-subtle);
29
+ }
30
+ }
31
+
32
+ .seed-footer__linkText--size_medium {
33
+ font-size: var(--seed-font-size-t4);
34
+ line-height: var(--seed-line-height-t4);
35
+ font-weight: var(--seed-font-weight-medium);
36
+ color: var(--seed-color-fg-neutral-muted);
37
+ --seed-suffix-icon-size: 12px;
38
+ --seed-suffix-icon-color: var(--seed-color-fg-neutral-muted);
39
+ }
40
+
41
+ @media (hover: hover) and (pointer: fine) {
42
+ .seed-footer__linkText--size_medium:is(:hover, [data-hover]) {
43
+ color: var(--seed-color-fg-neutral);
44
+ }
45
+ }
46
+
47
+ @media not all and (hover: hover) and (pointer: fine) {
48
+ .seed-footer__linkText--size_medium:is(:active, [data-active]) {
49
+ color: var(--seed-color-fg-neutral);
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,39 @@
1
+ import './footer.layered.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const footerSlotNames = [
5
+ [
6
+ "linkText",
7
+ "seed-footer__linkText"
8
+ ]
9
+ ];
10
+
11
+ const defaultVariant = {
12
+ "size": "medium"
13
+ };
14
+
15
+ const compoundVariants = [];
16
+
17
+ export const footerVariantMap = {
18
+ "size": [
19
+ "large",
20
+ "medium"
21
+ ]
22
+ };
23
+
24
+ export const footerVariantKeys = Object.keys(footerVariantMap);
25
+
26
+ export function footer(props) {
27
+ return Object.fromEntries(
28
+ footerSlotNames.map(([slot, className]) => {
29
+ return [
30
+ slot,
31
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
32
+ ];
33
+ }),
34
+ );
35
+ }
36
+
37
+ Object.assign(footer, { splitVariantProps: (props) => splitVariantProps(props, footerVariantMap) });
38
+
39
+ // @recipe(seed): footer
@@ -0,0 +1,39 @@
1
+ import './footer.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const footerSlotNames = [
5
+ [
6
+ "linkText",
7
+ "seed-footer__linkText"
8
+ ]
9
+ ];
10
+
11
+ const defaultVariant = {
12
+ "size": "medium"
13
+ };
14
+
15
+ const compoundVariants = [];
16
+
17
+ export const footerVariantMap = {
18
+ "size": [
19
+ "large",
20
+ "medium"
21
+ ]
22
+ };
23
+
24
+ export const footerVariantKeys = Object.keys(footerVariantMap);
25
+
26
+ export function footer(props) {
27
+ return Object.fromEntries(
28
+ footerSlotNames.map(([slot, className]) => {
29
+ return [
30
+ slot,
31
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
32
+ ];
33
+ }),
34
+ );
35
+ }
36
+
37
+ Object.assign(footer, { splitVariantProps: (props) => splitVariantProps(props, footerVariantMap) });
38
+
39
+ // @recipe(seed): footer
@@ -12,7 +12,12 @@
12
12
  padding-top: var(--seed-dimension-x2_5);
13
13
  padding-bottom: var(--seed-dimension-x2_5);
14
14
  border-radius: var(--seed-radius-r3);
15
- --seed-box-max-width: initial;
15
+ --seed-box-max-width-base: initial;
16
+ --seed-box-max-width-sm: var(--seed-box-max-width-base);
17
+ --seed-box-max-width-md: var(--seed-box-max-width-sm);
18
+ --seed-box-max-width-lg: var(--seed-box-max-width-md);
19
+ --seed-box-max-width-xl: var(--seed-box-max-width-lg);
20
+ --seed-box-max-width: var(--seed-box-max-width-base);
16
21
  max-width: var(--seed-box-max-width);
17
22
  }
18
23
  .seed-help-bubble__content:is([data-state="open"], [data-open]) {
@@ -34,6 +39,9 @@
34
39
  --seed-exit-opacity: 0;
35
40
  --seed-exit-scale: 1;
36
41
  }
42
+ .seed-help-bubble__content[data-instant] {
43
+ animation-duration: 0s;
44
+ }
37
45
  .seed-help-bubble__content:is([hidden], [data-hidden]) {
38
46
  display: none !important;
39
47
  }
@@ -92,4 +100,24 @@
92
100
  .seed-help-bubble__closeButton:is(:focus-visible, [data-focus-visible]) {
93
101
  outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
94
102
  outline-offset: calc(var(--seed-dimension-x0_5) * -1);
103
+ }
104
+ @media (min-width: 480px) {
105
+ .seed-help-bubble__content {
106
+ --seed-box-max-width: var(--seed-box-max-width-sm);
107
+ }
108
+ }
109
+ @media (min-width: 768px) {
110
+ .seed-help-bubble__content {
111
+ --seed-box-max-width: var(--seed-box-max-width-md);
112
+ }
113
+ }
114
+ @media (min-width: 1280px) {
115
+ .seed-help-bubble__content {
116
+ --seed-box-max-width: var(--seed-box-max-width-lg);
117
+ }
118
+ }
119
+ @media (min-width: 1440px) {
120
+ .seed-help-bubble__content {
121
+ --seed-box-max-width: var(--seed-box-max-width-xl);
122
+ }
95
123
  }
@@ -12,7 +12,12 @@
12
12
  padding-top: var(--seed-dimension-x2_5);
13
13
  padding-bottom: var(--seed-dimension-x2_5);
14
14
  border-radius: var(--seed-radius-r3);
15
- --seed-box-max-width: initial;
15
+ --seed-box-max-width-base: initial;
16
+ --seed-box-max-width-sm: var(--seed-box-max-width-base);
17
+ --seed-box-max-width-md: var(--seed-box-max-width-sm);
18
+ --seed-box-max-width-lg: var(--seed-box-max-width-md);
19
+ --seed-box-max-width-xl: var(--seed-box-max-width-lg);
20
+ --seed-box-max-width: var(--seed-box-max-width-base);
16
21
  max-width: var(--seed-box-max-width);
17
22
  align-items: flex-start;
18
23
  display: flex;
@@ -39,6 +44,10 @@
39
44
  animation-fill-mode: forwards;
40
45
  }
41
46
 
47
+ .seed-help-bubble__content[data-instant] {
48
+ animation-duration: 0s;
49
+ }
50
+
42
51
  .seed-help-bubble__content:is([hidden], [data-hidden]) {
43
52
  display: none !important;
44
53
  }
@@ -105,4 +114,28 @@
105
114
  outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
106
115
  outline-offset: calc(var(--seed-dimension-x0_5) * -1);
107
116
  }
117
+
118
+ @media (width >= 480px) {
119
+ .seed-help-bubble__content {
120
+ --seed-box-max-width: var(--seed-box-max-width-sm);
121
+ }
122
+ }
123
+
124
+ @media (width >= 768px) {
125
+ .seed-help-bubble__content {
126
+ --seed-box-max-width: var(--seed-box-max-width-md);
127
+ }
128
+ }
129
+
130
+ @media (width >= 1280px) {
131
+ .seed-help-bubble__content {
132
+ --seed-box-max-width: var(--seed-box-max-width-lg);
133
+ }
134
+ }
135
+
136
+ @media (width >= 1440px) {
137
+ .seed-help-bubble__content {
138
+ --seed-box-max-width: var(--seed-box-max-width-xl);
139
+ }
140
+ }
108
141
  }
@@ -30,7 +30,4 @@
30
30
  pointer-events: none;
31
31
  border-radius: inherit;
32
32
  box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-subtle);
33
- }
34
- .seed-image-frame__root--rounded_true {
35
- border-radius: var(--seed-radius-r2);
36
33
  }
@@ -3,10 +3,6 @@ declare interface ImageFrameVariant {
3
3
  * @default false
4
4
  */
5
5
  stroke: boolean;
6
- /**
7
- * @default false
8
- */
9
- rounded: boolean;
10
6
  }
11
7
 
12
8
  declare type ImageFrameVariantMap = {
@@ -34,8 +34,4 @@
34
34
  position: absolute;
35
35
  inset: 0;
36
36
  }
37
-
38
- .seed-image-frame__root--rounded_true {
39
- border-radius: var(--seed-radius-r2);
40
- }
41
37
  }
@@ -17,8 +17,7 @@ const imageFrameSlotNames = [
17
17
  ];
18
18
 
19
19
  const defaultVariant = {
20
- "stroke": false,
21
- "rounded": false
20
+ "stroke": false
22
21
  };
23
22
 
24
23
  const compoundVariants = [];
@@ -27,10 +26,6 @@ export const imageFrameVariantMap = {
27
26
  "stroke": [
28
27
  true,
29
28
  false
30
- ],
31
- "rounded": [
32
- true,
33
- false
34
29
  ]
35
30
  };
36
31
 
@@ -17,8 +17,7 @@ const imageFrameSlotNames = [
17
17
  ];
18
18
 
19
19
  const defaultVariant = {
20
- "stroke": false,
21
- "rounded": false
20
+ "stroke": false
22
21
  };
23
22
 
24
23
  const compoundVariants = [];
@@ -27,10 +26,6 @@ export const imageFrameVariantMap = {
27
26
  "stroke": [
28
27
  true,
29
28
  false
30
- ],
31
- "rounded": [
32
- true,
33
- false
34
29
  ]
35
30
  };
36
31