diff --git a/.npmrc b/.npmrc index b0b0f7051..c7c69bd37 100644 --- a/.npmrc +++ b/.npmrc @@ -1,7 +1,7 @@ -@mintel:registry=https://npm.infra.mintel.me -//npm.infra.mintel.me/:_authToken=YTJlYzk0ZDk1MzRiMTRmNmQxZWNkMTBkNmFhNTg4Y2I6MWVkMjdjNzE3NDVkMzhmMmQ4MDEyODEwNmJjZmQyYTkwMjY3M2VjZA== -//npm.infra.mintel.me/:always-auth=true -//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=YTJlYzk0ZDk1MzRiMTRmNmQxZWNkMTBkNmFhNTg4Y2I6MWVkMjdjNzE3NDVkMzhmMmQ4MDEyODEwNmJjZmQyYTkwMjY3M2VjZA== +@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm +//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=3b9e7c4da038461efd0c6fd006d432d2ace5cb14 //git.infra.mintel.me/api/packages/mmintel/npm/:always-auth=true -//registry.infra.mintel.me/api/packages/mmintel/npm/:_authToken=YTJlYzk0ZDk1MzRiMTRmNmQxZWNkMTBkNmFhNTg4Y2I6MWVkMjdjNzE3NDVkMzhmMmQ4MDEyODEwNmJjZmQyYTkwMjY3M2VjZA== +//registry.infra.mintel.me/api/packages/mmintel/npm/:_authToken=3b9e7c4da038461efd0c6fd006d432d2ace5cb14 //registry.infra.mintel.me/api/packages/mmintel/npm/:always-auth=true +//npm.infra.mintel.me/:_authToken=3b9e7c4da038461efd0c6fd006d432d2ace5cb14 +//npm.infra.mintel.me/:always-auth=true diff --git a/app/[locale]/template.tsx b/app/[locale]/template.tsx new file mode 100644 index 000000000..4d690b91a --- /dev/null +++ b/app/[locale]/template.tsx @@ -0,0 +1,19 @@ +'use client'; + +import { motion } from 'framer-motion'; + +export default function Template({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} diff --git a/components/blocks/BenefitGrid.tsx b/components/blocks/BenefitGrid.tsx index 0c76ad2ab..dd2cee38f 100644 --- a/components/blocks/BenefitGrid.tsx +++ b/components/blocks/BenefitGrid.tsx @@ -3,6 +3,7 @@ import * as React from 'react'; import { motion, Variants } from 'framer-motion'; import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay'; +import { LogoArcs } from '@/components/ui/LogoArcs'; export interface BenefitItem { id: string; @@ -100,13 +101,32 @@ export function BenefitGrid({ badge, title, description, benefits }: BenefitGrid whileInView="visible" viewport={{ once: true, margin: "-50px" }} > - {benefits.map((benefit) => ( - - + {benefits.map((benefit, index) => { + const bgPositionClasses = [ + "-bottom-[30%] -right-[30%]", + "-top-[30%] -left-[30%]", + "-bottom-[30%] -left-[30%]" + ]; + const animationClasses = [ + "animate-[spin_60s_linear_infinite]", + "animate-[spin_80s_linear_infinite]", + "animate-[spin_100s_linear_infinite]" + ]; + const positionClass = bgPositionClasses[index % bgPositionClasses.length]; + const animationClass = animationClasses[index % animationClasses.length]; + + return ( + + + + {/* Subtle Background Logo Arcs */} +
+ +
@@ -125,7 +145,8 @@ export function BenefitGrid({ badge, title, description, benefits }: BenefitGrid
- ))} + ); + })}
diff --git a/components/blocks/CompetenceBentoGrid.tsx b/components/blocks/CompetenceBentoGrid.tsx index 340711adf..acc9dcb3c 100644 --- a/components/blocks/CompetenceBentoGrid.tsx +++ b/components/blocks/CompetenceBentoGrid.tsx @@ -6,8 +6,9 @@ import { motion } from 'framer-motion'; import { useState, useEffect } from 'react'; import { Button } from '@/components/ui/Button'; import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay'; - +import { AnimatedGlossyBorder } from '@/components/ui/AnimatedGlossyBorder'; import { Container } from '@/components/ui/Container'; +import { LogoArcs } from '@/components/ui/LogoArcs'; interface CompetenceBentoGridProps { badge?: string; @@ -113,7 +114,14 @@ export function CompetenceBentoGrid(props: CompetenceBentoGridProps) { className={gridClasses} >
+ + {/* Subtle Background Logo Arcs */} +
+ +
+ +

{item.title}

{item.description &&

{item.description}

} @@ -148,6 +156,12 @@ export function CompetenceBentoGrid(props: CompetenceBentoGridProps) { )} + + + {/* Subtle Background Logo Arcs */} +
+ +
{item.tag && ( diff --git a/components/blocks/SubCompanyTiles.tsx b/components/blocks/SubCompanyTiles.tsx index b141e4a0f..eea21755a 100644 --- a/components/blocks/SubCompanyTiles.tsx +++ b/components/blocks/SubCompanyTiles.tsx @@ -4,6 +4,7 @@ import * as React from 'react'; import { motion, Variants } from 'framer-motion'; import Image from 'next/image'; import { HoverShineOverlay } from '@/components/ui/HoverShineOverlay'; +import { AnimatedGlossyBorder } from '@/components/ui/AnimatedGlossyBorder'; interface SubCompanyTilesProps { badge?: string; @@ -49,6 +50,7 @@ const itemVariants: Variants = { }; import { usePathname } from 'next/navigation'; +import { LogoArcs } from '@/components/ui/LogoArcs'; export function SubCompanyTiles(props: SubCompanyTilesProps) { const { data } = props; @@ -91,6 +93,19 @@ export function SubCompanyTiles(props: SubCompanyTilesProps) { const isEtib = company.title.includes('E-TIB'); const isIng = company.title.includes('Ingenieur'); const isNemo = company.title.includes('NEMO'); + + const bgPositionClasses = [ + "-bottom-[30%] -right-[30%]", + "-top-[30%] -left-[30%]", + "-bottom-[30%] -left-[30%]" + ]; + const animationClasses = [ + "animate-[spin_60s_linear_infinite]", + "animate-[spin_80s_linear_infinite]", + "animate-[spin_100s_linear_infinite]" + ]; + const positionClass = bgPositionClasses[index % bgPositionClasses.length]; + const animationClass = animationClasses[index % animationClasses.length]; return ( + + {/* Subtle Background Logo Arcs */} +
+ +
{/* Premium Shine Sweep Effect (Industrial Reflection) */} + {/* Glossy Animated Border */} + + {/* Current Site Indicator Badge */} {isCurrent && (
diff --git a/components/decorations/CorporateBackground.tsx b/components/decorations/CorporateBackground.tsx index 581d9e09e..e02583822 100644 --- a/components/decorations/CorporateBackground.tsx +++ b/components/decorations/CorporateBackground.tsx @@ -2,24 +2,7 @@ import React, { useRef, useEffect } from 'react'; import { motion, useScroll, useTransform, useSpring } from 'framer-motion'; - -// Reusable SVG component that precisely mimics the overlapping, sweeping arcs of the E-TIB logo. -const LogoArcs = ({ className }: { className?: string }) => ( - - {/* Outer ring */} - - {/* Middle thicker ring */} - - {/* Inner ring */} - - -); +import { LogoArcs } from '@/components/ui/LogoArcs'; function MagneticRing({ children, diff --git a/components/layout/Header.tsx b/components/layout/Header.tsx index 45c42c321..b0e9fee03 100644 --- a/components/layout/Header.tsx +++ b/components/layout/Header.tsx @@ -125,7 +125,7 @@ export function Header({ navLinks }: HeaderProps) {