first commit
This commit is contained in:
commit
405df0a122
3083 changed files with 69203 additions and 0 deletions
83
dev/config-vite/devcontainer.json
Normal file
83
dev/config-vite/devcontainer.json
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"name": "B2In (Dev Container)",
|
||||
// 1. DIES IST DER WICHTIGSTE TEIL:
|
||||
// Wir verwenden Docker Compose für alle Services
|
||||
"dockerComposeFile": [
|
||||
"../docker-compose.yml"
|
||||
],
|
||||
"service": "laravel.test",
|
||||
// 3. WIR DEFINIEREN DEN ARBEITSBEREICH:
|
||||
// Das ist der Pfad, in dem Ihr Code *innerhalb* des Containers liegt.
|
||||
"workspaceFolder": "/var/www/html",
|
||||
// 4. WIR LEGEN DEN BENUTZER FEST:
|
||||
// Laravel Sail führt Befehle standardmäßig als 'sail'-Benutzer aus, um Berechtigungsprobleme zu vermeiden.
|
||||
"remoteUser": "sail",
|
||||
// 5. ZUSÄTZLICHE ENTWICKLER-TOOLS (FEATURES):
|
||||
// Features werden über postCreateCommand installiert um Kompatibilitätsprobleme zu vermeiden
|
||||
"features": {},
|
||||
// 6. BEFEHLE NACH DEM ERSTELLEN:
|
||||
// Installiert nur die Tools die ohne Root-Rechte funktionieren
|
||||
//"postCreateCommand": "composer install --no-interaction --prefer-dist --optimize-autoloader",
|
||||
// 7. EDITOR-ANPASSUNGEN (Optional, aber sehr empfohlen):
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"bmewburn.vscode-intelephense-client",
|
||||
"onecentlin.laravel-blade",
|
||||
"shufo.vscode-blade-formatter",
|
||||
"bradlc.vscode-tailwindcss"
|
||||
]
|
||||
}
|
||||
},
|
||||
// 8. ZU STARTENDE DIENSTE:
|
||||
// Legt fest, welche Dienste aus der docker-compose.yml gestartet werden sollen.
|
||||
"runServices": [
|
||||
"laravel.test",
|
||||
"mysql",
|
||||
"redis",
|
||||
"mailpit"
|
||||
],
|
||||
// 9. ZUSÄTZLICHE KONFIGURATION:
|
||||
// Umgebungsvariablen für den DevContainer
|
||||
"containerEnv": {
|
||||
"WWWUSER": "501",
|
||||
"WWWGROUP": "20",
|
||||
"LARAVEL_SAIL": "1"
|
||||
},
|
||||
// 10. MOUNT-KONFIGURATION:
|
||||
// Stellt sicher, dass der Code korrekt gemountet wird
|
||||
"mounts": [
|
||||
"source=${localWorkspaceFolder},target=/var/www/html,type=bind,consistency=cached"
|
||||
],
|
||||
// 11. FORWARD PORTS:
|
||||
// Ports die automatisch weitergeleitet werden sollen
|
||||
"forwardPorts": [
|
||||
5174,
|
||||
5175,
|
||||
33067,
|
||||
6381,
|
||||
8026
|
||||
],
|
||||
"portsAttributes": {
|
||||
"5174": {
|
||||
"label": "Vite Dev Server (Portal)",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"5175": {
|
||||
"label": "Vite Dev Server (Web)",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"33067": {
|
||||
"label": "MySQL",
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
"6381": {
|
||||
"label": "Redis",
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
"8026": {
|
||||
"label": "Mailpit Dashboard",
|
||||
"onAutoForward": "notify"
|
||||
}
|
||||
}
|
||||
}
|
||||
33
dev/config-vite/package.json
Normal file
33
dev/config-vite/package.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "vite build",
|
||||
"dev": "vite",
|
||||
"dev:web": "vite --config vite.web.config.js",
|
||||
"build:portal": "vite build --config vite.portal.config.js",
|
||||
"build:web": "npm run build:b2in && npm run build:b2a && npm run build:stileigentum && npm run build:style2own",
|
||||
"build:b2in": "THEME=b2in vite build --config vite.web.config.js",
|
||||
"build:b2a": "THEME=b2a vite build --config vite.web.config.js",
|
||||
"build:stileigentum": "THEME=stileigentum vite build --config vite.web.config.js",
|
||||
"build:style2own": "THEME=style2own vite build --config vite.web.config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tailwindcss/vite": "^4.0.7",
|
||||
"alpinejs": "^3.14.9",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"axios": "^1.7.4",
|
||||
"concurrently": "^9.0.1",
|
||||
"laravel-vite-plugin": "^1.0",
|
||||
"tailwindcss": "^4.0.7",
|
||||
"vite": "^6.0",
|
||||
"@fontsource/instrument-sans": "^5.0.0",
|
||||
"@fontsource/inter": "^5.0.0",
|
||||
"@fontsource/poppins": "^5.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-linux-x64-gnu": "4.9.5",
|
||||
"@tailwindcss/oxide-linux-x64-gnu": "^4.0.1",
|
||||
"lightningcss-linux-x64-gnu": "^1.29.1"
|
||||
}
|
||||
}
|
||||
1
dev/config-vite/public/build/b2a/app-l0sNRNKZ.js
Normal file
1
dev/config-vite/public/build/b2a/app-l0sNRNKZ.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
33
dev/config-vite/public/build/b2a/manifest.json
Normal file
33
dev/config-vite/public/build/b2a/manifest.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"resources/css/web/shared-styles.css": {
|
||||
"file": "shared-styles-BpmL0S84.css",
|
||||
"src": "resources/css/web/shared-styles.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2a.css": {
|
||||
"file": "theme-b2a-BVR9j-ut.css",
|
||||
"src": "resources/css/web/theme-b2a.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2in.css": {
|
||||
"file": "theme-b2in-oKARomDq.css",
|
||||
"src": "resources/css/web/theme-b2in.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-stileigentum.css": {
|
||||
"file": "theme-stileigentum-cxAk5yJt.css",
|
||||
"src": "resources/css/web/theme-stileigentum.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-style2own.css": {
|
||||
"file": "theme-style2own-aIcZwV5c.css",
|
||||
"src": "resources/css/web/theme-style2own.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "app-l0sNRNKZ.js",
|
||||
"name": "app",
|
||||
"src": "resources/js/app.js",
|
||||
"isEntry": true
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/b2a/theme-b2a-BVR9j-ut.css
Normal file
1
dev/config-vite/public/build/b2a/theme-b2a-BVR9j-ut.css
Normal file
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/b2a/theme-b2in-oKARomDq.css
Normal file
1
dev/config-vite/public/build/b2a/theme-b2in-oKARomDq.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/b2in/app-l0sNRNKZ.js
Normal file
1
dev/config-vite/public/build/b2in/app-l0sNRNKZ.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
33
dev/config-vite/public/build/b2in/manifest.json
Normal file
33
dev/config-vite/public/build/b2in/manifest.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"resources/css/web/shared-styles.css": {
|
||||
"file": "shared-styles-BpmL0S84.css",
|
||||
"src": "resources/css/web/shared-styles.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2a.css": {
|
||||
"file": "theme-b2a-BVR9j-ut.css",
|
||||
"src": "resources/css/web/theme-b2a.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2in.css": {
|
||||
"file": "theme-b2in-oKARomDq.css",
|
||||
"src": "resources/css/web/theme-b2in.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-stileigentum.css": {
|
||||
"file": "theme-stileigentum-cxAk5yJt.css",
|
||||
"src": "resources/css/web/theme-stileigentum.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-style2own.css": {
|
||||
"file": "theme-style2own-aIcZwV5c.css",
|
||||
"src": "resources/css/web/theme-style2own.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "app-l0sNRNKZ.js",
|
||||
"name": "app",
|
||||
"src": "resources/js/app.js",
|
||||
"isEntry": true
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/b2in/theme-b2a-BVR9j-ut.css
Normal file
1
dev/config-vite/public/build/b2in/theme-b2a-BVR9j-ut.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/portal/app-l0sNRNKZ.js
Normal file
1
dev/config-vite/public/build/portal/app-l0sNRNKZ.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
13
dev/config-vite/public/build/portal/manifest.json
Normal file
13
dev/config-vite/public/build/portal/manifest.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"resources/css/portal.css": {
|
||||
"file": "portal-CK12WEW2.css",
|
||||
"src": "resources/css/portal.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "app-l0sNRNKZ.js",
|
||||
"name": "app",
|
||||
"src": "resources/js/app.js",
|
||||
"isEntry": true
|
||||
}
|
||||
}
|
||||
1
dev/config-vite/public/build/portal/portal-CK12WEW2.css
Normal file
1
dev/config-vite/public/build/portal/portal-CK12WEW2.css
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
|
||||
33
dev/config-vite/public/build/stileigentum/manifest.json
Normal file
33
dev/config-vite/public/build/stileigentum/manifest.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"resources/css/web/shared-styles.css": {
|
||||
"file": "shared-styles-BpmL0S84.css",
|
||||
"src": "resources/css/web/shared-styles.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2a.css": {
|
||||
"file": "theme-b2a-BVR9j-ut.css",
|
||||
"src": "resources/css/web/theme-b2a.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2in.css": {
|
||||
"file": "theme-b2in-oKARomDq.css",
|
||||
"src": "resources/css/web/theme-b2in.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-stileigentum.css": {
|
||||
"file": "theme-stileigentum-cxAk5yJt.css",
|
||||
"src": "resources/css/web/theme-stileigentum.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-style2own.css": {
|
||||
"file": "theme-style2own-aIcZwV5c.css",
|
||||
"src": "resources/css/web/theme-style2own.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "app-l0sNRNKZ.js",
|
||||
"name": "app",
|
||||
"src": "resources/js/app.js",
|
||||
"isEntry": true
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dev/config-vite/public/build/style2own/app-l0sNRNKZ.js
Normal file
1
dev/config-vite/public/build/style2own/app-l0sNRNKZ.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
33
dev/config-vite/public/build/style2own/manifest.json
Normal file
33
dev/config-vite/public/build/style2own/manifest.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"resources/css/web/shared-styles.css": {
|
||||
"file": "shared-styles-BpmL0S84.css",
|
||||
"src": "resources/css/web/shared-styles.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2a.css": {
|
||||
"file": "theme-b2a-BVR9j-ut.css",
|
||||
"src": "resources/css/web/theme-b2a.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-b2in.css": {
|
||||
"file": "theme-b2in-oKARomDq.css",
|
||||
"src": "resources/css/web/theme-b2in.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-stileigentum.css": {
|
||||
"file": "theme-stileigentum-cxAk5yJt.css",
|
||||
"src": "resources/css/web/theme-stileigentum.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/css/web/theme-style2own.css": {
|
||||
"file": "theme-style2own-aIcZwV5c.css",
|
||||
"src": "resources/css/web/theme-style2own.css",
|
||||
"isEntry": true
|
||||
},
|
||||
"resources/js/app.js": {
|
||||
"file": "app-l0sNRNKZ.js",
|
||||
"name": "app",
|
||||
"src": "resources/js/app.js",
|
||||
"isEntry": true
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
66
dev/config-vite/resources/css/app.css
Normal file
66
dev/config-vite/resources/css/app.css
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
@import 'tailwindcss';
|
||||
@import '../../vendor/livewire/flux/dist/flux.css';
|
||||
|
||||
@source '../views';
|
||||
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
||||
@source '../../vendor/livewire/flux-pro/stubs/**/*.blade.php';
|
||||
@source '../../vendor/livewire/flux/stubs/**/*.blade.php';
|
||||
|
||||
@custom-variant dark (&:where(.dark, .dark *));
|
||||
|
||||
@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-zinc-50: #fafafa;
|
||||
--color-zinc-100: #f5f5f5;
|
||||
--color-zinc-200: #e5e5e5;
|
||||
--color-zinc-300: #d4d4d4;
|
||||
--color-zinc-400: #a3a3a3;
|
||||
--color-zinc-500: #737373;
|
||||
--color-zinc-600: #525252;
|
||||
--color-zinc-700: #404040;
|
||||
--color-zinc-800: #262626;
|
||||
--color-zinc-900: #171717;
|
||||
--color-zinc-950: #0a0a0a;
|
||||
|
||||
--color-accent: var(--color-neutral-800);
|
||||
--color-accent-content: var(--color-neutral-800);
|
||||
--color-accent-foreground: var(--color-white);
|
||||
}
|
||||
|
||||
@layer theme {
|
||||
.dark {
|
||||
--color-accent: var(--color-white);
|
||||
--color-accent-content: var(--color-white);
|
||||
--color-accent-foreground: var(--color-neutral-800);
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
|
||||
*,
|
||||
::after,
|
||||
::before,
|
||||
::backdrop,
|
||||
::file-selector-button {
|
||||
border-color: var(--color-gray-200, currentColor);
|
||||
}
|
||||
}
|
||||
|
||||
[data-flux-field]:not(ui-radio, ui-checkbox) {
|
||||
@apply grid gap-2;
|
||||
}
|
||||
|
||||
[data-flux-label] {
|
||||
@apply !mb-0 !leading-tight;
|
||||
}
|
||||
|
||||
input:focus[data-flux-control],
|
||||
textarea:focus[data-flux-control],
|
||||
select:focus[data-flux-control] {
|
||||
@apply outline-hidden ring-2 ring-accent ring-offset-2 ring-offset-accent-foreground;
|
||||
}
|
||||
|
||||
/* \[:where(&)\]:size-4 {
|
||||
@apply size-4;
|
||||
} */
|
||||
67
dev/config-vite/resources/css/portal.css
Normal file
67
dev/config-vite/resources/css/portal.css
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
@import "tailwindcss";
|
||||
@import "../../vendor/livewire/flux/dist/flux.css";
|
||||
|
||||
@source '../views';
|
||||
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
||||
@source '../../vendor/livewire/flux-pro/stubs/**/*.blade.php';
|
||||
@source '../../vendor/livewire/flux/stubs/**/*.blade.php';
|
||||
|
||||
@custom-variant dark (&:where(.dark, .dark *));
|
||||
|
||||
@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-zinc-50: #fafafa;
|
||||
--color-zinc-100: #f5f5f5;
|
||||
--color-zinc-200: #e5e5e5;
|
||||
--color-zinc-300: #d4d4d4;
|
||||
--color-zinc-400: #a3a3a3;
|
||||
--color-zinc-500: #737373;
|
||||
--color-zinc-600: #525252;
|
||||
--color-zinc-700: #404040;
|
||||
--color-zinc-800: #262626;
|
||||
--color-zinc-900: #171717;
|
||||
--color-zinc-950: #0a0a0a;
|
||||
|
||||
--color-accent: var(--color-neutral-800);
|
||||
--color-accent-content: var(--color-neutral-800);
|
||||
--color-accent-foreground: var(--color-white);
|
||||
}
|
||||
|
||||
@layer theme {
|
||||
.dark {
|
||||
--color-accent: var(--color-white);
|
||||
--color-accent-content: var(--color-white);
|
||||
--color-accent-foreground: var(--color-neutral-800);
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
*,
|
||||
::after,
|
||||
::before,
|
||||
::backdrop,
|
||||
::file-selector-button {
|
||||
border-color: var(--color-gray-200, currentColor);
|
||||
}
|
||||
}
|
||||
|
||||
[data-flux-field]:not(ui-radio, ui-checkbox) {
|
||||
@apply grid gap-2;
|
||||
}
|
||||
|
||||
[data-flux-label] {
|
||||
@apply !mb-0 !leading-tight;
|
||||
}
|
||||
|
||||
input:focus[data-flux-control],
|
||||
textarea:focus[data-flux-control],
|
||||
select:focus[data-flux-control] {
|
||||
@apply outline-hidden ring-2 ring-accent ring-offset-2 ring-offset-accent-foreground;
|
||||
}
|
||||
|
||||
/* \[:where(&)\]:size-4 {
|
||||
@apply size-4;
|
||||
} */
|
||||
437
dev/config-vite/resources/css/web/shared-styles.css
Normal file
437
dev/config-vite/resources/css/web/shared-styles.css
Normal file
|
|
@ -0,0 +1,437 @@
|
|||
/* Shared styles for all web themes - no @apply directives */
|
||||
|
||||
*,
|
||||
::before,
|
||||
::after {
|
||||
box-sizing: border-box;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: hsl(var(--border));
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: hsl(var(--background));
|
||||
color: hsl(var(--foreground));
|
||||
font-family: var(--font-primary, 'Inter'), system-ui, -apple-system, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: 500;
|
||||
letter-spacing: -0.025em;
|
||||
font-family: var(--font-secondary, 'Inter'), var(--font-primary, 'Inter'), system-ui, -apple-system, sans-serif;
|
||||
}
|
||||
|
||||
/* Typography scales */
|
||||
.text-hero {
|
||||
font-size: clamp(3rem, 4vw, 6rem);
|
||||
line-height: 1.1;
|
||||
font-weight: 300;
|
||||
letter-spacing: -0.025em;
|
||||
}
|
||||
|
||||
.text-section-title {
|
||||
font-size: clamp(1.6rem, 3vw, 3rem);
|
||||
font-weight: 300;
|
||||
letter-spacing: -0.025em;
|
||||
}
|
||||
|
||||
.text-large {
|
||||
font-size: clamp(1.1rem, 2vw, 1.2rem);
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
/* Border utilities to override the global border-width: 0 */
|
||||
.border-t {
|
||||
border-top-width: 1px !important;
|
||||
}
|
||||
.border-b {
|
||||
border-bottom-width: 1px !important;
|
||||
}
|
||||
.border-l {
|
||||
border-left-width: 1px !important;
|
||||
}
|
||||
.border-r {
|
||||
border-right-width: 1px !important;
|
||||
}
|
||||
.border {
|
||||
border-width: 1px !important;
|
||||
}
|
||||
|
||||
/* Button styles */
|
||||
.btn-primary {
|
||||
background-color: hsl(var(--primary));
|
||||
color: hsl(var(--primary-foreground));
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: hsl(var(--secondary));
|
||||
color: hsl(var(--secondary-foreground));
|
||||
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
||||
}
|
||||
.btn-primary-accent {
|
||||
background-color: hsl(var(--primary));
|
||||
color: hsl(var(--primary-foreground));
|
||||
border: 1px solid hsl(var(--border));
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-primary-accent:hover {
|
||||
background-color: hsl(var(--accent));
|
||||
color: hsl(var(--accent-foreground));
|
||||
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background-color: hsl(var(--secondary));
|
||||
color: hsl(var(--secondary-foreground));
|
||||
border: 1px solid hsl(var(--border));
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
background-color: hsl(var(--primary));
|
||||
color: hsl(var(--primary-foreground));
|
||||
}
|
||||
|
||||
.btn-secondary-accent {
|
||||
background-color: hsl(var(--secondary));
|
||||
color: hsl(var(--secondary-foreground));
|
||||
border: 1px solid hsl(var(--border));
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-secondary-accent:hover {
|
||||
background-color: hsl(var(--accent));
|
||||
color: hsl(var(--accent-foreground));
|
||||
}
|
||||
|
||||
.btn-accent {
|
||||
background-color: hsl(var(--accent));
|
||||
color: hsl(var(--accent-foreground));
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-accent:hover {
|
||||
background-color: hsl(var(--secondary));
|
||||
color: hsl(var(--secondary-foreground));
|
||||
box-shadow: var(--shadow-accent-glow);
|
||||
}
|
||||
|
||||
/* Card styles */
|
||||
.card-elevated {
|
||||
background-color: hsl(var(--card));
|
||||
border-radius: 1rem;
|
||||
box-shadow: var(--shadow-card);
|
||||
border: 1px solid hsl(var(--border) / 0.5);
|
||||
}
|
||||
|
||||
/* Section styles */
|
||||
.section-padding {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.section-padding {
|
||||
padding-top: 6rem;
|
||||
padding-bottom: 6rem;
|
||||
}
|
||||
}
|
||||
|
||||
.section-dark {
|
||||
background-color: hsl(var(--dark-bg));
|
||||
color: hsl(var(--dark-text));
|
||||
}
|
||||
|
||||
.text-dark-muted {
|
||||
color: hsl(var(--dark-muted));
|
||||
}
|
||||
|
||||
/* Container styles */
|
||||
.container-padding {
|
||||
max-width: 80rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.container-padding {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.container-padding {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.container-narrow {
|
||||
max-width: 56rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.container-narrow {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.container-narrow {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Spacing utilities */
|
||||
.spacing-section > * + * {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.spacing-content > * + * {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.spacing-small > * + * {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
/* Additional utility classes for better consistency */
|
||||
.text-muted-foreground {
|
||||
color: hsl(var(--muted-foreground));
|
||||
}
|
||||
|
||||
.bg-background {
|
||||
background-color: hsl(var(--background));
|
||||
}
|
||||
|
||||
.text-foreground {
|
||||
color: hsl(var(--foreground));
|
||||
}
|
||||
|
||||
.bg-card {
|
||||
background-color: hsl(var(--card));
|
||||
}
|
||||
|
||||
.text-card-foreground {
|
||||
color: hsl(var(--card-foreground));
|
||||
}
|
||||
|
||||
.border-border {
|
||||
border-color: hsl(var(--border));
|
||||
}
|
||||
|
||||
.text-secondary {
|
||||
color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.bg-secondary {
|
||||
background-color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.text-secondary-foreground {
|
||||
color: hsl(var(--secondary-foreground));
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
background-color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.text-primary-foreground {
|
||||
color: hsl(var(--primary-foreground));
|
||||
}
|
||||
|
||||
.bg-accent {
|
||||
background-color: hsl(var(--accent));
|
||||
}
|
||||
|
||||
.text-accent-foreground {
|
||||
color: hsl(var(--accent-foreground));
|
||||
}
|
||||
|
||||
.bg-muted {
|
||||
background-color: hsl(var(--muted));
|
||||
}
|
||||
|
||||
.bg-muted\/20 {
|
||||
background-color: hsl(var(--muted) / 0.2);
|
||||
}
|
||||
|
||||
.bg-secondary\/10 {
|
||||
background-color: hsl(var(--secondary) / 0.1);
|
||||
}
|
||||
|
||||
.bg-secondary\/20 {
|
||||
background-color: hsl(var(--secondary) / 0.2);
|
||||
}
|
||||
|
||||
.bg-card\/95 {
|
||||
background-color: hsl(var(--card) / 0.95);
|
||||
}
|
||||
|
||||
.border-border\/50 {
|
||||
border-color: hsl(var(--border) / 0.5);
|
||||
}
|
||||
|
||||
.border-border\/30 {
|
||||
border-color: hsl(var(--border) / 0.3);
|
||||
}
|
||||
|
||||
.text-dark-muted {
|
||||
color: hsl(var(--dark-muted));
|
||||
}
|
||||
|
||||
.border-dark-muted\/30 {
|
||||
border-color: hsl(var(--dark-muted) / 0.3);
|
||||
}
|
||||
|
||||
.text-dark-text {
|
||||
color: hsl(var(--dark-text));
|
||||
}
|
||||
|
||||
.bg-dark-bg {
|
||||
background-color: hsl(var(--dark-bg));
|
||||
}
|
||||
|
||||
.bg-hero-container {
|
||||
background-color: hsl(var(--hero-container));
|
||||
}
|
||||
|
||||
.shadow-elevated {
|
||||
box-shadow: var(--shadow-elevated);
|
||||
}
|
||||
|
||||
.shadow-card {
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.shadow-accent-glow {
|
||||
box-shadow: var(--shadow-accent-glow);
|
||||
}
|
||||
|
||||
/* Theme-spezifische Farben für Tailwind-Kompatibilität */
|
||||
.text-primary {
|
||||
color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.text-secondary {
|
||||
color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.text-muted-foreground {
|
||||
color: hsl(var(--muted-foreground));
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
background-color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.bg-secondary {
|
||||
background-color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.border-primary {
|
||||
border-color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.border-secondary {
|
||||
border-color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
/* Hover-Effekte für Navigation */
|
||||
.hover-text-secondary:hover {
|
||||
color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.hover-text-primary:hover {
|
||||
color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.hover-bg-primary:hover {
|
||||
background-color: hsl(var(--primary));
|
||||
}
|
||||
|
||||
.hover-bg-secondary:hover {
|
||||
background-color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.hover-border-secondary:hover {
|
||||
border-color: hsl(var(--secondary));
|
||||
}
|
||||
|
||||
.hover-shadow-accent-glow:hover {
|
||||
box-shadow: var(--shadow-accent-glow);
|
||||
}
|
||||
|
||||
/* TopBar specific styles */
|
||||
.topbar-normal {
|
||||
background-color: hsl(var(--muted) / 0.2);
|
||||
border-bottom: 1px solid hsl(var(--border) / 0.3);
|
||||
}
|
||||
|
||||
/* Sticky Header Verhalten */
|
||||
.header-sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
background-color: hsl(var(--background) / 0.8);
|
||||
backdrop-filter: blur(8px);
|
||||
border-bottom: 1px solid hsl(var(--border));
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.header-normal {
|
||||
position: relative;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.bg-muted\/20 {
|
||||
background-color: hsl(var(--muted) / 0.2);
|
||||
}
|
||||
|
||||
.border-border\/30 {
|
||||
border-color: hsl(var(--border) / 0.3);
|
||||
}
|
||||
55
dev/config-vite/resources/css/web/theme-b2a.css
Normal file
55
dev/config-vite/resources/css/web/theme-b2a.css
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
/* B2A Domain Theme - Azur Blue & Liberty Red */
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* Base colors */
|
||||
--background: 32 20% 97%; /* #f5f4f2 - Light Beige */
|
||||
--foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--card: 0 25% 96%; /* #hsl(0 25% 96%) - Off White */
|
||||
--card-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--popover: 0 25% 96%; /* #hsl(0 25% 96%)- Off White */
|
||||
--popover-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* B2A Theme Colors */
|
||||
--primary: 207 70% 26%; /* #123f6d - Azur Blue */
|
||||
--primary-foreground: 30 25% 98%; /* #faf9f7 - Off White */
|
||||
--secondary: 352 76% 48%; /* #ce1d2e - Liberty Red */
|
||||
--secondary-foreground: 0 25% 96%; /* #hsl(0 25% 96%) - Off White */
|
||||
|
||||
/* Neutral colors */
|
||||
--muted: 0 0% 92%; /* hsl(0 0% 92%) - Light Muted */
|
||||
--muted-foreground: 199 50% 45%; /* #4a8bb5 - Muted Blue */
|
||||
--accent: 210 20% 95%; /* hsl(201 20% 95%) - Light Accent */
|
||||
--accent-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Dark section colors */
|
||||
--dark-bg: 207 70% 26%; /* #123f6d - Azur Blue */
|
||||
--dark-text: 30 25% 98%; /* #faf9f7 - Off White */
|
||||
--dark-muted: 30 20% 70%; /* #b8b0a7 - Dark Muted */
|
||||
|
||||
/* Interactive elements */
|
||||
--destructive: 0 84.2% 60.2%; /* #ef4444 - Red */
|
||||
--destructive-foreground: 210 40% 98%; /* #f8fafc - Light */
|
||||
--border: 0 0% 80%; /* hsl(0 0% 80%) - Light Border */
|
||||
--input: 0 0% 92%; /* hsl(0 0% 92%) - Input Background */
|
||||
--ring: 20 14% 16%; /* #2a2a2a - Focus Ring */
|
||||
--radius: 0.75rem;
|
||||
|
||||
/* Hero container background */
|
||||
--hero-container: 0 0% 91%; /* #e8e8e8 - Light Gray */
|
||||
|
||||
/* Shadows */
|
||||
--shadow-warm: 0 10px 30px -15px hsl(var(--foreground) / 0.1);
|
||||
--shadow-card: 0 4px 20px -8px hsl(var(--foreground) / 0.08);
|
||||
--shadow-elevated: 0 20px 40px -20px hsl(var(--foreground) / 0.15);
|
||||
--shadow-accent-glow: 0 0 30px hsl(var(--secondary) / 0.3);
|
||||
|
||||
/* Font families */
|
||||
--font-primary: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
--font-secondary: 'Merriweather', Georgia, serif;
|
||||
}
|
||||
}
|
||||
|
||||
@import "./shared-styles.css";
|
||||
68
dev/config-vite/resources/css/web/theme-b2in.css
Normal file
68
dev/config-vite/resources/css/web/theme-b2in.css
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
/* B2IN Domain Theme - Anthracite & Dynamic Blue */
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* Base colors */
|
||||
--background: 32 20% 97%; /* #f5f4f2 - Light Beige */
|
||||
--foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Card colors */
|
||||
--card: 0 25% 96%; /* #hsl(0 25% 96%) - Off White */
|
||||
--card-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
--popover: 0 25% 96%; /* #hsl(0 25% 96%)- Off White */
|
||||
--popover-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* B2IN Theme Colors */
|
||||
--primary: 209 32% 25%; /* #2b3f51 - Anthracite */
|
||||
--primary-foreground: 0 25% 96%; /* #hsl(0 25% 96%) - Off White */
|
||||
|
||||
--secondary: 199 74% 49%; /* #20a0da - Dynamic Blue */
|
||||
--secondary-foreground: 0 25% 96%; /* hsl(0 25% 96%) - Off White */
|
||||
|
||||
/* Neutral colors */
|
||||
--muted: 0 0% 92%; /* hsl(0 0% 92%) - Light Muted */
|
||||
--muted-foreground: 199 50% 45%; /* #4a8bb5 - Muted Blue */
|
||||
|
||||
--accent: 210 0% 94%; /* hsl(210 5.26% 92.55%) - Light Accent */
|
||||
--accent-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Dark section colors */
|
||||
--dark-bg: 209 32% 25%; /* Matching primary */
|
||||
--dark-text: 0 0% 100%; /* hsl(0 0% 100%) - Off White */
|
||||
--dark-muted: 0 0% 80%; /* hsl(0 0% 80%) - Dark Muted */
|
||||
|
||||
/* Interactive elements */
|
||||
--destructive: 0 84.2% 60.2%; /* #ef4444 - Red */
|
||||
--destructive-foreground: 210 40% 98%; /* #f8fafc - Light */
|
||||
|
||||
--border: 0 0% 80%; /* hsl(0 0% 80%) - Light Border */
|
||||
--input: 0 0% 92%; /* hsl(0 0% 92%) - Input Background */
|
||||
--ring: 20 14% 16%; /* #2a2a2a - Focus Ring */
|
||||
|
||||
--radius: 0.75rem;
|
||||
|
||||
/* Hero container background */
|
||||
--hero-container: 0 0% 91%; /* #e8e8e8 - Light Gray */
|
||||
|
||||
/* Consistent shadows */
|
||||
--shadow-warm: 0 10px 30px -15px hsl(var(--foreground) / 0.1);
|
||||
--shadow-card: 0 4px 20px -8px hsl(var(--foreground) / 0.08);
|
||||
--shadow-elevated: 0 20px 40px -20px hsl(var(--foreground) / 0.15);
|
||||
--shadow-accent-glow: 0 0 30px hsl(var(--secondary) / 0.3);
|
||||
|
||||
/* Transitions */
|
||||
--transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
--transition-bounce: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||
|
||||
/* Font families */
|
||||
--font-primary: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
--font-secondary: 'IBM Plex Sans', 'Inter', system-ui, -apple-system, sans-serif;
|
||||
}
|
||||
}
|
||||
.text-section-title {
|
||||
line-height: 0.95em;
|
||||
}
|
||||
@import "./shared-styles.css";
|
||||
63
dev/config-vite/resources/css/web/theme-main.css
Normal file
63
dev/config-vite/resources/css/web/theme-main.css
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
@source '../../views/web/layout.blade.php';
|
||||
|
||||
@custom-variant dark (&:where(.dark, .dark *));
|
||||
|
||||
@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-zinc-50: #fafafa;
|
||||
--color-zinc-100: #f5f5f5;
|
||||
--color-zinc-200: #e5e5e5;
|
||||
--color-zinc-300: #d4d4d4;
|
||||
--color-zinc-400: #a3a3a3;
|
||||
--color-zinc-500: #737373;
|
||||
--color-zinc-600: #525252;
|
||||
--color-zinc-700: #404040;
|
||||
--color-zinc-800: #262626;
|
||||
--color-zinc-900: #171717;
|
||||
--color-zinc-950: #0a0a0a;
|
||||
|
||||
--color-accent: var(--color-neutral-800);
|
||||
--color-accent-content: var(--color-neutral-800);
|
||||
--color-accent-foreground: var(--color-white);
|
||||
}
|
||||
|
||||
@layer theme {
|
||||
.dark {
|
||||
--color-accent: var(--color-white);
|
||||
--color-accent-content: var(--color-white);
|
||||
--color-accent-foreground: var(--color-neutral-800);
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
*,
|
||||
::after,
|
||||
::before,
|
||||
::backdrop,
|
||||
::file-selector-button {
|
||||
border-color: var(--color-gray-200, currentColor);
|
||||
}
|
||||
}
|
||||
|
||||
[data-flux-field]:not(ui-radio, ui-checkbox) {
|
||||
@apply grid gap-2;
|
||||
}
|
||||
|
||||
[data-flux-label] {
|
||||
@apply !mb-0 !leading-tight;
|
||||
}
|
||||
|
||||
input:focus[data-flux-control],
|
||||
textarea:focus[data-flux-control],
|
||||
select:focus[data-flux-control] {
|
||||
@apply outline-hidden ring-2 ring-accent ring-offset-2 ring-offset-accent-foreground;
|
||||
}
|
||||
|
||||
/* \[:where(&)\]:size-4 {
|
||||
@apply size-4;
|
||||
} */
|
||||
58
dev/config-vite/resources/css/web/theme-stileigentum.css
Normal file
58
dev/config-vite/resources/css/web/theme-stileigentum.css
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
/* Stileigentum Domain Theme - Style Blue & Style Sun */
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* Base colors */
|
||||
--background: 32 20% 97%; /* #f5f4f2 - Light Beige */
|
||||
--foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--card: 38 40% 97%; /* #hsl(60 53.33% 88.24%) - Off White */
|
||||
--card-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--popover: 0 25% 96%; /* #hsl(0 25% 96%)- Off White */
|
||||
--popover-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Stileigentum Theme Colors */
|
||||
--primary: 209 65% 20%; /* #123453 - Imperial Blue */
|
||||
--primary-foreground: 0 25% 96%; /* #hsl(0 25% 96%) - Off White */
|
||||
--secondary: 38 40% 66%; /* #c9ac84 - Sand Gold */
|
||||
--secondary-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Neutral colors */
|
||||
--muted: 209 35% 94%; /* #f0f2f5 - Very Light Imperial Blue */
|
||||
--muted-foreground: 209 10% 40%; /* hsl(208 9.09% 32.35%) - Muted Imperial Blue */
|
||||
--accent: 38 40% 88%; /* hsl(38 40% 88%) - Very Light Sand Gold */
|
||||
--accent-foreground: 209 10% 40%; /* hsl(204 4.35% 22.55%) - Darker Imperial Blue */
|
||||
|
||||
/* Dark section colors */
|
||||
--dark-bg: 209 65% 20%; /* #123453 - Imperial Blue */
|
||||
--dark-text: 0 0% 100%; /* hsl(0 0% 100%) - Off White */
|
||||
--dark-muted: 30 20% 70%; /* #b8b0a7 - Dark Muted */
|
||||
|
||||
/* Interactive elements */
|
||||
--destructive: 0 84.2% 60.2%; /* #ef4444 - Red */
|
||||
--destructive-foreground: 210 40% 98%; /* #f8fafc - Light */
|
||||
--border: 0 0% 80%; /* hsl(0 0% 80%) - Light Border */
|
||||
--input: 0 0% 92%; /* hsl(0 0% 92%) - Input Background */
|
||||
--radius: 0.75rem;
|
||||
|
||||
/* Hero container background */
|
||||
--hero-container: 0 0% 91%; /* #e8e8e8 - Light Gray */
|
||||
|
||||
/* Shadows */
|
||||
--shadow-warm: 0 10px 30px -15px hsl(var(--foreground) / 0.1);
|
||||
--shadow-card: 0 4px 20px -8px hsl(var(--foreground) / 0.08);
|
||||
--shadow-elevated: 0 20px 40px -20px hsl(var(--foreground) / 0.15);
|
||||
--shadow-accent-glow: 0 0 30px hsl(var(--secondary) / 0.3);
|
||||
|
||||
/* Font families */
|
||||
--font-primary: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
--font-secondary: 'EB Garamond', Georgia, serif;
|
||||
}
|
||||
}
|
||||
|
||||
.text-section-title {
|
||||
line-height: 0.95em;
|
||||
}
|
||||
|
||||
@import "./shared-styles.css";
|
||||
72
dev/config-vite/resources/css/web/theme-style2own.css
Normal file
72
dev/config-vite/resources/css/web/theme-style2own.css
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
/* Style2own Domain Theme - Imperial Blue & Sand Gold */
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* Base colors */
|
||||
--background: 32 20% 97%; /* #f5f4f2 - Light Beige */
|
||||
--foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--card: 30 25% 98%; /* #faf9f7 - Off White */
|
||||
--card-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
--popover: 0 25% 96%; /* #hsl(0 25% 96%)- Off White */
|
||||
--popover-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Style2own Theme Colors */
|
||||
--primary: 195 100% 34%; /* #007aab - Style Blue */
|
||||
--primary-foreground: 30 25% 98%; /* #faf9f7 - Off White */
|
||||
--secondary: 46 95% 56%; /* #fbaf22 - Style Sun */
|
||||
--secondary-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Neutral colors */
|
||||
--muted: 0 0% 92%; /* hsl(0 0% 92%) - Light Muted */
|
||||
--muted-foreground: 199 50% 45%; /* #4a8bb5 - Muted Blue */
|
||||
--accent: 210 20% 95%; /* #f2f5f7 - Light Accent */
|
||||
--accent-foreground: 20 14% 16%; /* #2a2a2a - Dark Gray */
|
||||
|
||||
/* Dark section colors */
|
||||
--dark-bg: 195 100% 34%; /* #007aab - Style Blue */
|
||||
--dark-text: 30 25% 98%; /* #faf9f7 - Off White */
|
||||
--dark-muted: 30 20% 70%; /* #b8b0a7 - Dark Muted */
|
||||
|
||||
/* Interactive elements */
|
||||
--destructive: 0 84.2% 60.2%; /* #ef4444 - Red */
|
||||
--destructive-foreground: 210 40% 98%; /* #f8fafc - Light */
|
||||
--border: 32 20% 90%; /* #e6e0d8 - Light Border */
|
||||
--border: 0 0% 80%; /* hsl(0 0% 80%) - Light Border */
|
||||
--input: 0 0% 92%; /* hsl(0 0% 92%) - Input Background */
|
||||
--radius: 0.75rem;
|
||||
|
||||
/* Hero container background */
|
||||
--hero-container: 0 0% 91%; /* #e8e8e8 - Light Gray */
|
||||
|
||||
/* Shadows */
|
||||
--shadow-warm: 0 10px 30px -15px hsl(var(--foreground) / 0.1);
|
||||
--shadow-card: 0 4px 20px -8px hsl(var(--foreground) / 0.08);
|
||||
--shadow-elevated: 0 20px 40px -20px hsl(var(--foreground) / 0.15);
|
||||
--shadow-accent-glow: 0 0 30px hsl(var(--secondary) / 0.3);
|
||||
|
||||
/* Font families */
|
||||
--font-primary: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
--font-secondary: 'Ephesis', cursive;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* Font size adjustments for Ephesis font - 30% larger */
|
||||
.text-hero {
|
||||
font-size: clamp(3.6rem, 4.2vw, 7.8rem) !important;
|
||||
}
|
||||
|
||||
.text-section-title {
|
||||
font-size: clamp(2.1rem, 3.9vw, 3.9rem) !important;
|
||||
line-height: 0.85em;
|
||||
}
|
||||
|
||||
.text-xl {
|
||||
font-size: clamp(1.3rem, 2.2vw, 2.2rem) !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@import "./shared-styles.css";
|
||||
0
dev/config-vite/resources/js/admin.js
Normal file
0
dev/config-vite/resources/js/admin.js
Normal file
1
dev/config-vite/resources/js/app.js
Normal file
1
dev/config-vite/resources/js/app.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
// App JS ohne Alpine-Initialisierung. Alpine wird von Livewire verwaltet.
|
||||
6
dev/config-vite/resources/lang/de/messages.php
Normal file
6
dev/config-vite/resources/lang/de/messages.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Willkommen bei :domain' => 'Willkommen bei :domain',
|
||||
'Sprache' => 'Sprache',
|
||||
];
|
||||
6
dev/config-vite/resources/lang/en/messages.php
Normal file
6
dev/config-vite/resources/lang/en/messages.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Willkommen bei :domain' => 'Welcome to :domain',
|
||||
'Sprache' => 'Language',
|
||||
];
|
||||
6
dev/config-vite/resources/lang/es/messages.php
Normal file
6
dev/config-vite/resources/lang/es/messages.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Willkommen bei :domain' => 'Bienvenido a :domain',
|
||||
'Sprache' => 'Idioma',
|
||||
];
|
||||
6
dev/config-vite/resources/lang/fr/messages.php
Normal file
6
dev/config-vite/resources/lang/fr/messages.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Willkommen bei :domain' => 'Bienvenue chez :domain',
|
||||
'Sprache' => 'Langue',
|
||||
];
|
||||
61
dev/config-vite/tailwind.portal.config.js
Normal file
61
dev/config-vite/tailwind.portal.config.js
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
const defaultTheme = require("tailwindcss/defaultTheme");
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
"./resources/views/portal/**/*.blade.php",
|
||||
"./resources/views/layouts/portal/**/*.blade.php",
|
||||
"./resources/views/components/**/*.blade.php",
|
||||
"./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php",
|
||||
"./vendor/livewire/flux-pro/stubs/**/*.blade.php",
|
||||
"./vendor/livewire/flux/stubs/**/*.blade.php",
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
sans: ["Instrument Sans", ...defaultTheme.fontFamily.sans],
|
||||
},
|
||||
colors: {
|
||||
accent: {
|
||||
50: "rgb(var(--color-accent-50) / <alpha-value>)",
|
||||
100: "rgb(var(--color-accent-100) / <alpha-value>)",
|
||||
200: "rgb(var(--color-accent-200) / <alpha-value>)",
|
||||
300: "rgb(var(--color-accent-300) / <alpha-value>)",
|
||||
400: "rgb(var(--color-accent-400) / <alpha-value>)",
|
||||
500: "rgb(var(--color-accent-500) / <alpha-value>)",
|
||||
600: "rgb(var(--color-accent-600) / <alpha-value>)",
|
||||
700: "rgb(var(--color-accent-700) / <alpha-value>)",
|
||||
800: "rgb(var(--color-accent-800) / <alpha-value>)",
|
||||
900: "rgb(var(--color-accent-900) / <alpha-value>)",
|
||||
950: "rgb(var(--color-accent-950) / <alpha-value>)",
|
||||
DEFAULT: "rgb(var(--color-accent-600) / <alpha-value>)",
|
||||
},
|
||||
},
|
||||
ringColor: {
|
||||
accent: "rgb(var(--color-accent-500) / <alpha-value>)",
|
||||
},
|
||||
ringOffsetColor: {
|
||||
accent: "rgb(var(--color-accent-100) / <alpha-value>)",
|
||||
},
|
||||
backgroundColor: {
|
||||
accent: {
|
||||
DEFAULT: "rgb(var(--color-accent-600) / <alpha-value>)",
|
||||
foreground: "var(--color-white)",
|
||||
},
|
||||
},
|
||||
textColor: {
|
||||
accent: {
|
||||
DEFAULT: "rgb(var(--color-accent-600) / <alpha-value>)",
|
||||
foreground: "var(--color-white)",
|
||||
},
|
||||
},
|
||||
borderColor: {
|
||||
accent: {
|
||||
DEFAULT: "rgb(var(--color-accent-600) / <alpha-value>)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
darkMode: "class",
|
||||
};
|
||||
57
dev/config-vite/tailwind.web.config.js
Normal file
57
dev/config-vite/tailwind.web.config.js
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
const defaultTheme = require("tailwindcss/defaultTheme");
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
"./resources/views/web/**/*.blade.php",
|
||||
"./resources/views/livewire/web/**/*.blade.php",
|
||||
"./resources/views/livewire/web/components/**/*.blade.php",
|
||||
"./app/Livewire/Web/**/*.php",
|
||||
"./app/Livewire/Web/Components/**/*.php",
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
sans: ["var(--font-primary)", ...defaultTheme.fontFamily.sans],
|
||||
secondary: ["var(--font-secondary)", ...defaultTheme.fontFamily.serif],
|
||||
},
|
||||
colors: {
|
||||
// Theme-spezifische Farben mit CSS-Variablen (zusätzlich zu Standard-Farben)
|
||||
background: "hsl(var(--background))",
|
||||
foreground: "hsl(var(--foreground))",
|
||||
card: {
|
||||
DEFAULT: "hsl(var(--card))",
|
||||
foreground: "hsl(var(--card-foreground))",
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: "hsl(var(--popover))",
|
||||
foreground: "hsl(var(--popover-foreground))",
|
||||
},
|
||||
primary: "hsl(var(--primary))",
|
||||
secondary: "hsl(var(--secondary))",
|
||||
muted: {
|
||||
DEFAULT: "hsl(var(--muted))",
|
||||
foreground: "hsl(var(--muted-foreground))",
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: "hsl(var(--accent))",
|
||||
foreground: "hsl(var(--accent-foreground))",
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: "hsl(var(--destructive))",
|
||||
foreground: "hsl(var(--destructive-foreground))",
|
||||
},
|
||||
border: "hsl(var(--border))",
|
||||
input: "hsl(var(--input))",
|
||||
ring: "hsl(var(--ring))",
|
||||
},
|
||||
borderRadius: {
|
||||
lg: "var(--radius)",
|
||||
md: "calc(var(--radius) - 2px)",
|
||||
sm: "calc(var(--radius) - 4px)",
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
darkMode: "class",
|
||||
};
|
||||
48
dev/config-vite/vite.portal.config.js
Normal file
48
dev/config-vite/vite.portal.config.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
import { defineConfig } from "vite";
|
||||
import laravel from "laravel-vite-plugin";
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
|
||||
// SSL-Konfiguration - für Entwicklung ohne echte Zertifikate
|
||||
const httpsConfig =
|
||||
process.env.NODE_ENV === "production"
|
||||
? {
|
||||
// In Produktion: echte Zertifikate verwenden
|
||||
key: process.env.SSL_KEY_PATH,
|
||||
cert: process.env.SSL_CERT_PATH,
|
||||
}
|
||||
: true; // Self-signed für Entwicklung
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
laravel({
|
||||
input: ["resources/css/portal.css", "resources/js/app.js"],
|
||||
refresh: ["resources/views/portal/**/*.blade.php"],
|
||||
}),
|
||||
tailwindcss({
|
||||
config: "./tailwind.portal.config.js",
|
||||
}),
|
||||
],
|
||||
server: {
|
||||
https: false, // Traefik übernimmt SSL, Vite läuft intern auf HTTP
|
||||
cors: true,
|
||||
host: "0.0.0.0",
|
||||
port: 5174, // oder 5175
|
||||
hmr: {
|
||||
host: "assets.b2in.test", // oder assets-web.b2in.test
|
||||
protocol: "wss", // Explizit wss für WebSocket Secure
|
||||
// WICHTIG: Die 'port'-Angabe hier entfernen!
|
||||
// Der Browser soll den Standard-Port (443) von Traefik nutzen.
|
||||
},
|
||||
// Das origin ist nicht mehr notwendig, da der HMR-Port wegfällt.
|
||||
},
|
||||
build: {
|
||||
outDir: "public/build/portal",
|
||||
assetsDir: "",
|
||||
manifest: "manifest.json",
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
52
dev/config-vite/vite.web.config.js
Normal file
52
dev/config-vite/vite.web.config.js
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { defineConfig } from "vite";
|
||||
import laravel from "laravel-vite-plugin";
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
|
||||
// SSL-Konfiguration - für Entwicklung ohne echte Zertifikate
|
||||
const httpsConfig =
|
||||
process.env.NODE_ENV === "production"
|
||||
? {
|
||||
// In Produktion: echte Zertifikate verwenden
|
||||
key: process.env.SSL_KEY_PATH,
|
||||
cert: process.env.SSL_CERT_PATH,
|
||||
}
|
||||
: true; // Self-signed für Entwicklung
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
laravel({
|
||||
input: [
|
||||
// Web Theme CSS Dateien
|
||||
"resources/css/web/theme-businessportal24.css",
|
||||
"resources/js/app.js",
|
||||
],
|
||||
refresh: ["resources/views/web/**/*.blade.php"],
|
||||
}),
|
||||
tailwindcss({
|
||||
config: "./tailwind.web.config.js",
|
||||
}),
|
||||
],
|
||||
server: {
|
||||
https: false, // Traefik übernimmt SSL, Vite läuft intern auf HTTP
|
||||
cors: true,
|
||||
host: "0.0.0.0",
|
||||
port: 5178, // Web-spezifischer Port
|
||||
hmr: {
|
||||
host: "assets.businessportal24.test", //
|
||||
protocol: "wss", // Explizit wss für WebSocket Secure
|
||||
// WICHTIG: Die 'port'-Angabe hier entfernen!
|
||||
// Der Browser soll den Standard-Port (443) von Traefik nutzen.
|
||||
},
|
||||
// Das origin ist nicht mehr notwendig, da der HMR-Port wegfällt.
|
||||
},
|
||||
build: {
|
||||
outDir: `public/build/web`,
|
||||
assetsDir: "",
|
||||
manifest: "manifest.json",
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue