fulldev-ui 0.5.0-beta.9 → 0.6.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/.env.example +3 -0
- package/.prettierrc.yaml +1 -0
- package/astro.config.ts +6 -32
- package/package.json +21 -30
- package/pnpm-lock.yaml +696 -2176
- 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 +6 -19
- package/src/blocks/Colleagues.astro +0 -1
- package/src/blocks/Contact.astro +75 -74
- package/src/blocks/Content.astro +124 -6
- package/src/blocks/Cta.astro +0 -2
- package/src/blocks/Excerpt.astro +0 -2
- package/src/blocks/Footer.astro +107 -3
- package/src/blocks/Hero.astro +238 -9
- package/src/blocks/Intro.astro +89 -11
- package/src/blocks/Prices.astro +1 -1
- package/src/blocks/Product.astro +49 -70
- package/src/blocks/Products.astro +114 -5
- package/src/blocks/Reviews.astro +0 -1
- package/src/blocks/_Contact.astro +112 -0
- package/src/components/Avatar.astro +28 -9
- package/src/components/Avatars.astro +36 -0
- package/src/components/Badge.astro +73 -26
- package/src/components/Badges.astro +16 -23
- package/src/components/Breadcrumb.astro +58 -0
- package/src/components/Button.astro +56 -112
- package/src/components/Buttons.astro +23 -13
- package/src/components/Card.astro +129 -115
- package/src/components/Cards.astro +33 -35
- package/src/components/Carousel.astro +106 -0
- package/src/components/Cart.astro +1 -1
- package/src/components/CartForm.astro +10 -10
- package/src/components/CartList.astro +11 -28
- package/src/components/CartSummary.astro +11 -14
- package/src/components/Channel.astro +40 -22
- package/src/components/Channels.astro +20 -6
- package/src/components/Checkbox.astro +52 -27
- package/src/components/Code.astro +52 -0
- package/src/components/Dialog.astro +2 -2
- package/src/components/Drawer.astro +34 -64
- package/src/components/Element.astro +16 -8
- package/src/components/Form.astro +14 -13
- package/src/components/Gallery.astro +172 -0
- package/src/components/Head.astro +52 -1
- package/src/components/Header.astro +73 -83
- package/src/components/Heading.astro +74 -30
- package/src/components/Icon.astro +25 -30
- package/src/components/Image.astro +23 -38
- package/src/components/Input.astro +59 -53
- package/src/components/Label.astro +20 -15
- package/src/components/Lead.astro +46 -0
- package/src/components/Link.astro +51 -26
- 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 +45 -0
- package/src/components/Menu.astro +21 -17
- package/src/components/Paragraph.astro +38 -0
- package/src/components/Price.astro +1 -1
- package/src/components/Prose.astro +169 -0
- package/src/components/Rating.astro +50 -38
- package/src/components/Search.astro +1 -1
- package/src/components/Section.astro +196 -158
- package/src/components/Select.astro +44 -55
- package/src/components/Sidebar.astro +31 -38
- package/src/components/Social.astro +3 -8
- 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 +40 -12
- package/src/components/Text.astro +4 -4
- package/src/components/Textarea.astro +40 -50
- package/src/components/Themer.astro +76 -0
- package/src/components/Toc.astro +24 -32
- package/src/components/Writeup.astro +26 -8
- package/src/components/docs/PropsTable.astro +38 -264
- package/src/components/experimental/Window.astro +5 -57
- package/src/components/sections.astro +1 -1
- package/src/content/pages/blocks/_categories.mdx +1 -1
- package/src/content/pages/blocks/_footer.mdx +1 -1
- package/src/content/pages/blocks/_header.mdx +1 -3
- package/src/content/pages/blocks/_jobs.mdx +1 -1
- package/src/content/pages/blocks/_prices.mdx +1 -1
- package/src/content/pages/blocks/_product.mdx +1 -1
- package/src/content/pages/blocks/_products.mdx +1 -1
- package/src/content/pages/blocks/_stats.mdx +1 -1
- package/src/content/pages/blocks/banner.mdx +1 -1
- package/src/content/pages/blocks/colleagues.mdx +1 -2
- package/src/content/pages/blocks/contact.mdx +1 -1
- package/src/content/pages/blocks/content.mdx +1 -5
- package/src/content/pages/blocks/cta.mdx +1 -9
- package/src/content/pages/blocks/features.mdx +1 -4
- package/src/content/pages/blocks/hero.mdx +1 -4
- package/src/content/pages/blocks/intro.mdx +1 -4
- package/src/content/pages/blocks/posts.mdx +1 -1
- package/src/content/pages/blocks/reviews.mdx +1 -2
- 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 +100 -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} +1 -3
- package/src/content/pages/{base → docs/components}/_switch.mdx +2 -2
- package/src/content/pages/{typography → docs/components}/_tagline.mdx +2 -2
- package/src/content/pages/docs/components/_toggle.mdx +31 -0
- package/src/content/pages/docs/components/avatar.mdx +35 -0
- package/src/content/pages/{base → docs/components}/badge.mdx +27 -8
- package/src/content/pages/docs/components/badges.mdx +47 -0
- package/src/content/pages/{base → docs/components}/button.mdx +29 -10
- package/src/content/pages/docs/components/buttons.mdx +52 -0
- package/src/content/pages/docs/components/channel.mdx +92 -0
- package/src/content/pages/docs/components/channels.mdx +90 -0
- package/src/content/pages/{base → docs/components}/checkbox.mdx +10 -17
- package/src/content/pages/docs/components/code.mdx +46 -0
- package/src/content/pages/docs/components/heading.mdx +60 -0
- package/src/content/pages/docs/components/icon.mdx +49 -0
- package/src/content/pages/docs/components/image.mdx +26 -0
- package/src/content/pages/docs/components/input.mdx +41 -0
- package/src/content/pages/{typography → docs/components}/label.mdx +8 -4
- package/src/content/pages/docs/components/lead.mdx +51 -0
- package/src/content/pages/{typography → docs/components}/link.mdx +23 -8
- package/src/content/pages/docs/components/links.mdx +100 -0
- package/src/content/pages/docs/components/list.mdx +45 -0
- package/src/content/pages/docs/components/logo.mdx +37 -0
- package/src/content/pages/docs/components/menu.mdx +90 -0
- package/src/content/pages/docs/components/paragraph.mdx +51 -0
- package/src/content/pages/docs/components/prose.mdx +37 -0
- package/src/content/pages/docs/components/rating.mdx +77 -0
- package/src/content/pages/{base → docs/components}/section.mdx +1 -1
- package/src/content/pages/{base → docs/components}/select.mdx +0 -9
- package/src/content/pages/docs/components/social.mdx +95 -0
- package/src/content/pages/docs/components/socials.mdx +103 -0
- package/src/content/pages/docs/components/switch.mdx +35 -0
- package/src/content/pages/{base → docs/components}/table.mdx +0 -2
- package/src/content/pages/docs/components/tagline.mdx +47 -0
- package/src/content/pages/docs/components/textarea.mdx +35 -0
- package/src/content/pages/docs/components/themer.mdx +50 -0
- package/src/content/pages/docs/components.mdx +40 -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 +23 -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 +11 -9
- package/src/content/pages/showcase.mdx +4 -2
- package/src/content/presets/base.yml +80 -63
- package/src/content/presets/docs.yml +2 -2
- 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 +93 -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 +71 -144
- package/src/layouts/CategoryLayout.astro +135 -0
- package/src/layouts/Layout.astro +62 -117
- package/src/layouts/PageLayout.astro +26 -0
- package/src/layouts/PostLayout.astro +13 -8
- package/src/layouts/ProductLayout.astro +94 -10
- package/src/pages/[...page].astro +14 -22
- package/src/pages/test.astro +20 -0
- package/src/schemas/components/button.ts +21 -13
- package/src/schemas/components/card.ts +36 -18
- package/src/schemas/components/footer.ts +2 -10
- package/src/schemas/components/global.ts +16 -0
- package/src/schemas/components/header.ts +8 -0
- package/src/schemas/components/image.ts +8 -3
- package/src/schemas/components/link.ts +16 -0
- package/src/schemas/components/links.ts +4 -0
- package/src/schemas/components/menu.ts +2 -0
- package/src/schemas/components/sidebar.ts +2 -2
- package/src/schemas/components/subheader.ts +9 -0
- package/src/schemas/components/themer.ts +3 -0
- package/src/schemas/pageSchema.ts +14 -21
- package/src/utils/cart.ts +1 -10
- package/src/utils/getDeepReferenceChildren.ts +14 -0
- package/src/utils/getReferenceChildren.ts +1 -1
- package/src/utils/setTheme.ts +18 -0
- package/src/utils/slugify.ts +6 -0
- package/tailwind.config.ts +67 -0
- package/src/blocks/Article.astro +0 -40
- package/src/components/Footer.astro +0 -193
- package/src/components/ThemeSelect.astro +0 -41
- 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/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/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/OverviewLayout.astro +0 -42
- /package/src/content/pages/{base → docs/components}/_dialog.mdx +0 -0
- /package/src/content/pages/{base → docs/components}/_drawer.mdx +0 -0
- /package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +0 -0
- /package/src/schemas/utils/{parents.ts → categories.ts} +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Generating Pages
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Generating Pages
|
|
9
|
+
|
|
10
|
+
With our integration, you can generate pages using content files with type-safe frontmatter, minimal configuration, and an easy-to-understand project structure.
|
|
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. This instantly gives you access to generating pages, using presets, internationalization and more without any additional setup.
|
|
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
|
+
`injectRoutes` reads your content files and generates routes for them in the generated site. Supporting file types like markdown and MDX.
|
|
40
|
+
|
|
41
|
+
## Project Structure
|
|
42
|
+
|
|
43
|
+
To start with, your project structure should look like this:
|
|
44
|
+
|
|
45
|
+
```md
|
|
46
|
+
.
|
|
47
|
+
├── src/
|
|
48
|
+
│ ├── blocks/
|
|
49
|
+
│ │ └── ...
|
|
50
|
+
│ ├── components/
|
|
51
|
+
│ │ └── ...
|
|
52
|
+
│ ├── layouts/
|
|
53
|
+
│ │ └── ...
|
|
54
|
+
│ ├── images/
|
|
55
|
+
│ │ └── ...
|
|
56
|
+
│ ├── content/
|
|
57
|
+
│ │ ├── pages/
|
|
58
|
+
│ │ │ └── ...
|
|
59
|
+
│ │ ├── presets/
|
|
60
|
+
│ │ │ ├── base.yml
|
|
61
|
+
│ │ │ └── ...
|
|
62
|
+
│ │ └── ...
|
|
63
|
+
│ ├── css/
|
|
64
|
+
│ │ ├── custom.css
|
|
65
|
+
│ │ └── ...
|
|
66
|
+
├── public/
|
|
67
|
+
│ └── ...
|
|
68
|
+
└──
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Creating a page
|
|
72
|
+
|
|
73
|
+
Creating a page is as simple as creating a new file in the **src/content/pages** directory.
|
|
74
|
+
|
|
75
|
+
For example,
|
|
76
|
+
|
|
77
|
+
- **src/content/pages/index.mdx** will be the root of your site.
|
|
78
|
+
- **src/content/pages/about.mdx** will appear at /about.
|
|
79
|
+
- **src/content/pages/team/first-name.mdx** will appear at /team/first-name.
|
|
80
|
+
|
|
81
|
+
### Using presets
|
|
82
|
+
|
|
83
|
+
Presets are a way to apply a set of configurations to a page. This can be apply navigation settings, seo and more.
|
|
84
|
+
|
|
85
|
+
To learn more about presets, see the <Link href="/guides/using-presets/">using presets</Link> guide.
|
|
86
|
+
|
|
87
|
+
### Using layouts
|
|
88
|
+
|
|
89
|
+
Layouts are a way to apply styles to a page. Used for having multiple layouts like a blog layout, documentation layout, etc.
|
|
90
|
+
|
|
91
|
+
To learn more about layouts, see the <Link href="/guides/using-layouts/">using layouts</Link> guide.
|
|
92
|
+
|
|
93
|
+
### Frontmatter
|
|
94
|
+
|
|
95
|
+
Each file has a few frontmatter objects that are important to know about. The frontmatter is fully type-safe, so you will know if you use an unavailable option or mistype something. SEO has priority over title and description, however title and description are used in multiple places like cards so they remain important.
|
|
96
|
+
|
|
97
|
+
```yml
|
|
98
|
+
---
|
|
99
|
+
preset: [docs]
|
|
100
|
+
component: DocsLayout
|
|
101
|
+
|
|
102
|
+
seo:
|
|
103
|
+
title: Page Title
|
|
104
|
+
description: This is my page description
|
|
105
|
+
image: /image.jpg # Open Graph Image
|
|
106
|
+
|
|
107
|
+
# Information on the page, this is used in places like card, sidebar, etc.
|
|
108
|
+
title: Page Title
|
|
109
|
+
description: This is my page description
|
|
110
|
+
|
|
111
|
+
sections: # Here you generate the page by adding a component and passing props
|
|
112
|
+
- component: Hero
|
|
113
|
+
heading: Page Title
|
|
114
|
+
text: This is my page description
|
|
115
|
+
buttons:
|
|
116
|
+
- text: Button
|
|
117
|
+
color: brand
|
|
118
|
+
href: /
|
|
119
|
+
- text: Button
|
|
120
|
+
href: /
|
|
121
|
+
---
|
|
122
|
+
# This is the prose, you can use markdown here, typically used for blogs, docs, etc.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
For all objects avaliable in the frontmatter, see the <Link href="https://ui.full.dev/content-collections/pages/">pages collection</Link>.
|
|
126
|
+
|
|
127
|
+
## Using custom components
|
|
128
|
+
|
|
129
|
+
You can use custom components simply creating them in the **src/components**, **src/blocks** or **src/layouts** directory. You can then use those in the component property of the frontmatter. If you want to override a component from the library, see the [overriding components](/guides/overriding-components/) guide.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Introduction
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Introduction
|
|
7
|
+
|
|
8
|
+
Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.
|
|
9
|
+
|
|
10
|
+
## Why we built it
|
|
11
|
+
|
|
12
|
+
After repeatedly encountering the same challenges in [our company's](https://full.dev) client projects, we decided to build this library. After successfully using it in production websites, we decided to open-source it to help others facing similar problems.
|
|
13
|
+
|
|
14
|
+
## What makes it special
|
|
15
|
+
|
|
16
|
+
- Built entirely with `.astro` components
|
|
17
|
+
- Outputs vanilla CSS, html and minimal JavaScript
|
|
18
|
+
- Compatible with all JS frameworks
|
|
19
|
+
- Compatible with Tailwind and Shadcn/ui
|
|
20
|
+
- Integrates with [content collections](https://docs.astro.build/en/guides/content-collections/)
|
|
21
|
+
- Blocks included, like Hero, CTA and Features
|
|
22
|
+
- Automatically generated pages
|
|
23
|
+
- And more...
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Installation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Installation
|
|
9
|
+
|
|
10
|
+
How to install dependencies and setup the integration.
|
|
11
|
+
|
|
12
|
+
## Add to existing project
|
|
13
|
+
|
|
14
|
+
If you don't have an existing project, you can create a new one using the [starter template](https://github.com/fulldotdev/starter).
|
|
15
|
+
|
|
16
|
+
### Automatic setup
|
|
17
|
+
|
|
18
|
+
Run the following command to automatically install the dependencies and add the integration.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx astro add fulldev-ui
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Manual setup
|
|
25
|
+
|
|
26
|
+
Run the following command to add fulldev-ui to your dependencies.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm i fulldev-ui
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Add the integration to your `astro.config.ts` file.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
// astro.config.ts
|
|
36
|
+
import { defineConfig } from 'astro/config'
|
|
37
|
+
import fulldev from 'fulldev-ui/integration'
|
|
38
|
+
|
|
39
|
+
export default defineConfig({
|
|
40
|
+
integrations: [fulldev()],
|
|
41
|
+
})
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Create new project
|
|
45
|
+
|
|
46
|
+
Run the following command to setup a new project from the [starter template](https://github.com/fulldotdev/starter).
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx astro create --template fulldev-ui
|
|
50
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
presets: [docs]
|
|
3
|
+
title: Layouts
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Layouts
|
|
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
|
+
```
|
|
@@ -11,22 +11,24 @@ title: Home
|
|
|
11
11
|
sections:
|
|
12
12
|
- component: Hero
|
|
13
13
|
badge:
|
|
14
|
-
text:
|
|
14
|
+
text: 'Introducing v0.5: page building & generation'
|
|
15
15
|
href: /overview/installation/
|
|
16
|
-
heading:
|
|
17
|
-
|
|
16
|
+
heading: Build complete websites with this Astro UI library
|
|
17
|
+
# heading: The Astro UI library to build complete websites
|
|
18
|
+
lead: 'Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.'
|
|
18
19
|
buttons:
|
|
19
20
|
- text: Get Started
|
|
20
|
-
href: /
|
|
21
|
+
href: /docs/
|
|
21
22
|
- text: GitHub
|
|
22
23
|
href: https://github.com/fulldotdev/ui
|
|
23
24
|
icon: brand-github
|
|
24
|
-
|
|
25
|
+
image: block-code.png
|
|
26
|
+
|
|
25
27
|
- component: Content
|
|
26
28
|
color: brand
|
|
27
29
|
label: Blocks
|
|
28
30
|
heading: Use pre-built blocks with just props
|
|
29
|
-
|
|
31
|
+
paragraph: We created a great gallery of blocks to build content sites with a modern look and feel, all of our blocks are build with components from the library to achieve a consistent look.
|
|
30
32
|
image: block-code.png
|
|
31
33
|
buttons:
|
|
32
34
|
- href: /blocks
|
|
@@ -37,11 +39,11 @@ sections:
|
|
|
37
39
|
color: brand
|
|
38
40
|
label: Components
|
|
39
41
|
heading: Or build your own, with easy to use components
|
|
40
|
-
|
|
42
|
+
paragraph: Our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
|
|
41
43
|
image: component-code.png
|
|
42
44
|
reverse: odd
|
|
43
45
|
buttons:
|
|
44
|
-
- href: /
|
|
46
|
+
- href: /components/badge
|
|
45
47
|
icon: code
|
|
46
48
|
text: View components
|
|
47
49
|
|
|
@@ -49,7 +51,7 @@ sections:
|
|
|
49
51
|
size: lg
|
|
50
52
|
variant: primary
|
|
51
53
|
heading: Build content websites in a fraction of time
|
|
52
|
-
|
|
54
|
+
lead: A library of components and blocks to build content sites, fast.
|
|
53
55
|
buttons:
|
|
54
56
|
- text: Get Started
|
|
55
57
|
href: /overview/installation
|
|
@@ -8,7 +8,10 @@ import Cards from 'fulldev-ui/components/Cards.astro'
|
|
|
8
8
|
import { getCollection } from 'astro:content'
|
|
9
9
|
|
|
10
10
|
export const projects = (
|
|
11
|
-
await getCollection(
|
|
11
|
+
await getCollection(
|
|
12
|
+
'pages',
|
|
13
|
+
({ slug }) => slug.startsWith('showcase') && slug !== 'showcase'
|
|
14
|
+
)
|
|
12
15
|
).map((p) => p.data)
|
|
13
16
|
|
|
14
17
|
# Showcase
|
|
@@ -16,7 +19,6 @@ export const projects = (
|
|
|
16
19
|
Projects that are built with Fulldev UI.
|
|
17
20
|
|
|
18
21
|
<Card
|
|
19
|
-
color="brand"
|
|
20
22
|
size="sm"
|
|
21
23
|
style={{ marginTop: 'var(--space-6)', marginBottom: 'var(--space-7)' }}
|
|
22
24
|
heading="Your project in this showcase?"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
theme:
|
|
1
|
+
theme: system
|
|
2
2
|
|
|
3
3
|
seo:
|
|
4
4
|
image: /images/og-image.png
|
|
@@ -10,74 +10,91 @@ code:
|
|
|
10
10
|
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
|
|
11
11
|
})
|
|
12
12
|
</script>
|
|
13
|
+
|
|
13
14
|
navigation:
|
|
15
|
+
themer: true
|
|
14
16
|
header: true
|
|
15
17
|
company: Fulldev UI
|
|
16
|
-
|
|
18
|
+
logo: favicon.svg
|
|
19
|
+
links:
|
|
17
20
|
- text: Docs
|
|
18
|
-
href: /
|
|
21
|
+
href: /docs/
|
|
19
22
|
- text: Components
|
|
20
|
-
href: /
|
|
23
|
+
href: /docs/components/badge/
|
|
21
24
|
- text: Blocks
|
|
22
|
-
href: /blocks/banner
|
|
25
|
+
href: /docs/blocks/banner/
|
|
23
26
|
- showcase
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
target: _blank
|
|
30
|
-
icon: brand-discord
|
|
31
|
-
variant: secondary
|
|
27
|
+
|
|
28
|
+
socials:
|
|
29
|
+
- https://github.com/fulldotdev/ui
|
|
30
|
+
- https://discord.gg/vXZqMbadm8
|
|
31
|
+
|
|
32
32
|
menu:
|
|
33
33
|
- heading: Get Started
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
- heading:
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
|
|
34
|
+
links:
|
|
35
|
+
- docs
|
|
36
|
+
- docs/installation
|
|
37
|
+
- docs/customization
|
|
38
|
+
- docs/frameworks
|
|
39
|
+
- docs/components
|
|
40
|
+
- docs/collections
|
|
41
|
+
- heading: Collections
|
|
42
|
+
links:
|
|
43
|
+
- docs/collections/pages
|
|
44
|
+
- docs/collections/presets
|
|
45
|
+
- docs/collections/images
|
|
46
|
+
- heading: Components
|
|
47
|
+
links:
|
|
48
|
+
- docs/components/avatar
|
|
49
|
+
- docs/components/badge
|
|
50
|
+
- docs/components/badges
|
|
51
|
+
- docs/components/button
|
|
52
|
+
- docs/components/buttons
|
|
53
|
+
# - docs/components/card
|
|
54
|
+
# - docs/components/cards
|
|
55
|
+
# - docs/components/cart
|
|
56
|
+
# - docs/components/cart-form
|
|
57
|
+
# - docs/components/cart-list
|
|
58
|
+
# - docs/components/cart-summary
|
|
59
|
+
- docs/components/channel
|
|
60
|
+
- docs/components/channels
|
|
61
|
+
- docs/components/checkbox
|
|
62
|
+
- docs/components/code
|
|
63
|
+
# - docs/components/dialog
|
|
64
|
+
# - docs/components/drawer
|
|
65
|
+
# - docs/components/element
|
|
66
|
+
# - docs/components/footer
|
|
67
|
+
# - docs/components/form
|
|
68
|
+
# - docs/components/head
|
|
69
|
+
# - docs/components/header
|
|
70
|
+
- docs/components/heading
|
|
71
|
+
- docs/components/icon
|
|
72
|
+
- docs/components/image
|
|
73
|
+
- docs/components/input
|
|
74
|
+
- docs/components/label
|
|
75
|
+
- docs/components/lead
|
|
76
|
+
- docs/components/link
|
|
77
|
+
- docs/components/links
|
|
78
|
+
- docs/components/list
|
|
79
|
+
# - docs/components/locale-switcher
|
|
80
|
+
- docs/components/logo
|
|
81
|
+
- docs/components/menu
|
|
82
|
+
- docs/components/paragraph
|
|
83
|
+
# - docs/components/price
|
|
84
|
+
- docs/components/prose
|
|
85
|
+
- docs/components/rating
|
|
86
|
+
# - docs/components/search
|
|
87
|
+
# - docs/components/section
|
|
88
|
+
# - docs/components/sections
|
|
89
|
+
- docs/components/select
|
|
90
|
+
# - docs/components/sidebar
|
|
91
|
+
- docs/components/social
|
|
92
|
+
- docs/components/socials
|
|
93
|
+
- docs/components/switch
|
|
94
|
+
# - docs/components/table
|
|
95
|
+
- docs/components/tagline
|
|
96
|
+
# - docs/components/text
|
|
97
|
+
- docs/components/textarea
|
|
98
|
+
- docs/components/themer
|
|
99
|
+
# - docs/components/toc
|
|
100
|
+
# - docs/components/writeup
|
package/src/css/color.css
CHANGED
package/src/css/custom.css
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
@import url(https://fonts.bunny.net/css?family=inter:100,200,300,400,500,600,700,800,900);
|
|
2
2
|
|
|
3
|
-
* {
|
|
4
|
-
font-family: 'Inter', sans-serif;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
3
|
mark {
|
|
8
4
|
background-color: var(--brand-12) !important;
|
|
9
5
|
color: var(--brand-1) !important;
|
|
10
6
|
}
|
|
11
7
|
|
|
12
|
-
.
|
|
13
|
-
border:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
.rounded-full {
|
|
9
|
+
border-radius: 999px !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.hero .heading,
|
|
13
|
+
.hero .lead {
|
|
14
|
+
max-width: 680px;
|
|
15
|
+
text-wrap: balance;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
background-color: var(--color-background);
|
|
18
|
+
.logo .image {
|
|
19
|
+
border-radius: 2px;
|
|
22
20
|
}
|
package/src/css/size.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
:root {
|
|
1
|
+
/* :root {
|
|
2
2
|
--space-sm-1: 4px;
|
|
3
3
|
--space-sm-2: 6px;
|
|
4
4
|
--space-sm-3: 8px;
|
|
@@ -128,13 +128,4 @@
|
|
|
128
128
|
--text-7: var(--text-lg-7);
|
|
129
129
|
--text-8: var(--text-lg-8);
|
|
130
130
|
}
|
|
131
|
-
|
|
132
|
-
:root {
|
|
133
|
-
--spacer: var(--space-7);
|
|
134
|
-
--screen: 100vw;
|
|
135
|
-
--gutter: max(24px, calc((100% - var(--screen)) / 2));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
* {
|
|
139
|
-
--gutter: max(24px, calc((100% - var(--screen)) / 2));
|
|
140
|
-
}
|
|
131
|
+
*/
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* :root {
|
|
2
|
+
--radius: 0.5rem;
|
|
3
|
+
|
|
4
|
+
--background: 33.3 30% 97.5%;
|
|
5
|
+
--foreground: 33.3 10% 10.5%;
|
|
6
|
+
|
|
7
|
+
--primary: 20 100% 50%;
|
|
8
|
+
--primary-foreground: 0 0% 100%;
|
|
9
|
+
--primary-hover: var(--primary) / 85%;
|
|
10
|
+
|
|
11
|
+
--secondary: 20 10% 92%;
|
|
12
|
+
--secondary-hover: var(--secondary) / 75%;
|
|
13
|
+
--secondary-foreground: var(--foreground);
|
|
14
|
+
|
|
15
|
+
--accent: var(--secondary-hover);
|
|
16
|
+
--accent-foreground: var(--secondary-foreground);
|
|
17
|
+
|
|
18
|
+
--muted: var(--accent);
|
|
19
|
+
--muted-foreground: var(--foreground) / 75%;
|
|
20
|
+
|
|
21
|
+
--card: var(--secondary) / 40%;
|
|
22
|
+
--card-foreground: var(--foreground);
|
|
23
|
+
|
|
24
|
+
--border: var(--foreground) / 8%;
|
|
25
|
+
--input: var(--foreground) / 26%;
|
|
26
|
+
--ring: var(--foreground);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.dark {
|
|
30
|
+
--foreground: 0 0% 100%;
|
|
31
|
+
--background: 20 40% 3%;
|
|
32
|
+
--primary: 20 30% 97%;
|
|
33
|
+
--primary-foreground: 20 100% 0%;
|
|
34
|
+
--secondary: 20 10% 10%;
|
|
35
|
+
--secondary-foreground: 20 30% 97%;
|
|
36
|
+
} */
|
|
37
|
+
|
|
38
|
+
@layer base {
|
|
39
|
+
:root {
|
|
40
|
+
--background: 0 0% 100%;
|
|
41
|
+
--foreground: 20 14.3% 4.1%;
|
|
42
|
+
--card: 0 0% 100%;
|
|
43
|
+
--card-foreground: 20 14.3% 4.1%;
|
|
44
|
+
--popover: 0 0% 100%;
|
|
45
|
+
--popover-foreground: 20 14.3% 4.1%;
|
|
46
|
+
--primary: 24 9.8% 10%;
|
|
47
|
+
--primary-foreground: 60 9.1% 97.8%;
|
|
48
|
+
--secondary: 60 4.8% 95.9%;
|
|
49
|
+
--secondary-foreground: 24 9.8% 10%;
|
|
50
|
+
--muted: 60 4.8% 95.9%;
|
|
51
|
+
--muted-foreground: 25 5.3% 44.7%;
|
|
52
|
+
--accent: 60 4.8% 95.9%;
|
|
53
|
+
--accent-foreground: 24 9.8% 10%;
|
|
54
|
+
--destructive: 0 84.2% 60.2%;
|
|
55
|
+
--destructive-foreground: 60 9.1% 97.8%;
|
|
56
|
+
--border: 20 5.9% 90%;
|
|
57
|
+
--input: 20 5.9% 90%;
|
|
58
|
+
--ring: 20 14.3% 4.1%;
|
|
59
|
+
--radius: 0.5rem;
|
|
60
|
+
--chart-1: 12 76% 61%;
|
|
61
|
+
--chart-2: 173 58% 39%;
|
|
62
|
+
--chart-3: 197 37% 24%;
|
|
63
|
+
--chart-4: 43 74% 66%;
|
|
64
|
+
--chart-5: 27 87% 67%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.dark {
|
|
68
|
+
--background: 20 14.3% 4.1%;
|
|
69
|
+
--foreground: 60 9.1% 97.8%;
|
|
70
|
+
--card: 20 14.3% 4.1%;
|
|
71
|
+
--card-foreground: 60 9.1% 97.8%;
|
|
72
|
+
--popover: 20 14.3% 4.1%;
|
|
73
|
+
--popover-foreground: 60 9.1% 97.8%;
|
|
74
|
+
--primary: 60 9.1% 97.8%;
|
|
75
|
+
--primary-foreground: 24 9.8% 10%;
|
|
76
|
+
--secondary: 12 6.5% 15.1%;
|
|
77
|
+
--secondary-foreground: 60 9.1% 97.8%;
|
|
78
|
+
--muted: 12 6.5% 15.1%;
|
|
79
|
+
--muted-foreground: 24 5.4% 63.9%;
|
|
80
|
+
--accent: 12 6.5% 15.1%;
|
|
81
|
+
--accent-foreground: 60 9.1% 97.8%;
|
|
82
|
+
--destructive: 0 62.8% 30.6%;
|
|
83
|
+
--destructive-foreground: 60 9.1% 97.8%;
|
|
84
|
+
--border: 12 6.5% 15.1%;
|
|
85
|
+
--input: 12 6.5% 15.1%;
|
|
86
|
+
--ring: 24 5.7% 82.9%;
|
|
87
|
+
--chart-1: 220 70% 50%;
|
|
88
|
+
--chart-2: 160 60% 45%;
|
|
89
|
+
--chart-3: 30 80% 55%;
|
|
90
|
+
--chart-4: 280 65% 60%;
|
|
91
|
+
--chart-5: 340 75% 55%;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="694" height="671" viewBox="0 0 694 671" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M490.133 0H693.066L660.933 117.5H458L490.133 0Z" fill="#FF5500"/>
|
|
3
|
+
<path d="M286.133 304H489.066L456.933 421.5H254L286.133 304Z" fill="#FF5500"/>
|
|
4
|
+
<path d="M297.133 0H500.066L467.933 117.5H265L297.133 0Z" fill="#FF5500"/>
|
|
5
|
+
<path d="M141.133 304H344.066L311.933 421.5H109L141.133 304Z" fill="#FF5500"/>
|
|
6
|
+
<path d="M110.133 418L244.633 418L212.5 535.5H78L110.133 418Z" fill="#FF5500"/>
|
|
7
|
+
<path d="M89.1329 494L223.633 494L191.5 611.5H57L89.1329 494Z" fill="#FF5500"/>
|
|
8
|
+
<path d="M72.94 553L206.633 553L174.693 670.5H41L72.94 553Z" fill="#FF5500"/>
|
|
9
|
+
<path d="M104.133 0H307.066L274.933 117.5H72L104.133 0Z" fill="#FF5500"/>
|
|
10
|
+
<path d="M32.1329 0H235.066L202.933 117.5H0L32.1329 0Z" fill="#FF5500"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg width="694" height="739" viewBox="0 0 694 739" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M490.133 0H693.066L660.933 117.5H458L490.133 0Z" fill="#FF5500"/>
|
|
3
|
+
<path d="M286.133 304H489.066L456.933 421.5H254L286.133 304Z" fill="#FF5500"/>
|
|
4
|
+
<path d="M354.133 304H557.066L524.933 421.5H322L354.133 304Z" fill="#FF5500"/>
|
|
5
|
+
<path d="M297.133 0H500.066L467.933 117.5H265L297.133 0Z" fill="#FF5500"/>
|
|
6
|
+
<path d="M141.133 304H344.066L311.933 421.5H109L141.133 304Z" fill="#FF5500"/>
|
|
7
|
+
<path d="M110.133 418L244.633 418L212.5 535.5H78L110.133 418Z" fill="#FF5500"/>
|
|
8
|
+
<path d="M89.1329 494L223.633 494L191.5 611.5H57L89.1329 494Z" fill="#FF5500"/>
|
|
9
|
+
<path d="M72.94 553L206.633 553L174.693 670.5H41L72.94 553Z" fill="#FF5500"/>
|
|
10
|
+
<path d="M54.94 621L188.633 621L156.693 738.5H23L54.94 621Z" fill="#FF5500"/>
|
|
11
|
+
<path d="M104.133 0H307.066L274.933 117.5H72L104.133 0Z" fill="#FF5500"/>
|
|
12
|
+
<path d="M32.1329 0H235.066L202.933 117.5H0L32.1329 0Z" fill="#FF5500"/>
|
|
13
|
+
</svg>
|