fulldev-ui 0.5.0-beta.9 → 0.6.0-beta-4
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.
- package/.env.example +3 -0
- package/.prettierrc.yaml +1 -0
- package/astro.config.ts +10 -34
- package/cloudcannon.config.yml +217 -0
- package/package.json +25 -29
- package/pnpm-lock.yaml +943 -2157
- package/public/favicon/android-chrome-192x192.png +0 -0
- package/public/favicon/android-chrome-512x512.png +0 -0
- package/public/favicon/apple-touch-icon.png +0 -0
- package/public/favicon/manifest.webmanifest +7 -3
- package/public/favicon/mstile-150x150.png +0 -0
- package/src/blocks/Banner.astro +14 -29
- package/src/blocks/Contact1.astro +92 -0
- package/src/blocks/Cta1.astro +72 -0
- package/src/blocks/Feature1.astro +67 -0
- package/src/blocks/Features1.astro +75 -0
- package/src/blocks/Footer.astro +100 -3
- package/src/blocks/Header.astro +192 -3
- package/src/blocks/Hero1.astro +74 -0
- package/src/blocks/Job1.astro +97 -0
- package/src/blocks/Products1.astro +90 -0
- package/src/blocks/Reviews1.astro +75 -0
- package/src/blocks/_Hero.astro +245 -0
- package/src/components/Avatar.astro +28 -9
- package/src/components/Avatars.astro +36 -0
- package/src/components/Badge.astro +63 -24
- package/src/components/Badges.astro +16 -23
- package/src/components/Banner.astro +26 -0
- package/src/components/Block.astro +49 -0
- package/src/components/Blocks.astro +26 -0
- package/src/components/Breadcrumb.astro +58 -0
- package/src/components/Button.astro +49 -119
- package/src/components/Buttons.astro +23 -13
- package/src/components/Card.astro +9 -137
- package/src/components/Cards.astro +33 -35
- package/src/components/Carousel.astro +106 -0
- package/src/components/Cart.astro +18 -14
- package/src/components/CartAdd.svelte +76 -0
- package/src/components/CartCheckout.svelte +58 -0
- package/src/components/CartForm.svelte +130 -0
- package/src/components/CartList.svelte +88 -0
- package/src/components/CartQuantity.svelte +81 -0
- package/src/components/CartSummary.astro +16 -105
- package/src/components/CartTotal.svelte +15 -0
- package/src/components/Channel.astro +44 -35
- package/src/components/Channels.astro +20 -6
- package/src/components/Checkbox.astro +52 -27
- package/src/components/Code.astro +52 -0
- package/src/components/Container.astro +25 -0
- package/src/components/Dialog.astro +3 -2
- package/src/components/Drawer.astro +55 -146
- package/src/components/DrawerOld.astro +143 -0
- package/src/components/Element.astro +18 -8
- package/src/components/Form.astro +16 -13
- package/src/components/Gallery.astro +174 -0
- package/src/components/Head.astro +62 -25
- package/src/components/Header.astro +10 -115
- package/src/components/Heading.astro +51 -44
- package/src/components/Icon.astro +29 -33
- package/src/components/Image.astro +18 -68
- package/src/components/Input.astro +65 -51
- package/src/components/Label.astro +20 -15
- package/src/components/Layout.astro +35 -0
- package/src/components/Link.astro +51 -32
- package/src/components/Links.astro +42 -0
- package/src/components/List.astro +41 -16
- package/src/components/LocaleSwitcher.astro +2 -2
- package/src/components/Logo.astro +56 -0
- package/src/components/Menu.astro +21 -17
- package/src/components/Navigation.astro +39 -0
- package/src/components/Panel.astro +25 -0
- package/src/components/Paragraph.astro +55 -0
- package/src/components/Price.astro +4 -4
- package/src/components/Prose.astro +78 -0
- package/src/components/Rating.astro +23 -62
- package/src/components/Search.astro +107 -43
- package/src/components/Section.astro +13 -242
- package/src/components/Select.astro +45 -55
- package/src/components/Sidebar.astro +53 -76
- package/src/components/Social.astro +11 -9
- package/src/components/Socials.astro +9 -5
- package/src/components/Subheader.astro +59 -0
- package/src/components/Switch.astro +72 -29
- package/src/components/Table.astro +1 -1
- package/src/components/Tagline.astro +32 -14
- package/src/components/Textarea.astro +40 -50
- package/src/components/Themer.astro +76 -0
- package/src/components/Toc.astro +32 -31
- package/src/components/_Author.astro +90 -0
- package/src/components/_Header.astro +129 -0
- package/src/components/_Image.astro +79 -0
- package/src/components/_Prose copy.astro +172 -0
- package/src/components/_Sidebar copy.astro +87 -0
- package/src/components/docs/PropsTable.astro +38 -264
- package/src/components/experimental/Window.astro +5 -57
- package/src/content/config.ts +4 -10
- package/src/content/{presets → layouts}/base.yml +52 -73
- package/src/content/pages/blocks/_categories.mdx +0 -2
- package/src/content/pages/blocks/_footer.mdx +0 -2
- package/src/content/pages/blocks/_header.mdx +0 -4
- package/src/content/pages/blocks/_jobs.mdx +0 -2
- package/src/content/pages/blocks/_prices.mdx +0 -2
- package/src/content/pages/blocks/_product.mdx +0 -2
- package/src/content/pages/blocks/_products.mdx +0 -2
- package/src/content/pages/blocks/_stats.mdx +0 -2
- package/src/content/pages/blocks/banner.mdx +0 -2
- package/src/content/pages/blocks/colleagues.mdx +0 -3
- package/src/content/pages/blocks/contact.mdx +0 -2
- package/src/content/pages/blocks/content.mdx +0 -6
- package/src/content/pages/blocks/cta.mdx +0 -10
- package/src/content/pages/blocks/features.mdx +0 -5
- package/src/content/pages/blocks/hero.mdx +0 -5
- package/src/content/pages/blocks/intro.mdx +0 -5
- package/src/content/pages/blocks/posts.mdx +0 -2
- package/src/content/pages/blocks/reviews.mdx +0 -3
- package/src/content/pages/categories/category.md +7 -0
- package/src/content/pages/docs/_internationalization.mdx +55 -0
- package/src/content/pages/docs/_using-blocks.mdx +33 -0
- package/src/content/pages/docs/_using-presets.mdx +49 -0
- package/src/content/pages/docs/blocks.mdx +33 -0
- package/src/content/pages/docs/collections/images.mdx +102 -0
- package/src/content/pages/docs/collections/pages.mdx +119 -0
- package/src/content/pages/docs/collections/presets.mdx +60 -0
- package/src/content/pages/docs/collections.mdx +42 -0
- package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +2 -5
- package/src/content/pages/{base → docs/components}/_dialog.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_drawer.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_switch.mdx +3 -4
- package/src/content/pages/{typography → docs/components}/_tagline.mdx +3 -4
- package/src/content/pages/docs/components/_toggle.mdx +30 -0
- package/src/content/pages/docs/components/avatar.mdx +34 -0
- package/src/content/pages/{base → docs/components}/badge.mdx +28 -10
- package/src/content/pages/docs/components/badges.mdx +46 -0
- package/src/content/pages/docs/components/button.mdx +78 -0
- package/src/content/pages/docs/components/buttons.mdx +51 -0
- package/src/content/pages/docs/components/channel.mdx +91 -0
- package/src/content/pages/docs/components/channels.mdx +89 -0
- package/src/content/pages/docs/components/checkbox.mdx +34 -0
- package/src/content/pages/docs/components/code.mdx +45 -0
- package/src/content/pages/docs/components/heading.mdx +59 -0
- package/src/content/pages/docs/components/icon.mdx +48 -0
- package/src/content/pages/docs/components/image.mdx +25 -0
- package/src/content/pages/docs/components/input.mdx +40 -0
- package/src/content/pages/{typography → docs/components}/label.mdx +9 -6
- package/src/content/pages/{typography → docs/components}/link.mdx +24 -10
- package/src/content/pages/docs/components/links.mdx +99 -0
- package/src/content/pages/docs/components/list.mdx +44 -0
- package/src/content/pages/docs/components/logo.mdx +36 -0
- package/src/content/pages/docs/components/menu.mdx +89 -0
- package/src/content/pages/docs/components/prose.mdx +36 -0
- package/src/content/pages/docs/components/rating.mdx +76 -0
- package/src/content/pages/{base → docs/components}/section.mdx +2 -3
- package/src/content/pages/{base → docs/components}/select.mdx +1 -11
- package/src/content/pages/docs/components/social.mdx +94 -0
- package/src/content/pages/docs/components/socials.mdx +102 -0
- package/src/content/pages/docs/components/switch.mdx +34 -0
- package/src/content/pages/{base → docs/components}/table.mdx +1 -4
- package/src/content/pages/docs/components/tagline.mdx +46 -0
- package/src/content/pages/docs/components/text.mdx +48 -0
- package/src/content/pages/docs/components/textarea.mdx +34 -0
- package/src/content/pages/docs/components/themer.mdx +49 -0
- package/src/content/pages/docs/components.mdx +37 -0
- package/src/content/pages/docs/customization.mdx +151 -0
- package/src/content/pages/docs/frameworks.mdx +29 -0
- package/src/content/pages/docs/generating-pages.mdx +129 -0
- package/src/content/pages/docs/index.mdx +20 -0
- package/src/content/pages/docs/installation.mdx +50 -0
- package/src/content/pages/docs/layouts.mdx +33 -0
- package/src/content/pages/index.mdx +25 -33
- package/src/content/pages/posts/post.md +7 -0
- package/src/content/pages/products/product.md +20 -0
- package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
- package/src/content/pages/showcase/fulldev-ui.md +1 -1
- package/src/content/pages/showcase/lavis-detailing.md +1 -1
- package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
- package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
- package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
- package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
- package/src/content/pages/showcase/the-gym-haren.md +1 -1
- package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
- package/src/content/pages/showcase.mdx +4 -3
- package/src/css/color.css +0 -10
- package/src/css/custom.css +10 -12
- package/src/css/size.css +2 -11
- package/src/css/theme.css +95 -0
- package/src/env.d.ts +1 -0
- package/src/images/favicon/android-chrome-192x192.png +0 -0
- package/src/images/favicon/android-chrome-512x512.png +0 -0
- package/src/images/favicon/apple-touch-icon.png +0 -0
- package/src/images/favicon/browserconfig.xml +9 -0
- package/src/images/favicon/favicon-16x16.png +0 -0
- package/src/images/favicon/favicon-32x32.png +0 -0
- package/src/images/favicon/favicon-48x48.png +0 -0
- package/src/images/favicon/favicon.ico +0 -0
- package/src/images/favicon/favicon.svg +16 -0
- package/src/images/favicon/manifest.webmanifest +30 -0
- package/src/images/favicon/mstile-150x150.png +0 -0
- package/src/images/favicon/safari-pinned-tab.svg +16 -0
- package/src/images/favicon/yandex-browser-50x50.png +0 -0
- package/src/images/favicon/yandex-browser-manifest.json +9 -0
- package/src/images/logo-1.svg +11 -0
- package/src/images/logo-2.svg +13 -0
- package/src/images/logo-basic.svg +10 -0
- package/src/images/logo-simple.svg +13 -0
- package/src/images/logo-thin.svg +15 -0
- package/src/images/logo.svg +14 -0
- package/src/images/logofat.svg +11 -0
- package/src/integration/index.ts +110 -140
- package/src/layouts/Category.astro +131 -0
- package/src/layouts/Doc.astro +72 -0
- package/src/layouts/Job.astro +64 -0
- package/src/layouts/Page.astro +30 -0
- package/src/layouts/Post.astro +20 -0
- package/src/layouts/Product.astro +110 -0
- package/src/pages/[...page].astro +29 -24
- package/src/pages/test.astro +37 -0
- package/src/schemas/blocks/banner.ts +10 -0
- package/src/schemas/blocks/categories.ts +14 -0
- package/src/schemas/blocks/contact.ts +18 -0
- package/src/schemas/blocks/cta.ts +19 -0
- package/src/schemas/blocks/feature.ts +18 -0
- package/src/schemas/blocks/features.ts +24 -0
- package/src/schemas/blocks/hero.ts +20 -0
- package/src/schemas/blocks/intro.ts +16 -0
- package/src/schemas/blocks/products.ts +14 -0
- package/src/schemas/blocks/reviews.ts +24 -0
- package/src/schemas/components/avatar.ts +4 -1
- package/src/schemas/components/badge.ts +16 -11
- package/src/schemas/components/block.ts +22 -0
- package/src/schemas/components/button.ts +17 -14
- package/src/schemas/components/channel.ts +15 -9
- package/src/schemas/components/footer.ts +15 -21
- package/src/schemas/components/head.ts +17 -0
- package/src/schemas/components/header.ts +19 -7
- package/src/schemas/components/heading.ts +7 -1
- package/src/schemas/components/icon.ts +7 -1
- package/src/schemas/components/image.ts +38 -16
- package/src/schemas/components/link.ts +17 -0
- package/src/schemas/components/logo.ts +12 -2
- package/src/schemas/components/menu.ts +11 -11
- package/src/schemas/components/navigation.ts +10 -0
- package/src/schemas/components/paragraph.ts +9 -0
- package/src/schemas/components/price.ts +7 -1
- package/src/schemas/components/rating.ts +8 -13
- package/src/schemas/components/sidebar.ts +14 -11
- package/src/schemas/components/social.ts +16 -1
- package/src/schemas/components/tagline.ts +7 -1
- package/src/schemas/imageSchema.ts +30 -1
- package/src/schemas/layoutSchema.ts +22 -0
- package/src/schemas/pageSchema.ts +26 -96
- package/src/stores/cart.svelte.ts +79 -0
- package/src/stores/cart.ts +59 -6
- package/src/types/global-props.ts +0 -9
- package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
- package/src/utils/cart.ts +1 -10
- package/src/utils/formatEntries.ts +8 -0
- package/src/utils/formatEntry.ts +29 -0
- package/src/utils/getDeepReferenceChildren.ts +14 -0
- package/src/utils/getHref.ts +6 -0
- package/src/utils/getReferenceChildren.ts +1 -1
- package/src/utils/setTheme.ts +18 -0
- package/src/utils/slugify.ts +6 -0
- package/svelte.config.js +5 -0
- package/tailwind.config.ts +67 -0
- package/tsconfig.json +1 -3
- package/src/blocks/Article.astro +0 -40
- package/src/blocks/Categories.astro +0 -12
- package/src/blocks/Colleagues.astro +0 -13
- package/src/blocks/Contact.astro +0 -116
- package/src/blocks/Content.astro +0 -12
- package/src/blocks/Cta.astro +0 -15
- package/src/blocks/Excerpt.astro +0 -14
- package/src/blocks/Features.astro +0 -11
- package/src/blocks/Hero.astro +0 -15
- package/src/blocks/Intro.astro +0 -23
- package/src/blocks/Jobs.astro +0 -12
- package/src/blocks/Posts.astro +0 -11
- package/src/blocks/Prices.astro +0 -24
- package/src/blocks/Product.astro +0 -110
- package/src/blocks/Products.astro +0 -11
- package/src/blocks/Reviews.astro +0 -13
- package/src/components/CartForm.astro +0 -121
- package/src/components/CartList.astro +0 -134
- package/src/components/Footer.astro +0 -193
- package/src/components/Text.astro +0 -43
- package/src/components/ThemeSelect.astro +0 -41
- package/src/components/Writeup.astro +0 -90
- package/src/components/experimental/Form.astro +0 -53
- package/src/components/experimental/Gallery.astro +0 -104
- package/src/components/experimental/Logo.astro +0 -38
- package/src/components/experimental/Prose.astro +0 -192
- package/src/components/sections.astro +0 -28
- package/src/content/pages/base/button.mdx +0 -60
- package/src/content/pages/base/checkbox.mdx +0 -42
- package/src/content/pages/base/icon.mdx +0 -55
- package/src/content/pages/base/image.mdx +0 -42
- package/src/content/pages/base/input.mdx +0 -56
- package/src/content/pages/base/rating.mdx +0 -55
- package/src/content/pages/base/textarea.mdx +0 -58
- package/src/content/pages/base/theme-select.mdx +0 -15
- package/src/content/pages/layouts/_layout.mdx +0 -14
- package/src/content/pages/layouts/docslayout.mdx +0 -14
- package/src/content/pages/overview/components.mdx +0 -75
- package/src/content/pages/overview/content-collections.mdx +0 -139
- package/src/content/pages/overview/frameworks.mdx +0 -198
- package/src/content/pages/overview/installation.mdx +0 -53
- package/src/content/pages/overview/introduction.mdx +0 -30
- package/src/content/pages/overview/theming.mdx +0 -69
- package/src/content/pages/schemas/page.mdx +0 -17
- package/src/content/pages/schemas/preset.mdx +0 -9
- package/src/content/pages/showcase/record.md +0 -3
- package/src/content/pages/typography/heading.mdx +0 -73
- package/src/content/pages/typography/list.mdx +0 -51
- package/src/content/pages/typography/text.mdx +0 -61
- package/src/content/presets/blocks.yml +0 -1
- package/src/content/presets/docs.yml +0 -6
- package/src/css/space.css +0 -77
- package/src/css/styles.css +0 -0
- package/src/images/avatar-1.yml +0 -1
- package/src/integration/generate-colors.ts +0 -639
- package/src/integration/tailwind-plugin.ts +0 -80
- package/src/integration/unocss-preset.ts +0 -84
- package/src/layouts/BlockLayout.astro +0 -19
- package/src/layouts/ContactLayout.astro +0 -21
- package/src/layouts/DocsLayout.astro +0 -73
- package/src/layouts/Layout.astro +0 -163
- package/src/layouts/OverviewLayout.astro +0 -42
- package/src/layouts/PostLayout.astro +0 -21
- package/src/layouts/ProductLayout.astro +0 -21
- package/src/loaders/imageLoader.ts +0 -26
- package/src/schemas/components/avatars.ts +0 -4
- package/src/schemas/components/buttons.ts +0 -4
- package/src/schemas/components/card.ts +0 -25
- package/src/schemas/components/cards.ts +0 -4
- package/src/schemas/components/channels.ts +0 -4
- package/src/schemas/components/images.ts +0 -4
- package/src/schemas/components/list.ts +0 -3
- package/src/schemas/components/section.ts +0 -15
- package/src/schemas/components/sections.ts +0 -3
- package/src/schemas/components/socials.ts +0 -4
- package/src/schemas/components/text.ts +0 -3
- package/src/schemas/components/toc.ts +0 -3
- package/src/schemas/components/writeup.ts +0 -20
- package/src/schemas/presetSchema.ts +0 -3
- package/src/schemas/utils/navigation.ts +0 -8
- package/src/schemas/utils/parents.ts +0 -3
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: Content
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -10,7 +8,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
|
|
|
10
8
|
---
|
|
11
9
|
|
|
12
10
|
<Content
|
|
13
|
-
color="brand"
|
|
14
11
|
label="Lorem ipsum"
|
|
15
12
|
heading="Lorem ipsum dolor sit"
|
|
16
13
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil. Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada."
|
|
@@ -25,7 +22,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
|
|
|
25
22
|
---
|
|
26
23
|
|
|
27
24
|
<Content
|
|
28
|
-
color="brand"
|
|
29
25
|
size="lg"
|
|
30
26
|
label="Lorem ipsum"
|
|
31
27
|
heading="Lorem ipsum dolor sit"
|
|
@@ -41,7 +37,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
|
|
|
41
37
|
---
|
|
42
38
|
|
|
43
39
|
<Content
|
|
44
|
-
color="brand"
|
|
45
40
|
size="sm"
|
|
46
41
|
label="Lorem ipsum"
|
|
47
42
|
heading="Lorem ipsum dolor sit"
|
|
@@ -77,7 +72,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
|
|
|
77
72
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil. Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada."
|
|
78
73
|
buttons={[{ text: 'Lorem ipsum', href: '' }]}
|
|
79
74
|
image="/images/placeholder-landscape.webp"
|
|
80
|
-
align="start"
|
|
81
75
|
structure="column"
|
|
82
76
|
/>
|
|
83
77
|
```
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: CTA
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -47,7 +45,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
47
45
|
{ text: 'Lorem ipsum', href: '' },
|
|
48
46
|
{ text: 'Lorem ipsum', href: '' },
|
|
49
47
|
]}
|
|
50
|
-
color="brand"
|
|
51
48
|
/>
|
|
52
49
|
```
|
|
53
50
|
|
|
@@ -64,7 +61,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
64
61
|
{ text: 'Lorem ipsum', href: '', contrast: true },
|
|
65
62
|
{ text: 'Lorem ipsum', href: '', contrast: true },
|
|
66
63
|
]}
|
|
67
|
-
theme="light"
|
|
68
64
|
/>
|
|
69
65
|
```
|
|
70
66
|
|
|
@@ -81,7 +77,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
81
77
|
{ text: 'Lorem ipsum', href: '', color: 'brand' },
|
|
82
78
|
{ text: 'Lorem ipsum', href: '', color: 'brand' },
|
|
83
79
|
]}
|
|
84
|
-
theme="light"
|
|
85
80
|
/>
|
|
86
81
|
```
|
|
87
82
|
|
|
@@ -98,8 +93,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
98
93
|
{ text: 'Lorem ipsum', href: '' },
|
|
99
94
|
{ text: 'Lorem ipsum', href: '' },
|
|
100
95
|
]}
|
|
101
|
-
theme="light"
|
|
102
|
-
color="brand"
|
|
103
96
|
/>
|
|
104
97
|
```
|
|
105
98
|
|
|
@@ -145,7 +138,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
145
138
|
{ text: 'Lorem ipsum', href: '' },
|
|
146
139
|
]}
|
|
147
140
|
structure="spread"
|
|
148
|
-
color="brand"
|
|
149
141
|
/>
|
|
150
142
|
```
|
|
151
143
|
|
|
@@ -162,8 +154,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
|
|
|
162
154
|
{ text: 'Lorem ipsum', href: '' },
|
|
163
155
|
]}
|
|
164
156
|
position="background"
|
|
165
|
-
theme="dark"
|
|
166
|
-
align="center"
|
|
167
157
|
image="/images/placeholder-landscape-dark.png"
|
|
168
158
|
/>
|
|
169
159
|
```
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: Features
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -10,7 +8,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
|
|
|
10
8
|
---
|
|
11
9
|
|
|
12
10
|
<Features
|
|
13
|
-
color="brand"
|
|
14
11
|
heading="Lorem ipsum dolor sit"
|
|
15
12
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
|
|
16
13
|
cards={[
|
|
@@ -42,7 +39,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
|
|
|
42
39
|
---
|
|
43
40
|
|
|
44
41
|
<Features
|
|
45
|
-
color="brand"
|
|
46
42
|
heading="Lorem ipsum dolor sit"
|
|
47
43
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
|
|
48
44
|
cards={[
|
|
@@ -71,7 +67,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
|
|
|
71
67
|
---
|
|
72
68
|
|
|
73
69
|
<Features
|
|
74
|
-
color="brand"
|
|
75
70
|
variant="primary"
|
|
76
71
|
heading="Lorem ipsum dolor sit"
|
|
77
72
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: Hero
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -91,9 +89,6 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
|
91
89
|
]}
|
|
92
90
|
image="/images/placeholder-landscape-dark.png"
|
|
93
91
|
position="background"
|
|
94
|
-
align="center"
|
|
95
|
-
theme="dark"
|
|
96
|
-
justify="center"
|
|
97
92
|
style={{ minHeight: '100vh', justifyContent: 'center' }}
|
|
98
93
|
/>
|
|
99
94
|
```
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: Intro
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -26,7 +24,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
26
24
|
|
|
27
25
|
<Intro
|
|
28
26
|
heading="Lorem ipsum dolor sit amet"
|
|
29
|
-
align="center"
|
|
30
27
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
31
28
|
/>
|
|
32
29
|
```
|
|
@@ -52,7 +49,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
52
49
|
---
|
|
53
50
|
|
|
54
51
|
<Intro
|
|
55
|
-
color="brand"
|
|
56
52
|
heading="Lorem ipsum dolor sit amet"
|
|
57
53
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
58
54
|
buttons={[
|
|
@@ -69,7 +65,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
69
65
|
|
|
70
66
|
<Intro
|
|
71
67
|
variant="primary"
|
|
72
|
-
color="brand"
|
|
73
68
|
heading="Lorem ipsum dolor sit amet"
|
|
74
69
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
75
70
|
buttons={[
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
presets: [docs, blocks]
|
|
3
|
-
|
|
4
2
|
title: Reviews
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -161,7 +159,6 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
161
159
|
|
|
162
160
|
<Reviews
|
|
163
161
|
size="sm"
|
|
164
|
-
align="start"
|
|
165
162
|
structure="carousel"
|
|
166
163
|
heading="What Our Customers Say"
|
|
167
164
|
text="Discover what our satisfied customers are saying about us."
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: Internationalization
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Internationalization (i18n)
|
|
7
|
+
|
|
8
|
+
Getting started with i18n is easy, you can easily add additional languages by creating a new folder named after a language code in the **content/pages** directory and adding your content files in the new language.
|
|
9
|
+
|
|
10
|
+
These pages are just as static as the others however you can merge them with the default language by adding the `i18n` key to the frontmatter.
|
|
11
|
+
|
|
12
|
+
By merging pages you only need to specify the content that is different for the new language. Things like images do not need to be repeated in these new files. See example:
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
content/pages/index.md:
|
|
17
|
+
|
|
18
|
+
```md
|
|
19
|
+
---
|
|
20
|
+
sections:
|
|
21
|
+
- component: Hero
|
|
22
|
+
image: /image.webp
|
|
23
|
+
heading: Page Title
|
|
24
|
+
text: This is my page description
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
content/pages/nl/index.md:
|
|
29
|
+
|
|
30
|
+
```md
|
|
31
|
+
---
|
|
32
|
+
i18n: index
|
|
33
|
+
|
|
34
|
+
sections:
|
|
35
|
+
- component: Hero
|
|
36
|
+
heading: Page Title
|
|
37
|
+
text: This is my page description
|
|
38
|
+
---
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
These return the same results
|
|
42
|
+
|
|
43
|
+
## Project structure
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
.
|
|
47
|
+
├── src/
|
|
48
|
+
│ ├── content/
|
|
49
|
+
│ │ ├── pages/
|
|
50
|
+
│ │ │ ├── index.md
|
|
51
|
+
│ │ │ ├── nl/
|
|
52
|
+
│ │ │ │ └── index.md
|
|
53
|
+
│ │ │ └── de/
|
|
54
|
+
│ │ │ │ └── index.md
|
|
55
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: Using Blocks
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Using Blocks
|
|
9
|
+
|
|
10
|
+
Blocks are astro components that can be used to create reusable content blocks. They are located in the **src/blocks** directory and you can use them by adding the `component` property to the frontmatter of a section in a page.
|
|
11
|
+
|
|
12
|
+
There are plenty of prestyled blocks included in the library, see the <Link href="/blocks/banner/">blocks examples</Link> for more information.
|
|
13
|
+
|
|
14
|
+
```yml
|
|
15
|
+
---
|
|
16
|
+
# Other options...
|
|
17
|
+
|
|
18
|
+
sections:
|
|
19
|
+
- component: Hero # The block you want to use
|
|
20
|
+
heading: Page Title
|
|
21
|
+
text: This is my page description
|
|
22
|
+
buttons:
|
|
23
|
+
- text: Button
|
|
24
|
+
color: brand
|
|
25
|
+
href: /
|
|
26
|
+
- text: Button
|
|
27
|
+
href: /
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Creating a block
|
|
32
|
+
|
|
33
|
+
Beside the blocks that are included in the library you can also create your own by adding a new astro component to the **src/content/layouts** directory. You can also override the existing blocks, see the <Link href="/guides/overriding-components/">overriding components</Link> guide for more information.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: Using Presets
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using Presets
|
|
7
|
+
|
|
8
|
+
Presets are configuration files that can be used to set the default values for a page. They are located in the **src/content/presets** directory and you can use them by adding the `preset` property to the frontmatter of a page or add a `basePreset` to the integration setup in the `astro.config.ts` file.
|
|
9
|
+
|
|
10
|
+
Presets can be applied to pages in the frontmatter or as a base preset.
|
|
11
|
+
|
|
12
|
+
## Creating a preset
|
|
13
|
+
|
|
14
|
+
Beside the presets that are included in the library you can also create your own by adding a new yaml file to the **src/content/presets** directory. See the [presets collection](/content-collections/presets/) for more information on what properties are available.
|
|
15
|
+
|
|
16
|
+
Currently there are 5 presets included in the library:
|
|
17
|
+
|
|
18
|
+
- `base`
|
|
19
|
+
- `docs`
|
|
20
|
+
- `blocks`
|
|
21
|
+
|
|
22
|
+
## Setting a preset
|
|
23
|
+
|
|
24
|
+
To apply a preset to a page, you can add the `preset` property to the frontmatter of a page.
|
|
25
|
+
|
|
26
|
+
```yml
|
|
27
|
+
---
|
|
28
|
+
presets: [base, docs]
|
|
29
|
+
---
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Setting a base preset
|
|
33
|
+
|
|
34
|
+
To apply a preset to every page, you can set a `basePreset` in the integration setup in the `astro.config.ts` file therefore the base preset will not have to be added to the frontmatter anymore.
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import { defineConfig } from 'astro/config'
|
|
38
|
+
import fulldev from 'fulldev-ui/integration'
|
|
39
|
+
|
|
40
|
+
// https://astro.build/config
|
|
41
|
+
export default defineConfig({
|
|
42
|
+
integrations: [
|
|
43
|
+
fulldev({
|
|
44
|
+
// other options
|
|
45
|
+
basePreset: 'base',
|
|
46
|
+
}),
|
|
47
|
+
],
|
|
48
|
+
})
|
|
49
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: Blocks
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Blocks
|
|
9
|
+
|
|
10
|
+
Layouts are astro components that can be used to set the default styles for a page. They are located in the **src/content/layouts** directory.
|
|
11
|
+
|
|
12
|
+
## Creating a layout
|
|
13
|
+
|
|
14
|
+
Beside the layouts that are included in the library you can also create your own by adding a new astro component to the **src/content/layouts** directory. You can also override the existing layouts, see the <Link href="/guides/overriding-components/">overriding components</Link> guide for more information.
|
|
15
|
+
|
|
16
|
+
Currently there are 6 layouts included in the library:
|
|
17
|
+
|
|
18
|
+
- `Layout`
|
|
19
|
+
- `DocsLayout`
|
|
20
|
+
- `PostLayout`
|
|
21
|
+
- `ProductLayout`
|
|
22
|
+
- `BlockLayout`
|
|
23
|
+
- `ContactLayout`
|
|
24
|
+
|
|
25
|
+
## Applying a layout
|
|
26
|
+
|
|
27
|
+
To apply a preset to a page, you can add the `component` property to the frontmatter of a page.
|
|
28
|
+
|
|
29
|
+
```md
|
|
30
|
+
---
|
|
31
|
+
component: DocsLayout
|
|
32
|
+
---
|
|
33
|
+
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: images
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# images
|
|
7
|
+
|
|
8
|
+
Adds type-safety and optimization for local images
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- Type-safe image references
|
|
13
|
+
- Integrates with Astro's `<Image />` component
|
|
14
|
+
- Integrates even better with fulldev-ui's `<Image />` component
|
|
15
|
+
- Get images using the `getEntry()` helper function
|
|
16
|
+
- Define alt texts globally, so you don't have to repeat yourself
|
|
17
|
+
|
|
18
|
+
## Adding images
|
|
19
|
+
|
|
20
|
+
Image files added to the `src/images` directory will automatically be added to the images collection.
|
|
21
|
+
|
|
22
|
+
## Global alt texts
|
|
23
|
+
|
|
24
|
+
Alt texts can be defined globally in the same folder as where the images live. You create a `[IMAGE NAME].yml` in the same folder as the images.
|
|
25
|
+
|
|
26
|
+
This way you can define alt texts once and they will be used everyhwere you use the image. An example of such a `yaml` file would be:
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
alt: 'A placeholder landscape image'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Using images
|
|
33
|
+
|
|
34
|
+
### Automatic (recommended)
|
|
35
|
+
|
|
36
|
+
Use fulldev-ui's included `<Image />` component to get the following benefits out of the box:
|
|
37
|
+
|
|
38
|
+
- You only have to pass the image id
|
|
39
|
+
- Automatic type-safety and warnings
|
|
40
|
+
- Automatically uses global alt text
|
|
41
|
+
- Automatically optimizes image file
|
|
42
|
+
|
|
43
|
+
This is also the easiest way to use images:
|
|
44
|
+
|
|
45
|
+
```astro
|
|
46
|
+
---
|
|
47
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<Image id="my-image.png" />
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Manual
|
|
54
|
+
|
|
55
|
+
If you want more control over the image, you can use the `getEntry()` helper function to get an image.
|
|
56
|
+
|
|
57
|
+
```astro
|
|
58
|
+
---
|
|
59
|
+
import { getEntry } from 'fulldev-ui/utils'
|
|
60
|
+
|
|
61
|
+
const image = getEntry('my-image.png')
|
|
62
|
+
---
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
It will return an image in the following format:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
{
|
|
69
|
+
id: 'my-image.png',
|
|
70
|
+
src: '/src/images/my-image.png',
|
|
71
|
+
alt: 'Alt text provided via steps above',
|
|
72
|
+
width: 1930,
|
|
73
|
+
height: 1080,
|
|
74
|
+
format: 'png'
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
You can pass these values directly into Astro's `<Image />` component to render the image.
|
|
79
|
+
|
|
80
|
+
```astro
|
|
81
|
+
---
|
|
82
|
+
import { getEntry } from 'fulldev-ui/utils'
|
|
83
|
+
|
|
84
|
+
const image = getEntry('my-image.png')
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
<Image {...image} />
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
But to get an optimized version, you should use an imported image instead:
|
|
91
|
+
|
|
92
|
+
```astro
|
|
93
|
+
---
|
|
94
|
+
import { getEntry } from 'fulldev-ui/utils'
|
|
95
|
+
|
|
96
|
+
const image = getEntry('my-image.png')
|
|
97
|
+
const images = import.meta.glob<{ default: ImageMetadata }>('/src/images/*')
|
|
98
|
+
const image = images[image.src]
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
<Image src={image()} alt={image.alt} />
|
|
102
|
+
```
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: pages
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# pages
|
|
7
|
+
|
|
8
|
+
Used for generating pages and/or cards.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- Pages are automatically generated from `.md` and `.mdx` files in `src/content/pages`
|
|
13
|
+
- References to other pages, and other collections
|
|
14
|
+
- Setting a preset, which automatically gets merged with the current page
|
|
15
|
+
- Type-safe frontmatter validation with helpful error messages
|
|
16
|
+
|
|
17
|
+
## Frontmatter reference
|
|
18
|
+
|
|
19
|
+
import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
|
|
20
|
+
|
|
21
|
+
<PropsTable schema="pageSchema" />
|
|
22
|
+
|
|
23
|
+
### `presets`
|
|
24
|
+
|
|
25
|
+
Type: Filepath of an entry in `src/content/presets`
|
|
26
|
+
|
|
27
|
+
### `component`
|
|
28
|
+
|
|
29
|
+
Type: Filename of a component in `src/layouts`
|
|
30
|
+
|
|
31
|
+
### `theme`
|
|
32
|
+
|
|
33
|
+
Type: `'light' | 'dark' | 'system' | undefined`
|
|
34
|
+
|
|
35
|
+
### `lang`
|
|
36
|
+
|
|
37
|
+
Type: `string` | undefined
|
|
38
|
+
|
|
39
|
+
### `title`
|
|
40
|
+
|
|
41
|
+
Type: `string` | undefined
|
|
42
|
+
|
|
43
|
+
### `description`
|
|
44
|
+
|
|
45
|
+
Type: `string` | undefined
|
|
46
|
+
|
|
47
|
+
### `image`
|
|
48
|
+
|
|
49
|
+
### `images`
|
|
50
|
+
|
|
51
|
+
### `seo`
|
|
52
|
+
|
|
53
|
+
## Example
|
|
54
|
+
|
|
55
|
+
```md
|
|
56
|
+
---
|
|
57
|
+
presets: [post]
|
|
58
|
+
component: PostLayout
|
|
59
|
+
|
|
60
|
+
seo:
|
|
61
|
+
title: About us - Fulldev
|
|
62
|
+
description: Learn more about Fulldev
|
|
63
|
+
|
|
64
|
+
title: About us
|
|
65
|
+
|
|
66
|
+
sections:
|
|
67
|
+
- component: Hero
|
|
68
|
+
tagline: We are a team of passionate developers
|
|
69
|
+
heading: About us
|
|
70
|
+
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
71
|
+
buttons:
|
|
72
|
+
- text: Get in touch
|
|
73
|
+
href: /contact
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
# Write your markdown here!
|
|
77
|
+
|
|
78
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Disabling page generation
|
|
82
|
+
|
|
83
|
+
### If no content is passed
|
|
84
|
+
|
|
85
|
+
No page will be generated if no content is passed, meaning the page does not have body content or any of the following frontmatter keys:
|
|
86
|
+
|
|
87
|
+
- `component`
|
|
88
|
+
- `section`
|
|
89
|
+
- `sections`
|
|
90
|
+
|
|
91
|
+
### On a global level
|
|
92
|
+
|
|
93
|
+
You can disable all automatic page generation by setting the `injectRoutes` option in your `astro.config.ts` file.
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
// astro.config.ts
|
|
97
|
+
import { defineConfig } from 'astro/config'
|
|
98
|
+
import fulldev from 'fulldev-ui/integration'
|
|
99
|
+
|
|
100
|
+
export default defineConfig({
|
|
101
|
+
integrations: [
|
|
102
|
+
fulldev({
|
|
103
|
+
injectRoutes: false,
|
|
104
|
+
}),
|
|
105
|
+
],
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### On a per-page level
|
|
110
|
+
|
|
111
|
+
You can disable page generation per page by setting the `inject` key to `false`.
|
|
112
|
+
|
|
113
|
+
This makes sense for content you might only want to show as a card on another page, like reviews or the showcases on this website.
|
|
114
|
+
|
|
115
|
+
```md
|
|
116
|
+
---
|
|
117
|
+
inject: false
|
|
118
|
+
---
|
|
119
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: presets
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# presets
|
|
7
|
+
|
|
8
|
+
Default values that can be referenced by pages
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- Uses same schema as pages
|
|
13
|
+
- Can be referenced by pages, to automatically merge values
|
|
14
|
+
- Global preset can be set which will be automatically merged with all pages
|
|
15
|
+
|
|
16
|
+
## Frontmatter reference
|
|
17
|
+
|
|
18
|
+
Presets accept the exact same properties as the [pages collection](/docs/collections/pages/), except for the `presets` key, since this could potentially create a circular reference.
|
|
19
|
+
|
|
20
|
+
## Configuring a base preset
|
|
21
|
+
|
|
22
|
+
To configure a base preset, you can set the `basePreset` option in your `astro.config.ts` file. It accepts the filepath of a preset in `src/content/presets`.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
// astro.config.ts
|
|
26
|
+
import { defineConfig } from 'astro/config'
|
|
27
|
+
import fulldev from 'fulldev-ui/integration'
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
integrations: [
|
|
31
|
+
fulldev({
|
|
32
|
+
basePreset: 'base',
|
|
33
|
+
}),
|
|
34
|
+
],
|
|
35
|
+
})
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Example
|
|
39
|
+
|
|
40
|
+
```yml
|
|
41
|
+
seo:
|
|
42
|
+
title: Default site title
|
|
43
|
+
description: Default site description
|
|
44
|
+
image: default-og-image.png
|
|
45
|
+
|
|
46
|
+
header:
|
|
47
|
+
logo: logo.svg
|
|
48
|
+
links:
|
|
49
|
+
- docs
|
|
50
|
+
- about
|
|
51
|
+
- showcase
|
|
52
|
+
- text: Custom link text
|
|
53
|
+
href: /custom-link-href
|
|
54
|
+
|
|
55
|
+
footer:
|
|
56
|
+
logo: logo.svg
|
|
57
|
+
socials:
|
|
58
|
+
- https://github.com/fulldotdev/ui
|
|
59
|
+
- https://discord.gg/vXZqMbadm8
|
|
60
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: doc
|
|
3
|
+
title: Collections
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Collections
|
|
7
|
+
|
|
8
|
+
A general overview of how Astro's [content collections](https://docs.astro.build/en/guides/content-collections/) are used.
|
|
9
|
+
|
|
10
|
+
## Types of content collections
|
|
11
|
+
|
|
12
|
+
1. `pages`: Used for generating pages and/or cards.
|
|
13
|
+
2. `presets`: Default values that can be referenced by pages
|
|
14
|
+
3. `images`: Adds type-safety and optimization for local images
|
|
15
|
+
|
|
16
|
+
## Setup collections
|
|
17
|
+
|
|
18
|
+
Create a content collections config file at `src/content/config.ts`, and add the following content:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
// src/content/config.ts
|
|
22
|
+
import { defineCollection } from 'astro:content'
|
|
23
|
+
import imageLoader from 'fulldev-ui/loaders/imageLoader.ts'
|
|
24
|
+
import imageSchema from 'fulldev-ui/schemas/imageSchema.ts'
|
|
25
|
+
import pageSchema from 'fulldev-ui/schemas/pageSchema.ts'
|
|
26
|
+
import presetSchema from 'fulldev-ui/schemas/presetSchema.ts'
|
|
27
|
+
|
|
28
|
+
export const collections = {
|
|
29
|
+
pages: defineCollection({
|
|
30
|
+
type: 'content',
|
|
31
|
+
schema: pageSchema,
|
|
32
|
+
}),
|
|
33
|
+
presets: defineCollection({
|
|
34
|
+
type: 'data',
|
|
35
|
+
schema: presetSchema,
|
|
36
|
+
}),
|
|
37
|
+
images: defineCollection({
|
|
38
|
+
loader: imageLoader,
|
|
39
|
+
schema: imageSchema,
|
|
40
|
+
}),
|
|
41
|
+
}
|
|
42
|
+
```
|