- Add Dockerfile with multi-stage build (Node.js + Nginx) - Add docker-compose.yml for Portainer stack deployment on port 7777 - Add nginx.conf with PWA support, gzip compression, and security headers - Add .dockerignore for optimized Docker builds - Add DEPLOYMENT.md with comprehensive deployment guide - Configure Vite PWA plugin with service worker and offline support - Add PWA manifest.json with app icons and shortcuts - Enhance logo.svg with iOS-style glass effects (filters, gradients, highlights) - Add app-icon.svg for PWA installation - Update mobile nav with glassmorphic active tab styling - Fix mobile tab bar layout shift issues with flex-1 and consistent sizing - Update index.html with PWA meta tags and Apple-specific settings - Add health check endpoint at /health for container monitoring Co-authored-by: Cursor <cursoragent@cursor.com>
108 lines
5.6 KiB
XML
108 lines
5.6 KiB
XML
<svg width="1374" height="1401" viewBox="0 0 1374 1401" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<!-- Add glass effect filters -->
|
|
<defs>
|
|
<!-- Glass highlight effect -->
|
|
<filter id="glass-effect" x="-50%" y="-50%" width="200%" height="200%">
|
|
<feGaussianBlur in="SourceAlpha" stdDeviation="8"/>
|
|
<feOffset dx="0" dy="-2" result="offsetblur"/>
|
|
<feComponentTransfer>
|
|
<feFuncA type="linear" slope="0.3"/>
|
|
</feComponentTransfer>
|
|
<feMerge>
|
|
<feMergeNode/>
|
|
<feMergeNode in="SourceGraphic"/>
|
|
</feMerge>
|
|
</filter>
|
|
|
|
<!-- Inner glow -->
|
|
<filter id="inner-glow">
|
|
<feGaussianBlur stdDeviation="4" result="blur"/>
|
|
<feComposite in="blur" in2="SourceGraphic" operator="atop"/>
|
|
</filter>
|
|
|
|
<!-- Gradients -->
|
|
<linearGradient id="paint0_linear_548_65" x1="124.804" y1="-297.569" x2="1351.77" y2="-186.399" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint1_linear_548_65" x1="1175.8" y1="-298.569" x2="2402.77" y2="-187.399" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint2_linear_548_65" x1="124.804" y1="684.431" x2="1351.77" y2="795.601" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint3_linear_548_65" x1="1175.8" y1="683.431" x2="2402.77" y2="794.601" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint4_linear_548_65" x1="-202.64" y1="492.439" x2="1176.93" y2="666.265" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint5_linear_548_65" x1="162.651" y1="492.439" x2="1542.49" y2="666.336" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint6_linear_548_65" x1="512.679" y1="492.439" x2="1933.21" y2="676.92" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
<linearGradient id="paint7_linear_548_65" x1="-411.498" y1="492.439" x2="715.627" y2="607.854" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#F0003D"/>
|
|
<stop offset="0.369792" stop-color="#FA4727"/>
|
|
<stop offset="0.776042" stop-color="#6B90F4"/>
|
|
</linearGradient>
|
|
</defs>
|
|
|
|
<!-- Logo paths with glass effects -->
|
|
<g filter="url(#glass-effect)">
|
|
<path d="M323 419V247.777V162.903V1H0V419H323Z" fill="url(#paint0_linear_548_65)" opacity="0.95"/>
|
|
<path d="M1374 418V246.777V161.903V0H1051V418H1374Z" fill="url(#paint1_linear_548_65)" opacity="0.95"/>
|
|
<path d="M323 1401V1229.78V1144.9V983H0V1401H323Z" fill="url(#paint2_linear_548_65)" opacity="0.95"/>
|
|
<path d="M911 1401V1229.78V1144.9V983H463V1401H911Z" fill="#1D1D1D" opacity="0.9"/>
|
|
<path d="M911 419V247.777V162.903V1H463V419H911Z" fill="#1D1D1D" opacity="0.9"/>
|
|
<path d="M1374 1400V1228.78V1143.9V982H1051V1400H1374Z" fill="url(#paint3_linear_548_65)" opacity="0.95"/>
|
|
<path d="M633.03 843H468.829L303.707 557H467.908L633.03 843Z" fill="url(#paint4_linear_548_65)"/>
|
|
<path d="M998.495 843H834.226L669.104 557H833.373L998.495 843Z" fill="url(#paint5_linear_548_65)"/>
|
|
<path d="M1374 843H1199.69L1034.57 557H1374V843Z" fill="url(#paint6_linear_548_65)"/>
|
|
<path d="M267.634 843H0V557H102.512L267.634 843Z" fill="url(#paint7_linear_548_65)"/>
|
|
</g>
|
|
|
|
<!-- Glass highlights on top -->
|
|
<g opacity="0.4">
|
|
<path d="M323 419V247.777V162.903V1H0V150" fill="url(#glass-highlight-1)"/>
|
|
<path d="M1374 418V246.777V161.903V0H1051V150" fill="url(#glass-highlight-2)"/>
|
|
<path d="M323 1401V1229.78V1144.9V983H0V1100" fill="url(#glass-highlight-3)"/>
|
|
<path d="M1374 1400V1228.78V1143.9V982H1051V1100" fill="url(#glass-highlight-4)"/>
|
|
</g>
|
|
|
|
<!-- Glass highlight gradients -->
|
|
<defs>
|
|
<linearGradient id="glass-highlight-1" x1="161.5" y1="1" x2="161.5" y2="150" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="white" stop-opacity="0.3"/>
|
|
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
|
</linearGradient>
|
|
<linearGradient id="glass-highlight-2" x1="1212.5" y1="0" x2="1212.5" y2="150" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="white" stop-opacity="0.3"/>
|
|
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
|
</linearGradient>
|
|
<linearGradient id="glass-highlight-3" x1="161.5" y1="983" x2="161.5" y2="1100" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="white" stop-opacity="0.3"/>
|
|
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
|
</linearGradient>
|
|
<linearGradient id="glass-highlight-4" x1="1212.5" y1="982" x2="1212.5" y2="1100" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="white" stop-opacity="0.3"/>
|
|
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
|
</linearGradient>
|
|
</defs>
|
|
</svg>
|