@aerobuilt/template-minimal 0.1.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/README.md ADDED
@@ -0,0 +1,18 @@
1
+ # @aerobuilt/template-minimal
2
+
3
+ Minimal Aero template: one layout, index + about, `site.ts` only. No server, no content collections, no Alpine/HTMX. Use with `pnpm create aero my-app` (default) or `pnpm create aero my-app --template minimal`.
4
+
5
+ ## Structure
6
+
7
+ - `client/` — Pages, layouts, components, assets
8
+ - `content/site.ts` — Global site data
9
+ - `public/` — Static assets
10
+ - No `server/` — static-only
11
+
12
+ ## Commands
13
+
14
+ From the scaffolded project (after `pnpm create aero my-app`):
15
+
16
+ - `pnpm dev` — Vite dev server
17
+ - `pnpm build` — Static build to `dist/`
18
+ - `pnpm preview` — Preview built site
@@ -0,0 +1,2 @@
1
+ import aero from 'aerobuilt'
2
+ aero.mount()
@@ -0,0 +1,18 @@
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ html,
10
+ body {
11
+ font-family: system-ui, sans-serif;
12
+ height: 100%;
13
+ }
14
+
15
+ body {
16
+ place-content: center;
17
+ text-align: center;
18
+ }
@@ -0,0 +1,29 @@
1
+ <script is:build>
2
+ import site from '@content/site'
3
+ const links = site.footer.links
4
+ </script>
5
+
6
+ <footer>
7
+ <ul>
8
+ <li each="{link in links}">
9
+ <a href="{link.path}">{link.label}</a>
10
+ </li>
11
+ </ul>
12
+ <style>
13
+ @scope {
14
+ :scope {
15
+ position: fixed;
16
+ inset-inline: 0;
17
+ margin-inline: auto;
18
+ bottom: 2rem;
19
+ width: fit-content;
20
+ }
21
+ ul {
22
+ display: flex;
23
+ gap: 2rem;
24
+ justify-content: center;
25
+ list-style-type: none;
26
+ }
27
+ }
28
+ </style>
29
+ </footer>
@@ -0,0 +1,14 @@
1
+ <script is:build>
2
+ const props = Aero.props
3
+ </script>
4
+
5
+ <header>
6
+ <h1>{props.title || 'Fallback Title'}</h1>
7
+ <p class="subtitle">{props.subtitle}</p>
8
+ </header>
9
+
10
+ <style>
11
+ .subtitle {
12
+ opacity: 0.5;
13
+ }
14
+ </style>
@@ -0,0 +1,19 @@
1
+ <script is:build>
2
+ import site from '@content/site'
3
+ const { title, description, image } = Aero.props
4
+ const defaultImage = Aero.site + site.meta.ogImage
5
+ </script>
6
+
7
+ <meta charset="utf-8" />
8
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
9
+
10
+ <title>{title || site.meta.title}</title>
11
+ <meta name="title" content="{title || site.meta.title}" />
12
+ <meta name="description" content="{description || site.meta.description}" />
13
+ <link rel="icon" type="image/svg+xml" href="{site.meta.icon.svg}" />
14
+ <link rel="canonical" href="{Aero.site}" />
15
+
16
+ <meta property="og:type" content="website" />
17
+ <meta property="og:title" content="{title || site.meta.title}" />
18
+ <meta property="og:description" content="{description || site.meta.description}" />
19
+ <meta property="og:image" content="{image || defaultImage}" />
@@ -0,0 +1,20 @@
1
+ <script is:build>
2
+ import meta from '@components/meta'
3
+ import footer from '@components/footer'
4
+ </script>
5
+
6
+ <html lang="en">
7
+ <head>
8
+ <meta-component props="{...Aero.props}" />
9
+ <link rel="stylesheet" href="@styles/global.css" />
10
+ <script type="module">
11
+ import aero from 'aerobuilt'
12
+ aero.mount()
13
+ </script>
14
+ </head>
15
+
16
+ <body id="app">
17
+ <slot></slot>
18
+ <footer-component />
19
+ </body>
20
+ </html>
@@ -0,0 +1,9 @@
1
+ <script is:build>
2
+ import base from '@layouts/base'
3
+ import header from '@components/header'
4
+ import site from '@content/site'
5
+ </script>
6
+
7
+ <base-layout title="Meta Title">
8
+ <header-component title="{site.about.title}" subtitle="{site.about.subtitle}" />
9
+ </base-layout>
@@ -0,0 +1,14 @@
1
+ <script is:build>
2
+ import base from '@layouts/base'
3
+ import header from '@components/header'
4
+ import site from '@content/site'
5
+
6
+ const headerProps = {
7
+ title: site.home.title,
8
+ subtitle: site.home.subtitle,
9
+ }
10
+ </script>
11
+
12
+ <base-layout>
13
+ <header-component props="{...headerProps}" />
14
+ </base-layout>
@@ -0,0 +1,26 @@
1
+ export default {
2
+ meta: {
3
+ title: 'Minimal Template',
4
+ description: 'Site Meta Description',
5
+ ogImage: '/aero.png',
6
+ icon: {
7
+ ico: '/favicon.ico',
8
+ svg: '/favicon.svg',
9
+ apple: '/apple-touch-icon.png',
10
+ },
11
+ },
12
+ home: {
13
+ title: 'Welcome to Aero',
14
+ subtitle: 'A minimal static site with HTML-first templates.',
15
+ },
16
+ about: {
17
+ title: 'About',
18
+ subtitle: 'A minimal about page.',
19
+ },
20
+ footer: {
21
+ links: [
22
+ { label: 'Home', path: '/' },
23
+ { label: 'About', path: '/about' },
24
+ ],
25
+ },
26
+ }
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@aerobuilt/template-minimal",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "author": "Jamie Wilson",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/aerobuilt/aero.git",
10
+ "directory": "packages/templates/minimal"
11
+ },
12
+ "homepage": "https://github.com/aerobuilt/aero",
13
+ "dependencies": {
14
+ "aerobuilt": "0.1.0"
15
+ },
16
+ "devDependencies": {
17
+ "autoprefixer": "^10.4.24",
18
+ "vite": "8.0.0-beta.15"
19
+ },
20
+ "scripts": {
21
+ "dev": "vite dev",
22
+ "build": "vite build",
23
+ "preview": "vite build && vite preview"
24
+ }
25
+ }
@@ -0,0 +1,7 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ fill="gold"
4
+ fill-rule="evenodd"
5
+ clip-rule="evenodd"
6
+ d="M19.6667 1.99469H17.1813L7.84799 17.9947L7.84799 20H14.3333V30L16.8187 30.0054L26.152 14.0054V12H19.6667V1.99469Z" />
7
+ </svg>
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "types": ["vite/client"],
7
+ "paths": {
8
+ "~/*": ["./*"],
9
+ "@client/*": ["./client/*"],
10
+ "@content/*": ["./content/*"],
11
+ "@pages/*": ["./client/pages/*"],
12
+ "@layouts/*": ["./client/layouts/*"],
13
+ "@components/*": ["./client/components/*"],
14
+ "@styles/*": ["./client/assets/styles/*"],
15
+ "@scripts/*": ["./client/assets/scripts/*"],
16
+ "@images/*": ["./client/assets/images/*"]
17
+ }
18
+ }
19
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { aero } from 'aerobuilt/vite'
2
+ import { defineConfig } from 'vite'
3
+
4
+ export default defineConfig({
5
+ plugins: aero(),
6
+ })