fulldev-ui 0.4.32 → 0.5.0-beta-16

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 (315) hide show
  1. package/.env.example +3 -0
  2. package/CONTRIBUTING.md +10 -4
  3. package/astro.config.ts +11 -11
  4. package/package.json +31 -17
  5. package/pnpm-lock.yaml +1353 -438
  6. package/public/favicon/android-chrome-192x192.png +0 -0
  7. package/public/favicon/android-chrome-512x512.png +0 -0
  8. package/public/favicon/apple-touch-icon.png +0 -0
  9. package/public/favicon/browserconfig.xml +7 -7
  10. package/public/favicon/favicon-16x16-dark.png +0 -0
  11. package/public/favicon/favicon-16x16.png +0 -0
  12. package/public/favicon/favicon-32x32-dark.png +0 -0
  13. package/public/favicon/favicon-32x32.png +0 -0
  14. package/public/favicon/favicon-48x48-dark.png +0 -0
  15. package/public/favicon/favicon-48x48.png +0 -0
  16. package/public/favicon/favicon-dark.ico +0 -0
  17. package/public/favicon/favicon.ico +0 -0
  18. package/public/favicon/favicon.svg +16 -0
  19. package/public/favicon/manifest.webmanifest +26 -0
  20. package/public/favicon/mstile-150x150.png +0 -0
  21. package/public/favicon/safari-pinned-tab.svg +14 -15
  22. package/public/favicon/yandex-browser-50x50.png +0 -0
  23. package/public/favicon/yandex-browser-manifest.json +9 -0
  24. package/src/blocks/Article.astro +40 -0
  25. package/src/blocks/Banner.astro +48 -0
  26. package/src/blocks/Colleagues.astro +2 -1
  27. package/src/blocks/Contact.astro +61 -99
  28. package/src/blocks/Cta.astro +2 -1
  29. package/src/blocks/Excerpt.astro +14 -0
  30. package/src/blocks/Hero.astro +1 -2
  31. package/src/blocks/Intro.astro +4 -1
  32. package/src/blocks/Jobs.astro +1 -1
  33. package/src/blocks/Prices.astro +1 -1
  34. package/src/blocks/Product.astro +75 -27
  35. package/src/blocks/Reviews.astro +1 -1
  36. package/src/components/Avatar.astro +3 -20
  37. package/src/components/Badge.astro +17 -54
  38. package/src/components/Badges.astro +40 -0
  39. package/src/components/Button.astro +65 -46
  40. package/src/components/Buttons.astro +49 -0
  41. package/src/components/Card.astro +100 -178
  42. package/src/components/Cards.astro +135 -0
  43. package/src/components/Cart.astro +38 -0
  44. package/src/components/CartForm.astro +122 -0
  45. package/src/components/CartList.astro +134 -0
  46. package/src/components/CartSummary.astro +148 -0
  47. package/src/components/Channel.astro +70 -0
  48. package/src/components/Channels.astro +37 -0
  49. package/src/components/Checkbox.astro +12 -16
  50. package/src/components/Dialog.astro +10 -12
  51. package/src/components/Drawer.astro +131 -63
  52. package/src/components/Element.astro +58 -0
  53. package/src/components/Footer.astro +142 -93
  54. package/src/components/Form.astro +49 -0
  55. package/src/components/Head.astro +11 -45
  56. package/src/components/Header.astro +91 -163
  57. package/src/components/Heading.astro +18 -26
  58. package/src/components/Icon.astro +9 -9
  59. package/src/components/Image.astro +42 -152
  60. package/src/components/Input.astro +16 -28
  61. package/src/components/Label.astro +14 -17
  62. package/src/components/Link.astro +22 -44
  63. package/src/components/List.astro +12 -10
  64. package/src/components/LocaleSwitcher.astro +25 -0
  65. package/src/components/Menu.astro +57 -0
  66. package/src/components/Price.astro +34 -0
  67. package/src/components/Rating.astro +29 -25
  68. package/src/components/Search.astro +4 -7
  69. package/src/components/Section.astro +196 -234
  70. package/src/components/Select.astro +16 -34
  71. package/src/components/Sidebar.astro +85 -58
  72. package/src/components/Social.astro +36 -0
  73. package/src/components/Socials.astro +37 -0
  74. package/src/components/Switch.astro +14 -22
  75. package/src/components/Table.astro +23 -36
  76. package/src/components/Tagline.astro +11 -16
  77. package/src/components/Text.astro +17 -19
  78. package/src/components/Textarea.astro +8 -22
  79. package/src/components/ThemeSelect.astro +41 -0
  80. package/src/components/Toc.astro +59 -56
  81. package/src/components/Writeup.astro +90 -0
  82. package/src/components/docs/PropsTable.astro +229 -56
  83. package/src/components/experimental/Form.astro +36 -17
  84. package/src/components/experimental/Gallery.astro +50 -126
  85. package/src/components/experimental/Logo.astro +26 -9
  86. package/src/components/experimental/Prose.astro +41 -5
  87. package/src/components/experimental/Video.astro +1 -1
  88. package/src/components/experimental/Window.astro +3 -4
  89. package/src/components/sections.astro +28 -0
  90. package/src/content/config.ts +10 -7
  91. package/src/content/pages/base/_dialog.mdx +1 -2
  92. package/src/content/pages/base/_drawer.mdx +1 -2
  93. package/src/content/pages/base/_localeswitcher.mdx +17 -0
  94. package/src/content/pages/base/_switch.mdx +1 -2
  95. package/src/content/pages/base/badge.mdx +1 -12
  96. package/src/content/pages/base/button.mdx +1 -12
  97. package/src/content/pages/base/card.mdx +2 -29
  98. package/src/content/pages/base/checkbox.mdx +1 -2
  99. package/src/content/pages/base/icon.mdx +1 -2
  100. package/src/content/pages/base/image.mdx +42 -0
  101. package/src/content/pages/base/input.mdx +1 -12
  102. package/src/content/pages/base/rating.mdx +3 -14
  103. package/src/content/pages/base/section.mdx +2 -3
  104. package/src/content/pages/base/select.mdx +1 -20
  105. package/src/content/pages/base/table.mdx +1 -28
  106. package/src/content/pages/base/textarea.mdx +1 -16
  107. package/src/content/pages/base/theme-select.mdx +15 -0
  108. package/src/content/pages/blocks/_categories.mdx +3 -5
  109. package/src/content/pages/blocks/{footer.mdx → _footer.mdx} +2 -4
  110. package/src/content/pages/blocks/{header.mdx → _header.mdx} +2 -7
  111. package/src/content/pages/blocks/_jobs.mdx +1 -2
  112. package/src/content/pages/blocks/{prices.mdx → _prices.mdx} +5 -7
  113. package/src/content/pages/blocks/_product.mdx +74 -4
  114. package/src/content/pages/blocks/_products.mdx +1 -2
  115. package/src/content/pages/blocks/_stats.mdx +1 -1
  116. package/src/content/pages/blocks/{_banner.mdx → banner.mdx} +2 -2
  117. package/src/content/pages/blocks/colleagues.mdx +6 -8
  118. package/src/content/pages/blocks/contact.mdx +69 -0
  119. package/src/content/pages/blocks/content.mdx +1 -19
  120. package/src/content/pages/blocks/cta.mdx +2 -25
  121. package/src/content/pages/blocks/features.mdx +2 -3
  122. package/src/content/pages/blocks/hero.mdx +5 -3
  123. package/src/content/pages/blocks/intro.mdx +2 -5
  124. package/src/content/pages/blocks/posts.mdx +9 -2
  125. package/src/content/pages/blocks/reviews.mdx +23 -18
  126. package/src/content/pages/index.mdx +16 -20
  127. package/src/content/pages/layouts/_layout.mdx +14 -0
  128. package/src/content/pages/layouts/docslayout.mdx +14 -0
  129. package/src/content/pages/overview/components.mdx +75 -0
  130. package/src/content/pages/overview/content-collections.mdx +139 -0
  131. package/src/content/pages/overview/frameworks.mdx +4 -4
  132. package/src/content/pages/overview/installation.mdx +36 -3
  133. package/src/content/pages/overview/introduction.mdx +19 -9
  134. package/src/content/pages/overview/theming.mdx +53 -67
  135. package/src/content/pages/schemas/page.mdx +17 -0
  136. package/src/content/pages/schemas/preset.mdx +9 -0
  137. package/src/content/pages/showcase/anti-slip-profiles.md +5 -0
  138. package/src/content/pages/showcase/fulldev-ui.md +5 -0
  139. package/src/content/pages/showcase/lavis-detailing.md +5 -0
  140. package/src/content/pages/showcase/leren-trainingsacteren.md +5 -0
  141. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +5 -0
  142. package/src/content/{records/record.yml → pages/showcase/record.md} +2 -0
  143. package/src/content/pages/showcase/sloepverhuur-bolsward.md +5 -0
  144. package/src/content/pages/showcase/stark-vulcanising-products.md +5 -0
  145. package/src/content/pages/showcase/the-gym-haren.md +5 -0
  146. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +5 -0
  147. package/src/content/pages/showcase.mdx +11 -41
  148. package/src/content/pages/typography/_tagline.mdx +1 -2
  149. package/src/content/pages/typography/heading.mdx +1 -2
  150. package/src/content/pages/typography/label.mdx +1 -2
  151. package/src/content/pages/typography/link.mdx +1 -13
  152. package/src/content/pages/typography/list.mdx +1 -2
  153. package/src/content/pages/typography/text.mdx +1 -2
  154. package/src/content/{settings → presets}/base.yml +62 -45
  155. package/src/content/presets/blocks.yml +1 -0
  156. package/src/content/presets/docs.yml +6 -0
  157. package/src/css/color.css +0 -82
  158. package/src/css/custom.css +9 -56
  159. package/src/css/size.css +10 -0
  160. package/src/css/space.css +0 -8
  161. package/src/css/styles.css +0 -15
  162. package/src/env.d.ts +1 -1
  163. package/src/images/avatar-1.yml +1 -0
  164. package/src/images/favicon.svg +16 -0
  165. package/src/integration/generate-colors.ts +2 -0
  166. package/src/integration/index.ts +95 -7
  167. package/src/layouts/BlockLayout.astro +10 -15
  168. package/src/layouts/ContactLayout.astro +21 -0
  169. package/src/layouts/DocsLayout.astro +73 -0
  170. package/src/layouts/Layout.astro +114 -133
  171. package/src/layouts/OverviewLayout.astro +28 -31
  172. package/src/layouts/PostLayout.astro +12 -23
  173. package/src/layouts/ProductLayout.astro +10 -20
  174. package/src/loaders/imageLoader.ts +26 -0
  175. package/src/pages/[...page].astro +25 -21
  176. package/src/schemas/components/avatar.ts +3 -0
  177. package/src/schemas/components/avatars.ts +4 -0
  178. package/src/schemas/components/badge.ts +13 -0
  179. package/src/schemas/components/button.ts +16 -0
  180. package/src/schemas/components/buttons.ts +4 -0
  181. package/src/schemas/components/card.ts +25 -0
  182. package/src/schemas/components/cards.ts +4 -0
  183. package/src/schemas/components/channel.ts +13 -0
  184. package/src/schemas/components/channels.ts +4 -0
  185. package/src/schemas/components/footer.ts +25 -0
  186. package/src/schemas/components/header.ts +11 -0
  187. package/src/schemas/components/heading.ts +3 -0
  188. package/src/schemas/components/icon.ts +3 -0
  189. package/src/schemas/components/image.ts +25 -0
  190. package/src/schemas/components/images.ts +4 -0
  191. package/src/schemas/components/list.ts +3 -0
  192. package/src/schemas/components/logo.ts +3 -0
  193. package/src/schemas/components/menu.ts +13 -0
  194. package/src/schemas/components/price.ts +3 -0
  195. package/src/schemas/components/rating.ts +15 -0
  196. package/src/schemas/components/section.ts +15 -0
  197. package/src/schemas/components/sections.ts +3 -0
  198. package/src/schemas/components/sidebar.ts +15 -0
  199. package/src/schemas/components/social.ts +3 -0
  200. package/src/schemas/components/socials.ts +4 -0
  201. package/src/schemas/components/tagline.ts +3 -0
  202. package/src/schemas/components/text.ts +3 -0
  203. package/src/schemas/components/toc.ts +3 -0
  204. package/src/schemas/components/writeup.ts +20 -0
  205. package/src/schemas/imageSchema.ts +12 -0
  206. package/src/schemas/pageSchema.ts +91 -0
  207. package/src/schemas/presetSchema.ts +3 -0
  208. package/src/schemas/utils/component.ts +17 -0
  209. package/src/schemas/utils/navigation.ts +8 -0
  210. package/src/schemas/utils/parents.ts +3 -0
  211. package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
  212. package/src/stores/cart.ts +23 -0
  213. package/src/types/global-props.ts +16 -0
  214. package/src/types/virtual-modules.d.ts +5 -0
  215. package/src/utils/_archive/Childmorphic.ts +1 -1
  216. package/src/utils/_archive/mergeEntries.ts +28 -0
  217. package/src/utils/cart.ts +32 -0
  218. package/src/utils/getDeepReferenceChildren.ts +14 -0
  219. package/src/utils/getFolderChildren.ts +18 -0
  220. package/src/utils/getReferenceChildren.ts +14 -0
  221. package/src/utils/getSiblingPages.ts +14 -0
  222. package/tsconfig.json +2 -5
  223. package/public/favicon/site.webmanifest +0 -19
  224. package/public/images/avatars/1.jpeg +0 -0
  225. package/public/images/avatars/2.jpeg +0 -0
  226. package/public/images/avatars/3.jpeg +0 -0
  227. package/public/images/avatars/300/1.jpeg +0 -0
  228. package/public/images/avatars/300/2.jpeg +0 -0
  229. package/public/images/avatars/300/3.jpeg +0 -0
  230. package/public/images/avatars/300/4.jpeg +0 -0
  231. package/public/images/avatars/4.jpeg +0 -0
  232. package/public/images/avatars/5.jpeg +0 -0
  233. package/public/images/avatars/6.jpeg +0 -0
  234. package/public/images/avatars/7.jpeg +0 -0
  235. package/public/images/avatars/8.jpeg +0 -0
  236. package/public/images/blocks/colleagues.png +0 -0
  237. package/public/images/blocks/content.png +0 -0
  238. package/public/images/blocks/cta.png +0 -0
  239. package/public/images/blocks/features.png +0 -0
  240. package/public/images/blocks/footer.png +0 -0
  241. package/public/images/blocks/header.png +0 -0
  242. package/public/images/blocks/hero.png +0 -0
  243. package/public/images/blocks/intro.png +0 -0
  244. package/public/images/blocks/posts.png +0 -0
  245. package/public/images/blocks/prices.png +0 -0
  246. package/public/images/blocks/reviews.png +0 -0
  247. package/public/images/logo-placeholder.svg +0 -1
  248. package/src/components/Bento.astro +0 -43
  249. package/src/components/Block.astro +0 -157
  250. package/src/components/Blocks.astro +0 -5
  251. package/src/components/Box.astro +0 -63
  252. package/src/components/Carousel.astro +0 -54
  253. package/src/components/Column.astro +0 -73
  254. package/src/components/Grid.astro +0 -32
  255. package/src/components/Masonry.astro +0 -42
  256. package/src/components/Root.astro +0 -94
  257. package/src/components/Row.astro +0 -49
  258. package/src/components/Split.astro +0 -59
  259. package/src/components/Spread.astro +0 -46
  260. package/src/components/Stack.astro +0 -36
  261. package/src/components/Toggle.astro +0 -46
  262. package/src/components/Wrap.astro +0 -42
  263. package/src/components/docs/NavigationButtons.astro +0 -59
  264. package/src/components/experimental/Channel.astro +0 -74
  265. package/src/components/experimental/GalleryVertical.astro +0 -161
  266. package/src/components/experimental/Price.astro +0 -40
  267. package/src/content/pages/_changelog.mdx +0 -10
  268. package/src/content/pages/_segment/footer.mdx +0 -244
  269. package/src/content/pages/_segment/header.mdx +0 -210
  270. package/src/content/pages/base/_image.mdx +0 -14
  271. package/src/content/pages/base/toggle.mdx +0 -32
  272. package/src/content/pages/blocks.mdx +0 -10
  273. package/src/content/pages/overview/integration.mdx +0 -37
  274. package/src/content/pages/structure/_row.mdx +0 -23
  275. package/src/content/pages/structure/_wrap.mdx +0 -25
  276. package/src/content/pages/structure/carousel.mdx +0 -31
  277. package/src/content/pages/structure/column.mdx +0 -21
  278. package/src/content/pages/structure/grid.mdx +0 -26
  279. package/src/content/pages/structure/masonry.mdx +0 -32
  280. package/src/content/pages/structure/split.mdx +0 -21
  281. package/src/content/pages/structure/spread.mdx +0 -21
  282. package/src/content/pages/structure/stack.mdx +0 -22
  283. package/src/content/settings/components.yml +0 -29
  284. package/src/layouts/BlockOverviewLayout.astro +0 -39
  285. package/src/layouts/ComponentLayout.astro +0 -23
  286. package/src/layouts/JobsLayout.astro +0 -40
  287. package/src/layouts/PageLayout.astro +0 -32
  288. package/src/schemas/base.ts +0 -90
  289. package/src/schemas/block.ts +0 -15
  290. package/src/schemas/card.ts +0 -3
  291. package/src/schemas/page.ts +0 -43
  292. package/src/utils/mergeEntries.ts +0 -28
  293. /package/{public/showcase → src/images}/anti-slip-profiles.webp +0 -0
  294. /package/{public/images/avatars/500/1.jpeg → src/images/avatar-1.jpeg} +0 -0
  295. /package/{public/images/avatars/500/2.jpeg → src/images/avatar-2.jpeg} +0 -0
  296. /package/{public/images/avatars/500/3.jpeg → src/images/avatar-3.jpeg} +0 -0
  297. /package/{public/images/avatars/500/4.jpeg → src/images/avatar-4.jpeg} +0 -0
  298. /package/{public → src}/images/avatar-placeholder.jpg +0 -0
  299. /package/{public → src}/images/block-code.png +0 -0
  300. /package/{public → src}/images/component-code.png +0 -0
  301. /package/{public/showcase → src/images}/fulldev-ui.webp +0 -0
  302. /package/{public/showcase → src/images}/lavis-detailing.webp +0 -0
  303. /package/{public/showcase → src/images}/leren-trainingsacteren.webp +0 -0
  304. /package/{public/showcase → src/images}/miele-witgoedcenter-amsterdam.webp +0 -0
  305. /package/{public → src}/images/og-image.png +0 -0
  306. /package/{public → src}/images/placeholder-center.webp +0 -0
  307. /package/{public → src}/images/placeholder-landscape-dark.png +0 -0
  308. /package/{public → src}/images/placeholder-landscape.webp +0 -0
  309. /package/{public → src}/images/placeholder-portrait.webp +0 -0
  310. /package/{public → src}/images/placeholder-right.webp +0 -0
  311. /package/{public → src}/images/placeholder.webp +0 -0
  312. /package/{public/showcase → src/images}/sloepverhuur-bolsward.webp +0 -0
  313. /package/{public/showcase → src/images}/stark-vulcanising-products.webp +0 -0
  314. /package/{public/showcase → src/images}/the-gym-haren.webp +0 -0
  315. /package/{public/showcase → src/images}/van-dillen-antieke-bouwmaterialen.webp +0 -0
@@ -1,20 +1,30 @@
1
1
  ---
2
- _layout: PostLayout
3
- settings: components
2
+ presets: [docs]
3
+ title: Introduction
4
4
  ---
5
5
 
6
6
  # Introduction
7
7
 
8
- Fulldev UI focuses on content websites rather than applications.
8
+ **Fulldev UI** is a full-featured UI library and website theme built on the [Astro](https://astro.build/) framework. Whether starting a new project or enhancing an existing one, this guide will help you get set up. For installation details, see the [installation guide](/getting-started/installation).
9
9
 
10
- ##### Build entire websites with just components
10
+ ## Why we built it
11
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.
12
+ We built **Fulldev UI** after repeatedly encountering the same challenges in client projects, covering the core needs of content-focused websites. Initially created for [our own company](https://full.dev), we decided to open-source it for others to use.
13
13
 
14
- ##### Integrates with any JS / CSS framework
14
+ ## Some features
15
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.
16
+ - Vanilla HTML and CSS.
17
+ - Seamless integration with TailwindCSS and UnoCSS.
18
+ - Minimal JavaScript.
19
+ - Supports Astro's [Content Collections](https://docs.astro.build/en/guides/content-collections/).
20
+ - Customizable via CSS variables.
21
+ - Reusable components for pages and sections.
22
+ - Includes blocks like Hero, CTA, Features, etc.
23
+ - Page-building tools.
24
+ - And more...
17
25
 
18
- ##### Automated colors, spacing and sizes
26
+ ## A word of caution
19
27
 
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.
28
+ **Fulldev UI** includes a wide range of features, some still experimental. While a narrower focus would improve stability, we built it for flexibility in our projects.
29
+
30
+ This isn't just a single-purpose library; it's a framework for building blog, marketing, and portfolio websites—similar to how [Starlight](https://starlight.astro.build/) serves documentation. As it evolves, its focus will sharpen. In the meantime, feel free to use it and share feedback on [Discord](https://discord.gg/fulldev)!
@@ -1,83 +1,69 @@
1
1
  ---
2
- _layout: PostLayout
3
- settings: components
2
+ presets: [docs]
3
+ title: Theming
4
4
  ---
5
5
 
6
6
  import Link from 'fulldev-ui/components/Link.astro'
7
7
 
8
8
  # Theming
9
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
- }
10
+ With the fulldev-ui integration you can easily set a theme and generate a palette based on <Link href="https://www.radix-ui.com/colors">Radix Colors.</Link>
11
+
12
+ ## Configuration
13
+
14
+ ### Generating a color palette
15
+
16
+ - **css** is the path to your custom css file that applies to all pages on your site.
17
+ - **colors** is an object that defines the colors for your site.
18
+ - **theme** is the default theme for your site.
19
+ - **dark** and **light** are objects that define the colors for the dark and light themes, these three properties are used to generate a color pallete using radix colors.
20
+
21
+ ```ts
22
+ import { defineConfig } from 'astro/config'
23
+ import fulldev from 'fulldev-ui/integration'
24
+
25
+ // https://astro.build/config
26
+ export default defineConfig({
27
+ integrations: [
28
+ fulldev({
29
+ css: '/src/css/custom.css',
30
+ colors: {
31
+ theme: 'dark',
32
+ dark: {
33
+ background: '#111110',
34
+ base: '#6F6D66',
35
+ brand: '#F50',
36
+ },
37
+ light: {
38
+ background: '#EEEEEC',
39
+ base: '#6F6D66',
40
+ brand: '#F50',
41
+ },
42
+ },
43
+ }),
44
+ ],
45
+ })
53
46
  ```
54
47
 
55
- ### Dark theme
48
+ ### Generating favicons
56
49
 
57
- Dark mode is set via a simple `.theme-dark` class.
50
+ We've integrated <Link href="https://github.com/ACP-CODE/astro-favicons">astro-favicons</Link> into fulldev-ui to generate favicons from a svg file.
58
51
 
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.
52
+ ```ts
53
+ import { defineConfig } from 'astro/config'
54
+ import fulldev from 'fulldev-ui/integration'
60
55
 
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
- }
56
+ // https://astro.build/config
57
+ export default defineConfig({
58
+ integrations: [
59
+ fulldev({
60
+ favicon: 'src/images/favicon.svg', // can also be png, webp, jpg, etc.
61
+ // other options here
62
+ }),
63
+ ],
64
+ })
77
65
  ```
78
66
 
79
- ## Other
67
+ ## Overwriting styles
80
68
 
81
69
  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,17 @@
1
+ ---
2
+ presets: [docs]
3
+
4
+ title: page
5
+ ---
6
+
7
+ # page-schema
8
+
9
+ Objects in the page schema are used to define the structure of a page. They are used to define the information, content and components that are used to render the page.
10
+
11
+ import { Code } from 'astro:components'
12
+ import { zodToTs, createTypeAlias, printNode } from 'zod-to-ts'
13
+ import pageSchema from 'fulldev-ui/schemas/pageSchema'
14
+
15
+ export const identifier = 'Page'
16
+ export const node = zodToTs(pageSchema, identifier)
17
+ export const typeAlias = createTypeAlias(node, identifier)
@@ -0,0 +1,9 @@
1
+ ---
2
+ presets: [docs]
3
+
4
+ title: preset
5
+ ---
6
+
7
+ # preset-schema
8
+
9
+ import { Code } from 'astro:components'
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Anti Slip Profiles
3
+ image: 'anti-slip-profiles.webp'
4
+ href: 'https://antislipprofiles.com'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Fulldev UI
3
+ image: fulldev-ui.webp
4
+ href: 'https://ui.ull.dev'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Lavis Detailing
3
+ image: lavis-detailing.webp
4
+ href: 'https://lavisdetailing.nl'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Leren Trainingsacteren
3
+ image: leren-trainingsacteren.webp
4
+ href: 'https://lerentrainingsacteren.nl'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Miele Witgoedcenter Amsterdam
3
+ image: miele-witgoedcenter-amsterdam.webp
4
+ href: 'https://witgoedcenteramsterdam.nl'
5
+ ---
@@ -1 +1,3 @@
1
+ ---
1
2
  title: Test
3
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Sloepverhuur Bolsward
3
+ image: sloepverhuur-bolsward.webp
4
+ href: 'https://sloepverhuurbolsward.nl'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Stark Vulcanising Products
3
+ image: stark-vulcanising-products.webp
4
+ href: '#'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: The Gym Haren
3
+ image: the-gym-haren.webp
4
+ href: 'https://thegymharen.nl'
5
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: Van Dillen Antieke Bouwmaterialen
3
+ image: van-dillen-antieke-bouwmaterialen.webp
4
+ href: 'https://vdabouwmaterialen.nl'
5
+ ---
@@ -1,40 +1,15 @@
1
1
  ---
2
- showcase:
3
- # Add your project here below 👇
4
-
5
- - heading: Van Dillen Antieke Bouwmaterialen
6
- image: /showcase/van-dillen-antieke-bouwmaterialen.webp
7
- href: 'https://vdabouwmaterialen.nl'
8
- - heading: Anti Slip Profiles
9
- image: /showcase/anti-slip-profiles.webp
10
- href: 'https://antislipprofiles.com'
11
- - heading: Fulldev UI
12
- image: /showcase/fulldev-ui.webp
13
- href: 'https://ui.full.dev'
14
- - heading: The Gym Haren
15
- image: /showcase/the-gym-haren.webp
16
- href: 'https://thegymharen.nl'
17
- - heading: Lavis Detailing
18
- image: /showcase/lavis-detailing.webp
19
- href: 'https://lavisdetailing.nl'
20
- - heading: Leren Trainingsacteren
21
- image: /showcase/leren-trainingsacteren.webp
22
- href: 'https://lerentrainingsacteren.nl'
23
- - heading: Miele Witgoedcenter Amsterdam
24
- image: /showcase/miele-witgoedcenter-amsterdam.webp
25
- href: 'https://witgoedcenteramsterdam.nl'
26
- - heading: Sloepverhuur Bolsward
27
- image: /showcase/sloepverhuur-bolsward.webp
28
- href: 'https://sloepverhuurbolsward.nl'
29
- - heading: Stark Vulcanising Products
30
- image: /showcase/stark-vulcanising-products.webp
31
-
32
- _layout: PostLayout
33
- settings: components
2
+ presets: [docs]
3
+ title: Showcase
34
4
  ---
35
5
 
36
- import Masonry from 'fulldev-ui/components/Masonry.astro'
37
6
  import Card from 'fulldev-ui/components/Card.astro'
7
+ import Cards from 'fulldev-ui/components/Cards.astro'
8
+ import { getCollection } from 'astro:content'
9
+
10
+ export const projects = (
11
+ await getCollection('pages', ({ slug }) => slug.startsWith('showcase'))
12
+ ).map((p) => p.data)
38
13
 
39
14
  # Showcase
40
15
 
@@ -43,20 +18,15 @@ Projects that are built with Fulldev UI.
43
18
  <Card
44
19
  color="brand"
45
20
  size="sm"
46
- frame="panel"
47
21
  style={{ marginTop: 'var(--space-6)', marginBottom: 'var(--space-7)' }}
48
22
  heading="Your project in this showcase?"
49
- description="Add your project to the showcase in 1 minute."
23
+ text="Add your project to the showcase in 1 minute."
24
+ panel
50
25
  button={{
51
26
  text: 'Add your project',
52
- variant: 'secondary',
53
27
  href: 'https://github.com/fulldotdev/ui/blob/main/CONTRIBUTING.md#showcase',
54
28
  target: '_blank',
55
29
  }}
56
30
  />
57
31
 
58
- <Masonry>
59
- {frontmatter.showcase.map((showcase) => (
60
- <Card frame="panel" position="inset" {...showcase} target="_blank" />
61
- ))}
62
- </Masonry>
32
+ <Cards structure="masonry" position="inset" panel cards={projects} />
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: Tagline
6
5
  ---
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: Heading
6
5
  ---
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: Label
6
5
  ---
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: Link
6
5
  ---
@@ -38,17 +37,6 @@ import Link from 'fulldev-ui/components/Link.astro'
38
37
  import Link from 'fulldev-ui/components/Link.astro'
39
38
  ---
40
39
 
41
- <Link href="/base/link" underline="auto">Link</Link>
42
- <Link href="/base/link" underline="always">Link</Link>
43
- <Link href="/base/link" underline="hover">Link</Link>
44
- <Link href="/base/link" underline="none">Link</Link>
45
- ```
46
-
47
- ```astro live
48
- ---
49
- import Link from 'fulldev-ui/components/Link.astro'
50
- ---
51
-
52
40
  <Link href="#">Link</Link>
53
41
  <Link href="#" contrast>Link</Link>
54
42
  ```
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: List
6
5
  ---
@@ -1,6 +1,5 @@
1
1
  ---
2
- _layout: ComponentLayout
3
- settings: components
2
+ presets: [docs]
4
3
 
5
4
  title: Text
6
5
  ---
@@ -1,3 +1,5 @@
1
+ theme: dark
2
+
1
3
  seo:
2
4
  image: /images/og-image.png
3
5
 
@@ -9,55 +11,70 @@ code:
9
11
  })
10
12
  </script>
11
13
 
12
- header:
13
- heading: Fulldev UI
14
- variant: base
15
- links:
14
+ navigation:
15
+ header: true
16
+ company: Fulldev UI
17
+ buttons:
16
18
  - text: Docs
17
19
  href: /overview/introduction
18
20
  - text: Components
19
21
  href: /typography/heading
20
22
  - text: Blocks
21
- href: /blocks
22
- - text: Showcase
23
- href: /showcase
24
- search:
25
- icon: search
26
- variant: soft
27
- buttons:
28
- - href: https://github.com/fulldotdev/ui
29
- target: _blank
30
- aria-label: GitHub
31
- icon: brand-github
32
- - href: https://discord.gg/vXZqMbadm8
33
- target: _blank
34
- aria-label: Discord
35
- icon: brand-discord
36
- drawer:
37
- - links:
38
- - text: Docs
39
- href: /overview/introduction
40
- - text: Components
41
- href: /typography/heading
42
- - text: Blocks
43
- href: /blocks
44
- - heading: Overview
45
- links:
46
- - text: Introduction
47
- href: /overview/introduction
48
- - text: Installation
49
- href: /overview/installation
50
- - text: Integration
51
- href: /overview/integration
52
- - text: Theming
53
- href: /overview/theming
54
- - text: Frameworks
55
- href: /overview/frameworks
56
- - text: Showcase
57
- href: /showcase
23
+ href: /blocks/banner
24
+ - showcase
25
+
26
+ socials:
27
+ - https://github.com/fulldotdev/ui
28
+ - https://discord.gg/vXZqMbadm8
29
+ menu:
30
+ - heading: Get Started
31
+ buttons:
32
+ - overview/introduction
33
+ - overview/installation
34
+ - overview/theming
35
+ - overview/frameworks
36
+ - overview/components
37
+ - overview/content-collections
58
38
  - heading: Typography
59
- folder: typography
39
+ buttons:
40
+ - typography/heading
41
+ - typography/label
42
+ - typography/link
43
+ - typography/list
44
+ - typography/text
60
45
  - heading: Base
61
- folder: base
62
- - heading: Structure
63
- folder: structure
46
+ buttons:
47
+ - base/badge
48
+ - base/button
49
+ - base/card
50
+ - base/checkbox
51
+ - base/icon
52
+ - base/input
53
+ - base/rating
54
+ - base/section
55
+ - base/select
56
+ - base/table
57
+ - base/textarea
58
+ - base/theme-select
59
+ - base/image
60
+ - heading: Blocks
61
+ buttons:
62
+ - blocks/banner
63
+ - blocks/colleagues
64
+ - blocks/contact
65
+ - blocks/content
66
+ - blocks/cta
67
+ - blocks/features
68
+ - blocks/hero
69
+ - blocks/intro
70
+ - blocks/posts
71
+ - blocks/reviews
72
+ - heading: Schemas
73
+ buttons:
74
+ - schemas/page
75
+ - schemas/preset
76
+ - heading: More
77
+ buttons:
78
+ - showcase
79
+ - text: Changelog
80
+ href: https://github.com/fulldotdev/ui/releases
@@ -0,0 +1 @@
1
+ component: BlockLayout
@@ -0,0 +1,6 @@
1
+ component: DocsLayout
2
+
3
+ navigation:
4
+ sidebar: true
5
+ header: false
6
+ toc: 'On this page'
package/src/css/color.css CHANGED
@@ -84,85 +84,3 @@
84
84
  --color-11: var(--color-12);
85
85
  --color-contrast: var(--color-1);
86
86
  }
87
-
88
- /* :where(:root),
89
- :where(.theme-light),
90
- :where(.theme-dark),
91
- :where(.color-base),
92
- :where(.color-brand),
93
- .variant-base,
94
- .variant-base
95
- *:not([class*='variant-']):not(.variant-base [class*='variant-'] *) {
96
- --background: var(--color-background, var(--color-1));
97
- --background-hover: var(--color-1);
98
- --background-active: var(--color-1);
99
- --border: var(--color-6);
100
- --border-hover: var(--color-6);
101
- --text: var(--color-11);
102
- }
103
-
104
- .variant-subtle,
105
- .variant-subtle
106
- *:not([class*='variant-']):not(.variant-subtle [class*='variant-'] *) {
107
- --background: var(--color-2);
108
- --background-hover: var(--color-2);
109
- --background-active: var(--color-2);
110
- --border: var(--color-6);
111
- --border-hover: var(--color-6);
112
- --text: var(--color-11);
113
- }
114
-
115
- .variant-ghost,
116
- .variant-ghost
117
- *:not([class*='variant-']):not(.variant-ghost [class*='variant-'] *) {
118
- --background: transparent;
119
- --background-hover: var(--color-3);
120
- --background-active: var(--color-4);
121
- --border: transparent;
122
- --border-hover: transparent;
123
- --text: var(--color-11);
124
- }
125
-
126
- .variant-outline,
127
- .variant-outline
128
- *:not([class*='variant-']):not(.variant-outline [class*='variant-'] *) {
129
- --background: transparent;
130
- --background-hover: var(--color-3);
131
- --background-active: var(--color-5);
132
- --border: var(--color-7);
133
- --border-hover: var(--color-8);
134
- --text: var(--color-11);
135
- }
136
-
137
- .variant-soft,
138
- .variant-soft
139
- *:not([class*='variant-']):not(.variant-soft [class*='variant-'] *) {
140
- --background: var(--color-3);
141
- --background-hover: var(--color-4);
142
- --background-active: var(--color-5);
143
- --border: transparent;
144
- --border-hover: transparent;
145
- --text: var(--color-11);
146
- }
147
-
148
- .variant-surface,
149
- .variant-surface
150
- *:not([class*='variant-']):not(.variant-surface [class*='variant-'] *) {
151
- --background: var(--color-3);
152
- --background-hover: var(--color-4);
153
- --background-active: var(--color-5);
154
- --border: var(--color-7);
155
- --border-hover: var(--color-8);
156
- --text: var(--color-11);
157
- }
158
-
159
- .variant-solid,
160
- .variant-solid
161
- *:not([class*='variant-']):not(.variant-solid [class*='variant-'] *) {
162
- --background: var(--color-9);
163
- --background-hover: var(--color-10);
164
- --background-active: var(--color-10);
165
- --border: transparent;
166
- --border-hover: transparent;
167
- --text: var(--color-contrast);
168
- } */