fix(01): remove traefik, lighten dark mode, fix sidebar accent color, move locale switcher to sidebar footer

This commit is contained in:
2026-06-18 12:41:02 +02:00
parent 224fd59196
commit a9018083b2
4 changed files with 21 additions and 40 deletions
+8 -8
View File
@@ -59,23 +59,23 @@
/* Sidebar tokens */ /* Sidebar tokens */
--sidebar: oklch(0.97 0 0); --sidebar: oklch(0.97 0 0);
--sidebar-foreground: oklch(0.15 0 0); --sidebar-foreground: oklch(0.15 0 0);
--sidebar-accent: oklch(0.91 0.19 102 / 0.1); --sidebar-accent: oklch(0.93 0 0);
--sidebar-accent-foreground: oklch(0.91 0.19 102); --sidebar-accent-foreground: oklch(0.25 0 0);
--sidebar-border: oklch(0.90 0 0); --sidebar-border: oklch(0.90 0 0);
} }
.dark { .dark {
--background: oklch(0.17 0.01 260); --background: oklch(0.23 0.01 260);
--foreground: oklch(0.95 0 0); --foreground: oklch(0.95 0 0);
--card: oklch(0.21 0.01 260); --card: oklch(0.27 0.01 260);
--card-foreground: oklch(0.95 0 0); --card-foreground: oklch(0.95 0 0);
--primary: oklch(0.91 0.19 102); --primary: oklch(0.91 0.19 102);
--primary-foreground: oklch(0.20 0.02 90); --primary-foreground: oklch(0.20 0.02 90);
--secondary: oklch(0.25 0.01 260); --secondary: oklch(0.30 0.01 260);
--secondary-foreground: oklch(0.95 0 0); --secondary-foreground: oklch(0.95 0 0);
--muted: oklch(0.25 0.01 260); --muted: oklch(0.30 0.01 260);
--muted-foreground: oklch(0.65 0 0); --muted-foreground: oklch(0.65 0 0);
--accent: oklch(0.25 0.01 260); --accent: oklch(0.30 0.01 260);
--accent-foreground: oklch(0.95 0 0); --accent-foreground: oklch(0.95 0 0);
--destructive: oklch(0.55 0.2 27); --destructive: oklch(0.55 0.2 27);
--destructive-foreground: oklch(0.98 0 0); --destructive-foreground: oklch(0.98 0 0);
@@ -84,7 +84,7 @@
--ring: oklch(0.91 0.19 102); --ring: oklch(0.91 0.19 102);
/* Sidebar tokens (dark) */ /* Sidebar tokens (dark) */
--sidebar: oklch(0.14 0.01 260); --sidebar: oklch(0.20 0.01 260);
--sidebar-foreground: oklch(0.95 0 0); --sidebar-foreground: oklch(0.95 0 0);
--sidebar-accent: oklch(0.91 0.19 102 / 0.15); --sidebar-accent: oklch(0.91 0.19 102 / 0.15);
--sidebar-accent-foreground: oklch(0.91 0.19 102); --sidebar-accent-foreground: oklch(0.91 0.19 102);
@@ -3,7 +3,6 @@
import { useTranslations } from 'next-intl'; import { useTranslations } from 'next-intl';
import { useSidebarStore } from '@/lib/stores/sidebar-store'; import { useSidebarStore } from '@/lib/stores/sidebar-store';
import { ThemeToggle } from '@/components/theme-toggle'; import { ThemeToggle } from '@/components/theme-toggle';
import { LocaleSwitcher } from '@/components/locale-switcher';
export function Header() { export function Header() {
const t = useTranslations(); const t = useTranslations();
@@ -49,7 +48,6 @@ export function Header() {
{/* Right: Actions */} {/* Right: Actions */}
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<ThemeToggle /> <ThemeToggle />
<LocaleSwitcher />
{/* User avatar placeholder - wired to auth in Phase 2 */} {/* User avatar placeholder - wired to auth in Phase 2 */}
<div <div
className="h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs text-muted-foreground" className="h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs text-muted-foreground"
@@ -2,6 +2,7 @@
import { useTranslations } from 'next-intl'; import { useTranslations } from 'next-intl';
import { useSidebarStore } from '@/lib/stores/sidebar-store'; import { useSidebarStore } from '@/lib/stores/sidebar-store';
import { LocaleSwitcher } from '@/components/locale-switcher';
export function SidebarFooter() { export function SidebarFooter() {
const t = useTranslations('sidebar'); const t = useTranslations('sidebar');
@@ -9,6 +10,13 @@ export function SidebarFooter() {
return ( return (
<div className="border-t border-sidebar-border p-3 flex flex-col gap-2"> <div className="border-t border-sidebar-border p-3 flex flex-col gap-2">
{/* Locale switcher */}
{!isCollapsed && (
<div className="px-2 py-1">
<LocaleSwitcher />
</div>
)}
{/* Settings */} {/* Settings */}
<button className="flex items-center gap-3 rounded-md px-2 py-1.5 text-sm text-sidebar-foreground hover:bg-muted transition-colors"> <button className="flex items-center gap-3 rounded-md px-2 py-1.5 text-sm text-sidebar-foreground hover:bg-muted transition-colors">
<svg <svg
+5 -30
View File
@@ -1,43 +1,26 @@
services: services:
traefik:
image: traefik:v2.11
ports:
- "80:80"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
environment:
DOCKER_API_VERSION: "1.40"
networks:
- frontend-net
- backend-net
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
web: web:
build: build:
context: . context: .
dockerfile: apps/web/Dockerfile dockerfile: apps/web/Dockerfile
ports:
- "3000:3000"
environment: environment:
HOSTNAME: "0.0.0.0" HOSTNAME: "0.0.0.0"
NEXT_PUBLIC_API_URL: "http://localhost:3001"
networks: networks:
- frontend-net - frontend-net
- backend-net - backend-net
depends_on: depends_on:
api: api:
condition: service_healthy condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.web.rule=PathPrefix(`/`)"
- "traefik.http.services.web.loadbalancer.server.port=3000"
- "traefik.http.routers.web.priority=1"
- "traefik.docker.network=tessera-ctl_frontend-net"
api: api:
build: build:
context: . context: .
dockerfile: apps/api/Dockerfile dockerfile: apps/api/Dockerfile
ports:
- "3001:3001"
networks: networks:
- backend-net - backend-net
- data-net - data-net
@@ -52,14 +35,6 @@ services:
timeout: 5s timeout: 5s
retries: 3 retries: 3
start_period: 10s start_period: 10s
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=PathPrefix(`/api`)"
- "traefik.http.services.api.loadbalancer.server.port=3001"
- "traefik.http.routers.api.priority=2"
- "traefik.http.middlewares.api-strip.stripprefix.prefixes=/api"
- "traefik.http.routers.api.middlewares=api-strip"
- "traefik.docker.network=tessera-ctl_backend-net"
db: db:
image: postgres:16-alpine image: postgres:16-alpine