fix(01): remove traefik, lighten dark mode, fix sidebar accent color, move locale switcher to sidebar footer
This commit is contained in:
@@ -59,23 +59,23 @@
|
||||
/* Sidebar tokens */
|
||||
--sidebar: oklch(0.97 0 0);
|
||||
--sidebar-foreground: oklch(0.15 0 0);
|
||||
--sidebar-accent: oklch(0.91 0.19 102 / 0.1);
|
||||
--sidebar-accent-foreground: oklch(0.91 0.19 102);
|
||||
--sidebar-accent: oklch(0.93 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.25 0 0);
|
||||
--sidebar-border: oklch(0.90 0 0);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--background: oklch(0.17 0.01 260);
|
||||
--background: oklch(0.23 0.01 260);
|
||||
--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);
|
||||
--primary: oklch(0.91 0.19 102);
|
||||
--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);
|
||||
--muted: oklch(0.25 0.01 260);
|
||||
--muted: oklch(0.30 0.01 260);
|
||||
--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);
|
||||
--destructive: oklch(0.55 0.2 27);
|
||||
--destructive-foreground: oklch(0.98 0 0);
|
||||
@@ -84,7 +84,7 @@
|
||||
--ring: oklch(0.91 0.19 102);
|
||||
|
||||
/* 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-accent: oklch(0.91 0.19 102 / 0.15);
|
||||
--sidebar-accent-foreground: oklch(0.91 0.19 102);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { useSidebarStore } from '@/lib/stores/sidebar-store';
|
||||
import { ThemeToggle } from '@/components/theme-toggle';
|
||||
import { LocaleSwitcher } from '@/components/locale-switcher';
|
||||
|
||||
export function Header() {
|
||||
const t = useTranslations();
|
||||
@@ -49,7 +48,6 @@ export function Header() {
|
||||
{/* Right: Actions */}
|
||||
<div className="flex items-center gap-2">
|
||||
<ThemeToggle />
|
||||
<LocaleSwitcher />
|
||||
{/* User avatar placeholder - wired to auth in Phase 2 */}
|
||||
<div
|
||||
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 { useSidebarStore } from '@/lib/stores/sidebar-store';
|
||||
import { LocaleSwitcher } from '@/components/locale-switcher';
|
||||
|
||||
export function SidebarFooter() {
|
||||
const t = useTranslations('sidebar');
|
||||
@@ -9,6 +10,13 @@ export function SidebarFooter() {
|
||||
|
||||
return (
|
||||
<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 */}
|
||||
<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
|
||||
|
||||
+5
-30
@@ -1,43 +1,26 @@
|
||||
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:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: apps/web/Dockerfile
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
HOSTNAME: "0.0.0.0"
|
||||
NEXT_PUBLIC_API_URL: "http://localhost:3001"
|
||||
networks:
|
||||
- frontend-net
|
||||
- backend-net
|
||||
depends_on:
|
||||
api:
|
||||
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:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: apps/api/Dockerfile
|
||||
ports:
|
||||
- "3001:3001"
|
||||
networks:
|
||||
- backend-net
|
||||
- data-net
|
||||
@@ -52,14 +35,6 @@ services:
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
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:
|
||||
image: postgres:16-alpine
|
||||
|
||||
Reference in New Issue
Block a user