fulldev-ui 0.4.29 → 0.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.astro/assets.mjs +1 -0
- package/.astro/astro/content.d.ts +547 -0
- package/.astro/collections/blocks.schema.json +851 -0
- package/.astro/collections/collections.json +63 -0
- package/.astro/collections/images.schema.json +22 -0
- package/.astro/collections/layouts.schema.json +826 -0
- package/.astro/collections/pages.schema.json +568 -0
- package/.astro/collections/presets.schema.json +489 -0
- package/.astro/collections/records.schema.json +822 -0
- package/.astro/collections/settings.schema.json +822 -0
- package/.astro/data-store.json +1 -0
- package/.astro/modules.mjs +1 -0
- package/.astro/settings.json +5 -0
- package/.astro/types.d.ts +2 -0
- package/CONTRIBUTING.md +2 -2
- package/astro.config.ts +20 -4
- package/package.json +26 -16
- 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 +21 -0
- package/src/blocks/Banner.astro +47 -0
- package/src/blocks/Colleagues.astro +2 -1
- package/src/blocks/Contact.astro +84 -99
- package/src/blocks/Cta.astro +2 -1
- package/src/blocks/Hero.astro +1 -2
- package/src/blocks/Intro.astro +1 -1
- package/src/blocks/Jobs.astro +1 -1
- package/src/blocks/Prices.astro +1 -1
- package/src/blocks/Product.astro +23 -10
- 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 +50 -0
- package/src/components/Button.astro +65 -45
- package/src/components/Buttons.astro +49 -0
- package/src/components/Card.astro +94 -177
- package/src/components/Cards.astro +135 -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 +16 -22
- package/src/components/Element.astro +58 -0
- package/src/components/Footer.astro +139 -93
- package/src/components/Head.astro +7 -45
- package/src/components/Header.astro +78 -160
- package/src/components/Heading.astro +18 -26
- package/src/components/Icon.astro +9 -9
- package/src/components/Image.astro +43 -152
- package/src/components/Input.astro +10 -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/Price.astro +38 -0
- package/src/components/Rating.astro +29 -25
- package/src/components/Search.astro +3 -3
- package/src/components/Section.astro +196 -236
- package/src/components/Select.astro +16 -34
- package/src/components/Sidebar.astro +112 -46
- package/src/components/Social.astro +28 -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 +38 -0
- package/src/components/Toc.astro +98 -41
- package/src/components/Writeup.astro +90 -0
- package/src/components/docs/PropsTable.astro +229 -56
- package/src/components/experimental/Form.astro +10 -17
- package/src/components/experimental/Logo.astro +26 -9
- package/src/components/experimental/Prose.astro +9 -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 -12
- package/src/content/pages/base/table.mdx +1 -28
- package/src/content/pages/base/textarea.mdx +1 -11
- 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 +1 -2
- 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 +19 -20
- package/src/content/pages/layouts/docslayout.mdx +5 -0
- package/src/content/pages/layouts/layout.mdx +21 -0
- package/src/content/pages/layouts/pagelayout.mdx +21 -0
- package/src/content/pages/overview/components.mdx +70 -0
- package/src/content/pages/overview/content-layer.mdx +128 -0
- package/src/content/pages/overview/{theming.mdx → customization.mdx} +6 -6
- package/src/content/pages/overview/frameworks.mdx +4 -4
- package/src/content/pages/overview/installation.mdx +37 -3
- package/src/content/pages/overview/introduction.mdx +6 -2
- package/src/content/pages/schemas/page.mdx +11 -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/presets/base.yml +70 -0
- package/src/content/presets/blocks.yml +4 -0
- package/src/content/presets/docs.yml +65 -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/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 +49 -7
- package/src/layouts/BlockLayout.astro +10 -15
- package/src/layouts/ContactLayout.astro +21 -0
- package/src/layouts/ContentLayout.astro +16 -0
- package/src/layouts/DocsLayout.astro +85 -0
- package/src/layouts/Layout.astro +111 -133
- package/src/layouts/OverviewLayout.astro +22 -32
- package/src/layouts/PageLayout.astro +7 -24
- package/src/layouts/PostLayout.astro +8 -19
- package/src/layouts/ProductLayout.astro +9 -22
- 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 +24 -0
- package/src/schemas/components/header.ts +10 -0
- package/src/schemas/components/heading.ts +3 -0
- package/src/schemas/components/icon.ts +3 -0
- package/src/schemas/components/image.ts +18 -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/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/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/writeup.ts +20 -0
- package/src/schemas/imageSchema.ts +12 -0
- package/src/schemas/pageSchema.ts +63 -0
- package/src/schemas/presetSchema.ts +29 -0
- package/src/schemas/utils/categories.ts +3 -0
- package/src/schemas/utils/component.ts +17 -0
- package/src/schemas/utils/navigation.ts +53 -0
- package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
- package/src/types/global-props.d.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/getCategoryPages.ts +11 -0
- package/src/utils/getChildPages.ts +16 -0
- package/src/utils/getSiblingPages.ts +14 -0
- package/tsconfig.json +1 -2
- 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/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/base.yml +0 -55
- 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/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
|
@@ -0,0 +1,70 @@
|
|
|
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} />
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Content Layer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Content Layer
|
|
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
|
+
## Manual Setup
|
|
17
|
+
|
|
18
|
+
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="#folder-structure">file structure</Link> below for more information on how this generates a site using content files.
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { defineConfig } from 'astro/config'
|
|
22
|
+
import fulldev from 'fulldev-ui/integration'
|
|
23
|
+
|
|
24
|
+
// https://astro.build/config
|
|
25
|
+
export default defineConfig({
|
|
26
|
+
integrations: [
|
|
27
|
+
fulldev({
|
|
28
|
+
// other options
|
|
29
|
+
injectRoutes: true,
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Folder Structure
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
.
|
|
39
|
+
├── src/
|
|
40
|
+
│ ├── blocks/
|
|
41
|
+
│ │ └── ...
|
|
42
|
+
│ ├── components/
|
|
43
|
+
│ │ └── ...
|
|
44
|
+
│ ├── layouts/
|
|
45
|
+
│ │ └── ...
|
|
46
|
+
│ ├── assets/
|
|
47
|
+
│ │ └── ...
|
|
48
|
+
│ ├── content/
|
|
49
|
+
│ │ ├── pages/
|
|
50
|
+
│ │ │ └── ...
|
|
51
|
+
│ │ ├── records/
|
|
52
|
+
│ │ │ └── ...
|
|
53
|
+
│ │ │ └── ...
|
|
54
|
+
│ │ ├── presets/
|
|
55
|
+
│ │ │ ├── base.yml
|
|
56
|
+
│ │ │ └── ...
|
|
57
|
+
│ │ └── ...
|
|
58
|
+
│ ├── css/
|
|
59
|
+
│ │ ├── custom.css
|
|
60
|
+
│ │ └── ...
|
|
61
|
+
├── public/
|
|
62
|
+
│ └── ...
|
|
63
|
+
└──
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- **/src/**: The main source directory containing all the core files of the project.
|
|
67
|
+
- **/blocks/**: Contains reusable block components that can be composed to build pages (Custom or overwrites existing fulldev-ui blocks)
|
|
68
|
+
- **/components/**: Houses individual UI components used throughout the project (Custom or overwrites existing fulldev-ui components)
|
|
69
|
+
- **/layouts/**: Contains layout components used to structure pages (Custom or overwrites existing fulldev-ui layouts)
|
|
70
|
+
- **/assets/**: Contains assets like images, fonts, etc.
|
|
71
|
+
- **/content/**: Stores content-related files:
|
|
72
|
+
- **pages/**: Contains markdown or MDX files for individual pages.
|
|
73
|
+
- **records/**: Contains markdown or MDX files for content collections. Nested in directories by collection name.
|
|
74
|
+
- **/presets/**: Includes configuration files for various settings like the sidebar.
|
|
75
|
+
- **/css/**: Contains global CSS files and styles.
|
|
76
|
+
|
|
77
|
+
### File Structure
|
|
78
|
+
|
|
79
|
+
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.
|
|
80
|
+
|
|
81
|
+
```md
|
|
82
|
+
---
|
|
83
|
+
seo:
|
|
84
|
+
title: Page Title
|
|
85
|
+
description: This is my page description
|
|
86
|
+
image: /image.jpg # Open Graph Image
|
|
87
|
+
|
|
88
|
+
title: Page Title
|
|
89
|
+
description: This is my page description
|
|
90
|
+
---
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For all objects avaliable in the Content Layer, see the <Link href="/schemas/page/">schemas</Link>.
|
|
94
|
+
|
|
95
|
+
### Image Alt collection
|
|
96
|
+
|
|
97
|
+
To create yml records for images, you can simply add `generateImageEntries: true` to the integration setup. This will generate a yml file in the **src/assets/** directory with the image alt text pre set to the unslugged filename which can be customized. If turned on the Image component will automatically use these records for the alt text of local images.
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
import { defineConfig } from 'astro/config'
|
|
101
|
+
import fulldev from 'fulldev-ui/integration'
|
|
102
|
+
|
|
103
|
+
// https://astro.build/config
|
|
104
|
+
export default defineConfig({
|
|
105
|
+
integrations: [
|
|
106
|
+
fulldev({
|
|
107
|
+
// other options
|
|
108
|
+
generateImageEntries: true,
|
|
109
|
+
}),
|
|
110
|
+
],
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## i18n
|
|
115
|
+
|
|
116
|
+
Getting started with i18n is easy, you can easily add additional languages by creating a new folder in the **content/pages** directory and adding your content files in the new language.
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
.
|
|
120
|
+
├── src/
|
|
121
|
+
│ ├── content/
|
|
122
|
+
│ │ ├── pages/
|
|
123
|
+
│ │ │ ├── index.md
|
|
124
|
+
│ │ │ ├── nl/
|
|
125
|
+
│ │ │ │ └── index.md
|
|
126
|
+
│ │ │ └── de/
|
|
127
|
+
│ │ │ │ └── index.md
|
|
128
|
+
```
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Customization
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Customization
|
|
9
9
|
|
|
10
10
|
## Colors
|
|
11
11
|
|
|
12
|
-
The color theme is inspired by
|
|
12
|
+
The color theme is inspired by and compatible with <Link href="https://www.radix-ui.com/colors">Radix Colors.</Link>
|
|
13
13
|
|
|
14
14
|
### Automatic setup
|
|
15
15
|
|
|
16
|
-
With the fulldev-ui integration you can easily set a theme and generate a radix color palette. See the <Link href="/overview/
|
|
16
|
+
With the fulldev-ui integration you can easily set a theme and generate a radix color palette. See the <Link href="/overview/installation/">installation page</Link> to get started with the integration.
|
|
17
17
|
|
|
18
18
|
### Manual setup
|
|
19
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
|
|
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 explanation see <Link href="https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale">this page</Link>.
|
|
21
21
|
|
|
22
22
|
```css
|
|
23
23
|
:root,
|
|
@@ -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,13 @@
|
|
|
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
|
-
Install fulldev-ui with your favorite package manager and you are ready to go.
|
|
10
|
+
Install fulldev-ui with your favorite package manager and you are ready to go.
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
pnpm i fulldev-ui
|
|
@@ -18,3 +18,37 @@ yarn add fulldev-ui
|
|
|
18
18
|
# or
|
|
19
19
|
npm i fulldev-ui
|
|
20
20
|
```
|
|
21
|
+
|
|
22
|
+
## Integration
|
|
23
|
+
|
|
24
|
+
To install the integration, import it in your `astro.config.ts` file.
|
|
25
|
+
You can optionally add a custom css file and define custom colors and other theming options, see the <Link href="/overview/customization/">customization documentation</Link> for more information.
|
|
26
|
+
|
|
27
|
+
To get started with the content layer, see the <Link href="/overview/content-layer/#manual-setup">content layer documentation</Link>.
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { defineConfig } from 'astro/config'
|
|
31
|
+
import fulldev from 'fulldev-ui/integration'
|
|
32
|
+
|
|
33
|
+
// https://astro.build/config
|
|
34
|
+
export default defineConfig({
|
|
35
|
+
integrations: [
|
|
36
|
+
fulldev({
|
|
37
|
+
css: '/src/css/custom.css',
|
|
38
|
+
colors: {
|
|
39
|
+
theme: 'dark',
|
|
40
|
+
dark: {
|
|
41
|
+
background: '#111110',
|
|
42
|
+
base: '#6F6D66',
|
|
43
|
+
brand: '#F50',
|
|
44
|
+
},
|
|
45
|
+
light: {
|
|
46
|
+
background: '#EEEEEC',
|
|
47
|
+
base: '#6F6D66',
|
|
48
|
+
brand: '#F50',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
}),
|
|
52
|
+
],
|
|
53
|
+
})
|
|
54
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Introduction
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Introduction
|
|
@@ -18,3 +18,7 @@ Want to use Tailwind, or something else? You can overwrite all styles. Need an i
|
|
|
18
18
|
##### Automated colors, spacing and sizes
|
|
19
19
|
|
|
20
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.
|
|
21
|
+
|
|
22
|
+
##### Content layer
|
|
23
|
+
|
|
24
|
+
Build entire websites using just content files like Markdown using our components, blocks and layouts.
|
|
@@ -0,0 +1,11 @@
|
|
|
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'
|
|
@@ -1,40 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
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
|
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
seo:
|
|
2
|
+
image: /images/og-image.png
|
|
3
|
+
|
|
4
|
+
code:
|
|
5
|
+
head: |
|
|
6
|
+
<script is:inline>
|
|
7
|
+
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
|
8
|
+
posthog.init('phc_mVacbe8Xydu0UZlh4bNw5EGisvzyRcpqXEEuEEp5lOY',{api_host:'https://eu.i.posthog.com', person_profiles: 'identified_only' // or 'always' to create profiles for anonymous users as well
|
|
9
|
+
})
|
|
10
|
+
</script>
|
|
11
|
+
sidebar: true
|
|
12
|
+
toc: false
|
|
13
|
+
themeselect: true
|
|
14
|
+
|
|
15
|
+
header:
|
|
16
|
+
logo: Fulldev UI
|
|
17
|
+
buttons:
|
|
18
|
+
- text: Docs
|
|
19
|
+
href: /overview/introduction
|
|
20
|
+
- text: Components
|
|
21
|
+
href: /typography/heading
|
|
22
|
+
- text: Blocks
|
|
23
|
+
href: /blocks/banner
|
|
24
|
+
- showcase
|
|
25
|
+
- href: https://github.com/fulldotdev/ui
|
|
26
|
+
target: _blank
|
|
27
|
+
icon: brand-github
|
|
28
|
+
variant: secondary
|
|
29
|
+
- href: https://discord.gg/vXZqMbadm8
|
|
30
|
+
target: _blank
|
|
31
|
+
icon: brand-discord
|
|
32
|
+
variant: secondary
|
|
33
|
+
# footer:
|
|
34
|
+
# logo: Fulldev UI
|
|
35
|
+
# text: The Astro UI library to build content sites. Make websites with prebuilt components, blocks and layouts.
|
|
36
|
+
# columns:
|
|
37
|
+
# - heading: Pages
|
|
38
|
+
# buttons:
|
|
39
|
+
# - text: Docs
|
|
40
|
+
# href: /overview/introduction
|
|
41
|
+
# - text: Components
|
|
42
|
+
# href: /typography/heading
|
|
43
|
+
# - blocks
|
|
44
|
+
# - showcase
|
|
45
|
+
# socials:
|
|
46
|
+
# - https://www.linkedin.com/in/silveltman/
|
|
47
|
+
# - https://x.com/silveltm
|
|
48
|
+
# - https://github.com/fulldotdev/ui
|
|
49
|
+
# channels:
|
|
50
|
+
# - heading: Phone
|
|
51
|
+
# text: 123-456-7890
|
|
52
|
+
# icon: phone
|
|
53
|
+
# href: tel:123-456-7890
|
|
54
|
+
# - heading: Email
|
|
55
|
+
# text: contact@example.com
|
|
56
|
+
# icon: mail
|
|
57
|
+
# href: mailto:contact@example.com
|
|
58
|
+
# - heading: Address
|
|
59
|
+
# text: 1234 Main St, Springfield, IL 62701
|
|
60
|
+
# icon: map-pin
|
|
61
|
+
# hours:
|
|
62
|
+
# heading: Openingstijden
|
|
63
|
+
# days:
|
|
64
|
+
# ma.: 09:00 - 17:00
|
|
65
|
+
# di.: 09:00 - 17:00
|
|
66
|
+
# wo.: 09:00 - 17:00
|
|
67
|
+
# do.: 09:00 - 17:00
|
|
68
|
+
# vr.: 09:00 - 17:00
|
|
69
|
+
# za.: 09:00 - 17:00
|
|
70
|
+
# zo.: 09:00 - 17:00
|