feat: monochrome black & white rebrand + new Pudu robots
CI/CD / test-and-build (push) Waiting to run
CI/CD / deploy (push) Blocked by required conditions

- Convert site from royal-blue theme to black/white monochrome (desaturate
  all blue-hued colors; keep WhatsApp green and error red)
- Swap blue circular brand logo for mono YS mark; regenerate favicon/PWA icons
- Add 6 Pudu robots (CC1 Pro, MT1 Max, MT1 Vac, T600, T600 Underride, BG1 Pro)
- Fix favicon.ico to RGBA (Next 16 Turbopack decode) and Stripe apiVersion type

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Najjar
2026-07-06 13:20:26 +04:00
co-authored by Claude Opus 4.8
parent c2490947d2
commit 873026a4a9
96 changed files with 1654 additions and 1487 deletions
+17 -17
View File
@@ -24,12 +24,12 @@ function Loader() {
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '0.75rem' }}>
<div style={{
width: '48px', height: '48px',
border: '3px solid rgba(59, 130, 246, 0.15)',
borderTopColor: '#3b82f6',
border: '3px solid rgba(153, 153, 153, 0.15)',
borderTopColor: '#999999',
borderRadius: '50%',
animation: 'spin 1s linear infinite',
}} />
<p style={{ fontSize: '0.875rem', color: '#6a73a5', fontFamily: 'system-ui, sans-serif' }}>
<p style={{ fontSize: '0.875rem', color: '#888888', fontFamily: 'system-ui, sans-serif' }}>
{progress.toFixed(0)}% loaded
</p>
</div>
@@ -51,13 +51,13 @@ function SceneContent({ onCapture }: { onCapture: (gl: WebGLRenderer, scene: Sce
<SceneCapture onCapture={onCapture} />
<Environment preset="studio" environmentIntensity={2.2} />
<ambientLight intensity={3.4} />
<hemisphereLight args={['#ffffff', '#3a4a78', 2.6]} />
<hemisphereLight args={['#ffffff', '#595959', 2.6]} />
{/* Key — front-right, strong white */}
<directionalLight position={[5, 5, 5]} intensity={6.0} color="#ffffff" castShadow shadow-mapSize={[1024, 1024]} />
{/* Fill — front-left, cool tint */}
<directionalLight position={[-4, 3, 2]} intensity={4.0} color="#e8f0ff" />
<directionalLight position={[-4, 3, 2]} intensity={4.0} color="#f4f4f4" />
{/* Rim — behind */}
<directionalLight position={[0, 3, -5]} intensity={2.8} color="#A6B2D8" />
<directionalLight position={[0, 3, -5]} intensity={2.8} color="#bfbfbf" />
{/* Top spotlight */}
<spotLight position={[0, 8, 0]} intensity={4.5} angle={0.8} penumbra={0.45} color="#ffffff" />
{/* Front fill — direct face/torso */}
@@ -65,13 +65,13 @@ function SceneContent({ onCapture }: { onCapture: (gl: WebGLRenderer, scene: Sce
{/* Face spotlight — soft direct head light */}
<spotLight position={[0, 2.2, 4.2]} intensity={3.0} angle={0.55} penumbra={0.6} color="#ffffff" />
{/* Bottom fill — lift the legs */}
<directionalLight position={[0, -1, 4]} intensity={1.4} color="#dfe8ff" />
<directionalLight position={[0, -1, 4]} intensity={1.4} color="#efefef" />
{/* Side accents */}
<pointLight position={[3, 1.5, 3]} intensity={2.4} color="#ffffff" distance={10} />
<pointLight position={[-3, 1.5, 3]} intensity={2.4} color="#dfe8ff" distance={10} />
<pointLight position={[-3, 1.5, 3]} intensity={2.4} color="#efefef" distance={10} />
{/* Back side accents — define silhouette */}
<pointLight position={[2.5, 2.5, -2]} intensity={1.6} color="#b0c4ff" distance={10} />
<pointLight position={[-2.5, 2.5, -2]} intensity={1.6} color="#b0c4ff" distance={10} />
<pointLight position={[2.5, 2.5, -2]} intensity={1.6} color="#d8d8d8" distance={10} />
<pointLight position={[-2.5, 2.5, -2]} intensity={1.6} color="#d8d8d8" distance={10} />
<RobotModel />
<OrbitControls
target={[0, 0.5, 0]}
@@ -167,7 +167,7 @@ export function RobotCanvas() {
gl={{ antialias: true, powerPreference: 'high-performance' }}
style={{
background:
'radial-gradient(ellipse 45% 22% at 50% 82%, rgba(220, 228, 245, 0.32), transparent 70%), radial-gradient(ellipse 70% 65% at 50% 45%, rgba(80, 110, 200, 0.38), transparent 65%), linear-gradient(180deg, #1c1d2c 0%, #0f1018 60%, #0a0b13 100%)',
'radial-gradient(ellipse 45% 22% at 50% 82%, rgba(233, 233, 233, 0.32), transparent 70%), radial-gradient(ellipse 70% 65% at 50% 45%, rgba(140, 140, 140, 0.38), transparent 65%), linear-gradient(180deg, #242424 0%, #141414 60%, #0f0f0f 100%)',
}}
>
<Suspense fallback={<Loader />}>
@@ -181,9 +181,9 @@ export function RobotCanvas() {
style={{
...btnBase,
left: '1rem',
backgroundColor: 'rgba(20, 19, 26, 0.78)',
border: '1px solid rgba(74, 102, 216, 0.36)',
color: '#DEE0F0',
backgroundColor: 'rgba(23, 23, 23, 0.78)',
border: '1px solid rgba(145, 145, 145, 0.36)',
color: '#e7e7e7',
boxShadow: '0 8px 22px rgba(0, 0, 0, 0.45)',
letterSpacing: '0.04em',
}}
@@ -200,9 +200,9 @@ export function RobotCanvas() {
style={{
...btnBase,
left: '8.5rem',
backgroundColor: shareStatus === 'copied' ? 'rgba(127, 214, 208, 0.18)' : 'rgba(20, 19, 26, 0.78)',
border: `1px solid ${shareStatus === 'copied' ? 'rgba(127, 214, 208, 0.6)' : 'rgba(74, 102, 216, 0.36)'}`,
color: shareStatus === 'copied' ? '#7FD6D0' : '#DEE0F0',
backgroundColor: shareStatus === 'copied' ? 'rgba(171, 171, 171, 0.18)' : 'rgba(23, 23, 23, 0.78)',
border: `1px solid ${shareStatus === 'copied' ? 'rgba(171, 171, 171, 0.6)' : 'rgba(145, 145, 145, 0.36)'}`,
color: shareStatus === 'copied' ? '#ababab' : '#e7e7e7',
boxShadow: '0 8px 22px rgba(0, 0, 0, 0.45)',
letterSpacing: '0.04em',
}}