feat(frontend): Tailwind v4 @theme + vite-plugin-pwa + local fonts
Replaced vite.config.js with laravel+tailwind v4+VitePWA config, added auth.js and touch.js entry points. Rewrote app.css with Tailwind v4 @theme custom tokens and local @font-face declarations for Plus Jakarta Sans (variable) and JetBrains Mono. Downloaded both woff2 font files locally to public/fonts/ — no CDN links. Vite build: exit 0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main
parent
fe3b8d904f
commit
318a6f1f6b
File diff suppressed because it is too large
Load Diff
|
|
@ -11,6 +11,7 @@
|
|||
"concurrently": "^9.0.1",
|
||||
"laravel-vite-plugin": "^3.1",
|
||||
"tailwindcss": "^4.0.0",
|
||||
"vite": "^8.0.0"
|
||||
"vite": "^8.0.0",
|
||||
"vite-plugin-pwa": "^1.3.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -1,11 +1,33 @@
|
|||
@import 'tailwindcss';
|
||||
|
||||
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
||||
@source '../../storage/framework/views/*.php';
|
||||
@source '../**/*.blade.php';
|
||||
@source '../**/*.js';
|
||||
@import "tailwindcss";
|
||||
|
||||
@theme {
|
||||
--font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
|
||||
'Segoe UI Symbol', 'Noto Color Emoji';
|
||||
--color-bg-base: #f0eee9;
|
||||
--color-text-primary: oklch(0.22 0.015 270);
|
||||
--color-text-secondary: oklch(0.42 0.012 270);
|
||||
--color-text-muted: oklch(0.58 0.01 270);
|
||||
--color-border-subtle: oklch(0.92 0.006 85);
|
||||
--font-display: 'Plus Jakarta Sans', sans-serif;
|
||||
--font-mono: 'JetBrains Mono', monospace;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Plus Jakarta Sans';
|
||||
src: url('/fonts/PlusJakartaSans-VariableFont_wght.woff2') format('woff2');
|
||||
font-weight: 100 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'JetBrains Mono';
|
||||
src: url('/fonts/JetBrainsMono-Regular.woff2') format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--color-bg-base);
|
||||
color: var(--color-text-primary);
|
||||
font-family: var(--font-display);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
// Auth entry point
|
||||
|
|
@ -0,0 +1 @@
|
|||
// Touch/tracing entry point for Vorschule (Phase 7)
|
||||
|
|
@ -1,24 +1,45 @@
|
|||
import { defineConfig } from 'vite';
|
||||
import laravel from 'laravel-vite-plugin';
|
||||
import { bunny } from 'laravel-vite-plugin/fonts';
|
||||
import tailwindcss from '@tailwindcss/vite';
|
||||
import { VitePWA } from 'vite-plugin-pwa';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
laravel({
|
||||
input: ['resources/css/app.css', 'resources/js/app.js'],
|
||||
refresh: true,
|
||||
fonts: [
|
||||
bunny('Instrument Sans', {
|
||||
weights: [400, 500, 600],
|
||||
}),
|
||||
input: [
|
||||
'resources/css/app.css',
|
||||
'resources/js/auth.js',
|
||||
'resources/js/app.js',
|
||||
'resources/js/touch.js',
|
||||
],
|
||||
refresh: true,
|
||||
}),
|
||||
tailwindcss(),
|
||||
VitePWA({
|
||||
registerType: 'autoUpdate',
|
||||
manifest: false,
|
||||
workbox: {
|
||||
runtimeCaching: [
|
||||
{
|
||||
urlPattern: /\.(?:js|css|woff2|png|svg|ico)$/,
|
||||
handler: 'CacheFirst',
|
||||
},
|
||||
{
|
||||
urlPattern: /\/.*$/,
|
||||
handler: 'NetworkOnly',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
],
|
||||
server: {
|
||||
watch: {
|
||||
ignored: ['**/storage/framework/views/**'],
|
||||
host: '0.0.0.0',
|
||||
port: 5173,
|
||||
hmr: {
|
||||
host: 'app.dev.lernschiff.com',
|
||||
protocol: 'wss',
|
||||
clientPort: 443,
|
||||
},
|
||||
cors: true,
|
||||
},
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue