fulldev-ui 0.3.35 → 0.4.0-beta.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 (287) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +57 -0
  2. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.yml +39 -0
  4. package/.github/pull_request_template.md +23 -0
  5. package/.github/workflows/github-releases-to-discord.yml +21 -0
  6. package/.prettierignore +15 -0
  7. package/.prettierrc.yaml +34 -0
  8. package/.vscode/extensions.json +4 -0
  9. package/.vscode/launch.json +11 -0
  10. package/.vscode/settings.json +23 -0
  11. package/CHANGELOG.md +100 -0
  12. package/CONTRIBUTING.md +102 -0
  13. package/LICENCE +21 -0
  14. package/README.md +9 -6
  15. package/astro.config.ts +44 -0
  16. package/package.json +41 -27
  17. package/pnpm-lock.yaml +6229 -0
  18. package/public/favicon/android-chrome-192x192.png +0 -0
  19. package/public/favicon/android-chrome-512x512.png +0 -0
  20. package/public/favicon/apple-touch-icon.png +0 -0
  21. package/public/favicon/browserconfig.xml +9 -0
  22. package/public/favicon/favicon-16x16.png +0 -0
  23. package/public/favicon/favicon-32x32.png +0 -0
  24. package/public/favicon/favicon.ico +0 -0
  25. package/public/favicon/mstile-150x150.png +0 -0
  26. package/public/favicon/safari-pinned-tab.svg +17 -0
  27. package/public/favicon/site.webmanifest +19 -0
  28. package/public/images/avatar-placeholder.jpg +0 -0
  29. package/public/images/avatars/1.jpeg +0 -0
  30. package/public/images/avatars/2.jpeg +0 -0
  31. package/public/images/avatars/3.jpeg +0 -0
  32. package/public/images/avatars/300/1.jpeg +0 -0
  33. package/public/images/avatars/300/2.jpeg +0 -0
  34. package/public/images/avatars/300/3.jpeg +0 -0
  35. package/public/images/avatars/300/4.jpeg +0 -0
  36. package/public/images/avatars/4.jpeg +0 -0
  37. package/public/images/avatars/5.jpeg +0 -0
  38. package/public/images/avatars/500/1.jpeg +0 -0
  39. package/public/images/avatars/500/2.jpeg +0 -0
  40. package/public/images/avatars/500/3.jpeg +0 -0
  41. package/public/images/avatars/500/4.jpeg +0 -0
  42. package/public/images/avatars/6.jpeg +0 -0
  43. package/public/images/avatars/7.jpeg +0 -0
  44. package/public/images/avatars/8.jpeg +0 -0
  45. package/public/images/block-code.png +0 -0
  46. package/public/images/blocks/colleagues.png +0 -0
  47. package/public/images/blocks/content.png +0 -0
  48. package/public/images/blocks/cta.png +0 -0
  49. package/public/images/blocks/features.png +0 -0
  50. package/public/images/blocks/footer.png +0 -0
  51. package/public/images/blocks/header.png +0 -0
  52. package/public/images/blocks/hero.png +0 -0
  53. package/public/images/blocks/intro.png +0 -0
  54. package/public/images/blocks/posts.png +0 -0
  55. package/public/images/blocks/prices.png +0 -0
  56. package/public/images/blocks/reviews.png +0 -0
  57. package/public/images/component-code.png +0 -0
  58. package/public/images/logo-placeholder.svg +1 -0
  59. package/public/images/placeholder-center.webp +0 -0
  60. package/public/images/placeholder-landscape-dark.png +0 -0
  61. package/public/images/placeholder-landscape.webp +0 -0
  62. package/public/images/placeholder-portrait.webp +0 -0
  63. package/public/images/placeholder-right.webp +0 -0
  64. package/public/images/placeholder.webp +0 -0
  65. package/siteicon.png +0 -0
  66. package/src/blocks/Categories.astro +12 -0
  67. package/src/blocks/Colleagues.astro +12 -0
  68. package/src/blocks/Contact.astro +152 -0
  69. package/src/blocks/Content.astro +12 -0
  70. package/src/blocks/Cta.astro +14 -0
  71. package/src/blocks/Features.astro +11 -0
  72. package/src/blocks/Footer.astro +7 -0
  73. package/src/blocks/Header.astro +7 -0
  74. package/src/blocks/Hero.astro +16 -0
  75. package/src/blocks/Intro.astro +19 -0
  76. package/src/blocks/Jobs.astro +12 -0
  77. package/src/blocks/Posts.astro +11 -0
  78. package/src/blocks/Prices.astro +22 -0
  79. package/src/blocks/Product.astro +64 -0
  80. package/src/blocks/Products.astro +11 -0
  81. package/src/blocks/Reviews.astro +13 -0
  82. package/src/components/{base/Avatar.astro → Avatar.astro} +7 -11
  83. package/src/components/{base/Badge.astro → Badge.astro} +36 -22
  84. package/src/components/{structure/Bento.astro → Bento.astro} +6 -9
  85. package/src/components/Block.astro +157 -0
  86. package/src/components/Blocks.astro +5 -0
  87. package/src/components/Box.astro +60 -0
  88. package/src/components/Button.astro +140 -0
  89. package/src/components/Card.astro +212 -0
  90. package/src/components/{structure/Carousel.astro → Carousel.astro} +13 -16
  91. package/src/components/Checkbox.astro +63 -0
  92. package/src/components/{structure/Column.astro → Column.astro} +18 -9
  93. package/src/components/Dialog.astro +65 -0
  94. package/src/components/Drawer.astro +99 -0
  95. package/src/components/Footer.astro +144 -0
  96. package/src/components/{structure/Grid.astro → Grid.astro} +7 -10
  97. package/src/components/Head.astro +85 -0
  98. package/src/components/Header.astro +204 -0
  99. package/src/components/Heading.astro +79 -0
  100. package/src/components/{base/Icon.astro → Icon.astro} +7 -9
  101. package/src/components/{base/Image.astro → Image.astro} +32 -30
  102. package/src/components/Input.astro +119 -0
  103. package/src/components/{typography/Label.astro → Label.astro} +12 -12
  104. package/src/components/{typography/Link.astro → Link.astro} +15 -13
  105. package/src/components/List.astro +41 -0
  106. package/src/components/{structure/Masonry.astro → Masonry.astro} +9 -11
  107. package/src/components/Rating.astro +82 -0
  108. package/src/components/{_Component.astro → Root.astro} +9 -11
  109. package/src/components/{structure/Row.astro → Row.astro} +6 -9
  110. package/src/components/Search.astro +62 -0
  111. package/src/components/Section.astro +274 -0
  112. package/src/components/Select.astro +144 -0
  113. package/src/components/Sidebar.astro +71 -0
  114. package/src/components/{structure/Split.astro → Split.astro} +6 -9
  115. package/src/components/{structure/Spread.astro → Spread.astro} +6 -9
  116. package/src/components/Switch.astro +114 -0
  117. package/src/components/Table.astro +121 -0
  118. package/src/components/Tagline.astro +35 -0
  119. package/src/components/Text.astro +43 -0
  120. package/src/components/Textarea.astro +105 -0
  121. package/src/components/Toc.astro +52 -0
  122. package/src/components/{structure/Wrap.astro → Wrap.astro} +5 -10
  123. package/src/components/docs/DecorativeBox.astro +15 -0
  124. package/src/components/docs/PropsTable.astro +95 -0
  125. package/src/components/experimental/Channel.astro +15 -10
  126. package/src/components/experimental/Form.astro +34 -0
  127. package/src/components/experimental/Gallery.astro +180 -0
  128. package/src/components/experimental/GalleryVertical.astro +161 -0
  129. package/src/components/{base → experimental}/Logo.astro +3 -5
  130. package/src/components/experimental/Price.astro +17 -15
  131. package/src/components/experimental/Prose.astro +154 -0
  132. package/src/components/{base → experimental}/Video.astro +1 -1
  133. package/src/components/experimental/Window.astro +173 -0
  134. package/src/content/config.ts +16 -13
  135. package/src/content/pages/_changelog.mdx +10 -0
  136. package/src/content/pages/_segment/footer.mdx +244 -0
  137. package/src/content/pages/_segment/header.mdx +210 -0
  138. package/src/content/pages/base/_dialog.mdx +17 -0
  139. package/src/content/pages/base/_drawer.mdx +17 -0
  140. package/src/content/pages/base/_image.mdx +14 -0
  141. package/src/content/pages/base/_switch.mdx +33 -0
  142. package/src/content/pages/base/badge.mdx +70 -0
  143. package/src/content/pages/base/button.mdx +71 -0
  144. package/src/content/pages/base/card.mdx +114 -0
  145. package/src/content/pages/base/checkbox.mdx +43 -0
  146. package/src/content/pages/base/icon.mdx +54 -0
  147. package/src/content/pages/base/input.mdx +67 -0
  148. package/src/content/pages/base/rating.mdx +66 -0
  149. package/src/content/pages/base/section.mdx +79 -0
  150. package/src/content/pages/base/select.mdx +77 -0
  151. package/src/content/pages/base/table.mdx +133 -0
  152. package/src/content/pages/base/textarea.mdx +73 -0
  153. package/src/content/pages/blocks/_banner.mdx +13 -0
  154. package/src/content/pages/blocks/_categories.mdx +149 -0
  155. package/src/content/pages/blocks/_jobs.mdx +37 -0
  156. package/src/content/pages/blocks/_product.mdx +29 -0
  157. package/src/content/pages/blocks/_products.mdx +55 -0
  158. package/src/content/pages/blocks/_stats.mdx +34 -0
  159. package/src/content/pages/blocks/colleagues.mdx +42 -0
  160. package/src/content/pages/blocks/content.mdx +101 -0
  161. package/src/content/pages/blocks/cta.mdx +192 -0
  162. package/src/content/pages/blocks/features.mdx +134 -0
  163. package/src/content/pages/blocks/footer.mdx +71 -0
  164. package/src/content/pages/blocks/header.mdx +192 -0
  165. package/src/content/pages/blocks/hero.mdx +97 -0
  166. package/src/content/pages/blocks/intro.mdx +132 -0
  167. package/src/content/pages/blocks/posts.mdx +40 -0
  168. package/src/content/pages/blocks/prices.mdx +126 -0
  169. package/src/content/pages/blocks/reviews.mdx +249 -0
  170. package/src/content/pages/blocks.mdx +10 -0
  171. package/src/content/pages/index.mdx +65 -0
  172. package/src/content/pages/overview/frameworks.mdx +180 -0
  173. package/src/content/pages/overview/installation.mdx +20 -0
  174. package/src/content/pages/overview/integration.mdx +37 -0
  175. package/src/content/pages/overview/introduction.mdx +20 -0
  176. package/src/content/pages/overview/theming.mdx +83 -0
  177. package/src/content/pages/structure/_row.mdx +23 -0
  178. package/src/content/pages/structure/_wrap.mdx +25 -0
  179. package/src/content/pages/structure/carousel.mdx +31 -0
  180. package/src/content/pages/structure/column.mdx +21 -0
  181. package/src/content/pages/structure/grid.mdx +26 -0
  182. package/src/content/pages/structure/masonry.mdx +32 -0
  183. package/src/content/pages/structure/split.mdx +21 -0
  184. package/src/content/pages/structure/spread.mdx +21 -0
  185. package/src/content/pages/typography/_tagline.mdx +36 -0
  186. package/src/content/pages/typography/heading.mdx +74 -0
  187. package/src/content/pages/typography/label.mdx +42 -0
  188. package/src/content/pages/typography/link.mdx +63 -0
  189. package/src/content/pages/typography/list.mdx +52 -0
  190. package/src/content/pages/typography/text.mdx +62 -0
  191. package/src/content/records/record.yml +1 -0
  192. package/src/content/settings/base.yml +48 -0
  193. package/src/content/settings/components.yml +27 -0
  194. package/src/css/color.css +6 -67
  195. package/src/css/custom.css +59 -0
  196. package/src/css/size.css +130 -0
  197. package/src/css/space.css +47 -26
  198. package/src/css/styles.css +4 -2
  199. package/src/env.d.ts +1 -1
  200. package/src/integration/generate-colors.ts +637 -0
  201. package/src/integration/index.ts +158 -0
  202. package/src/integration/tailwind-plugin.ts +80 -0
  203. package/src/integration/unocss-preset.ts +84 -0
  204. package/src/layouts/BlockLayout.astro +24 -0
  205. package/src/layouts/BlockOverviewLayout.astro +39 -0
  206. package/src/layouts/ComponentLayout.astro +23 -0
  207. package/src/layouts/JobsLayout.astro +40 -0
  208. package/src/layouts/Layout.astro +168 -0
  209. package/src/layouts/OverviewLayout.astro +45 -0
  210. package/src/layouts/PageLayout.astro +32 -0
  211. package/src/layouts/PostLayout.astro +32 -0
  212. package/src/layouts/ProductLayout.astro +31 -0
  213. package/src/pages/[...page].astro +41 -0
  214. package/src/schemas/base.ts +81 -0
  215. package/src/schemas/block.ts +15 -0
  216. package/src/schemas/card.ts +3 -0
  217. package/src/schemas/page.ts +43 -0
  218. package/src/schemas/utils.ts +22 -0
  219. package/src/utils/mergeEntries.ts +28 -0
  220. package/tsconfig.json +10 -1
  221. package/.astro/settings.json +0 -5
  222. package/.astro/types.d.ts +0 -147
  223. package/.env +0 -1
  224. package/astro.config.mjs +0 -6
  225. package/src/components/_Block.astro +0 -20
  226. package/src/components/_Blocks.astro +0 -11
  227. package/src/components/_Children.astro +0 -31
  228. package/src/components/_archive/Body.astro +0 -37
  229. package/src/components/_archive/Main.astro +0 -28
  230. package/src/components/_archive/Nav.astro +0 -50
  231. package/src/components/_todo/Form.astro +0 -36
  232. package/src/components/_todo/Prose.astro +0 -139
  233. package/src/components/_todo/Writeup.astro +0 -24
  234. package/src/components/base/Button.astro +0 -123
  235. package/src/components/base/Rating.astro +0 -47
  236. package/src/components/base/checkbox/Checkbox.astro +0 -52
  237. package/src/components/base/checkbox/CheckboxElement.astro +0 -31
  238. package/src/components/base/input/Input.astro +0 -79
  239. package/src/components/base/input/InputElement.astro +0 -69
  240. package/src/components/base/radio/Radio.astro +0 -66
  241. package/src/components/base/radio/RadioElement.astro +0 -34
  242. package/src/components/base/select/Select.astro +0 -90
  243. package/src/components/base/select/SelectElement.astro +0 -56
  244. package/src/components/base/select/SelectOption.astro +0 -32
  245. package/src/components/base/switch/Switch.astro +0 -55
  246. package/src/components/base/switch/SwitchElement.astro +0 -84
  247. package/src/components/base/table/Table.astro +0 -57
  248. package/src/components/base/table/TableBody.astro +0 -38
  249. package/src/components/base/table/TableCell.astro +0 -30
  250. package/src/components/base/table/TableFooter.astro +0 -48
  251. package/src/components/base/table/TableHead.astro +0 -31
  252. package/src/components/base/table/TableHeader.astro +0 -44
  253. package/src/components/base/table/TableRow.astro +0 -46
  254. package/src/components/base/textarea/Textarea.astro +0 -79
  255. package/src/components/base/textarea/TextareaElement.astro +0 -68
  256. package/src/components/segment/Box.astro +0 -46
  257. package/src/components/segment/Card.astro +0 -114
  258. package/src/components/segment/Footer.astro +0 -94
  259. package/src/components/segment/Header.astro +0 -100
  260. package/src/components/segment/Section.astro +0 -103
  261. package/src/components/segment/_regels.md +0 -32
  262. package/src/components/typography/Heading.astro +0 -66
  263. package/src/components/typography/List.astro +0 -47
  264. package/src/components/typography/ListItem.astro +0 -36
  265. package/src/components/typography/Paragraph.astro +0 -36
  266. package/src/components/typography/Tagline.astro +0 -36
  267. package/src/components/typography/Text.astro +0 -37
  268. package/src/components/utility/Head.astro +0 -83
  269. package/src/components/utility/Layout.astro +0 -46
  270. package/src/content/pages/index.md +0 -2
  271. package/src/css/color.scss +0 -289
  272. package/src/css/size.scss +0 -296
  273. package/src/css/utils.scss +0 -16
  274. package/src/index.ts +0 -71
  275. package/src/integration/integration.ts +0 -88
  276. package/src/integration/tailwind.ts +0 -34
  277. package/src/integration/unocss.ts +0 -38
  278. /package/src/{_archive → utils/_archive}/Childmorphic.ts +0 -0
  279. /package/src/{_archive → utils/_archive}/getAllCollections.ts +0 -0
  280. /package/src/{_archive → utils/_archive}/getCollectionCascade.ts +0 -0
  281. /package/src/{_archive → utils/_archive}/getPathname.ts +0 -0
  282. /package/src/{_archive → utils/_archive}/staticPageSchema.ts +0 -0
  283. /package/src/{_archive → utils/_archive}/transform/transform.ts +0 -0
  284. /package/src/{_archive → utils/_archive}/transform/transformCasing.ts +0 -0
  285. /package/src/{_archive → utils/_archive}/transform/transformReferences.ts +0 -0
  286. /package/src/{_archive → utils/_archive}/transform/transformSelfs.ts +0 -0
  287. /package/src/{_archive → utils/_archive}/transform/transformUnderscores.ts +0 -0
@@ -0,0 +1,249 @@
1
+ ---
2
+ _layout: BlockLayout
3
+
4
+ title: Reviews
5
+ image: /images/blocks/reviews.png
6
+ ---
7
+
8
+ ```astro live
9
+ ---
10
+ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
11
+ ---
12
+
13
+ <Reviews
14
+ size="md"
15
+ tagline="Rated 5,0 out of 86 reviews"
16
+ heading="What Our Customers Say"
17
+ text="Discover what our satisfied customers are saying about us."
18
+ cards={[
19
+ {
20
+ rating: {
21
+ value: 5,
22
+ avatar: '/images/avatars/1.jpeg',
23
+ label: 'John Doe',
24
+ },
25
+ heading: 'Exceptional Service',
26
+ text: 'Outstanding experience! Highly recommended.',
27
+ },
28
+ {
29
+ rating: {
30
+ value: 5,
31
+ avatar: '/images/avatars/2.jpeg',
32
+ label: 'Jane Smith',
33
+ },
34
+ heading: 'Great Product',
35
+ text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
36
+ },
37
+ {
38
+ rating: {
39
+ value: 5,
40
+ avatar: '/images/avatars/3.jpeg',
41
+ label: 'Mike Johnson',
42
+ },
43
+ heading: 'Reliable and Efficient',
44
+ text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
45
+ },
46
+ {
47
+ rating: {
48
+ value: 5,
49
+ avatar: '/images/avatars/4.jpeg',
50
+ label: 'Emily Brown',
51
+ },
52
+ heading: 'Fantastic Experience',
53
+ text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
54
+ },
55
+ {
56
+ rating: {
57
+ value: 5,
58
+ avatar: '/images/avatars/5.jpeg',
59
+ label: 'David Wilson',
60
+ },
61
+ heading: 'Best in Class',
62
+ text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
63
+ },
64
+ {
65
+ rating: {
66
+ value: 5,
67
+ avatar: '/images/avatars/6.jpeg',
68
+ label: 'Sarah Davis',
69
+ },
70
+ heading: 'Innovative Design',
71
+ text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
72
+ },
73
+ {
74
+ rating: {
75
+ value: 5,
76
+ avatar: '/images/avatars/7.jpeg',
77
+ label: 'Alex Taylor',
78
+ },
79
+ heading: 'Time-Saver',
80
+ text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
81
+ },
82
+ {
83
+ rating: {
84
+ value: 5,
85
+ avatar: '/images/avatars/8.jpeg',
86
+ label: 'Olivia Martinez',
87
+ },
88
+ heading: 'Reliable and Durable',
89
+ text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
90
+ },
91
+ ]}
92
+ />
93
+ ```
94
+
95
+ ```astro live
96
+ ---
97
+ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
98
+ ---
99
+
100
+ <Reviews
101
+ rating={{
102
+ value: 5,
103
+ label: 'Rated 5,0 out of 86 reviews',
104
+ avatars: [
105
+ '/images/avatars/1.jpeg',
106
+ '/images/avatars/2.jpeg',
107
+ '/images/avatars/3.jpeg',
108
+ '/images/avatars/4.jpeg',
109
+ ],
110
+ }}
111
+ heading="What Our Customers Say"
112
+ text="Discover what our satisfied customers are saying about us."
113
+ cards={[
114
+ {
115
+ rating: 5,
116
+ heading: 'Exceptional Service',
117
+ text: 'Outstanding experience! Highly recommended.',
118
+ },
119
+ {
120
+ rating: 5,
121
+ heading: 'Great Product',
122
+ text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
123
+ },
124
+ {
125
+ rating: 5,
126
+ heading: 'Reliable and Efficient',
127
+ text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
128
+ },
129
+ {
130
+ rating: 5,
131
+ heading: 'Fantastic Experience',
132
+ text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
133
+ },
134
+ {
135
+ rating: 5,
136
+ heading: 'Best in Class',
137
+ text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
138
+ },
139
+ {
140
+ rating: 5,
141
+ heading: 'Innovative Design',
142
+ text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
143
+ },
144
+ {
145
+ rating: 5,
146
+ heading: 'Time-Saver',
147
+ text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
148
+ },
149
+ {
150
+ rating: 5,
151
+ heading: 'Reliable and Durable',
152
+ text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
153
+ },
154
+ ]}
155
+ />
156
+ ```
157
+
158
+ ```astro live
159
+ ---
160
+ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
161
+ ---
162
+
163
+ <Reviews
164
+ size="sm"
165
+ align="start"
166
+ structure="carousel"
167
+ heading="What Our Customers Say"
168
+ text="Discover what our satisfied customers are saying about us."
169
+ cards={[
170
+ {
171
+ rating: 5,
172
+ heading: 'Exceptional Service',
173
+ text: 'Outstanding experience! Highly recommended.',
174
+ },
175
+ {
176
+ rating: 5,
177
+ heading: 'Great Product',
178
+ text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
179
+ },
180
+ {
181
+ rating: 5,
182
+ heading: 'Reliable and Efficient',
183
+ text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
184
+ },
185
+ {
186
+ rating: 5,
187
+ heading: 'Fantastic Experience',
188
+ text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
189
+ },
190
+ {
191
+ rating: 5,
192
+ heading: 'Best in Class',
193
+ text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
194
+ },
195
+ {
196
+ rating: 5,
197
+ heading: 'Innovative Design',
198
+ text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
199
+ },
200
+ {
201
+ rating: 5,
202
+ heading: 'Time-Saver',
203
+ text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
204
+ },
205
+ {
206
+ rating: 5,
207
+ heading: 'Reliable and Durable',
208
+ text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
209
+ },
210
+ ]}
211
+ />
212
+ ```
213
+
214
+ ```astro live
215
+ ---
216
+ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
217
+ ---
218
+
219
+ <Reviews
220
+ heading="Customer Testimonials"
221
+ text="See what our valued customers have to say about their experiences."
222
+ structure="grid"
223
+ frame="panel"
224
+ variant="primary"
225
+ cards={[
226
+ {
227
+ rating: 5,
228
+ heading: 'Life-Changing Product',
229
+ text: "This product has revolutionized my daily routine. I can't imagine life without it now!",
230
+ avatar: '/images/avatars/1.jpeg',
231
+ label: 'John Doe',
232
+ },
233
+ {
234
+ rating: 4,
235
+ heading: 'Great Value for Money',
236
+ text: 'Excellent quality at a reasonable price. Definitely worth every penny.',
237
+ avatar: '/images/avatars/2.jpeg',
238
+ label: 'Jane Smith',
239
+ },
240
+ {
241
+ rating: 5,
242
+ heading: 'Superb Customer Service',
243
+ text: 'The support team went above and beyond to help me. Truly impressive!',
244
+ avatar: '/images/avatars/3.jpeg',
245
+ label: 'Mike Johnson',
246
+ },
247
+ ]}
248
+ />
249
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ _layout: BlockOverviewLayout
3
+
4
+ seo:
5
+ title: Fulldev UI - Astro block library, open-source
6
+ description: Make websites rapidly with pre-built blocks.
7
+
8
+ title: Blocks
9
+ heading: Blocks that you can customize with props
10
+ ---
@@ -0,0 +1,65 @@
1
+ ---
2
+ seo:
3
+ title: Fulldev UI - Astro component and block library, open-source
4
+ description: Make websites rapidly with pre-built components and blocks.
5
+
6
+ sections:
7
+ hero:
8
+ _bookshop_name: Hero
9
+ color: brand
10
+ badge:
11
+ as: a
12
+ text: We just released a big update 🎉
13
+ href: https://discord.gg/vXZqMbadm8
14
+ heading: The Astro UI library to build content sites
15
+ text: Make websites with prebuilt components and blocks
16
+ buttons:
17
+ - text: Get Started
18
+ href: /overview/installation
19
+ - text: GitHub
20
+ href: https://github.com/fulldotdev/ui
21
+ target: _blank
22
+ icon: brand-github
23
+
24
+ blocks:
25
+ _bookshop_name: Content
26
+ color: brand
27
+ label: Blocks
28
+ heading: Use pre-built blocks with just props
29
+ text: we created a great gallery of blocks to build content sites with a modern look and feel, all of our blocks are build with components from the library to achieve a consistent look.
30
+ image: /images/block-code.png
31
+ reverse: odd
32
+ buttons:
33
+ - href: /blocks
34
+ icon: layout
35
+ text: View blocks
36
+
37
+ components:
38
+ _bookshop_name: Content
39
+ color: brand
40
+ label: Components
41
+ heading: Or built your own, with easy to use components
42
+ text: our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
43
+ image: /images/component-code.png
44
+ reverse: odd
45
+ buttons:
46
+ - href: /base/badge
47
+ icon: code
48
+ text: View components
49
+
50
+ cta:
51
+ _bookshop_name: Cta
52
+ size: lg
53
+ variant: primary
54
+ heading: Build content websites in a fraction of time
55
+ text: A library of components and blocks to build content sites, fast.
56
+ buttons:
57
+ - text: Get Started
58
+ href: /overview/installation
59
+ color: brand
60
+ - text: Github
61
+ href: https://github.com/fulldotdev/ui
62
+ target: _blank
63
+ icon: brand-github
64
+ color: brand
65
+ ---
@@ -0,0 +1,180 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ ---
5
+
6
+ # Frameworks
7
+ Fulldev UI is written in vanilla CSS and .astro files. It is framework agnostic.
8
+
9
+ ## JS frameworks
10
+
11
+ All styles in Fulldev UI use regular CSS and classes. Classes use the following naming convention:
12
+
13
+ - Component classes are the same as the component name, like `button` for `<Button>`.
14
+ - Prop classes have the prop name as prefix, like `variant-primary` for `<Button variant="primary">`.
15
+ - If a prop is a boolean the class is added without a prefix, like `contrast`.
16
+ - To prevent conflicts, all styles only apply if there is a `full` class on the element too.
17
+
18
+ This means you can apply Fulldev UI styles to any framework component as follows:
19
+
20
+ ```astro live
21
+ ---
22
+ import Button from 'fulldev-ui/components/Button.astro'
23
+ ---
24
+
25
+ <a class="full button variant-primary contrast radius-auto"> Button </a>
26
+ <Button contrast> Button </Button>
27
+ ```
28
+
29
+ ## CSS frameworks
30
+
31
+ A TailwindCSS plugin and UnoCSS preset is available.
32
+
33
+ ### TailwindCSS
34
+
35
+ In your `tailwind.config.ts` add the following:
36
+
37
+ ```ts
38
+ // tailwind.config.ts
39
+ import fulldevUI from 'fulldev-ui/tailwind'
40
+
41
+ export default defineConfig({
42
+ plugins: [fulldevUI],
43
+ })
44
+ ```
45
+
46
+ ### UnoCSS
47
+
48
+ In your `uno.config.ts` add the following:
49
+
50
+ ```ts
51
+ // uno.config.ts
52
+ import fulldevUI from 'fulldev-ui/unocss'
53
+
54
+ export default defineConfig({
55
+ presets: [fulldevUI],
56
+ })
57
+ ```
58
+
59
+
60
+ ```ts
61
+ // uno.config.ts
62
+ import fulldevUI from 'fulldev-ui/unocss'
63
+
64
+ export default defineConfig({
65
+ presets: [fulldevUI],
66
+ })
67
+ ```
68
+
69
+ ## Utility classes
70
+
71
+ The following classes are available when using the Tailwind plugin or UnoCSS preset.
72
+
73
+ ### Spacing
74
+
75
+ The following spacing classes are added to your tailwind/uno config.
76
+
77
+ You can use them like `p-space-1`, `m-space-1`, `h-space-1`, `w-space-1`, etc.
78
+ ```ts
79
+ spacing: {
80
+ 'space-1': 'var(--space-1)',
81
+ 'space-2': 'var(--space-2)',
82
+ 'space-3': 'var(--space-3)',
83
+ 'space-4': 'var(--space-4)',
84
+ 'space-5': 'var(--space-5)',
85
+ 'space-6': 'var(--space-6)',
86
+ 'space-7': 'var(--space-7)',
87
+ },
88
+ ```
89
+
90
+ ### Font size
91
+
92
+ The following spacing classes are added to your tailwind/uno config.
93
+
94
+ You can use them like `text-1`, `text-2`, `text-3`, etc.
95
+
96
+ ```ts
97
+ fontSize: {
98
+ 1: 'var(--text-1)',
99
+ 2: 'var(--text-2)',
100
+ 3: 'var(--text-3)',
101
+ 4: 'var(--text-4)',
102
+ 5: 'var(--text-5)',
103
+ 6: 'var(--text-6)',
104
+ 7: 'var(--text-7)',
105
+ 8: 'var(--text-8)',
106
+ }
107
+ ```
108
+
109
+ ### Border radius
110
+
111
+ The following border radius classes are added to your tailwind/uno config.
112
+
113
+ You can use them like `rounded-1`, `rounded-2`, `rounded-3`, etc.
114
+
115
+ ```ts
116
+ borderRadius: {
117
+ 1: 'var(--radius-1)',
118
+ 2: 'var(--radius-2)',
119
+ 3: 'var(--radius-3)',
120
+ }
121
+ ```
122
+
123
+ ### Color classes
124
+
125
+ The following color classes are added to your tailwind/uno config.
126
+
127
+ You can use them like `bg-color-1`, `text-base-2`, `border-base-6`, etc.
128
+
129
+ ```ts
130
+ colors: {
131
+ color: {
132
+ 1: 'var(--color-1)',
133
+ 2: 'var(--color-2)',
134
+ 3: 'var(--color-3)',
135
+ 4: 'var(--color-4)',
136
+ 5: 'var(--color-5)',
137
+ 6: 'var(--color-6)',
138
+ 7: 'var(--color-7)',
139
+ 8: 'var(--color-8)',
140
+ 9: 'var(--color-9)',
141
+ 10: 'var(--color-10)',
142
+ 11: 'var(--color-11)',
143
+ 12: 'var(--color-12)',
144
+ contrast: 'var(--color-contrast)',
145
+ background: 'var(--color-background)',
146
+ },
147
+ base: {
148
+ 1: 'var(--color-base-1)',
149
+ 2: 'var(--color-base-2)',
150
+ 3: 'var(--color-base-3)',
151
+ 4: 'var(--color-base-4)',
152
+ 5: 'var(--color-base-5)',
153
+ 6: 'var(--color-base-6)',
154
+ 7: 'var(--color-base-7)',
155
+ 8: 'var(--color-base-8)',
156
+ 9: 'var(--color-base-9)',
157
+ 10: 'var(--color-base-10)',
158
+ 11: 'var(--color-base-11)',
159
+ 12: 'var(--color-base-12)',
160
+ contrast: 'var(--color-base-contrast)',
161
+ background: 'var(--color-base-background)',
162
+ },
163
+ brand: {
164
+ 1: 'var(--color-brand-1)',
165
+ 2: 'var(--color-brand-2)',
166
+ 3: 'var(--color-brand-3)',
167
+ 4: 'var(--color-brand-4)',
168
+ 5: 'var(--color-brand-5)',
169
+ 6: 'var(--color-brand-6)',
170
+ 7: 'var(--color-brand-7)',
171
+ 8: 'var(--color-brand-8)',
172
+ 9: 'var(--color-brand-9)',
173
+ 10: 'var(--color-brand-10)',
174
+ 11: 'var(--color-brand-11)',
175
+ 12: 'var(--color-brand-12)',
176
+ contrast: 'var(--color-brand-contrast)',
177
+ background: 'var(--color-brand-background)',
178
+ }
179
+ }
180
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Installation
9
+
10
+ Install fulldev-ui with your favorite package manager and you are ready to go. To get started with the integration see the <Link href="/overview/integration">integration page.</Link>
11
+
12
+ ```bash
13
+ pnpm i fulldev-ui
14
+ # or
15
+ bun i fulldev-ui
16
+ # or
17
+ yarn add fulldev-ui
18
+ # or
19
+ npm i fulldev-ui
20
+ ```
@@ -0,0 +1,37 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Integration
9
+
10
+ After <Link href="/overview/installation">installation</Link> you can generate your color palettes via an Astro integration. You can optionally add a custom css file and define custom colors and other theming options, see the <Link href="/overview/theming">theming page</Link> for more information.
11
+
12
+ ```ts
13
+ import { defineConfig } from 'astro/config'
14
+ import fulldev from 'fulldev-ui/integration'
15
+
16
+ // https://astro.build/config
17
+ export default defineConfig({
18
+ integrations: [
19
+ fulldev({
20
+ css: '/src/css/custom.css',
21
+ colors: {
22
+ theme: 'dark',
23
+ dark: {
24
+ background: '#111110',
25
+ base: '#6F6D66',
26
+ brand: '#F50',
27
+ },
28
+ light: {
29
+ background: '#EEEEEC',
30
+ base: '#6F6D66',
31
+ brand: '#F50',
32
+ },
33
+ },
34
+ }),
35
+ ],
36
+ })
37
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ ---
5
+
6
+ # Introduction
7
+
8
+ Fulldev UI focusses on content websites rather than applications.
9
+
10
+ ##### Build entire websites with just components
11
+
12
+ Fulldev UI is unique in that it introduces larger components to build entire pages, and even websites. Like a Section component that just works.
13
+
14
+ ##### Integrates with any JS / CSS framework
15
+
16
+ Want to use Tailwind, or something else? You can overwrite all styles. Need an interactive framework component? Styles can be applied with one simple class.
17
+
18
+ ##### Automated colors, spacing and sizes
19
+
20
+ Everything is carefully designed to be fully responsive. Component adapt to their environment, like a Heading being different in a Section than in a Card. You can also customize via simple props.
@@ -0,0 +1,83 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Theming
9
+
10
+ ## Colors
11
+
12
+ The color theme is inspired by / compatible with <Link href="https://www.radix-ui.com/colors">Radix Colors.</Link>
13
+
14
+ ### Automatic setup
15
+
16
+ With the fulldev-ui integration you can easily set a theme and generate a radix color palette. See the <Link href="/overview/integration">integration page</Link> for details.
17
+
18
+ ### Manual setup
19
+
20
+ You can define a `base` and a `brand` theme, both with 12 steps and 1 contrast step for text on step 9. For a detailed explenation see <Link href="https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale">this page</Link>.
21
+
22
+ ```css
23
+ :root,
24
+ .theme-light {
25
+ --base-1: ;
26
+ --base-2: ;
27
+ --base-3: ;
28
+ --base-4: ;
29
+ --base-5: ;
30
+ --base-6: ;
31
+ --base-7: ;
32
+ --base-8: ;
33
+ --base-9: ;
34
+ --base-10: ;
35
+ --base-11: ;
36
+ --base-12: ;
37
+ --base-contrast: ;
38
+
39
+ --brand-1: ;
40
+ --brand-2: ;
41
+ --brand-3: ;
42
+ --brand-4: ;
43
+ --brand-5: ;
44
+ --brand-6: ;
45
+ --brand-7: ;
46
+ --brand-8: ;
47
+ --brand-9: ;
48
+ --brand-10: ;
49
+ --brand-11: ;
50
+ --brand-12: ;
51
+ --brand-contrast: ;
52
+ }
53
+ ```
54
+
55
+ ### Dark theme
56
+
57
+ Dark mode is set via a simple `.theme-dark` class.
58
+
59
+ If you want to use a dark theme by default, remove the `:root` selector from the light theme and add it to the dark theme.
60
+
61
+ Components in Fulldev UI that support theme switching have the `theme` prop available, which adds either the `theme-dark` or `theme-light` class
62
+
63
+ ```css
64
+ .theme-dark {
65
+ /* Same variables here as above */
66
+ }
67
+ ```
68
+
69
+ ## Radius
70
+
71
+ The `--border-radius` variable is a multiplier applied to all radius values. The default value is `1`.
72
+
73
+ ```css
74
+ :root {
75
+ --border-radius: 1;
76
+ }
77
+ ```
78
+
79
+ ## Other
80
+
81
+ Since Fulldev UI uses just regular CSS with low specificity, you can customize anything else using custom CSS.
82
+
83
+ We plan to add more customization via variables later.
@@ -0,0 +1,23 @@
1
+ ---
2
+ _layout: BlockLayout
3
+ title: Row
4
+ description: Structures children in a horizontal row. This component sizes dynamically, the margin between a heading and a paragraph is smaller than the margin between a paragraph an image.
5
+ ---
6
+
7
+ ```astro live
8
+ ---
9
+ import DecorativeBox from 'fulldev-ui/components/docs/DecorativeBox.astro'
10
+ import Row from 'fulldev-ui/components/Row.astro'
11
+ ---
12
+
13
+ <Row>
14
+ <DecorativeBox />
15
+ <DecorativeBox />
16
+ <DecorativeBox />
17
+ <DecorativeBox />
18
+ <DecorativeBox />
19
+ <DecorativeBox />
20
+ <DecorativeBox />
21
+ <DecorativeBox />
22
+ </Row>
23
+ ```