fulldev-ui 0.4.0-beta.1 → 0.4.11

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 (53) hide show
  1. package/package.json +3 -2
  2. package/pnpm-lock.yaml +3640 -2909
  3. package/public/images/og-image.png +0 -0
  4. package/src/blocks/Contact.astro +6 -4
  5. package/src/blocks/Intro.astro +5 -3
  6. package/src/blocks/Prices.astro +6 -4
  7. package/src/components/Avatar.astro +18 -16
  8. package/src/components/Badge.astro +33 -31
  9. package/src/components/Bento.astro +16 -14
  10. package/src/components/Button.astro +77 -75
  11. package/src/components/Card.astro +47 -45
  12. package/src/components/Carousel.astro +27 -25
  13. package/src/components/Checkbox.astro +12 -10
  14. package/src/components/Column.astro +35 -33
  15. package/src/components/Dialog.astro +19 -17
  16. package/src/components/Drawer.astro +39 -37
  17. package/src/components/Footer.astro +39 -37
  18. package/src/components/Grid.astro +9 -7
  19. package/src/components/Head.astro +2 -3
  20. package/src/components/Header.astro +58 -52
  21. package/src/components/Heading.astro +30 -28
  22. package/src/components/Icon.astro +15 -13
  23. package/src/components/Image.astro +93 -91
  24. package/src/components/Input.astro +51 -49
  25. package/src/components/Label.astro +11 -9
  26. package/src/components/Link.astro +34 -32
  27. package/src/components/List.astro +14 -12
  28. package/src/components/Masonry.astro +17 -15
  29. package/src/components/Rating.astro +15 -13
  30. package/src/components/Root.astro +8 -3
  31. package/src/components/Row.astro +17 -15
  32. package/src/components/Search.astro +1 -1
  33. package/src/components/Section.astro +62 -60
  34. package/src/components/Select.astro +59 -57
  35. package/src/components/Sidebar.astro +16 -13
  36. package/src/components/Split.astro +26 -24
  37. package/src/components/Spread.astro +18 -16
  38. package/src/components/Switch.astro +50 -48
  39. package/src/components/Table.astro +92 -81
  40. package/src/components/Tagline.astro +8 -6
  41. package/src/components/Text.astro +11 -9
  42. package/src/components/Textarea.astro +44 -42
  43. package/src/components/Toc.astro +16 -13
  44. package/src/components/Wrap.astro +16 -14
  45. package/src/components/docs/PropsTable.astro +7 -0
  46. package/src/components/experimental/Price.astro +11 -9
  47. package/src/components/experimental/Prose.astro +114 -112
  48. package/src/components/experimental/Window.astro +58 -56
  49. package/src/content/pages/index.mdx +3 -2
  50. package/src/content/pages/overview/frameworks.mdx +8 -17
  51. package/src/content/pages/overview/introduction.mdx +1 -1
  52. package/src/content/settings/base.yml +3 -0
  53. package/src/css/custom.css +0 -5
@@ -193,80 +193,82 @@ const buttonVariant = (i: number) => {
193
193
  </Root>
194
194
 
195
195
  <style is:global lang="scss">
196
- .section {
197
- --inset-top: var(--space-7);
198
- --inset-left: var(--gutter-left);
199
- --inset-right: var(--gutter-right);
200
- --inset-bottom: var(--space-7);
196
+ @layer fulldev {
197
+ .section {
198
+ --inset-top: var(--space-7);
199
+ --inset-left: var(--gutter-left);
200
+ --inset-right: var(--gutter-right);
201
+ --inset-bottom: var(--space-7);
201
202
 
202
- position: relative;
203
+ position: relative;
203
204
 
204
- &:first-child {
205
- --inset-top: var(--space-6);
206
- --inset-bottom: var(--space-6);
207
- }
205
+ &:first-child {
206
+ --inset-top: var(--space-6);
207
+ --inset-bottom: var(--space-6);
208
+ }
208
209
 
209
- &.frame-none {
210
- padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
211
- var(--inset-left);
212
- }
210
+ &.frame-none {
211
+ padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
212
+ var(--inset-left);
213
+ }
213
214
 
214
- &.frame-fill {
215
- background-color: var(--color-2);
216
- padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
217
- var(--inset-left);
218
- }
215
+ &.frame-fill {
216
+ background-color: var(--color-2);
217
+ padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
218
+ var(--inset-left);
219
+ }
219
220
 
220
- &.frame-panel {
221
- --inset-top: var(--space-6);
222
- --inset-left: min(var(--gutter), var(--space-7));
223
- --inset-right: min(var(--gutter), var(--space-7));
224
- --inset-bottom: var(--space-6);
221
+ &.frame-panel {
222
+ --inset-top: var(--space-6);
223
+ --inset-left: min(var(--gutter), var(--space-7));
224
+ --inset-right: min(var(--gutter), var(--space-7));
225
+ --inset-bottom: var(--space-6);
225
226
 
226
- margin: var(--inset-top) var(--gutter-right) var(--inset-bottom)
227
- var(--gutter-left);
228
- border: 1px solid var(--base-a6);
229
- border-radius: var(--radius-2);
230
- background-color: var(--color-2);
231
- padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
232
- var(--inset-left);
233
- max-width: calc(
234
- 100vw - var(--sidebar-width) - var(--toc-width) - var(--inset-left) - var(
235
- --inset-right
236
- )
237
- );
238
- overflow: hidden;
227
+ margin: var(--inset-top) var(--gutter-right) var(--inset-bottom)
228
+ var(--gutter-left);
229
+ border: 1px solid var(--base-a6);
230
+ border-radius: var(--radius-2);
231
+ background-color: var(--color-2);
232
+ padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
233
+ var(--inset-left);
234
+ max-width: calc(
235
+ 100vw - var(--sidebar-width) - var(--toc-width) - var(--inset-left) - var(
236
+ --inset-right
237
+ )
238
+ );
239
+ overflow: hidden;
239
240
 
240
- @media (min-width: 1024px) {
241
- --inset-top: var(--space-7);
242
- --inset-bottom: var(--space-7);
241
+ @media (min-width: 1024px) {
242
+ --inset-top: var(--space-7);
243
+ --inset-bottom: var(--space-7);
244
+ }
243
245
  }
244
- }
245
246
 
246
- &.frame-viewport {
247
- padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
248
- var(--inset-left);
249
- min-height: 100vh;
250
- }
247
+ &.frame-viewport {
248
+ padding: var(--inset-top) var(--inset-right) var(--inset-bottom)
249
+ var(--inset-left);
250
+ min-height: 100vh;
251
+ }
251
252
 
252
- @media (min-width: 1024px) {
253
- &:nth-of-type(odd).split.reverse-odd {
254
- > :first-child {
255
- order: 999;
256
- }
253
+ @media (min-width: 1024px) {
254
+ &:nth-of-type(odd).split.reverse-odd {
255
+ > :first-child {
256
+ order: 999;
257
+ }
257
258
 
258
- > :last-child {
259
- order: 0;
259
+ > :last-child {
260
+ order: 0;
261
+ }
260
262
  }
261
- }
262
263
 
263
- &:nth-of-type(even).split.reverse-even {
264
- > :first-child {
265
- order: 0;
266
- }
264
+ &:nth-of-type(even).split.reverse-even {
265
+ > :first-child {
266
+ order: 0;
267
+ }
267
268
 
268
- > :last-child {
269
- order: 999;
269
+ > :last-child {
270
+ order: 999;
271
+ }
270
272
  }
271
273
  }
272
274
  }
@@ -69,76 +69,78 @@ const {
69
69
  </Root>
70
70
 
71
71
  <style is:global lang="scss">
72
- .select {
73
- display: flex;
74
- position: relative;
75
- flex-direction: column;
76
- gap: var(--space-1);
77
- width: 100%;
78
-
79
- .icon {
80
- position: absolute;
81
- right: var(--space-4);
82
- bottom: var(--space-4);
83
- width: var(--text-2);
84
- height: var(--text-2);
85
- pointer-events: none;
86
- }
87
-
88
- select {
72
+ @layer fulldev {
73
+ .select {
89
74
  display: flex;
90
75
  position: relative;
91
- align-items: center;
92
- appearance: none;
93
- appearance: none;
94
- outline: none;
95
- border: 1px solid var(--color-6);
96
- border-radius: var(--radius-1);
97
- background-color: transparent;
98
- padding-right: calc(var(--text-2) + 2 * var(--space-4));
99
- padding-left: var(--space-4);
76
+ flex-direction: column;
77
+ gap: var(--space-1);
100
78
  width: 100%;
101
- min-width: var(--space-4);
102
- height: calc(var(--text-2) + 2 * var(--space-4));
103
- color: var(--color-11);
104
- font-size: var(--text-2);
105
- line-height: 1.25;
106
79
 
107
- &:hover {
108
- outline: none;
80
+ .icon {
81
+ position: absolute;
82
+ right: var(--space-4);
83
+ bottom: var(--space-4);
84
+ width: var(--text-2);
85
+ height: var(--text-2);
86
+ pointer-events: none;
109
87
  }
110
88
 
111
- &:focus {
89
+ select {
90
+ display: flex;
91
+ position: relative;
92
+ align-items: center;
93
+ appearance: none;
94
+ appearance: none;
112
95
  outline: none;
113
- box-shadow: inset 0 0 0 2px var(--color-7);
114
- border-color: var(--color-7);
115
- }
96
+ border: 1px solid var(--color-6);
97
+ border-radius: var(--radius-1);
98
+ background-color: transparent;
99
+ padding-right: calc(var(--text-2) + 2 * var(--space-4));
100
+ padding-left: var(--space-4);
101
+ width: 100%;
102
+ min-width: var(--space-4);
103
+ height: calc(var(--text-2) + 2 * var(--space-4));
104
+ color: var(--color-11);
105
+ font-size: var(--text-2);
106
+ line-height: 1.25;
116
107
 
117
- &:disabled {
118
- opacity: 50%;
119
- cursor: not-allowed;
120
- pointer-events: none;
121
- }
108
+ &:hover {
109
+ outline: none;
110
+ }
122
111
 
123
- &.radius-none {
124
- border-radius: 0;
125
- }
112
+ &:focus {
113
+ outline: none;
114
+ box-shadow: inset 0 0 0 2px var(--color-7);
115
+ border-color: var(--color-7);
116
+ }
126
117
 
127
- &.radius-auto {
128
- border-radius: var(--radius-1);
129
- }
118
+ &:disabled {
119
+ opacity: 50%;
120
+ cursor: not-allowed;
121
+ pointer-events: none;
122
+ }
130
123
 
131
- &.radius-full {
132
- border-radius: 9999px;
124
+ &.radius-none {
125
+ border-radius: 0;
126
+ }
127
+
128
+ &.radius-auto {
129
+ border-radius: var(--radius-1);
130
+ }
131
+
132
+ &.radius-full {
133
+ border-radius: 9999px;
134
+ }
133
135
  }
134
- }
135
136
 
136
- option {
137
- color: var(--text);
138
- font-weight: var(--font-weight);
139
- font-size: var(--text-2);
140
- line-height: 1;
141
- font-family: var(--font-family);
137
+ option {
138
+ color: var(--text);
139
+ font-weight: var(--font-weight);
140
+ font-size: var(--text-2);
141
+ line-height: 1;
142
+ font-family: var(--font-family);
143
+ }
142
144
  }
143
145
  }
144
146
  </style>
@@ -51,21 +51,24 @@ const url = Astro.url.href
51
51
  </Column>
52
52
 
53
53
  <style lang="scss" is:global>
54
- .sidebar {
55
- display: none !important;
56
- box-sizing: border-box;
57
- border-right: 1px solid var(--color-a6);
58
- padding: var(--space-6) min(var(--space-5), var(--gutter)) var(--space-6) 0;
59
- height: 100vh;
60
- max-height: 100vh;
61
- overflow-y: auto;
54
+ @layer fulldev {
55
+ .sidebar {
56
+ display: none !important;
57
+ box-sizing: border-box;
58
+ border-right: 1px solid var(--color-a6);
59
+ padding: var(--space-6) min(var(--space-5), var(--gutter)) var(--space-6)
60
+ 0;
61
+ height: 100vh;
62
+ max-height: 100vh;
63
+ overflow-y: auto;
62
64
 
63
- .sidebar-link {
64
- font-size: var(--text-2);
65
- }
65
+ .sidebar-link {
66
+ font-size: var(--text-2);
67
+ }
66
68
 
67
- @media (min-width: 1024px) {
68
- display: flex !important;
69
+ @media (min-width: 1024px) {
70
+ display: flex !important;
71
+ }
69
72
  }
70
73
  }
71
74
  </style>
@@ -22,36 +22,38 @@ const { space = 'auto', align = 'center', ...rest } = Astro.props
22
22
  </Root>
23
23
 
24
24
  <style is:global lang="scss">
25
- .split {
26
- display: grid;
27
- grid-template-columns: 1fr;
28
- column-gap: var(--space-6);
29
- width: 100%;
30
-
31
- @media (max-width: 1023.9999px) {
32
- &.space-auto {
33
- > * + * {
34
- margin-top: var(--space-auto);
25
+ @layer fulldev {
26
+ .split {
27
+ display: grid;
28
+ grid-template-columns: 1fr;
29
+ column-gap: var(--space-6);
30
+ width: 100%;
31
+
32
+ @media (max-width: 1023.9999px) {
33
+ &.space-auto {
34
+ > * + * {
35
+ margin-top: var(--space-auto);
36
+ }
35
37
  }
36
38
  }
37
- }
38
39
 
39
- @media (min-width: 1024px) {
40
- grid-auto-columns: 1fr;
41
- grid-auto-flow: column;
42
- }
40
+ @media (min-width: 1024px) {
41
+ grid-auto-columns: 1fr;
42
+ grid-auto-flow: column;
43
+ }
43
44
 
44
- &.align-start {
45
- align-items: flex-start;
46
- text-align: left;
47
- }
45
+ &.align-start {
46
+ align-items: flex-start;
47
+ text-align: left;
48
+ }
48
49
 
49
- &.align-center {
50
- align-items: center;
51
- }
50
+ &.align-center {
51
+ align-items: center;
52
+ }
52
53
 
53
- &.align-end {
54
- align-items: flex-end;
54
+ &.align-end {
55
+ align-items: flex-end;
56
+ }
55
57
  }
56
58
  }
57
59
  </style>
@@ -20,25 +20,27 @@ const { align = 'center', ...rest } = Astro.props
20
20
  </Root>
21
21
 
22
22
  <style is:global lang="scss">
23
- .spread {
24
- display: flex;
25
- flex-direction: row;
26
- flex-wrap: wrap;
27
- justify-content: space-between;
28
- gap: var(--space-5);
29
- width: 100%;
23
+ @layer fulldev {
24
+ .spread {
25
+ display: flex;
26
+ flex-direction: row;
27
+ flex-wrap: wrap;
28
+ justify-content: space-between;
29
+ gap: var(--space-5);
30
+ width: 100%;
30
31
 
31
- &.align-start {
32
- align-items: flex-start;
33
- text-align: left;
34
- }
32
+ &.align-start {
33
+ align-items: flex-start;
34
+ text-align: left;
35
+ }
35
36
 
36
- &.align-center {
37
- align-items: center;
38
- }
37
+ &.align-center {
38
+ align-items: center;
39
+ }
39
40
 
40
- &.align-end {
41
- align-items: flex-end;
41
+ &.align-end {
42
+ align-items: flex-end;
43
+ }
42
44
  }
43
45
  }
44
46
  </style>
@@ -52,62 +52,64 @@ const {
52
52
  </Root>
53
53
 
54
54
  <style is:global lang="scss">
55
- .switch {
56
- position: relative;
57
- align-items: center;
58
- gap: var(--space-1);
59
- width: 100%;
60
-
61
- .switch-element {
62
- display: block;
55
+ @layer fulldev {
56
+ .switch {
63
57
  position: relative;
64
- transition: var(--transition);
65
- cursor: pointer;
66
- box-sizing: border-box;
67
- border: 1px solid var(--border);
68
- border-radius: 999px;
69
- background-color: var(--base-2);
70
- padding: var(--space-1);
71
- width: fit-content;
72
- min-width: calc(
73
- (var(--text-2) + 2 * var(--space-2) * 2) + 2 * var(--space-1)
74
- );
75
- height: calc(var(--text-2) + 2 * var(--space-2));
76
-
77
- .checkbox {
78
- position: absolute;
79
- opacity: 0;
80
- width: 0;
81
- height: 0;
82
- }
58
+ align-items: center;
59
+ gap: var(--space-1);
60
+ width: 100%;
83
61
 
84
- .checkmark {
85
- transform: 0%;
62
+ .switch-element {
63
+ display: block;
64
+ position: relative;
86
65
  transition: var(--transition);
66
+ cursor: pointer;
67
+ box-sizing: border-box;
68
+ border: 1px solid var(--border);
87
69
  border-radius: 999px;
88
- background-color: var(--base-1);
89
- width: 50%;
90
- height: 100%;
91
- }
70
+ background-color: var(--base-2);
71
+ padding: var(--space-1);
72
+ width: fit-content;
73
+ min-width: calc(
74
+ (var(--text-2) + 2 * var(--space-2) * 2) + 2 * var(--space-1)
75
+ );
76
+ height: calc(var(--text-2) + 2 * var(--space-2));
92
77
 
93
- .checkbox:checked ~ .checkmark {
94
- transform: translateX(100%);
95
- background-color: var(--color-12);
96
- }
78
+ .checkbox {
79
+ position: absolute;
80
+ opacity: 0;
81
+ width: 0;
82
+ height: 0;
83
+ }
97
84
 
98
- &:hover {
99
- background-color: var(--base-3);
100
- }
85
+ .checkmark {
86
+ transform: 0%;
87
+ transition: var(--transition);
88
+ border-radius: 999px;
89
+ background-color: var(--base-1);
90
+ width: 50%;
91
+ height: 100%;
92
+ }
101
93
 
102
- &:focus-visible {
103
- outline: 2px solid var(--focus) !important;
104
- outline-offset: 2px;
105
- }
94
+ .checkbox:checked ~ .checkmark {
95
+ transform: translateX(100%);
96
+ background-color: var(--color-12);
97
+ }
98
+
99
+ &:hover {
100
+ background-color: var(--base-3);
101
+ }
102
+
103
+ &:focus-visible {
104
+ outline: 2px solid var(--focus) !important;
105
+ outline-offset: 2px;
106
+ }
106
107
 
107
- &:disabled {
108
- opacity: 0.5;
109
- cursor: not-allowed;
110
- pointer-events: none;
108
+ &:disabled {
109
+ opacity: 0.5;
110
+ cursor: not-allowed;
111
+ pointer-events: none;
112
+ }
111
113
  }
112
114
  }
113
115
  }