Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
# Production license for @nuxt/ui-pro, get one at https://ui.nuxt.com/pro/purchase
NUXT_UI_PRO_LICENSE=

# Public URL, used for OG Image when running nuxt generate
NUXT_PUBLIC_SITE_URL=
37 changes: 7 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
# Nuxt Docs Template

[![Nuxt UI Pro](https://img.shields.io/badge/Made%20with-Nuxt%20UI%20Pro-00DC82?logo=nuxt&labelColor=020420)](https://ui.nuxt.com/pro)
[![Deploy to NuxtHub](https://img.shields.io/badge/Deploy%20to-NuxtHub-00DC82?logo=nuxt&labelColor=020420)](https://hub.nuxt.com/new?repo=nuxt-ui-pro/docs)
[![Nuxt UI](https://img.shields.io/badge/Made%20with-Nuxt%20UI-00DC82?logo=nuxt&labelColor=020420)](https://ui.nuxt.com)

This template lets you build a documentation with [Nuxt UI Pro](https://ui.nuxt.com/pro) quickly.
Use this template to build your own documentation with [Nuxt UI](https://ui.nuxt.com) quickly.

- [Live demo](https://docs-template.nuxt.dev/)
- [Documentation](https://ui.nuxt.com/getting-started/installation/pro/nuxt)
- [Documentation](https://ui4.nuxt.com/docs/getting-started/installation)

<a href="https://docs-template.nuxt.dev/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://assets.hub.nuxt.com/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RvY3MtdGVtcGxhdGUubnV4dC5kZXYiLCJpYXQiOjE3Mzk0NjM0MTd9.ltVAqPgKG38O01X1zl6MXfrJc55nf9OewXNFjpZ_2JY.jpg?theme=dark">
<source media="(prefers-color-scheme: light)" srcset="https://assets.hub.nuxt.com/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RvY3MtdGVtcGxhdGUubnV4dC5kZXYiLCJpYXQiOjE3Mzk0NjM0MTd9.ltVAqPgKG38O01X1zl6MXfrJc55nf9OewXNFjpZ_2JY.jpg?theme=light">
<img alt="Nuxt Docs Template" src="https://assets.hub.nuxt.com/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RvY3MtdGVtcGxhdGUubnV4dC5kZXYiLCJpYXQiOjE3Mzk0NjM0MTd9.ltVAqPgKG38O01X1zl6MXfrJc55nf9OewXNFjpZ_2JY.jpg">
<source media="(prefers-color-scheme: dark)" srcset="https://ui4.nuxt.com/assets/templates/nuxt/docs-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://ui4.nuxt.com/assets/templates/nuxt/docs-light.png">
<img alt="Nuxt Docs Template" src="https://ui4.nuxt.com/assets/templates/nuxt/docs-light.png">
</picture>
</a>

## Quick Start

```bash [Terminal]
npx nuxi init -t github:nuxt-ui-pro/docs
npx nuxi init -t github:nuxt-ui-templates/docs
```

## Setup
Expand Down Expand Up @@ -54,28 +53,6 @@ pnpm preview

Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.

## Nuxt Studio integration

Studio is an intuitive CMS interface to edit your Nuxt Content websites.

It take advantage of the Preview API included in Nuxt Content to propose the best editing experience for your content files. Editors can benefit from a user-friendly interface to edit their Markdown, YAML or JSON files.

You can import your project on the platform without any extra setup.

However to enable the live preview on the platform, you just need to activate studio in the content configuration of your `nuxt.config.ts` file.

```ts [nuxt.config.ts]
export default defineNuxtConfig({
content: {
preview: {
api: 'https://api.nuxt.studio'
}
}
})
```

Read more on [Nuxt Studio docs](https://content.nuxt.com/studio/setup).

## Renovate integration

Install [Renovate GitHub app](https://github.com/apps/renovate/installations/select_target) on your repository and you are good to go.
23 changes: 8 additions & 15 deletions app/app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ export default defineAppConfig({
colors: {
primary: 'green',
neutral: 'slate'
}
},
uiPro: {
},
footer: {
slots: {
root: 'border-t border-default',
Expand All @@ -28,13 +26,13 @@ export default defineAppConfig({
colorMode: true,
links: [{
'icon': 'i-simple-icons-github',
'to': 'https://github.com/nuxt-ui-pro/docs',
'to': 'https://github.com/nuxt-ui-templates/docs',
'target': '_blank',
'aria-label': 'GitHub'
}]
},
footer: {
credits: `Copyright © ${new Date().getFullYear()}`,
credits: `Built with Nuxt UI • © ${new Date().getFullYear()}`,
colorMode: false,
links: [{
'icon': 'i-simple-icons-nuxtdotjs',
Expand All @@ -43,12 +41,12 @@ export default defineAppConfig({
'aria-label': 'Nuxt Website'
}, {
'icon': 'i-simple-icons-discord',
'to': 'https://discord.com/invite/ps2h6QT',
'to': 'https://go.nuxt.com/discord',
'target': '_blank',
'aria-label': 'Nuxt UI on Discord'
}, {
'icon': 'i-simple-icons-x',
'to': 'https://x.com/nuxt_js',
'to': 'https://go.nuxt.com/x',
'target': '_blank',
'aria-label': 'Nuxt on X'
}, {
Expand All @@ -62,21 +60,16 @@ export default defineAppConfig({
title: 'Table of Contents',
bottom: {
title: 'Community',
edit: 'https://github.com/nuxt-ui-pro/docs/edit/main/content',
edit: 'https://github.com/nuxt-ui-templates/docs/edit/main/content',
links: [{
icon: 'i-lucide-star',
label: 'Star on GitHub',
to: 'https://github.com/nuxt/ui',
target: '_blank'
}, {
icon: 'i-lucide-book-open',
label: 'Nuxt UI Pro docs',
to: 'https://ui.nuxt.com/getting-started/installation/pro/nuxt',
target: '_blank'
}, {
icon: 'i-simple-icons-nuxtdotjs',
label: 'Purchase a license',
to: 'https://ui.nuxt.com/pro/purchase',
label: 'Nuxt UI docs',
to: 'https://ui4.nuxt.com/docs/getting-started/installation/nuxt',
target: '_blank'
}]
}
Expand Down
7 changes: 6 additions & 1 deletion app/assets/css/main.css
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
@import "tailwindcss";
@import "@nuxt/ui-pro";
@import "@nuxt/ui";

@source "../../../content/**/*";

@theme static {
--container-8xl: 90rem;
--font-sans: 'Public Sans', sans-serif;

--color-green-50: #EFFDF5;
Expand All @@ -18,3 +19,7 @@
--color-green-900: #0A5331;
--color-green-950: #052E16;
}

:root {
--ui-container: var(--container-8xl);
}
2 changes: 1 addition & 1 deletion app/components/AppHeader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const { header } = useAppConfig()
#left
>
<NuxtLink :to="header?.to || '/'">
<LogoPro class="w-auto h-6 shrink-0" />
<AppLogo class="w-auto h-6 shrink-0" />
</NuxtLink>

<TemplateMenu />
Expand Down
18 changes: 3 additions & 15 deletions app/components/LogoPro.vue → app/components/AppLogo.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<template>
<svg
width="1352"
width="1020"
height="200"
viewBox="0 0 1352 200"
viewBox="0 0 1020 200"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
Expand All @@ -28,24 +28,12 @@
/>
<path
d="M958 60.0001H938C933.524 60.0001 929.926 59.9395 927 63C924.074 65.8905 925 67.5792 925 72V141C925 151.372 923.648 156.899 919 162C914.352 166.931 908.468 169 899 169C889.705 169 882.648 166.931 878 162C873.352 156.899 873 151.372 873 141V72.0001C873 67.5793 872.926 65.8906 870 63.0001C867.074 59.9396 863.476 60.0001 859 60.0001H840V141C840 159.023 845.016 173.458 855 184C865.156 194.542 879.893 200 899 200C918.107 200 932.844 194.542 943 184C953.156 173.458 958 159.023 958 141V60.0001Z"
fill="currentColor"
fill="var(--ui-primary)"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M1000 60.0233L1020 60V77L1020 128V156.007L1020 181L1020 189.004C1020 192.938 1019.98 194.429 1017 197.001C1014.02 199.725 1009.56 200 1005 200H986.001V181.006L986 130.012V70.0215C986 66.1576 986.016 64.5494 989 62.023C991.819 59.6358 995.437 60.0233 1000 60.0233Z"
fill="currentColor"
/>
<path
d="M1060 200V60H1117C1126.67 60 1134.98 61.2896 1142 65C1149.16 68.7104 1155.29 74.3744 1159 81C1162.71 87.6256 1164 95.3867 1164 104C1164 112.481 1162.71 120.374 1159 127C1155.29 133.626 1149.16 138.157 1142 142C1134.98 145.71 1126.67 148 1117 148H1090V200H1060ZM1115 123C1121.63 123 1126.69 121.578 1130 118C1133.31 114.29 1135 109.433 1135 104C1135 98.567 1133.31 93.5778 1130 90C1126.69 86.2896 1121.63 85 1115 85H1090V123H1115Z"
fill="var(--ui-primary)"
/>
<path
d="M1226 123C1219.37 123 1214.31 124.965 1211 130C1207.69 135.035 1206 142.122 1206 151V200H1178V100H1200C1203.31 100 1206 102.686 1206 106V116C1208.65 109.904 1211.16 106.518 1215 104C1218.98 101.482 1224.77 100 1231 100H1242V123H1226Z"
fill="var(--ui-primary)"
/>
<path
d="M1299 200C1288.93 200 1280.08 197.373 1272 193C1263.92 188.495 1257.51 182.818 1253 175C1248.49 167.049 1246 157.806 1246 148C1246 138.194 1248.49 129.818 1253 122C1257.51 114.049 1263.92 107.373 1272 103C1280.08 98.4946 1288.93 97 1299 97C1309.07 97 1318.92 98.4946 1327 103C1335.08 107.373 1340.49 114.049 1345 122C1349.51 129.818 1352 138.194 1352 148C1352 157.806 1349.51 167.049 1345 175C1340.49 182.818 1335.08 188.495 1327 193C1318.92 197.373 1309.07 200 1299 200ZM1299 176C1306.42 176 1312.36 173.168 1317 168C1321.64 162.832 1324 156.216 1324 148C1324 139.652 1321.64 133.168 1317 128C1312.36 122.832 1306.42 120 1299 120C1291.58 120 1285.64 122.832 1281 128C1276.36 133.168 1274 139.652 1274 148C1274 156.216 1276.36 162.832 1281 168C1285.64 173.168 1291.58 176 1299 176Z"
fill="var(--ui-primary)"
/>
</svg>
Expand Down
5 changes: 4 additions & 1 deletion app/components/TemplateMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
:modal="false"
:items="[{
label: 'Starter',
to: 'https://ui-pro-starter.nuxt.dev/'
to: 'https://starter-template.nuxt.dev/'
}, {
label: 'Landing',
to: 'https://landing-template.nuxt.dev/'
Expand All @@ -23,6 +23,9 @@
}, {
label: 'Chat',
to: 'https://chat-template.nuxt.dev/'
}, {
label: 'Portfolio',
to: 'https://portfolio-template.nuxt.dev/'
}]"
:ui="{ content: 'w-(--reka-dropdown-menu-trigger-width) min-w-0' }"
size="xs"
Expand Down
88 changes: 88 additions & 0 deletions app/components/content/HeroBackground.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<script setup lang="ts">
const { isLoading } = useLoadingIndicator()

const appear = ref(false)
const appeared = ref(false)

onMounted(() => {
setTimeout(() => {
appear.value = true
setTimeout(() => {
appeared.value = true
}, 1000)
}, 0)
})
</script>

<template>
<div
class="absolute w-full -top-px transition-all text-primary shrink-0"
:class="[
isLoading ? 'animate-pulse' : (appear ? '' : 'opacity-0'),
appeared ? 'duration-[400ms]': 'duration-1000'
]"
>
<svg
viewBox="0 0 1440 181"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="pointer-events-none"
>
<mask
id="path-1-inside-1_414_5526"
fill="white"
>
<path d="M0 0H1440V181H0V0Z" />
</mask>
<path
d="M0 0H1440V181H0V0Z"
fill="url(#paint0_linear_414_5526)"
fill-opacity="0.22"
/>
<path
d="M0 2H1440V-2H0V2Z"
fill="url(#paint1_linear_414_5526)"
mask="url(#path-1-inside-1_414_5526)"
/>
<defs>
<linearGradient
id="paint0_linear_414_5526"
x1="720"
y1="0"
x2="720"
y2="181"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="currentColor" />
<stop
offset="1"
stop-color="currentColor"
stop-opacity="0"
/>
</linearGradient>
<linearGradient
id="paint1_linear_414_5526"
x1="0"
y1="90.5"
x2="1440"
y2="90.5"
gradientUnits="userSpaceOnUse"
>
<stop
stop-color="currentColor"
stop-opacity="0"
/>
<stop
offset="0.395"
stop-color="currentColor"
/>
<stop
offset="1"
stop-color="currentColor"
stop-opacity="0"
/>
</linearGradient>
</defs>
</svg>
</div>
</template>
Loading