polish: remove generic icons from Process cards
All checks were successful
Build & Push / build-and-push (push) Successful in 1m27s
All checks were successful
Build & Push / build-and-push (push) Successful in 1m27s
Let the ghosted numerals + gradient top bar carry the visual identity. Tighter layout: numeral flows directly into title into description. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import type { Metadata } from 'next'
|
import type { Metadata } from 'next'
|
||||||
|
import Script from 'next/script'
|
||||||
import { NextIntlClientProvider } from 'next-intl'
|
import { NextIntlClientProvider } from 'next-intl'
|
||||||
import { getMessages, setRequestLocale } from 'next-intl/server'
|
import { getMessages, setRequestLocale } from 'next-intl/server'
|
||||||
import { notFound } from 'next/navigation'
|
import { notFound } from 'next/navigation'
|
||||||
@@ -34,6 +35,15 @@ export default async function LocaleLayout({ children, params }: Props) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<html lang={locale} className="scroll-smooth">
|
<html lang={locale} className="scroll-smooth">
|
||||||
|
<head>
|
||||||
|
{process.env.NODE_ENV === 'development' && (
|
||||||
|
<Script
|
||||||
|
src="//unpkg.com/react-grab/dist/index.global.js"
|
||||||
|
crossOrigin="anonymous"
|
||||||
|
strategy="beforeInteractive"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</head>
|
||||||
<body className="font-sans text-on-surface bg-surface antialiased">
|
<body className="font-sans text-on-surface bg-surface antialiased">
|
||||||
<NextIntlClientProvider messages={messages}>
|
<NextIntlClientProvider messages={messages}>
|
||||||
<Nav />
|
<Nav />
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ export default function Footer() {
|
|||||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-12 lg:gap-8">
|
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-12 lg:gap-8">
|
||||||
|
|
||||||
{/* Col 1 — Brand */}
|
{/* Col 1 — Brand */}
|
||||||
<div className="sm:col-span-2 lg:col-span-1 flex flex-col gap-5">
|
<div className="sm:col-span-2 lg:col-span-1 flex flex-col items-center lg:items-start gap-4">
|
||||||
<Image
|
<Image
|
||||||
src="/images/LogoLetsBe_Biz_celesBlue.png"
|
src="/images/LogoLetsBe_Biz_celesBlue.png"
|
||||||
alt="LetsBe."
|
alt="LetsBe."
|
||||||
@@ -119,7 +119,7 @@ export default function Footer() {
|
|||||||
height={60}
|
height={60}
|
||||||
className="h-12 w-auto object-contain"
|
className="h-12 w-auto object-contain"
|
||||||
/>
|
/>
|
||||||
<p className="text-sm text-on-surface/55 leading-relaxed max-w-[260px]">
|
<p className="text-sm text-on-surface/55 leading-relaxed max-w-[260px] text-center lg:text-left">
|
||||||
{t('tagline')}
|
{t('tagline')}
|
||||||
</p>
|
</p>
|
||||||
<p className="label-md text-on-surface/35 tracking-widest">
|
<p className="label-md text-on-surface/35 tracking-widest">
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
import { motion, type Variants } from 'framer-motion';
|
import { motion, type Variants } from 'framer-motion';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { Search, LayoutDashboard, PenTool, Rocket, type LucideIcon } from 'lucide-react';
|
import type { LucideIcon } from 'lucide-react';
|
||||||
|
import { Search, LayoutDashboard, PenTool, Rocket } from 'lucide-react';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import {
|
import {
|
||||||
staggerContainerWide,
|
staggerContainerWide,
|
||||||
@@ -69,23 +70,11 @@ function StepCard({ numeral, stepKey, Icon }: { numeral: string; stepKey: string
|
|||||||
<motion.span
|
<motion.span
|
||||||
variants={numeralScaleVariants}
|
variants={numeralScaleVariants}
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
className="font-serif text-6xl font-light leading-none text-on-surface/[0.12] select-none -ml-0.5 mb-3 mt-6"
|
className="font-serif text-6xl font-light leading-none text-on-surface/[0.12] select-none -ml-0.5 mt-6 mb-5"
|
||||||
>
|
>
|
||||||
{numeral}
|
{numeral}
|
||||||
</motion.span>
|
</motion.span>
|
||||||
|
|
||||||
{/* Icon container */}
|
|
||||||
<div className="mb-4">
|
|
||||||
<div className="w-12 h-12 rounded-xl bg-primary/8 flex items-center justify-center">
|
|
||||||
<Icon
|
|
||||||
size={22}
|
|
||||||
strokeWidth={1.5}
|
|
||||||
className="text-primary"
|
|
||||||
aria-hidden="true"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Title */}
|
{/* Title */}
|
||||||
<h3 className="font-semibold text-lg text-on-surface mb-2 leading-snug">
|
<h3 className="font-semibold text-lg text-on-surface mb-2 leading-snug">
|
||||||
{title}
|
{title}
|
||||||
|
|||||||
Reference in New Issue
Block a user