diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 16:37:44 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 16:37:44 +0200 |
| commit | ed39c60ebc10efe2b644172e7c82f943c4fba3cc (patch) | |
| tree | 6c83a4fe42857117229be57418e7160583bf57d5 /src | |
bootstrap: SvelteKit + adapter-node + plain CSS + Vitest
@libsql/client + Drizzle ORM for SQLite, Prettier + ESLint flat config.
Multi-stage Dockerfile (node:26-slim) for Caddy-backed deployment.
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.css | 37 | ||||
| -rw-r--r-- | src/app.d.ts | 7 | ||||
| -rw-r--r-- | src/app.html | 12 | ||||
| -rw-r--r-- | src/routes/+layout.svelte | 19 | ||||
| -rw-r--r-- | src/routes/+page.svelte | 6 | ||||
| -rw-r--r-- | src/smoke.test.ts | 7 |
6 files changed, 88 insertions, 0 deletions
diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..3d027fb --- /dev/null +++ b/src/app.css @@ -0,0 +1,37 @@ +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +:root { + font-family: + system-ui, + -apple-system, + sans-serif; + font-size: 16px; + line-height: 1.5; + color: #1a1a1a; + background-color: #fafafa; +} + +body { + min-height: 100dvh; +} + +h1 { + font-size: 2rem; + font-weight: 700; +} + +h2 { + font-size: 1.5rem; + font-weight: 600; +} + +button { + cursor: pointer; + font-family: inherit; +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..901835a --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,7 @@ +import 'svelte'; + +declare global { + namespace App {} +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..0950b2d --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + <link rel="icon" href="%sveltekit.assets%/favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + %sveltekit.head% + </head> + <body> + <div style="display: contents">%sveltekit.body%</div> + </body> +</html> diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..db5327e --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,19 @@ +<script> + let { children } = $props(); +</script> + +<svelte:head> + <title>Home</title> +</svelte:head> + +<div class="app"> + {@render children()} +</div> + +<style> + .app { + max-width: 48rem; + margin: 0 auto; + padding: 1rem; + } +</style> diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..1b6e963 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,6 @@ +<script> + import '../app.css'; +</script> + +<h1>Home</h1> +<p>Welcome! Groceries and chores coming soon.</p> diff --git a/src/smoke.test.ts b/src/smoke.test.ts new file mode 100644 index 0000000..ae2b326 --- /dev/null +++ b/src/smoke.test.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('smoke', () => { + it('math works', () => { + expect(1 + 1).toBe(2); + }); +}); |
