Add Dockerfiles, .dockerignore and brand logo

- apps/api/Dockerfile: multi-stage pnpm build, runtime node:22-alpine, port 3001
- apps/web/Dockerfile: multi-stage pnpm + Vite, runtime nginx:alpine with SPA config
- .dockerignore: excludes node_modules, dist, .env, .git, IDE folders, design docs
- Brand logo (naturcalabacera.webp) integrated as favicon, sidebar icon, header logo
- index.html title updated to 'Naturcalabacera · Reservas'
This commit is contained in:
2026-04-30 10:22:37 +01:00
parent a0ccb8ca64
commit 22e8cc893f
7 changed files with 170 additions and 9 deletions

View File

@@ -126,12 +126,19 @@ function AppContent() {
<header className={`${theme.headerBg} backdrop-blur-xl border-b ${theme.headerBorder} px-4 md:px-10 py-4 md:py-6 shadow-2xl transition-all duration-700`}>
{/* Relative container: center title absolutely, left/right content on sides */}
<div className="relative flex items-center justify-center min-h-[3rem] md:min-h-[3.5rem]">
{/* Left: status dot + tagline (desktop only) */}
<div className="absolute left-0 hidden md:flex items-center gap-2">
<span className={`inline-block w-2 h-2 rounded-full shadow-lg ${theme.dotColor} ${theme.dotShadow} animate-pulse flex-shrink-0`} />
<span className={`text-xs font-medium ${theme.subtitleText}`}>
Gestiona tus reservas y disponibilidad
</span>
{/* Left: brand logo + status dot + tagline */}
<div className="absolute left-0 flex items-center gap-2 md:gap-3">
<img
src="/naturcalabacera.webp"
alt="Naturcalabacera"
className="w-9 h-9 md:w-11 md:h-11 object-contain drop-shadow-lg flex-shrink-0"
/>
<div className="hidden md:flex items-center gap-2">
<span className={`inline-block w-2 h-2 rounded-full shadow-lg ${theme.dotColor} ${theme.dotShadow} animate-pulse flex-shrink-0`} />
<span className={`text-xs font-medium ${theme.subtitleText}`}>
Gestiona tus reservas y disponibilidad
</span>
</div>
</div>
{/* Center: property name — always truly centered */}

View File

@@ -31,7 +31,7 @@ export function Sidebar({ currentView, onNavigate, isViewer = false, isAdmin = f
<div className={`p-8 border-b ${theme.dividerBorder}`}>
<h1 className="text-3xl font-black text-white flex items-center gap-3">
<div className={`p-2 bg-gradient-to-br ${theme.logoIconBg} rounded-xl shadow-lg ${theme.logoIconShadow} transition-all duration-700`}>
<Calendar className="w-6 h-6 text-white" />
<img src="/naturcalabacera.webp" alt="Naturcalabacera" className="w-6 h-6 object-contain" />
</div>
<span className={`bg-gradient-to-r ${theme.logoTextGradient} bg-clip-text text-transparent transition-all duration-700`}>
Reservas