fulldev-ui 0.5.0-beta.8 → 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.
Files changed (236) hide show
  1. package/.env.example +3 -0
  2. package/.prettierrc.yaml +1 -0
  3. package/astro.config.ts +6 -32
  4. package/package.json +21 -30
  5. package/pnpm-lock.yaml +696 -2176
  6. package/public/favicon/android-chrome-192x192.png +0 -0
  7. package/public/favicon/android-chrome-512x512.png +0 -0
  8. package/public/favicon/apple-touch-icon.png +0 -0
  9. package/public/favicon/manifest.webmanifest +7 -3
  10. package/public/favicon/mstile-150x150.png +0 -0
  11. package/src/blocks/Banner.astro +6 -19
  12. package/src/blocks/Colleagues.astro +0 -1
  13. package/src/blocks/Contact.astro +75 -74
  14. package/src/blocks/Content.astro +124 -6
  15. package/src/blocks/Cta.astro +0 -2
  16. package/src/blocks/Excerpt.astro +0 -2
  17. package/src/blocks/Footer.astro +107 -3
  18. package/src/blocks/Hero.astro +238 -9
  19. package/src/blocks/Intro.astro +89 -11
  20. package/src/blocks/Prices.astro +1 -1
  21. package/src/blocks/Product.astro +51 -68
  22. package/src/blocks/Products.astro +114 -5
  23. package/src/blocks/Reviews.astro +0 -1
  24. package/src/blocks/_Contact.astro +112 -0
  25. package/src/components/Avatar.astro +28 -9
  26. package/src/components/Avatars.astro +36 -0
  27. package/src/components/Badge.astro +73 -26
  28. package/src/components/Badges.astro +16 -23
  29. package/src/components/Breadcrumb.astro +58 -0
  30. package/src/components/Button.astro +56 -112
  31. package/src/components/Buttons.astro +23 -13
  32. package/src/components/Card.astro +129 -115
  33. package/src/components/Cards.astro +33 -35
  34. package/src/components/Carousel.astro +106 -0
  35. package/src/components/Cart.astro +1 -1
  36. package/src/components/CartForm.astro +9 -9
  37. package/src/components/CartList.astro +11 -28
  38. package/src/components/CartSummary.astro +11 -13
  39. package/src/components/Channel.astro +40 -22
  40. package/src/components/Channels.astro +20 -6
  41. package/src/components/Checkbox.astro +52 -27
  42. package/src/components/Code.astro +52 -0
  43. package/src/components/Dialog.astro +2 -2
  44. package/src/components/Drawer.astro +34 -64
  45. package/src/components/Element.astro +16 -8
  46. package/src/components/Form.astro +14 -13
  47. package/src/components/Gallery.astro +172 -0
  48. package/src/components/Head.astro +52 -1
  49. package/src/components/Header.astro +73 -83
  50. package/src/components/Heading.astro +74 -30
  51. package/src/components/Icon.astro +25 -30
  52. package/src/components/Image.astro +23 -38
  53. package/src/components/Input.astro +59 -53
  54. package/src/components/Label.astro +20 -15
  55. package/src/components/Lead.astro +46 -0
  56. package/src/components/Link.astro +51 -26
  57. package/src/components/Links.astro +42 -0
  58. package/src/components/List.astro +41 -16
  59. package/src/components/LocaleSwitcher.astro +2 -2
  60. package/src/components/Logo.astro +45 -0
  61. package/src/components/Menu.astro +21 -17
  62. package/src/components/Paragraph.astro +38 -0
  63. package/src/components/Price.astro +1 -1
  64. package/src/components/Prose.astro +169 -0
  65. package/src/components/Rating.astro +50 -38
  66. package/src/components/Search.astro +1 -1
  67. package/src/components/Section.astro +196 -158
  68. package/src/components/Select.astro +44 -55
  69. package/src/components/Sidebar.astro +31 -38
  70. package/src/components/Social.astro +3 -8
  71. package/src/components/Socials.astro +9 -5
  72. package/src/components/Subheader.astro +59 -0
  73. package/src/components/Switch.astro +72 -29
  74. package/src/components/Table.astro +1 -1
  75. package/src/components/Tagline.astro +40 -12
  76. package/src/components/Text.astro +4 -4
  77. package/src/components/Textarea.astro +40 -50
  78. package/src/components/Themer.astro +76 -0
  79. package/src/components/Toc.astro +24 -32
  80. package/src/components/Writeup.astro +26 -8
  81. package/src/components/docs/PropsTable.astro +38 -264
  82. package/src/components/experimental/Window.astro +5 -57
  83. package/src/components/sections.astro +1 -1
  84. package/src/content/pages/blocks/_categories.mdx +1 -1
  85. package/src/content/pages/blocks/_footer.mdx +1 -1
  86. package/src/content/pages/blocks/_header.mdx +1 -3
  87. package/src/content/pages/blocks/_jobs.mdx +1 -1
  88. package/src/content/pages/blocks/_prices.mdx +1 -1
  89. package/src/content/pages/blocks/_product.mdx +1 -1
  90. package/src/content/pages/blocks/_products.mdx +1 -1
  91. package/src/content/pages/blocks/_stats.mdx +1 -1
  92. package/src/content/pages/blocks/banner.mdx +1 -1
  93. package/src/content/pages/blocks/colleagues.mdx +1 -2
  94. package/src/content/pages/blocks/contact.mdx +1 -1
  95. package/src/content/pages/blocks/content.mdx +1 -5
  96. package/src/content/pages/blocks/cta.mdx +1 -9
  97. package/src/content/pages/blocks/features.mdx +1 -4
  98. package/src/content/pages/blocks/hero.mdx +1 -4
  99. package/src/content/pages/blocks/intro.mdx +1 -4
  100. package/src/content/pages/blocks/posts.mdx +1 -1
  101. package/src/content/pages/blocks/reviews.mdx +1 -2
  102. package/src/content/pages/docs/_internationalization.mdx +55 -0
  103. package/src/content/pages/docs/_using-blocks.mdx +33 -0
  104. package/src/content/pages/docs/_using-presets.mdx +49 -0
  105. package/src/content/pages/docs/blocks.mdx +33 -0
  106. package/src/content/pages/docs/collections/images.mdx +100 -0
  107. package/src/content/pages/docs/collections/pages.mdx +119 -0
  108. package/src/content/pages/docs/collections/presets.mdx +60 -0
  109. package/src/content/pages/docs/collections.mdx +42 -0
  110. package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +1 -3
  111. package/src/content/pages/{base → docs/components}/_switch.mdx +2 -2
  112. package/src/content/pages/{typography → docs/components}/_tagline.mdx +2 -2
  113. package/src/content/pages/docs/components/_toggle.mdx +31 -0
  114. package/src/content/pages/docs/components/avatar.mdx +35 -0
  115. package/src/content/pages/{base → docs/components}/badge.mdx +27 -8
  116. package/src/content/pages/docs/components/badges.mdx +47 -0
  117. package/src/content/pages/{base → docs/components}/button.mdx +29 -10
  118. package/src/content/pages/docs/components/buttons.mdx +52 -0
  119. package/src/content/pages/docs/components/channel.mdx +92 -0
  120. package/src/content/pages/docs/components/channels.mdx +90 -0
  121. package/src/content/pages/{base → docs/components}/checkbox.mdx +10 -17
  122. package/src/content/pages/docs/components/code.mdx +46 -0
  123. package/src/content/pages/docs/components/heading.mdx +60 -0
  124. package/src/content/pages/docs/components/icon.mdx +49 -0
  125. package/src/content/pages/docs/components/image.mdx +26 -0
  126. package/src/content/pages/docs/components/input.mdx +41 -0
  127. package/src/content/pages/{typography → docs/components}/label.mdx +8 -4
  128. package/src/content/pages/docs/components/lead.mdx +51 -0
  129. package/src/content/pages/{typography → docs/components}/link.mdx +23 -8
  130. package/src/content/pages/docs/components/links.mdx +100 -0
  131. package/src/content/pages/docs/components/list.mdx +45 -0
  132. package/src/content/pages/docs/components/logo.mdx +37 -0
  133. package/src/content/pages/docs/components/menu.mdx +90 -0
  134. package/src/content/pages/docs/components/paragraph.mdx +51 -0
  135. package/src/content/pages/docs/components/prose.mdx +37 -0
  136. package/src/content/pages/docs/components/rating.mdx +77 -0
  137. package/src/content/pages/{base → docs/components}/section.mdx +1 -1
  138. package/src/content/pages/{base → docs/components}/select.mdx +0 -9
  139. package/src/content/pages/docs/components/social.mdx +95 -0
  140. package/src/content/pages/docs/components/socials.mdx +103 -0
  141. package/src/content/pages/docs/components/switch.mdx +35 -0
  142. package/src/content/pages/{base → docs/components}/table.mdx +0 -2
  143. package/src/content/pages/docs/components/tagline.mdx +47 -0
  144. package/src/content/pages/docs/components/textarea.mdx +35 -0
  145. package/src/content/pages/docs/components/themer.mdx +50 -0
  146. package/src/content/pages/docs/components.mdx +40 -0
  147. package/src/content/pages/docs/customization.mdx +151 -0
  148. package/src/content/pages/docs/frameworks.mdx +29 -0
  149. package/src/content/pages/docs/generating-pages.mdx +129 -0
  150. package/src/content/pages/docs/index.mdx +23 -0
  151. package/src/content/pages/docs/installation.mdx +50 -0
  152. package/src/content/pages/docs/layouts.mdx +33 -0
  153. package/src/content/pages/index.mdx +11 -9
  154. package/src/content/pages/showcase.mdx +4 -2
  155. package/src/content/presets/base.yml +80 -63
  156. package/src/content/presets/docs.yml +2 -2
  157. package/src/css/color.css +0 -10
  158. package/src/css/custom.css +10 -12
  159. package/src/css/size.css +2 -11
  160. package/src/css/theme.css +93 -0
  161. package/src/images/logo-1.svg +11 -0
  162. package/src/images/logo-2.svg +13 -0
  163. package/src/images/logo-basic.svg +10 -0
  164. package/src/images/logo-simple.svg +13 -0
  165. package/src/images/logo-thin.svg +15 -0
  166. package/src/images/logo.svg +14 -0
  167. package/src/images/logofat.svg +11 -0
  168. package/src/integration/index.ts +71 -144
  169. package/src/layouts/CategoryLayout.astro +135 -0
  170. package/src/layouts/Layout.astro +62 -117
  171. package/src/layouts/PageLayout.astro +26 -0
  172. package/src/layouts/PostLayout.astro +13 -8
  173. package/src/layouts/ProductLayout.astro +94 -10
  174. package/src/pages/[...page].astro +14 -22
  175. package/src/pages/test.astro +20 -0
  176. package/src/schemas/components/button.ts +21 -13
  177. package/src/schemas/components/card.ts +36 -18
  178. package/src/schemas/components/footer.ts +2 -10
  179. package/src/schemas/components/global.ts +16 -0
  180. package/src/schemas/components/header.ts +8 -0
  181. package/src/schemas/components/image.ts +8 -3
  182. package/src/schemas/components/link.ts +16 -0
  183. package/src/schemas/components/links.ts +4 -0
  184. package/src/schemas/components/menu.ts +2 -0
  185. package/src/schemas/components/sidebar.ts +2 -2
  186. package/src/schemas/components/subheader.ts +9 -0
  187. package/src/schemas/components/themer.ts +3 -0
  188. package/src/schemas/pageSchema.ts +14 -21
  189. package/src/utils/cart.ts +1 -10
  190. package/src/utils/getDeepReferenceChildren.ts +14 -0
  191. package/src/utils/getReferenceChildren.ts +1 -1
  192. package/src/utils/setTheme.ts +18 -0
  193. package/src/utils/slugify.ts +6 -0
  194. package/tailwind.config.ts +67 -0
  195. package/src/blocks/Article.astro +0 -40
  196. package/src/components/Footer.astro +0 -193
  197. package/src/components/ThemeSelect.astro +0 -41
  198. package/src/components/experimental/Form.astro +0 -53
  199. package/src/components/experimental/Gallery.astro +0 -104
  200. package/src/components/experimental/Logo.astro +0 -38
  201. package/src/components/experimental/Prose.astro +0 -192
  202. package/src/content/pages/base/icon.mdx +0 -55
  203. package/src/content/pages/base/image.mdx +0 -42
  204. package/src/content/pages/base/input.mdx +0 -56
  205. package/src/content/pages/base/rating.mdx +0 -55
  206. package/src/content/pages/base/textarea.mdx +0 -58
  207. package/src/content/pages/base/theme-select.mdx +0 -15
  208. package/src/content/pages/layouts/_layout.mdx +0 -14
  209. package/src/content/pages/layouts/docslayout.mdx +0 -14
  210. package/src/content/pages/overview/components.mdx +0 -75
  211. package/src/content/pages/overview/content-collections.mdx +0 -139
  212. package/src/content/pages/overview/frameworks.mdx +0 -198
  213. package/src/content/pages/overview/installation.mdx +0 -53
  214. package/src/content/pages/overview/introduction.mdx +0 -30
  215. package/src/content/pages/overview/theming.mdx +0 -69
  216. package/src/content/pages/schemas/page.mdx +0 -17
  217. package/src/content/pages/schemas/preset.mdx +0 -9
  218. package/src/content/pages/showcase/record.md +0 -3
  219. package/src/content/pages/typography/heading.mdx +0 -73
  220. package/src/content/pages/typography/list.mdx +0 -51
  221. package/src/content/pages/typography/text.mdx +0 -61
  222. package/src/content/presets/blocks.yml +0 -1
  223. package/src/css/space.css +0 -77
  224. package/src/css/styles.css +0 -0
  225. package/src/images/avatar-1.yml +0 -1
  226. package/src/integration/generate-colors.ts +0 -639
  227. package/src/integration/tailwind-plugin.ts +0 -80
  228. package/src/integration/unocss-preset.ts +0 -84
  229. package/src/layouts/BlockLayout.astro +0 -19
  230. package/src/layouts/ContactLayout.astro +0 -21
  231. package/src/layouts/DocsLayout.astro +0 -73
  232. package/src/layouts/OverviewLayout.astro +0 -42
  233. /package/src/content/pages/{base → docs/components}/_dialog.mdx +0 -0
  234. /package/src/content/pages/{base → docs/components}/_drawer.mdx +0 -0
  235. /package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +0 -0
  236. /package/src/schemas/utils/{parents.ts → categories.ts} +0 -0
@@ -1,75 +0,0 @@
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.
@@ -1,139 +0,0 @@
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,198 +0,0 @@
1
- ---
2
- presets: [docs]
3
- title: Frameworks
4
- ---
5
-
6
- # Frameworks
7
-
8
- Fulldev UI is written in vanilla CSS and .astro files. It is framework agnostic.
9
-
10
- ## JS frameworks
11
-
12
- All styles in Fulldev UI use regular CSS and classes. Classes use the following naming convention:
13
-
14
- - Component classes are the same as the component name, like `button` for `<Button>`.
15
- - Prop classes have the prop name as prefix, like `variant-primary` for `<Button variant="primary">`.
16
- - If a prop is a boolean the class is added without a prefix, like `contrast`.
17
-
18
- This means you can apply Fulldev UI styles to any framework component as follows:
19
-
20
- ```astro live
21
- ---
22
- import Button from 'fulldev-ui/components/Button.astro'
23
- ---
24
-
25
- <a class="button variant-primary contrast">Button</a>
26
- <Button contrast>Button</Button>
27
- ```
28
-
29
- ## CSS frameworks
30
-
31
- A TailwindCSS plugin and UnoCSS preset is available.
32
-
33
- ### TailwindCSS
34
-
35
- In your `tailwind.config.ts` add the following:
36
-
37
- ```ts
38
- // tailwind.config.ts
39
- import fulldevUI from 'fulldev-ui/tailwind'
40
-
41
- export default {
42
- plugins: [fulldevUI],
43
- }
44
- ```
45
-
46
- In your `astro.config.ts` add the following:
47
-
48
- ```ts
49
- // astro.config.ts
50
- import tailwind from '@astrojs/tailwind'
51
-
52
- export default defineConfig({
53
- integrations: [
54
- tailwind({
55
- // Disable injecting styles, import manually instead
56
- applyBaseStyles: false,
57
- }),
58
- ],
59
- })
60
- ```
61
-
62
- Import the css file file below anywhere in your project.
63
-
64
- ```css
65
- @tailwind base layer(base);
66
- @tailwind components;
67
- @tailwind utilities;
68
- ```
69
-
70
- ### UnoCSS
71
-
72
- In your `uno.config.ts` add the following:
73
-
74
- ```ts
75
- // uno.config.ts
76
- import fulldevUI from 'fulldev-ui/unocss'
77
-
78
- export default defineConfig({
79
- injectReset: false,
80
- presets: [fulldevUI],
81
- })
82
- ```
83
-
84
- Do not use `injectReset` when using the UnoCSS preset, as it will conflict with the reset provided by Fulldev UI. If you do want a style reset, be sure to import it in the `base` layer, similar to the TailwindCSS example above.
85
-
86
- ## Utility classes
87
-
88
- The following classes are available when using the Tailwind plugin or UnoCSS preset.
89
-
90
- ### Spacing
91
-
92
- The following spacing classes are added to your tailwind/uno config.
93
-
94
- You can use them like `p-space-1`, `m-space-1`, `h-space-1`, `w-space-1`, etc.
95
-
96
- ```ts
97
- spacing: {
98
- 'space-1': 'var(--space-1)',
99
- 'space-2': 'var(--space-2)',
100
- 'space-3': 'var(--space-3)',
101
- 'space-4': 'var(--space-4)',
102
- 'space-5': 'var(--space-5)',
103
- 'space-6': 'var(--space-6)',
104
- 'space-7': 'var(--space-7)',
105
- },
106
- ```
107
-
108
- ### Font size
109
-
110
- The following spacing classes are added to your tailwind/uno config.
111
-
112
- You can use them like `text-1`, `text-2`, `text-3`, etc.
113
-
114
- ```ts
115
- fontSize: {
116
- 1: 'var(--text-1)',
117
- 2: 'var(--text-2)',
118
- 3: 'var(--text-3)',
119
- 4: 'var(--text-4)',
120
- 5: 'var(--text-5)',
121
- 6: 'var(--text-6)',
122
- 7: 'var(--text-7)',
123
- 8: 'var(--text-8)',
124
- }
125
- ```
126
-
127
- ### Border radius
128
-
129
- The following border radius classes are added to your tailwind/uno config.
130
-
131
- You can use them like `rounded-1`, `rounded-2`, `rounded-3`, etc.
132
-
133
- ```ts
134
- borderRadius: {
135
- 1: 'var(--radius-1)',
136
- 2: 'var(--radius-2)',
137
- 3: 'var(--radius-3)',
138
- }
139
- ```
140
-
141
- ### Color classes
142
-
143
- The following color classes are added to your tailwind/uno config.
144
-
145
- You can use them like `bg-color-1`, `text-base-2`, `border-base-6`, etc.
146
-
147
- ```ts
148
- colors: {
149
- color: {
150
- 1: 'var(--color-1)',
151
- 2: 'var(--color-2)',
152
- 3: 'var(--color-3)',
153
- 4: 'var(--color-4)',
154
- 5: 'var(--color-5)',
155
- 6: 'var(--color-6)',
156
- 7: 'var(--color-7)',
157
- 8: 'var(--color-8)',
158
- 9: 'var(--color-9)',
159
- 10: 'var(--color-10)',
160
- 11: 'var(--color-11)',
161
- 12: 'var(--color-12)',
162
- contrast: 'var(--color-contrast)',
163
- background: 'var(--color-background)',
164
- },
165
- base: {
166
- 1: 'var(--color-base-1)',
167
- 2: 'var(--color-base-2)',
168
- 3: 'var(--color-base-3)',
169
- 4: 'var(--color-base-4)',
170
- 5: 'var(--color-base-5)',
171
- 6: 'var(--color-base-6)',
172
- 7: 'var(--color-base-7)',
173
- 8: 'var(--color-base-8)',
174
- 9: 'var(--color-base-9)',
175
- 10: 'var(--color-base-10)',
176
- 11: 'var(--color-base-11)',
177
- 12: 'var(--color-base-12)',
178
- contrast: 'var(--color-base-contrast)',
179
- background: 'var(--color-base-background)',
180
- },
181
- brand: {
182
- 1: 'var(--color-brand-1)',
183
- 2: 'var(--color-brand-2)',
184
- 3: 'var(--color-brand-3)',
185
- 4: 'var(--color-brand-4)',
186
- 5: 'var(--color-brand-5)',
187
- 6: 'var(--color-brand-6)',
188
- 7: 'var(--color-brand-7)',
189
- 8: 'var(--color-brand-8)',
190
- 9: 'var(--color-brand-9)',
191
- 10: 'var(--color-brand-10)',
192
- 11: 'var(--color-brand-11)',
193
- 12: 'var(--color-brand-12)',
194
- contrast: 'var(--color-brand-contrast)',
195
- background: 'var(--color-brand-background)',
196
- }
197
- }
198
- ```
@@ -1,53 +0,0 @@
1
- ---
2
- presets: [docs]
3
- title: Installation
4
- ---
5
-
6
- import Link from 'fulldev-ui/components/Link.astro'
7
-
8
- # Installation
9
-
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.
25
-
26
- ```bash
27
- pnpm i fulldev-ui
28
- # or
29
- bun i fulldev-ui
30
- # or
31
- yarn add fulldev-ui
32
- # or
33
- npm i fulldev-ui
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
- ```
@@ -1,30 +0,0 @@
1
- ---
2
- presets: [docs]
3
- title: Introduction
4
- ---
5
-
6
- # Introduction
7
-
8
- **Fulldev UI** is a full-featured UI library and website theme built on the [Astro](https://astro.build/) framework. Whether starting a new project or enhancing an existing one, this guide will help you get set up. For installation details, see the [installation guide](/getting-started/installation).
9
-
10
- ## Why we built it
11
-
12
- We built **Fulldev UI** after repeatedly encountering the same challenges in client projects, covering the core needs of content-focused websites. Initially created for [our own company](https://full.dev), we decided to open-source it for others to use.
13
-
14
- ## Some features
15
-
16
- - Vanilla HTML and CSS.
17
- - Seamless integration with TailwindCSS and UnoCSS.
18
- - Minimal JavaScript.
19
- - Supports Astro's [Content Collections](https://docs.astro.build/en/guides/content-collections/).
20
- - Customizable via CSS variables.
21
- - Reusable components for pages and sections.
22
- - Includes blocks like Hero, CTA, Features, etc.
23
- - Page-building tools.
24
- - And more...
25
-
26
- ## A word of caution
27
-
28
- **Fulldev UI** includes a wide range of features, some still experimental. While a narrower focus would improve stability, we built it for flexibility in our projects.
29
-
30
- This isn't just a single-purpose library; it's a framework for building blog, marketing, and portfolio websites—similar to how [Starlight](https://starlight.astro.build/) serves documentation. As it evolves, its focus will sharpen. In the meantime, feel free to use it and share feedback on [Discord](https://discord.gg/fulldev)!
@@ -1,69 +0,0 @@
1
- ---
2
- presets: [docs]
3
- title: Theming
4
- ---
5
-
6
- import Link from 'fulldev-ui/components/Link.astro'
7
-
8
- # Theming
9
-
10
- With the fulldev-ui integration you can easily set a theme and generate a palette based on <Link href="https://www.radix-ui.com/colors">Radix Colors.</Link>
11
-
12
- ## Configuration
13
-
14
- ### Generating a color palette
15
-
16
- - **css** is the path to your custom css file that applies to all pages on your site.
17
- - **colors** is an object that defines the colors for your site.
18
- - **theme** is the default theme for your site.
19
- - **dark** and **light** are objects that define the colors for the dark and light themes, these three properties are used to generate a color pallete using radix colors.
20
-
21
- ```ts
22
- import { defineConfig } from 'astro/config'
23
- import fulldev from 'fulldev-ui/integration'
24
-
25
- // https://astro.build/config
26
- export default defineConfig({
27
- integrations: [
28
- fulldev({
29
- css: '/src/css/custom.css',
30
- colors: {
31
- theme: 'dark',
32
- dark: {
33
- background: '#111110',
34
- base: '#6F6D66',
35
- brand: '#F50',
36
- },
37
- light: {
38
- background: '#EEEEEC',
39
- base: '#6F6D66',
40
- brand: '#F50',
41
- },
42
- },
43
- }),
44
- ],
45
- })
46
- ```
47
-
48
- ### Generating favicons
49
-
50
- We've integrated <Link href="https://github.com/ACP-CODE/astro-favicons">astro-favicons</Link> into fulldev-ui to generate favicons from a svg file.
51
-
52
- ```ts
53
- import { defineConfig } from 'astro/config'
54
- import fulldev from 'fulldev-ui/integration'
55
-
56
- // https://astro.build/config
57
- export default defineConfig({
58
- integrations: [
59
- fulldev({
60
- favicon: 'src/images/favicon.svg', // can also be png, webp, jpg, etc.
61
- // other options here
62
- }),
63
- ],
64
- })
65
- ```
66
-
67
- ## Overwriting styles
68
-
69
- Since Fulldev UI uses just regular CSS with low specificity, you can customize anything else using custom CSS.
@@ -1,17 +0,0 @@
1
- ---
2
- presets: [docs]
3
-
4
- title: page
5
- ---
6
-
7
- # page-schema
8
-
9
- Objects in the page schema are used to define the structure of a page. They are used to define the information, content and components that are used to render the page.
10
-
11
- import { Code } from 'astro:components'
12
- import { zodToTs, createTypeAlias, printNode } from 'zod-to-ts'
13
- import pageSchema from 'fulldev-ui/schemas/pageSchema'
14
-
15
- export const identifier = 'Page'
16
- export const node = zodToTs(pageSchema, identifier)
17
- export const typeAlias = createTypeAlias(node, identifier)
@@ -1,9 +0,0 @@
1
- ---
2
- presets: [docs]
3
-
4
- title: preset
5
- ---
6
-
7
- # preset-schema
8
-
9
- import { Code } from 'astro:components'
@@ -1,3 +0,0 @@
1
- ---
2
- title: Test
3
- ---
@@ -1,73 +0,0 @@
1
- ---
2
- presets: [docs]
3
-
4
- title: Heading
5
- ---
6
-
7
- # Heading
8
-
9
- import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
10
-
11
- ```astro live
12
- ---
13
- import Heading from 'fulldev-ui/components/Heading.astro'
14
- ---
15
-
16
- <Heading>The quick brown fox jumps</Heading>
17
- ```
18
-
19
- ## Props
20
-
21
- <PropsTable />
22
-
23
- ## Examples
24
-
25
- ```astro live
26
- ---
27
- import Heading from 'fulldev-ui/components/Heading.astro'
28
- ---
29
-
30
- <Heading level={1}>The quick brown fox jumps</Heading>
31
- <Heading level={2}>The quick brown fox jumps</Heading>
32
- <Heading level={3}>The quick brown fox jumps</Heading>
33
- <Heading level={4}>The quick brown fox jumps</Heading>
34
- <Heading level={5}>The quick brown fox jumps</Heading>
35
- <Heading level={6}>The quick brown fox jumps</Heading>
36
- ```
37
-
38
- ```astro live
39
- ---
40
- import Heading from 'fulldev-ui/components/Heading.astro'
41
- ---
42
-
43
- <Heading size="sm">The quick brown fox jumps</Heading>
44
- <Heading size="md">The quick brown fox jumps</Heading>
45
- <Heading size="lg">The quick brown fox jumps</Heading>
46
- ```
47
-
48
- ```astro live
49
- ---
50
- import Heading from 'fulldev-ui/components/Heading.astro'
51
- ---
52
-
53
- <Heading>The quick brown fox jumps</Heading>
54
- <Heading contrast={false}>The quick brown fox jumps</Heading>
55
- ```
56
-
57
- ```astro live
58
- ---
59
- import Heading from 'fulldev-ui/components/Heading.astro'
60
- ---
61
-
62
- <Heading color="base">The quick brown fox jumps</Heading>
63
- <Heading color="brand">The quick brown fox jumps</Heading>
64
- ```
65
-
66
- ```astro live
67
- ---
68
- import Heading from 'fulldev-ui/components/Heading.astro'
69
- ---
70
-
71
- <Heading contrast={false} color="base">The quick brown fox jumps</Heading>
72
- <Heading contrast={false} color="brand">The quick brown fox jumps</Heading>
73
- ```