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.
- package/.env.example +3 -0
- package/CONTRIBUTING.md +10 -4
- package/astro.config.ts +11 -11
- package/package.json +31 -17
- package/pnpm-lock.yaml +1353 -438
- 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/browserconfig.xml +7 -7
- package/public/favicon/favicon-16x16-dark.png +0 -0
- package/public/favicon/favicon-16x16.png +0 -0
- package/public/favicon/favicon-32x32-dark.png +0 -0
- package/public/favicon/favicon-32x32.png +0 -0
- package/public/favicon/favicon-48x48-dark.png +0 -0
- package/public/favicon/favicon-48x48.png +0 -0
- package/public/favicon/favicon-dark.ico +0 -0
- package/public/favicon/favicon.ico +0 -0
- package/public/favicon/favicon.svg +16 -0
- package/public/favicon/manifest.webmanifest +26 -0
- package/public/favicon/mstile-150x150.png +0 -0
- package/public/favicon/safari-pinned-tab.svg +14 -15
- package/public/favicon/yandex-browser-50x50.png +0 -0
- package/public/favicon/yandex-browser-manifest.json +9 -0
- package/src/blocks/Article.astro +40 -0
- package/src/blocks/Banner.astro +48 -0
- package/src/blocks/Colleagues.astro +2 -1
- package/src/blocks/Contact.astro +61 -99
- package/src/blocks/Cta.astro +2 -1
- package/src/blocks/Excerpt.astro +14 -0
- package/src/blocks/Hero.astro +1 -2
- package/src/blocks/Intro.astro +4 -1
- package/src/blocks/Jobs.astro +1 -1
- package/src/blocks/Prices.astro +1 -1
- package/src/blocks/Product.astro +75 -27
- package/src/blocks/Reviews.astro +1 -1
- package/src/components/Avatar.astro +3 -20
- package/src/components/Badge.astro +17 -54
- package/src/components/Badges.astro +40 -0
- package/src/components/Button.astro +65 -46
- package/src/components/Buttons.astro +49 -0
- package/src/components/Card.astro +100 -178
- package/src/components/Cards.astro +135 -0
- package/src/components/Cart.astro +38 -0
- package/src/components/CartForm.astro +122 -0
- package/src/components/CartList.astro +134 -0
- package/src/components/CartSummary.astro +148 -0
- package/src/components/Channel.astro +70 -0
- package/src/components/Channels.astro +37 -0
- package/src/components/Checkbox.astro +12 -16
- package/src/components/Dialog.astro +10 -12
- package/src/components/Drawer.astro +131 -63
- package/src/components/Element.astro +58 -0
- package/src/components/Footer.astro +142 -93
- package/src/components/Form.astro +49 -0
- package/src/components/Head.astro +11 -45
- package/src/components/Header.astro +91 -163
- package/src/components/Heading.astro +18 -26
- package/src/components/Icon.astro +9 -9
- package/src/components/Image.astro +42 -152
- package/src/components/Input.astro +16 -28
- package/src/components/Label.astro +14 -17
- package/src/components/Link.astro +22 -44
- package/src/components/List.astro +12 -10
- package/src/components/LocaleSwitcher.astro +25 -0
- package/src/components/Menu.astro +57 -0
- package/src/components/Price.astro +34 -0
- package/src/components/Rating.astro +29 -25
- package/src/components/Search.astro +4 -7
- package/src/components/Section.astro +196 -234
- package/src/components/Select.astro +16 -34
- package/src/components/Sidebar.astro +85 -58
- package/src/components/Social.astro +36 -0
- package/src/components/Socials.astro +37 -0
- package/src/components/Switch.astro +14 -22
- package/src/components/Table.astro +23 -36
- package/src/components/Tagline.astro +11 -16
- package/src/components/Text.astro +17 -19
- package/src/components/Textarea.astro +8 -22
- package/src/components/ThemeSelect.astro +41 -0
- package/src/components/Toc.astro +59 -56
- package/src/components/Writeup.astro +90 -0
- package/src/components/docs/PropsTable.astro +229 -56
- package/src/components/experimental/Form.astro +36 -17
- package/src/components/experimental/Gallery.astro +50 -126
- package/src/components/experimental/Logo.astro +26 -9
- package/src/components/experimental/Prose.astro +41 -5
- package/src/components/experimental/Video.astro +1 -1
- package/src/components/experimental/Window.astro +3 -4
- package/src/components/sections.astro +28 -0
- package/src/content/config.ts +10 -7
- package/src/content/pages/base/_dialog.mdx +1 -2
- package/src/content/pages/base/_drawer.mdx +1 -2
- package/src/content/pages/base/_localeswitcher.mdx +17 -0
- package/src/content/pages/base/_switch.mdx +1 -2
- package/src/content/pages/base/badge.mdx +1 -12
- package/src/content/pages/base/button.mdx +1 -12
- package/src/content/pages/base/card.mdx +2 -29
- package/src/content/pages/base/checkbox.mdx +1 -2
- package/src/content/pages/base/icon.mdx +1 -2
- package/src/content/pages/base/image.mdx +42 -0
- package/src/content/pages/base/input.mdx +1 -12
- package/src/content/pages/base/rating.mdx +3 -14
- package/src/content/pages/base/section.mdx +2 -3
- package/src/content/pages/base/select.mdx +1 -20
- package/src/content/pages/base/table.mdx +1 -28
- package/src/content/pages/base/textarea.mdx +1 -16
- package/src/content/pages/base/theme-select.mdx +15 -0
- package/src/content/pages/blocks/_categories.mdx +3 -5
- package/src/content/pages/blocks/{footer.mdx → _footer.mdx} +2 -4
- package/src/content/pages/blocks/{header.mdx → _header.mdx} +2 -7
- package/src/content/pages/blocks/_jobs.mdx +1 -2
- package/src/content/pages/blocks/{prices.mdx → _prices.mdx} +5 -7
- package/src/content/pages/blocks/_product.mdx +74 -4
- package/src/content/pages/blocks/_products.mdx +1 -2
- package/src/content/pages/blocks/_stats.mdx +1 -1
- package/src/content/pages/blocks/{_banner.mdx → banner.mdx} +2 -2
- package/src/content/pages/blocks/colleagues.mdx +6 -8
- package/src/content/pages/blocks/contact.mdx +69 -0
- package/src/content/pages/blocks/content.mdx +1 -19
- package/src/content/pages/blocks/cta.mdx +2 -25
- package/src/content/pages/blocks/features.mdx +2 -3
- package/src/content/pages/blocks/hero.mdx +5 -3
- package/src/content/pages/blocks/intro.mdx +2 -5
- package/src/content/pages/blocks/posts.mdx +9 -2
- package/src/content/pages/blocks/reviews.mdx +23 -18
- package/src/content/pages/index.mdx +16 -20
- package/src/content/pages/layouts/_layout.mdx +14 -0
- package/src/content/pages/layouts/docslayout.mdx +14 -0
- package/src/content/pages/overview/components.mdx +75 -0
- package/src/content/pages/overview/content-collections.mdx +139 -0
- package/src/content/pages/overview/frameworks.mdx +4 -4
- package/src/content/pages/overview/installation.mdx +36 -3
- package/src/content/pages/overview/introduction.mdx +19 -9
- package/src/content/pages/overview/theming.mdx +53 -67
- package/src/content/pages/schemas/page.mdx +17 -0
- package/src/content/pages/schemas/preset.mdx +9 -0
- package/src/content/pages/showcase/anti-slip-profiles.md +5 -0
- package/src/content/pages/showcase/fulldev-ui.md +5 -0
- package/src/content/pages/showcase/lavis-detailing.md +5 -0
- package/src/content/pages/showcase/leren-trainingsacteren.md +5 -0
- package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +5 -0
- package/src/content/{records/record.yml → pages/showcase/record.md} +2 -0
- package/src/content/pages/showcase/sloepverhuur-bolsward.md +5 -0
- package/src/content/pages/showcase/stark-vulcanising-products.md +5 -0
- package/src/content/pages/showcase/the-gym-haren.md +5 -0
- package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +5 -0
- package/src/content/pages/showcase.mdx +11 -41
- package/src/content/pages/typography/_tagline.mdx +1 -2
- package/src/content/pages/typography/heading.mdx +1 -2
- package/src/content/pages/typography/label.mdx +1 -2
- package/src/content/pages/typography/link.mdx +1 -13
- package/src/content/pages/typography/list.mdx +1 -2
- package/src/content/pages/typography/text.mdx +1 -2
- package/src/content/{settings → presets}/base.yml +62 -45
- package/src/content/presets/blocks.yml +1 -0
- package/src/content/presets/docs.yml +6 -0
- package/src/css/color.css +0 -82
- package/src/css/custom.css +9 -56
- package/src/css/size.css +10 -0
- package/src/css/space.css +0 -8
- package/src/css/styles.css +0 -15
- package/src/env.d.ts +1 -1
- package/src/images/avatar-1.yml +1 -0
- package/src/images/favicon.svg +16 -0
- package/src/integration/generate-colors.ts +2 -0
- package/src/integration/index.ts +95 -7
- package/src/layouts/BlockLayout.astro +10 -15
- package/src/layouts/ContactLayout.astro +21 -0
- package/src/layouts/DocsLayout.astro +73 -0
- package/src/layouts/Layout.astro +114 -133
- package/src/layouts/OverviewLayout.astro +28 -31
- package/src/layouts/PostLayout.astro +12 -23
- package/src/layouts/ProductLayout.astro +10 -20
- package/src/loaders/imageLoader.ts +26 -0
- package/src/pages/[...page].astro +25 -21
- package/src/schemas/components/avatar.ts +3 -0
- package/src/schemas/components/avatars.ts +4 -0
- package/src/schemas/components/badge.ts +13 -0
- package/src/schemas/components/button.ts +16 -0
- package/src/schemas/components/buttons.ts +4 -0
- package/src/schemas/components/card.ts +25 -0
- package/src/schemas/components/cards.ts +4 -0
- package/src/schemas/components/channel.ts +13 -0
- package/src/schemas/components/channels.ts +4 -0
- package/src/schemas/components/footer.ts +25 -0
- package/src/schemas/components/header.ts +11 -0
- package/src/schemas/components/heading.ts +3 -0
- package/src/schemas/components/icon.ts +3 -0
- package/src/schemas/components/image.ts +25 -0
- package/src/schemas/components/images.ts +4 -0
- package/src/schemas/components/list.ts +3 -0
- package/src/schemas/components/logo.ts +3 -0
- package/src/schemas/components/menu.ts +13 -0
- package/src/schemas/components/price.ts +3 -0
- package/src/schemas/components/rating.ts +15 -0
- package/src/schemas/components/section.ts +15 -0
- package/src/schemas/components/sections.ts +3 -0
- package/src/schemas/components/sidebar.ts +15 -0
- package/src/schemas/components/social.ts +3 -0
- package/src/schemas/components/socials.ts +4 -0
- package/src/schemas/components/tagline.ts +3 -0
- package/src/schemas/components/text.ts +3 -0
- package/src/schemas/components/toc.ts +3 -0
- package/src/schemas/components/writeup.ts +20 -0
- package/src/schemas/imageSchema.ts +12 -0
- package/src/schemas/pageSchema.ts +91 -0
- package/src/schemas/presetSchema.ts +3 -0
- package/src/schemas/utils/component.ts +17 -0
- package/src/schemas/utils/navigation.ts +8 -0
- package/src/schemas/utils/parents.ts +3 -0
- package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
- package/src/stores/cart.ts +23 -0
- package/src/types/global-props.ts +16 -0
- package/src/types/virtual-modules.d.ts +5 -0
- package/src/utils/_archive/Childmorphic.ts +1 -1
- package/src/utils/_archive/mergeEntries.ts +28 -0
- package/src/utils/cart.ts +32 -0
- package/src/utils/getDeepReferenceChildren.ts +14 -0
- package/src/utils/getFolderChildren.ts +18 -0
- package/src/utils/getReferenceChildren.ts +14 -0
- package/src/utils/getSiblingPages.ts +14 -0
- package/tsconfig.json +2 -5
- package/public/favicon/site.webmanifest +0 -19
- package/public/images/avatars/1.jpeg +0 -0
- package/public/images/avatars/2.jpeg +0 -0
- package/public/images/avatars/3.jpeg +0 -0
- package/public/images/avatars/300/1.jpeg +0 -0
- package/public/images/avatars/300/2.jpeg +0 -0
- package/public/images/avatars/300/3.jpeg +0 -0
- package/public/images/avatars/300/4.jpeg +0 -0
- package/public/images/avatars/4.jpeg +0 -0
- package/public/images/avatars/5.jpeg +0 -0
- package/public/images/avatars/6.jpeg +0 -0
- package/public/images/avatars/7.jpeg +0 -0
- package/public/images/avatars/8.jpeg +0 -0
- package/public/images/blocks/colleagues.png +0 -0
- package/public/images/blocks/content.png +0 -0
- package/public/images/blocks/cta.png +0 -0
- package/public/images/blocks/features.png +0 -0
- package/public/images/blocks/footer.png +0 -0
- package/public/images/blocks/header.png +0 -0
- package/public/images/blocks/hero.png +0 -0
- package/public/images/blocks/intro.png +0 -0
- package/public/images/blocks/posts.png +0 -0
- package/public/images/blocks/prices.png +0 -0
- package/public/images/blocks/reviews.png +0 -0
- package/public/images/logo-placeholder.svg +0 -1
- package/src/components/Bento.astro +0 -43
- package/src/components/Block.astro +0 -157
- package/src/components/Blocks.astro +0 -5
- package/src/components/Box.astro +0 -63
- package/src/components/Carousel.astro +0 -54
- package/src/components/Column.astro +0 -73
- package/src/components/Grid.astro +0 -32
- package/src/components/Masonry.astro +0 -42
- package/src/components/Root.astro +0 -94
- package/src/components/Row.astro +0 -49
- package/src/components/Split.astro +0 -59
- package/src/components/Spread.astro +0 -46
- package/src/components/Stack.astro +0 -36
- package/src/components/Toggle.astro +0 -46
- package/src/components/Wrap.astro +0 -42
- package/src/components/docs/NavigationButtons.astro +0 -59
- package/src/components/experimental/Channel.astro +0 -74
- package/src/components/experimental/GalleryVertical.astro +0 -161
- package/src/components/experimental/Price.astro +0 -40
- package/src/content/pages/_changelog.mdx +0 -10
- package/src/content/pages/_segment/footer.mdx +0 -244
- package/src/content/pages/_segment/header.mdx +0 -210
- package/src/content/pages/base/_image.mdx +0 -14
- package/src/content/pages/base/toggle.mdx +0 -32
- package/src/content/pages/blocks.mdx +0 -10
- package/src/content/pages/overview/integration.mdx +0 -37
- package/src/content/pages/structure/_row.mdx +0 -23
- package/src/content/pages/structure/_wrap.mdx +0 -25
- package/src/content/pages/structure/carousel.mdx +0 -31
- package/src/content/pages/structure/column.mdx +0 -21
- package/src/content/pages/structure/grid.mdx +0 -26
- package/src/content/pages/structure/masonry.mdx +0 -32
- package/src/content/pages/structure/split.mdx +0 -21
- package/src/content/pages/structure/spread.mdx +0 -21
- package/src/content/pages/structure/stack.mdx +0 -22
- package/src/content/settings/components.yml +0 -29
- package/src/layouts/BlockOverviewLayout.astro +0 -39
- package/src/layouts/ComponentLayout.astro +0 -23
- package/src/layouts/JobsLayout.astro +0 -40
- package/src/layouts/PageLayout.astro +0 -32
- package/src/schemas/base.ts +0 -90
- package/src/schemas/block.ts +0 -15
- package/src/schemas/card.ts +0 -3
- package/src/schemas/page.ts +0 -43
- package/src/utils/mergeEntries.ts +0 -28
- /package/{public/showcase → src/images}/anti-slip-profiles.webp +0 -0
- /package/{public/images/avatars/500/1.jpeg → src/images/avatar-1.jpeg} +0 -0
- /package/{public/images/avatars/500/2.jpeg → src/images/avatar-2.jpeg} +0 -0
- /package/{public/images/avatars/500/3.jpeg → src/images/avatar-3.jpeg} +0 -0
- /package/{public/images/avatars/500/4.jpeg → src/images/avatar-4.jpeg} +0 -0
- /package/{public → src}/images/avatar-placeholder.jpg +0 -0
- /package/{public → src}/images/block-code.png +0 -0
- /package/{public → src}/images/component-code.png +0 -0
- /package/{public/showcase → src/images}/fulldev-ui.webp +0 -0
- /package/{public/showcase → src/images}/lavis-detailing.webp +0 -0
- /package/{public/showcase → src/images}/leren-trainingsacteren.webp +0 -0
- /package/{public/showcase → src/images}/miele-witgoedcenter-amsterdam.webp +0 -0
- /package/{public → src}/images/og-image.png +0 -0
- /package/{public → src}/images/placeholder-center.webp +0 -0
- /package/{public → src}/images/placeholder-landscape-dark.png +0 -0
- /package/{public → src}/images/placeholder-landscape.webp +0 -0
- /package/{public → src}/images/placeholder-portrait.webp +0 -0
- /package/{public → src}/images/placeholder-right.webp +0 -0
- /package/{public → src}/images/placeholder.webp +0 -0
- /package/{public/showcase → src/images}/sloepverhuur-bolsward.webp +0 -0
- /package/{public/showcase → src/images}/stark-vulcanising-products.webp +0 -0
- /package/{public/showcase → src/images}/the-gym-haren.webp +0 -0
- /package/{public/showcase → src/images}/van-dillen-antieke-bouwmaterialen.webp +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
presets: [docs, blocks]
|
|
3
3
|
|
|
4
4
|
title: Features
|
|
5
|
-
image: /images/blocks/features.png
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
```astro live
|
|
@@ -108,7 +107,7 @@ import Features from 'fulldev-ui/blocks/Features.astro'
|
|
|
108
107
|
<Features
|
|
109
108
|
heading="Lorem ipsum dolor sit"
|
|
110
109
|
text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
|
|
111
|
-
|
|
110
|
+
panel
|
|
112
111
|
position="inset"
|
|
113
112
|
cards={[
|
|
114
113
|
{
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
presets: [docs, blocks]
|
|
3
3
|
|
|
4
4
|
title: Hero
|
|
5
|
-
image: /images/blocks/hero.png
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
```astro live
|
|
@@ -18,6 +17,7 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
|
18
17
|
{ text: 'Lorem ipsum', href: '' },
|
|
19
18
|
{ text: 'Lorem ipsum', href: '' },
|
|
20
19
|
]}
|
|
20
|
+
position="inset"
|
|
21
21
|
image="/images/placeholder-landscape.webp"
|
|
22
22
|
/>
|
|
23
23
|
```
|
|
@@ -35,6 +35,7 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
|
35
35
|
{ text: 'Lorem ipsum', href: '' },
|
|
36
36
|
]}
|
|
37
37
|
structure="spread"
|
|
38
|
+
position="inset"
|
|
38
39
|
image="/images/placeholder-landscape.webp"
|
|
39
40
|
/>
|
|
40
41
|
```
|
|
@@ -91,7 +92,8 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
|
91
92
|
image="/images/placeholder-landscape-dark.png"
|
|
92
93
|
position="background"
|
|
93
94
|
align="center"
|
|
94
|
-
|
|
95
|
+
theme="dark"
|
|
95
96
|
justify="center"
|
|
97
|
+
style={{ minHeight: '100vh', justifyContent: 'center' }}
|
|
96
98
|
/>
|
|
97
99
|
```
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
presets: [docs, blocks]
|
|
3
3
|
|
|
4
4
|
title: Intro
|
|
5
|
-
image: /images/blocks/intro.png
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
```astro live
|
|
@@ -86,7 +85,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
86
85
|
---
|
|
87
86
|
|
|
88
87
|
<Intro
|
|
89
|
-
frame="fill"
|
|
90
88
|
variant="primary"
|
|
91
89
|
heading="Lorem ipsum dolor sit amet"
|
|
92
90
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
@@ -103,7 +101,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
103
101
|
---
|
|
104
102
|
|
|
105
103
|
<Intro
|
|
106
|
-
frame="fill"
|
|
107
104
|
variant="primary"
|
|
108
105
|
heading="Lorem ipsum dolor sit amet"
|
|
109
106
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
@@ -120,7 +117,7 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
|
|
|
120
117
|
---
|
|
121
118
|
|
|
122
119
|
<Intro
|
|
123
|
-
|
|
120
|
+
panel
|
|
124
121
|
variant="primary"
|
|
125
122
|
heading="Lorem ipsum dolor sit amet"
|
|
126
123
|
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
presets: [docs, blocks]
|
|
3
3
|
|
|
4
4
|
title: Posts
|
|
5
|
-
image: /images/blocks/posts.png
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
```astro live
|
|
@@ -13,6 +12,7 @@ import Posts from 'fulldev-ui/blocks/Posts.astro'
|
|
|
13
12
|
<Posts
|
|
14
13
|
heading="Latest posts"
|
|
15
14
|
text="Read the latest articles from our blog."
|
|
15
|
+
panel={false}
|
|
16
16
|
cards={[
|
|
17
17
|
{
|
|
18
18
|
tagline: '2024-03-15',
|
|
@@ -35,6 +35,13 @@ import Posts from 'fulldev-ui/blocks/Posts.astro'
|
|
|
35
35
|
image: '/images/placeholder-landscape.webp',
|
|
36
36
|
href: '',
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
tagline: '2024-03-05',
|
|
40
|
+
heading: 'Lorem ipsum dolor sit amet consectetur',
|
|
41
|
+
text: 'Discover our flexible Content block with split layout and panel options. Ideal for presenting detailed information about your products or services.',
|
|
42
|
+
image: '/images/placeholder-landscape.webp',
|
|
43
|
+
href: '',
|
|
44
|
+
},
|
|
38
45
|
]}
|
|
39
46
|
/>
|
|
40
47
|
```
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
presets: [docs, blocks]
|
|
3
3
|
|
|
4
4
|
title: Reviews
|
|
5
|
-
image: /images/blocks/reviews.png
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
```astro live
|
|
@@ -19,7 +18,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
19
18
|
{
|
|
20
19
|
rating: {
|
|
21
20
|
value: 5,
|
|
22
|
-
avatar: '
|
|
21
|
+
avatar: 'avatar-1.jpeg',
|
|
23
22
|
label: 'John Doe',
|
|
24
23
|
},
|
|
25
24
|
heading: 'Exceptional Service',
|
|
@@ -28,7 +27,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
28
27
|
{
|
|
29
28
|
rating: {
|
|
30
29
|
value: 5,
|
|
31
|
-
avatar: '
|
|
30
|
+
avatar: 'avatar-2.jpeg',
|
|
32
31
|
label: 'Jane Smith',
|
|
33
32
|
},
|
|
34
33
|
heading: 'Great Product',
|
|
@@ -37,7 +36,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
37
36
|
{
|
|
38
37
|
rating: {
|
|
39
38
|
value: 5,
|
|
40
|
-
avatar: '
|
|
39
|
+
avatar: 'avatar-3.jpeg',
|
|
41
40
|
label: 'Mike Johnson',
|
|
42
41
|
},
|
|
43
42
|
heading: 'Reliable and Efficient',
|
|
@@ -46,7 +45,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
46
45
|
{
|
|
47
46
|
rating: {
|
|
48
47
|
value: 5,
|
|
49
|
-
avatar: '
|
|
48
|
+
avatar: 'avatar-4.jpeg',
|
|
50
49
|
label: 'Emily Brown',
|
|
51
50
|
},
|
|
52
51
|
heading: 'Fantastic Experience',
|
|
@@ -55,7 +54,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
55
54
|
{
|
|
56
55
|
rating: {
|
|
57
56
|
value: 5,
|
|
58
|
-
avatar: '
|
|
57
|
+
avatar: 'avatar-1.jpeg',
|
|
59
58
|
label: 'David Wilson',
|
|
60
59
|
},
|
|
61
60
|
heading: 'Best in Class',
|
|
@@ -64,7 +63,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
64
63
|
{
|
|
65
64
|
rating: {
|
|
66
65
|
value: 5,
|
|
67
|
-
avatar: '
|
|
66
|
+
avatar: 'avatar-2.jpeg',
|
|
68
67
|
label: 'Sarah Davis',
|
|
69
68
|
},
|
|
70
69
|
heading: 'Innovative Design',
|
|
@@ -73,7 +72,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
73
72
|
{
|
|
74
73
|
rating: {
|
|
75
74
|
value: 5,
|
|
76
|
-
avatar: '
|
|
75
|
+
avatar: 'avatar-3.jpeg',
|
|
77
76
|
label: 'Alex Taylor',
|
|
78
77
|
},
|
|
79
78
|
heading: 'Time-Saver',
|
|
@@ -82,7 +81,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
82
81
|
{
|
|
83
82
|
rating: {
|
|
84
83
|
value: 5,
|
|
85
|
-
avatar: '
|
|
84
|
+
avatar: 'avatar-4.jpeg',
|
|
86
85
|
label: 'Olivia Martinez',
|
|
87
86
|
},
|
|
88
87
|
heading: 'Reliable and Durable',
|
|
@@ -102,10 +101,10 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
102
101
|
value: 5,
|
|
103
102
|
label: 'Rated 5,0 out of 86 reviews',
|
|
104
103
|
avatars: [
|
|
105
|
-
'
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
104
|
+
'avatar-1.jpeg',
|
|
105
|
+
'avatar-2.jpeg',
|
|
106
|
+
'avatar-3.jpeg',
|
|
107
|
+
'avatar-4.jpeg',
|
|
109
108
|
],
|
|
110
109
|
}}
|
|
111
110
|
heading="What Our Customers Say"
|
|
@@ -220,28 +219,34 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
|
220
219
|
heading="Customer Testimonials"
|
|
221
220
|
text="See what our valued customers have to say about their experiences."
|
|
222
221
|
structure="grid"
|
|
223
|
-
frame="panel"
|
|
224
222
|
variant="primary"
|
|
225
223
|
cards={[
|
|
226
224
|
{
|
|
227
225
|
rating: 5,
|
|
228
226
|
heading: 'Life-Changing Product',
|
|
229
227
|
text: "This product has revolutionized my daily routine. I can't imagine life without it now!",
|
|
230
|
-
avatar: '
|
|
228
|
+
avatar: 'avatar-1.jpeg',
|
|
231
229
|
label: 'John Doe',
|
|
232
230
|
},
|
|
233
231
|
{
|
|
234
232
|
rating: 4,
|
|
235
233
|
heading: 'Great Value for Money',
|
|
236
234
|
text: 'Excellent quality at a reasonable price. Definitely worth every penny.',
|
|
237
|
-
avatar: '
|
|
235
|
+
avatar: 'avatar-2.jpeg',
|
|
238
236
|
label: 'Jane Smith',
|
|
239
237
|
},
|
|
240
238
|
{
|
|
241
239
|
rating: 5,
|
|
242
240
|
heading: 'Superb Customer Service',
|
|
243
241
|
text: 'The support team went above and beyond to help me. Truly impressive!',
|
|
244
|
-
avatar: '
|
|
242
|
+
avatar: 'avatar-3.jpeg',
|
|
243
|
+
label: 'Mike Johnson',
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
rating: 5,
|
|
247
|
+
heading: 'Superb Customer Service',
|
|
248
|
+
text: 'The support team went above and beyond to help me. Truly impressive!',
|
|
249
|
+
avatar: 'avatar-3.jpeg',
|
|
245
250
|
label: 'Mike Johnson',
|
|
246
251
|
},
|
|
247
252
|
]}
|
|
@@ -1,55 +1,51 @@
|
|
|
1
1
|
---
|
|
2
|
+
presets: [base]
|
|
3
|
+
|
|
2
4
|
seo:
|
|
3
5
|
title: Fulldev UI - Astro component and block library, open-source
|
|
4
6
|
description: Make websites rapidly with pre-built components and blocks.
|
|
5
|
-
image:
|
|
7
|
+
image: og-image.png
|
|
8
|
+
|
|
9
|
+
title: Home
|
|
6
10
|
|
|
7
11
|
sections:
|
|
8
|
-
|
|
9
|
-
_bookshop_name: Hero
|
|
10
|
-
color: brand
|
|
12
|
+
- component: Hero
|
|
11
13
|
badge:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
href: https://discord.gg/vXZqMbadm8
|
|
14
|
+
text: We added layouts, now you can build entire sites
|
|
15
|
+
href: /overview/installation/
|
|
15
16
|
heading: The Astro UI library to build content sites
|
|
16
|
-
text: Make websites with prebuilt components and
|
|
17
|
+
text: Make websites with prebuilt components, blocks and layouts
|
|
17
18
|
buttons:
|
|
18
19
|
- text: Get Started
|
|
19
|
-
href: /overview/installation
|
|
20
|
+
href: /overview/installation/
|
|
20
21
|
- text: GitHub
|
|
21
22
|
href: https://github.com/fulldotdev/ui
|
|
22
|
-
target: _blank
|
|
23
23
|
icon: brand-github
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
_bookshop_name: Content
|
|
24
|
+
- component: Article
|
|
25
|
+
- component: Content
|
|
27
26
|
color: brand
|
|
28
27
|
label: Blocks
|
|
29
28
|
heading: Use pre-built blocks with just props
|
|
30
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.
|
|
31
|
-
image:
|
|
32
|
-
reverse: odd
|
|
30
|
+
image: block-code.png
|
|
33
31
|
buttons:
|
|
34
32
|
- href: /blocks
|
|
35
33
|
icon: layout
|
|
36
34
|
text: View blocks
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
_bookshop_name: Content
|
|
36
|
+
- component: Content
|
|
40
37
|
color: brand
|
|
41
38
|
label: Components
|
|
42
39
|
heading: Or build your own, with easy to use components
|
|
43
40
|
text: our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
|
|
44
|
-
image:
|
|
41
|
+
image: component-code.png
|
|
45
42
|
reverse: odd
|
|
46
43
|
buttons:
|
|
47
44
|
- href: /base/badge
|
|
48
45
|
icon: code
|
|
49
46
|
text: View components
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
_bookshop_name: Cta
|
|
48
|
+
- component: Cta
|
|
53
49
|
size: lg
|
|
54
50
|
variant: primary
|
|
55
51
|
heading: Build content websites in a fraction of time
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
|
|
4
|
+
title: Layout
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
import Layout from 'fulldev-ui/layouts/Layout.astro?raw'
|
|
8
|
+
import { Code } from 'astro:components'
|
|
9
|
+
|
|
10
|
+
# Layout
|
|
11
|
+
|
|
12
|
+
The Layout component is used to wrap the content of a page. It provides a structured template for your website.
|
|
13
|
+
|
|
14
|
+
<Code code={Layout} lang="astro" />
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
|
|
4
|
+
title: DocsLayout
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
import Layout from 'fulldev-ui/layouts/DocsLayout.astro?raw'
|
|
8
|
+
import { Code } from 'astro:components'
|
|
9
|
+
|
|
10
|
+
# DocsLayout
|
|
11
|
+
|
|
12
|
+
The DocsLayout component is used to wrap the content of a page in a sidebar and a main content area and table of contents.
|
|
13
|
+
|
|
14
|
+
<Code code={Layout} lang="astro" />
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Components
|
|
7
|
+
|
|
8
|
+
Fulldev UI offers a collection of components that are styled with regular CSS, have cascading styles, and are easy to customize.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
To use a component, you need to import it from the `fulldev-ui` package.
|
|
13
|
+
|
|
14
|
+
```astro
|
|
15
|
+
---
|
|
16
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<Button text="Click me" />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```astro
|
|
23
|
+
---
|
|
24
|
+
import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
<Hero text="Props here" />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```astro
|
|
31
|
+
---
|
|
32
|
+
import Hero from 'fulldev-ui/blocks/Hero.astro'
|
|
33
|
+
import Layout from 'fulldev-ui/layouts/Layout.astro'
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
<Layout>
|
|
37
|
+
<Hero />
|
|
38
|
+
</Layout>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Slots
|
|
42
|
+
|
|
43
|
+
Even though we recommend using props to pass content into components, you can also use slots to inject content into a component.
|
|
44
|
+
|
|
45
|
+
```astro live
|
|
46
|
+
---
|
|
47
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
{/* Slots example */}
|
|
51
|
+
<Button>Click me</Button>
|
|
52
|
+
|
|
53
|
+
{/* Props example */}
|
|
54
|
+
<Button text="Click me" />
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Rendering
|
|
58
|
+
|
|
59
|
+
If no content passed to a component, it will NOT render anything. unless you pass an `if` prop.
|
|
60
|
+
|
|
61
|
+
```astro live
|
|
62
|
+
---
|
|
63
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
{/* This will not render anything */}
|
|
67
|
+
<Button />
|
|
68
|
+
|
|
69
|
+
{/* This will render a button */}
|
|
70
|
+
<Button if={true} />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Overriding Components
|
|
74
|
+
|
|
75
|
+
You can override components by creating a new component with the same name as one from the library in the **src/components** directory and adding your custom code. This also works for blocks and layouts.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Content Collections
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Content Collections
|
|
9
|
+
|
|
10
|
+
We utilize <Link href="https://docs.astro.build/docs/guides/content-collections/">Astro's Content Layer</Link> to create entire websites using just content files and our components.
|
|
11
|
+
|
|
12
|
+
## Starter Template
|
|
13
|
+
|
|
14
|
+
This is the recommended way to get started with our content layer integration. We've created a <Link href="https://github.com/fulldotdev/starter/tree/main">starter template</Link> with examples of everything you need to get started.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pnpm create astro@latest -- --template fulldotdev/starter
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Manual Setup
|
|
21
|
+
|
|
22
|
+
To get started with the manual setup, you need to install the <Link href="/overview/installation/">integration</Link> and add `injectRoutes: true` to your `astro.config.ts` file, see <Link href="#type-safe-frontmatter">frontmatter</Link> below for more information on how this generates a site using content files.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import { defineConfig } from 'astro/config'
|
|
26
|
+
import fulldev from 'fulldev-ui/integration'
|
|
27
|
+
|
|
28
|
+
// https://astro.build/config
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
integrations: [
|
|
31
|
+
fulldev({
|
|
32
|
+
// other options
|
|
33
|
+
injectRoutes: true,
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Type-safe frontmatter
|
|
40
|
+
|
|
41
|
+
Each file has a few frontmatter objects that are important to know about. Seo has priority over title and description, however title and description is used in multiple places like a card.
|
|
42
|
+
|
|
43
|
+
```yml
|
|
44
|
+
---
|
|
45
|
+
preset: [docs] # Applies the configuration from src/content/presets/docs.yml
|
|
46
|
+
component: DocsLayout
|
|
47
|
+
|
|
48
|
+
seo:
|
|
49
|
+
title: Page Title
|
|
50
|
+
description: This is my page description
|
|
51
|
+
image: /image.jpg # Open Graph Image
|
|
52
|
+
|
|
53
|
+
# Information on the page, this is used in places like card, sidebar, etc.
|
|
54
|
+
title: Page Title
|
|
55
|
+
description: This is my page description
|
|
56
|
+
|
|
57
|
+
sections: # Here you generate the page by adding a component and passing props
|
|
58
|
+
- component: Hero
|
|
59
|
+
heading: Page Title
|
|
60
|
+
text: This is my page description
|
|
61
|
+
buttons:
|
|
62
|
+
- text: Button
|
|
63
|
+
color: brand
|
|
64
|
+
href: /
|
|
65
|
+
- text: Button
|
|
66
|
+
href: /
|
|
67
|
+
---
|
|
68
|
+
# This is the prose, you can use markdown here
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
For all objects avaliable in the Content Layer, see the <Link href="https://ui.full.dev/schemas/page/">schemas</Link>.
|
|
72
|
+
|
|
73
|
+
### Presets
|
|
74
|
+
|
|
75
|
+
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.
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
import { defineConfig } from 'astro/config'
|
|
79
|
+
import fulldev from 'fulldev-ui/integration'
|
|
80
|
+
|
|
81
|
+
// https://astro.build/config
|
|
82
|
+
export default defineConfig({
|
|
83
|
+
integrations: [
|
|
84
|
+
fulldev({
|
|
85
|
+
// other options
|
|
86
|
+
basePreset: 'base', // Applies the configuration from src/content/presets/base.yml to every page
|
|
87
|
+
}),
|
|
88
|
+
],
|
|
89
|
+
})
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## i18n
|
|
93
|
+
|
|
94
|
+
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.
|
|
95
|
+
|
|
96
|
+
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.
|
|
97
|
+
|
|
98
|
+
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:
|
|
99
|
+
|
|
100
|
+
content/pages/index.md:
|
|
101
|
+
|
|
102
|
+
```md
|
|
103
|
+
---
|
|
104
|
+
sections:
|
|
105
|
+
- component: Hero
|
|
106
|
+
image: /image.webp
|
|
107
|
+
heading: Page Title
|
|
108
|
+
text: This is my page description
|
|
109
|
+
---
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
content/pages/nl/index.md:
|
|
113
|
+
|
|
114
|
+
```md
|
|
115
|
+
---
|
|
116
|
+
i18n: index
|
|
117
|
+
|
|
118
|
+
sections:
|
|
119
|
+
- component: Hero
|
|
120
|
+
heading: Page Title
|
|
121
|
+
text: This is my page description
|
|
122
|
+
---
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
These return the same results
|
|
126
|
+
|
|
127
|
+
### Example structure
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
.
|
|
131
|
+
├── src/
|
|
132
|
+
│ ├── content/
|
|
133
|
+
│ │ ├── pages/
|
|
134
|
+
│ │ │ ├── index.md
|
|
135
|
+
│ │ │ ├── nl/
|
|
136
|
+
│ │ │ │ └── index.md
|
|
137
|
+
│ │ │ └── de/
|
|
138
|
+
│ │ │ │ └── index.md
|
|
139
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Frameworks
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Frameworks
|
|
@@ -22,8 +22,8 @@ This means you can apply Fulldev UI styles to any framework component as follows
|
|
|
22
22
|
import Button from 'fulldev-ui/components/Button.astro'
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
<a class="button variant-primary contrast
|
|
26
|
-
<Button contrast>
|
|
25
|
+
<a class="button variant-primary contrast">Button</a>
|
|
26
|
+
<Button contrast>Button</Button>
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## CSS frameworks
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Installation
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
7
|
|
|
8
8
|
# Installation
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
You can add fulldev-ui to your project, or use the starter template.
|
|
11
|
+
|
|
12
|
+
## Add to existing project
|
|
13
|
+
|
|
14
|
+
### Automatic setup
|
|
15
|
+
|
|
16
|
+
Use the astro add command to automatically install the dependencies and add the integration.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx astro add fulldev-ui
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Manual installation
|
|
23
|
+
|
|
24
|
+
Install fulldev-ui with your favorite package manager.
|
|
11
25
|
|
|
12
26
|
```bash
|
|
13
27
|
pnpm i fulldev-ui
|
|
@@ -18,3 +32,22 @@ yarn add fulldev-ui
|
|
|
18
32
|
# or
|
|
19
33
|
npm i fulldev-ui
|
|
20
34
|
```
|
|
35
|
+
|
|
36
|
+
Then setup the integration in your `astro.config.ts` file.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { defineConfig } from 'astro/config'
|
|
40
|
+
import fulldev from 'fulldev-ui/integration'
|
|
41
|
+
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
integrations: [fulldev()],
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Using the starter template
|
|
48
|
+
|
|
49
|
+
The easiest way to get started is to use the [starter template](https://github.com/fulldotdev/starter).
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pnpm create astro@latest -- --template fulldotdev/starter
|
|
53
|
+
```
|