feat: distribute animated DrillBitSpinner across all major components as a background watermark

Former-commit-id: ad28a5d93b773be795cd0d73fd6ed2accd257a10
This commit is contained in:
2026-05-11 11:00:07 +02:00
parent 8fc4cadd19
commit c97ee638d9
7 changed files with 180 additions and 29 deletions

View File

@@ -7,6 +7,7 @@ import { useState, useEffect } from 'react';
import { Button } from '@/components/ui/Button';
import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay';
import { StratumLines } from '@/components/ui/decorations/StratumLines';
import { DrillBitSpinner } from '@/components/ui/decorations/DrillBitSpinner';
interface CompetenceBentoGridProps {
badge?: string;
@@ -168,6 +169,10 @@ export function CompetenceBentoGrid(props: CompetenceBentoGridProps) {
})}
</div>
</div>
{/* Decorative: large abstract drill bit spinning slowly in background */}
<div className="absolute top-1/2 -translate-y-1/2 -right-48 pointer-events-none opacity-[0.03]">
<DrillBitSpinner size={600} duration={25} glow={false} />
</div>
{/* Decorative: abstract earth strata / excavation layers */}
<StratumLines placement="bottom-left" invert />
<StratumLines placement="bottom-right" invert />

View File

@@ -4,6 +4,7 @@ import Reveal from '@/components/Reveal';
import { Badge, Container, Heading } from '@/components/ui';
import { Button } from '@/components/ui/Button';
import { DrillOrbit } from '@/components/ui/decorations/DrillOrbit';
import { DrillBitSpinner } from '@/components/ui/decorations/DrillBitSpinner';
export interface HeroSectionProps {
title: string;
@@ -71,6 +72,10 @@ export const HeroSection: React.FC<HeroSectionProps> = (props) => {
)}
</div>
</Container>
{/* Decorative: large abstract drill bit spinning slowly in background */}
<div className="absolute top-1/2 -translate-y-1/2 -right-48 md:-right-64 pointer-events-none opacity-[0.03]">
<DrillBitSpinner size={800} duration={20} glow={false} />
</div>
{/* Decorative: abstract HDD bore trajectory */}
<DrillOrbit side="right" />
</section>

View File

@@ -6,6 +6,7 @@ import Link from 'next/link';
import Image from 'next/image';
import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay';
import { DrillOrbit } from '@/components/ui/decorations/DrillOrbit';
import { DrillBitSpinner } from '@/components/ui/decorations/DrillBitSpinner';
export interface Reference {
id: string;
@@ -152,6 +153,10 @@ export function ReferencesSlider(props: ReferencesSliderProps) {
<svg xmlns="http://www.w3.org/2000/svg" className="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
</Link>
</div>
{/* Decorative: large abstract drill bit spinning slowly in background */}
<div className="absolute top-1/2 -translate-y-1/2 -right-48 pointer-events-none opacity-[0.03]">
<DrillBitSpinner size={600} duration={25} glow={false} />
</div>
{/* Decorative: abstract HDD bore trajectory */}
<DrillOrbit side="left" />
</section>

View File

@@ -5,6 +5,7 @@ import { motion, Variants } from 'framer-motion';
import Image from 'next/image';
import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay';
import { DrillOrbit } from '@/components/ui/decorations/DrillOrbit';
import { DrillBitSpinner } from '@/components/ui/decorations/DrillBitSpinner';
interface SubCompanyTilesProps {
badge?: string;
@@ -198,6 +199,10 @@ export function SubCompanyTiles(props: SubCompanyTilesProps) {
})}
</motion.div>
</div>
{/* Decorative: large abstract drill bit spinning slowly in background */}
<div className="absolute top-1/3 -translate-y-1/2 -left-64 pointer-events-none opacity-[0.04]">
<DrillBitSpinner size={700} duration={25} glow={false} />
</div>
{/* Decorative: abstract HDD bore trajectory */}
<DrillOrbit side="right" />
</section>