fulldev-ui 0.1.64 → 0.2.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.
Files changed (74) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -2
  3. package/src/components/_Children.astro +0 -7
  4. package/src/components/_Tag.astro +35 -14
  5. package/src/components/base/Badge.astro +21 -23
  6. package/src/components/base/Button.astro +22 -36
  7. package/src/components/base/Checkbox.astro +9 -6
  8. package/src/components/base/Icon.astro +23 -14
  9. package/src/components/base/Image.astro +47 -47
  10. package/src/components/base/Input.astro +18 -16
  11. package/src/components/base/Logo.astro +6 -4
  12. package/src/components/base/Radio.astro +8 -6
  13. package/src/components/base/Rating.astro +10 -7
  14. package/src/components/base/Select.astro +17 -13
  15. package/src/components/base/SelectOption.astro +5 -5
  16. package/src/components/base/Switch.astro +11 -12
  17. package/src/components/base/Textarea.astro +9 -7
  18. package/src/components/base/Video.astro +4 -4
  19. package/src/components/base/todo.md +1 -2
  20. package/src/components/{wrapper → segment}/Body.astro +13 -10
  21. package/src/components/segment/Card.astro +94 -0
  22. package/src/components/segment/Deck.astro +36 -0
  23. package/src/components/{wrapper → segment}/Footer.astro +2 -2
  24. package/src/components/segment/Form.astro +30 -0
  25. package/src/components/{wrapper → segment}/Header.astro +16 -34
  26. package/src/components/segment/Main.astro +28 -0
  27. package/src/components/segment/Nav.astro +30 -0
  28. package/src/components/{wrapper → segment}/Prose.astro +15 -15
  29. package/src/components/segment/Section.astro +66 -0
  30. package/src/components/{wrapper → segment}/Writeup.astro +8 -7
  31. package/src/components/segment/todo.md +8 -0
  32. package/src/components/structure/Bento.astro +35 -0
  33. package/src/components/structure/Carousel.astro +43 -0
  34. package/src/components/structure/Grid.astro +30 -0
  35. package/src/components/structure/Group.astro +28 -0
  36. package/src/components/structure/Masonry.astro +39 -0
  37. package/src/components/structure/Split.astro +41 -0
  38. package/src/components/structure/Spread.astro +48 -0
  39. package/src/components/structure/Stack.astro +90 -0
  40. package/src/components/structure/todo.md +5 -0
  41. package/src/components/typography/Heading.astro +37 -19
  42. package/src/components/typography/Label.astro +13 -14
  43. package/src/components/typography/Link.astro +15 -10
  44. package/src/components/typography/List.astro +16 -13
  45. package/src/components/typography/ListItem.astro +16 -11
  46. package/src/components/typography/Paragraph.astro +17 -20
  47. package/src/components/typography/Tagline.astro +17 -22
  48. package/src/components/typography/todo.md +1 -13
  49. package/src/css/colors.css +142 -275
  50. package/src/css/main.css +1 -2
  51. package/src/css/sizes.css +136 -198
  52. package/src/css/styles.css +15 -0
  53. package/src/css/utils.scss +16 -0
  54. package/src/index.ts +22 -15
  55. package/src/integration/integration.ts +39 -57
  56. package/src/layouts/Layout.astro +7 -3
  57. package/src/types/Structuremorphic.ts +18 -0
  58. package/src/components/typography/Links.astro +0 -15
  59. package/src/components/typography/_Typography.astro +0 -28
  60. package/src/components/utility/DecorativeBox.astro +0 -22
  61. package/src/components/wrapper/Card.astro +0 -144
  62. package/src/components/wrapper/Cards.astro +0 -15
  63. package/src/components/wrapper/Deck.astro +0 -133
  64. package/src/components/wrapper/Form.astro +0 -26
  65. package/src/components/wrapper/Group.astro +0 -26
  66. package/src/components/wrapper/Main.astro +0 -25
  67. package/src/components/wrapper/Nav.astro +0 -32
  68. package/src/components/wrapper/Section.astro +0 -110
  69. package/src/components/wrapper/Sections.astro +0 -15
  70. package/src/components/wrapper/_Wrapper.astro +0 -333
  71. package/src/components/wrapper/todo.md +0 -20
  72. package/src/css/border.css +0 -23
  73. package/src/css/font.css +0 -15
  74. package/src/css/reset.css +0 -388
package/src/css/sizes.css CHANGED
@@ -1,37 +1,5 @@
1
1
  :root,
2
- .full-density-base {
3
- --text-sm: 14px;
4
- --text-md: 16px;
5
- --text-lg: 18px;
6
-
7
- --text-element-sm: 12px;
8
- --text-element-md: 14px;
9
- --text-element-lg: 16px;
10
-
11
- --text-heading-xs: 20px;
12
- --text-heading-sm: 24px;
13
- --text-heading-md: 30px;
14
- --text-heading-lg: 36px;
15
- --text-heading-xl: 36px;
16
- --text-heading-2xl: 36px;
17
-
18
- @media (min-width: 1024px) {
19
- --text-sm: 16px;
20
- --text-md: 18px;
21
- --text-lg: 20px;
22
-
23
- --text-element-sm: 14px;
24
- --text-element-md: 16px;
25
- --text-element-lg: 16px;
26
-
27
- --text-heading-xs: 24px;
28
- --text-heading-sm: 30px;
29
- --text-heading-md: 36px;
30
- --text-heading-lg: 48px;
31
- --text-heading-xl: 60px;
32
- --text-heading-2xl: 72px;
33
- }
34
-
2
+ .density-base {
35
3
  --space-sm-1: 3px;
36
4
  --space-sm-2: 6px;
37
5
  --space-sm-3: 12px;
@@ -51,36 +19,52 @@
51
19
  --space-lg-5: 80px;
52
20
  --space-lg-6: 160px;
53
21
 
54
- --space-element-sm-1: 6px;
55
- --space-element-sm-2: 9px;
56
- --space-element-sm-3: 12px;
57
- --space-element-md-1: 8px;
58
- --space-element-md-2: 12px;
59
- --space-element-md-3: 16px;
60
- --space-element-lg-1: 10px;
61
- --space-element-lg-2: 16px;
62
- --space-element-lg-3: 20px;
63
- }
64
-
65
- .full-density-compact {
66
- --text-sm: 12px;
67
- --text-md: 14px;
68
- --text-lg: 16px;
22
+ --element-sm-1: 6px;
23
+ --element-sm-2: 9px;
24
+ --element-sm-3: 12px;
25
+ --element-md-1: 8px;
26
+ --element-md-2: 12px;
27
+ --element-md-3: 16px;
28
+ --element-lg-1: 10px;
29
+ --element-lg-2: 16px;
30
+ --element-lg-3: 20px;
31
+
32
+ --text-sm-1: 12px;
33
+ --text-sm-2: 14px;
34
+ --text-sm-3: 20px;
35
+ --text-sm-4: 24px;
36
+ --text-sm-5: 30px;
37
+ --text-md-1: 14px;
38
+ --text-md-2: 16px;
39
+ --text-md-3: 24px;
40
+ --text-md-4: 30px;
41
+ --text-md-5: 36px;
42
+ --text-lg-1: 16px;
43
+ --text-lg-2: 18px;
44
+ --text-lg-3: 30px;
45
+ --text-lg-4: 36px;
46
+ --text-lg-5: 36px;
69
47
 
70
- --text-element-sm: 12px;
71
- --text-element-md: 14px;
72
- --text-element-lg: 14px;
73
-
74
- --text-heading-xs: 12px;
75
- --text-heading-sm: 14px;
76
- --text-heading-md: 16px;
77
- --text-heading-lg: 18px;
78
- --text-heading-xl: 20px;
79
- --text-heading-2xl: 24px;
80
- --text-heading-3xl: 24px;
81
- --text-heading-4xl: 24px;
82
- --text-heading-5xl: 24px;
48
+ @media (min-width: 1024px) {
49
+ --text-sm-1: 14px;
50
+ --text-sm-2: 16px;
51
+ --text-sm-3: 24px;
52
+ --text-sm-4: 30px;
53
+ --text-sm-5: 36px;
54
+ --text-md-1: 16px;
55
+ --text-md-2: 18px;
56
+ --text-md-3: 30px;
57
+ --text-md-4: 36px;
58
+ --text-md-5: 48px;
59
+ --text-lg-1: 16px;
60
+ --text-lg-2: 20px;
61
+ --text-lg-3: 36px;
62
+ --text-lg-4: 48px;
63
+ --text-lg-5: 60px;
64
+ }
65
+ }
83
66
 
67
+ .density-compact {
84
68
  --space-sm-1: 3px;
85
69
  --space-sm-2: 6px;
86
70
  --space-sm-3: 9px;
@@ -100,61 +84,58 @@
100
84
  --space-lg-5: 25px;
101
85
  --space-lg-6: 30px;
102
86
 
103
- --space-element-sm-1: 6px;
104
- --space-element-sm-2: 8px;
105
- --space-element-sm-3: 10px;
106
- --space-element-md-1: 8px;
107
- --space-element-md-2: 10px;
108
- --space-element-md-3: 12px;
109
- --space-element-lg-1: 10px;
110
- --space-element-lg-2: 12px;
111
- --space-element-lg-3: 14px;
87
+ --element-sm-1: 6px;
88
+ --element-sm-2: 8px;
89
+ --element-sm-3: 10px;
90
+ --element-md-1: 8px;
91
+ --element-md-2: 10px;
92
+ --element-md-3: 12px;
93
+ --element-lg-1: 10px;
94
+ --element-lg-2: 12px;
95
+ --element-lg-3: 14px;
96
+
97
+ --text-sm-1: 12px;
98
+ --text-sm-2: 12px;
99
+ --text-sm-3: 12px;
100
+ --text-sm-4: 14px;
101
+ --text-sm-5: 16px;
102
+ --text-md-1: 14px;
103
+ --text-md-2: 14px;
104
+ --text-md-3: 14px;
105
+ --text-md-4: 16px;
106
+ --text-md-5: 18px;
107
+ --text-lg-1: 14px;
108
+ --text-lg-2: 16px;
109
+ --text-lg-3: 16px;
110
+ --text-lg-4: 18px;
111
+ --text-lg-5: 20px;
112
+
113
+ @media (min-width: 1024px) {
114
+ --text-sm-1: 12px;
115
+ --text-sm-2: 14px;
116
+ --text-sm-3: 14px;
117
+ --text-sm-4: 16px;
118
+ --text-sm-5: 18px;
119
+ --text-md-1: 14px;
120
+ --text-md-2: 16px;
121
+ --text-md-3: 16px;
122
+ --text-md-4: 18px;
123
+ --text-md-5: 20px;
124
+ --text-lg-1: 16px;
125
+ --text-lg-2: 18px;
126
+ --text-lg-3: 18px;
127
+ --text-lg-4: 20px;
128
+ --text-lg-5: 24px;
129
+ }
112
130
  }
113
131
 
114
132
  /* --------------------------- */
115
133
  /* Generate sizes */
116
134
  /* --------------------------- */
117
135
 
118
- .full-size-xs,
119
- .full-size-xs
120
- *:not(
121
- .full-size-xs,
122
- .full-size-xs *,
123
- .full-size-sm,
124
- .full-size-sm *,
125
- .full-size-md,
126
- .full-size-md *,
127
- .full-size-lg,
128
- .full-size-lg *,
129
- .full-size-xl,
130
- .full-size-xl *,
131
- .full-size-2xl,
132
- .full-size-2xl *
133
- ) {
134
- --text: var(--text-xs);
135
- --text-heading: var(--text-heading-xs);
136
- }
137
-
138
- .full-size-sm,
139
- .full-size-sm
140
- *:not(
141
- .full-size-xs,
142
- .full-size-xs *,
143
- .full-size-sm,
144
- .full-size-sm *,
145
- .full-size-md,
146
- .full-size-md *,
147
- .full-size-lg,
148
- .full-size-lg *,
149
- .full-size-xl,
150
- .full-size-xl *,
151
- .full-size-2xl,
152
- .full-size-2xl *
153
- ) {
154
- --text: var(--text-sm);
155
- --text-heading: var(--text-heading-sm);
156
- --text-element: var(--text-element-sm);
157
-
136
+ .size-sm,
137
+ .size-sm
138
+ [class*='density-']:not(.size-sm [class*='size-'] [class*='density-']) {
158
139
  --space-1: var(--space-sm-1);
159
140
  --space-2: var(--space-sm-2);
160
141
  --space-3: var(--space-sm-3);
@@ -162,33 +143,26 @@
162
143
  --space-5: var(--space-sm-5);
163
144
  --space-6: var(--space-sm-6);
164
145
 
165
- --space-element-1: var(--space-element-sm-1);
166
- --space-element-2: var(--space-element-sm-2);
167
- --space-element-3: var(--space-element-sm-3);
168
- }
146
+ --element-1: var(--element-sm-1);
147
+ --element-2: var(--element-sm-2);
148
+ --element-3: var(--element-sm-3);
169
149
 
170
- :root,
171
- :where([class*='full-density-']),
172
- .full-size-md,
173
- .full-size-md
174
- *:not(
175
- .full-size-xs,
176
- .full-size-xs *,
177
- .full-size-sm,
178
- .full-size-sm *,
179
- .full-size-md,
180
- .full-size-md *,
181
- .full-size-lg,
182
- .full-size-lg *,
183
- .full-size-xl,
184
- .full-size-xl *,
185
- .full-size-2xl,
186
- .full-size-2xl *
187
- ) {
188
- --text: var(--text-md);
189
- --text-heading: var(--text-heading-md);
190
- --text-element: var(--text-element-md);
150
+ --text-1: var(--text-sm-1);
151
+ --text-2: var(--text-sm-2);
152
+ --text-3: var(--text-sm-3);
153
+ --text-4: var(--text-sm-4);
154
+ --text-5: var(--text-sm-5);
191
155
 
156
+ --radius-1: calc(var(--border-radius, 1) * var(--element-sm-1));
157
+ --radius-2: calc(var(--border-radius, 1) * var(--element-sm-2));
158
+ --radius-3: calc(var(--border-radius, 1) * var(--element-sm-3));
159
+ }
160
+
161
+ :where(:root),
162
+ :where([class*='density-']),
163
+ .size-md,
164
+ .size-md
165
+ [class*='density-']:not(.size-md [class*='size-'] [class*='density-']) {
192
166
  --space-1: var(--space-md-1);
193
167
  --space-2: var(--space-md-2);
194
168
  --space-3: var(--space-md-3);
@@ -196,31 +170,24 @@
196
170
  --space-5: var(--space-md-5);
197
171
  --space-6: var(--space-md-6);
198
172
 
199
- --space-element-1: var(--space-element-md-1);
200
- --space-element-2: var(--space-element-md-2);
201
- --space-element-3: var(--space-element-md-3);
202
- }
173
+ --element-1: var(--element-md-1);
174
+ --element-2: var(--element-md-2);
175
+ --element-3: var(--element-md-3);
203
176
 
204
- .full-size-lg,
205
- .full-size-lg
206
- *:not(
207
- .full-size-xs,
208
- .full-size-xs *,
209
- .full-size-sm,
210
- .full-size-sm *,
211
- .full-size-md,
212
- .full-size-md *,
213
- .full-size-lg,
214
- .full-size-lg *,
215
- .full-size-xl,
216
- .full-size-xl *,
217
- .full-size-2xl,
218
- .full-size-2xl *
219
- ) {
220
- --text: var(--text-lg);
221
- --text-heading: var(--text-heading-lg);
222
- --text-element: var(--text-element-lg);
177
+ --text-1: var(--text-md-1);
178
+ --text-2: var(--text-md-2);
179
+ --text-3: var(--text-md-3);
180
+ --text-4: var(--text-md-4);
181
+ --text-5: var(--text-md-5);
223
182
 
183
+ --radius-1: calc(var(--border-radius, 1) * var(--element-md-1));
184
+ --radius-2: calc(var(--border-radius, 1) * var(--element-md-2));
185
+ --radius-3: calc(var(--border-radius, 1) * var(--element-md-3));
186
+ }
187
+
188
+ .size-lg,
189
+ .size-lg
190
+ [class*='density-']:not(.size-lg [class*='size-'] [class*='density-']) {
224
191
  --space-1: var(--space-lg-1);
225
192
  --space-2: var(--space-lg-2);
226
193
  --space-3: var(--space-lg-3);
@@ -228,46 +195,17 @@
228
195
  --space-5: var(--space-lg-5);
229
196
  --space-6: var(--space-lg-6);
230
197
 
231
- --space-element-1: var(--space-element-lg-1);
232
- --space-element-2: var(--space-element-lg-2);
233
- --space-element-3: var(--space-element-lg-3);
234
- }
198
+ --element-1: var(--element-lg-1);
199
+ --element-2: var(--element-lg-2);
200
+ --element-3: var(--element-lg-3);
235
201
 
236
- .full-size-xl,
237
- .full-size-xl
238
- *:not(
239
- .full-size-xs,
240
- .full-size-xs *,
241
- .full-size-sm,
242
- .full-size-sm *,
243
- .full-size-md,
244
- .full-size-md *,
245
- .full-size-lg,
246
- .full-size-lg *,
247
- .full-size-xl,
248
- .full-size-xl *,
249
- .full-size-2xl,
250
- .full-size-2xl *
251
- ) {
252
- --text: var(--text-xl);
253
- --text-heading: var(--text-heading-xl);
254
- }
202
+ --text-1: var(--text-lg-1);
203
+ --text-2: var(--text-lg-2);
204
+ --text-3: var(--text-lg-3);
205
+ --text-4: var(--text-lg-4);
206
+ --text-5: var(--text-lg-5);
255
207
 
256
- .full-size-2xl,
257
- .full-size-2xl
258
- *:not(
259
- .full-size-xs,
260
- .full-size-xs *,
261
- .full-size-sm,
262
- .full-size-sm *,
263
- .full-size-md,
264
- .full-size-md *,
265
- .full-size-lg,
266
- .full-size-lg *,
267
- .full-size-xl,
268
- .full-size-xl *,
269
- .full-size-2xl,
270
- .full-size-2xl *
271
- ) {
272
- --text-heading: var(--text-heading-2xl);
208
+ --radius-1: calc(var(--border-radius, 1) * var(--element-lg-1));
209
+ --radius-2: calc(var(--border-radius, 1) * var(--element-lg-2));
210
+ --radius-3: calc(var(--border-radius, 1) * var(--element-lg-3));
273
211
  }
@@ -0,0 +1,15 @@
1
+ :root,
2
+ .full {
3
+ --transition: cubic-bezier(0.4, 0, 0.2, 1) 0.15s;
4
+ --border-width: 1px;
5
+ --border-radius: 1;
6
+
7
+ --font-family: 'IBM Plex Sans', sans-serif;
8
+ --font-weight: 400;
9
+
10
+ --heading-font-family: var(--font-family);
11
+ --heading-font-weight: 700;
12
+
13
+ --button-font-family: var(--font-family);
14
+ --button-font-weight: 500;
15
+ }
@@ -0,0 +1,16 @@
1
+ $layer: 'fulldev' !default;
2
+
3
+ @mixin component($name) {
4
+ @if $layer {
5
+ @layer #{$layer} {
6
+ .full.#{$name} {
7
+ @content;
8
+ }
9
+ }
10
+
11
+ } @else {
12
+ .full.#{$name} {
13
+ @content;
14
+ }
15
+ }
16
+ }
package/src/index.ts CHANGED
@@ -32,31 +32,38 @@ export { default as Video } from './components/base/Video.astro'
32
32
  export { default as Heading } from './components/typography/Heading.astro'
33
33
  export { default as Label } from './components/typography/Label.astro'
34
34
  export { default as Link } from './components/typography/Link.astro'
35
- export { default as Links } from './components/typography/Links.astro'
36
35
  export { default as List } from './components/typography/List.astro'
37
36
  export { default as ListItem } from './components/typography/ListItem.astro'
38
37
  export { default as Paragraph } from './components/typography/Paragraph.astro'
39
38
  export { default as Tagline } from './components/typography/Tagline.astro'
40
39
 
41
- // Wrapper components
42
- export { default as Body } from './components/wrapper/Body.astro'
43
- export { default as Card } from './components/wrapper/Card.astro'
44
- export { default as Deck } from './components/wrapper/Deck.astro'
45
- export { default as Footer } from './components/wrapper/Footer.astro'
46
- export { default as Form } from './components/wrapper/Form.astro'
47
- export { default as Group } from './components/wrapper/Group.astro'
48
- export { default as Header } from './components/wrapper/Header.astro'
49
- export { default as Main } from './components/wrapper/Main.astro'
50
- export { default as Nav } from './components/wrapper/Nav.astro'
51
- export { default as Prose } from './components/wrapper/Prose.astro'
52
- export { default as Section } from './components/wrapper/Section.astro'
53
- export { default as Writeup } from './components/wrapper/Writeup.astro'
40
+ // Structure components
41
+ export { default as Bento } from './components/structure/Bento.astro'
42
+ export { default as Carousel } from './components/structure/Carousel.astro'
43
+ export { default as Grid } from './components/structure/Grid.astro'
44
+ export { default as Group } from './components/structure/Group.astro'
45
+ export { default as Masonry } from './components/structure/Masonry.astro'
46
+ export { default as Split } from './components/structure/Split.astro'
47
+ export { default as Spread } from './components/structure/Spread.astro'
48
+ export { default as Stack } from './components/structure/Stack.astro'
49
+
50
+ // Segment components
51
+ export { default as Body } from './components/segment/Body.astro'
52
+ export { default as Card } from './components/segment/Card.astro'
53
+ export { default as Deck } from './components/segment/Deck.astro'
54
+ export { default as Footer } from './components/segment/Footer.astro'
55
+ export { default as Form } from './components/segment/Form.astro'
56
+ export { default as Header } from './components/segment/Header.astro'
57
+ export { default as Main } from './components/segment/Main.astro'
58
+ export { default as Nav } from './components/segment/Nav.astro'
59
+ export { default as Prose } from './components/segment/Prose.astro'
60
+ export { default as Section } from './components/segment/Section.astro'
61
+ export { default as Writeup } from './components/segment/Writeup.astro'
54
62
 
55
63
  // Utility components
56
64
  export { default as Block } from './components/_Block.astro'
57
65
  export { default as Blocks } from './components/_Blocks.astro'
58
66
  export { default as Children } from './components/_Children.astro'
59
- export { default as DecorativeBox } from './components/utility/DecorativeBox.astro'
60
67
  export { default as Head } from './components/utility/Head.astro'
61
68
 
62
69
  // Layouts
@@ -1,61 +1,43 @@
1
- // import type { AstroIntegration } from 'astro'
2
- // import autoprefixer from 'autoprefixer'
3
- // import postcssNesting from 'postcss-nesting'
4
- // import postcssPresetEnv from 'postcss-preset-env'
5
- // import { mergeDeep } from 'remeda'
6
- // import virtual from 'vite-plugin-virtual'
1
+ import type { AstroIntegration } from 'astro'
2
+ import { mergeDeep } from 'remeda'
3
+ import virtual from 'vite-plugin-virtual'
7
4
 
8
- // const defaultConfig = {
9
- // color: {
10
- // accent: 'indigo',
11
- // base: 'slate',
12
- // },
13
- // size: {
14
- // scale: 1,
15
- // space: 1,
16
- // radius: 1,
17
- // text: 1,
18
- // },
19
- // theme: {
20
- // border: '1px',
21
- // },
22
- // font: {
23
- // heading.text: 'IMB Plex Sans:700',
24
- // subheading.text: 'IMB Plex Sans:700',
25
- // text: 'IMB Plex Sans:400',
26
- // tagline: 'IMB Plex Sans:400',
27
- // button: 'IMB Plex Sans:500',
28
- // },
29
- // }
5
+ const defaultConfig = {
6
+ layer: 'fulldev',
7
+ }
30
8
 
31
- // export default function fulluiIntegration(userConfig: any): AstroIntegration {
32
- // const config: any = mergeDeep(defaultConfig || {}, userConfig || {})
9
+ export default function fulluiIntegration(
10
+ userConfig: any = {}
11
+ ): AstroIntegration {
12
+ const config: any = mergeDeep(defaultConfig || {}, userConfig || {})
33
13
 
34
- // return {
35
- // name: '/integration',
36
- // hooks: {
37
- // 'astro:config:setup': async ({
38
- // // config: astroConfig,
39
- // updateConfig,
40
- // injectScript,
41
- // }) => {
42
- // updateConfig({
43
- // vite: {
44
- // plugins: [
45
- // virtual({
46
- // 'virtual:/config': `export default ${JSON.stringify(config)}`,
47
- // }) as any,
48
- // ],
49
- // css: {
50
- // postcss: {
51
- // plugins: [postcssNesting, postcssPresetEnv, autoprefixer],
52
- // },
53
- // },
54
- // },
55
- // })
14
+ return {
15
+ name: '/integration',
16
+ hooks: {
17
+ 'astro:config:setup': async ({
18
+ // config: astroConfig,
19
+ updateConfig,
20
+ injectScript,
21
+ }) => {
22
+ updateConfig({
23
+ vite: {
24
+ plugins: [
25
+ virtual({
26
+ 'virtual:/config': `export default ${JSON.stringify(config)}`,
27
+ }) as any,
28
+ ],
29
+ css: {
30
+ preprocessorOptions: {
31
+ scss: {
32
+ additionalData: `$layer: ${config.layer};`,
33
+ },
34
+ },
35
+ },
36
+ },
37
+ })
56
38
 
57
- // // injectScript('page-ssr', 'import "fulldev-ui/css";')
58
- // },
59
- // },
60
- // }
61
- // }
39
+ // injectScript('page-ssr', 'import "fulldev-ui/css";')
40
+ },
41
+ },
42
+ }
43
+ }
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
3
  import Tag from '../components/_Tag.astro'
4
+ import Body from '../components/segment/Body.astro'
4
5
  import Head from '../components/utility/Head.astro'
5
- import Body from '../components/wrapper/Body.astro'
6
6
 
7
7
  interface Props extends ComponentProps<typeof Tag> {
8
8
  title: ComponentProps<typeof Head>['title']
@@ -16,10 +16,14 @@ const { title, description, image, theme, head, body, ...rest } = Astro.props
16
16
  ---
17
17
 
18
18
  <Tag
19
- class:list={['full-layout']}
19
+ class={[
20
+ 'layout',
21
+ {
22
+ [`theme-${theme}`]: theme,
23
+ },
24
+ ]}
20
25
  as="html"
21
26
  if={true}
22
- {theme}
23
27
  {...rest}
24
28
  >
25
29
  <Head
@@ -0,0 +1,18 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import type Carousel from '../components/structure/Carousel.astro'
3
+ import type Stack from '../components/structure/Column.astro'
4
+
5
+ export type Structuremorphic<
6
+ S extends
7
+ | 'bento'
8
+ | 'carousel'
9
+ | 'grid'
10
+ | 'masonry'
11
+ | 'split'
12
+ | 'spread'
13
+ | 'stack',
14
+ > = S extends 'stack'
15
+ ? ComponentProps<typeof Stack>
16
+ : S extends 'carousel'
17
+ ? ComponentProps<typeof Carousel>
18
+ : undefined
@@ -1,15 +0,0 @@
1
- ---
2
- import type { ComponentProps } from 'astro/types'
3
- import type { Pluralmorphic } from '../../types/Pluralmorphic'
4
- import Plural from '../_Plural.astro'
5
- import Link from './Link.astro'
6
-
7
- type Props = Pluralmorphic<ComponentProps<typeof Link>>
8
-
9
- const { props } = Astro
10
- ---
11
-
12
- <Plural
13
- component={Link}
14
- {...props}
15
- />
@@ -1,28 +0,0 @@
1
- ---
2
- import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Children from '../_Children.astro'
4
- import Tag from '../_Tag.astro'
5
-
6
- type Props<As extends HTMLTag> = Polymorphic<{ as: As }> &
7
- ComponentProps<typeof Tag> & {
8
- html?: string
9
- text?: string
10
- variant?: 'base' | 'muted'
11
- }
12
-
13
- const { ...rest } = Astro.props
14
- ---
15
-
16
- <Tag
17
- class:list={['full-typography']}
18
- {...rest}
19
- >
20
- <slot name="before" />
21
- <Children {...rest} />
22
- <slot />
23
- </Tag>
24
-
25
- <style is:global lang="scss">
26
- .full-typography {
27
- }
28
- </style>