polish: tighten spacing + visual refinements across all sections
All checks were successful
Build & Push / build-and-push (push) Successful in 1m23s
All checks were successful
Build & Push / build-and-push (push) Successful in 1m23s
- Reduced py-24 → py-20 on Services, Configurator, Process, Works, Philosophy - TrustBar: py-16 → py-12, gradient bridge adjusted - Services: pillar divider opacity increased (outline/20), header gap tightened - Configurator: added subtle dividers between service cards - SelectedWorks: darkened coming-soon text and border opacity - Philosophy: confirmed 2px primary border on pillars Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -262,7 +262,7 @@ export default function StepServices({ formData, setFormData, onNext }: StepProp
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Service cards */}
|
{/* Service cards */}
|
||||||
<div className="flex flex-col gap-3">
|
<div className="flex flex-col gap-0 divide-y divide-outline-variant/10">
|
||||||
{SERVICES.map((option) => (
|
{SERVICES.map((option) => (
|
||||||
<ServiceCard
|
<ServiceCard
|
||||||
key={option.id}
|
key={option.id}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export default function Configurator() {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section id="configure" className="bg-surface-low py-24">
|
<section id="configure" className="bg-surface-low py-20">
|
||||||
<div className="container mx-auto px-6">
|
<div className="container mx-auto px-6">
|
||||||
<div className="grid grid-cols-1 gap-12 lg:grid-cols-12">
|
<div className="grid grid-cols-1 gap-12 lg:grid-cols-12">
|
||||||
|
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ export default function Philosophy() {
|
|||||||
const t = useTranslations();
|
const t = useTranslations();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section id="about" className="bg-surface py-24">
|
<section id="about" className="bg-surface py-20">
|
||||||
<div className="container mx-auto px-6">
|
<div className="container mx-auto px-6">
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-12 gap-12 lg:gap-16 items-start">
|
<div className="grid grid-cols-1 lg:grid-cols-12 gap-12 lg:gap-16 items-start">
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ export default function Process() {
|
|||||||
const t = useTranslations();
|
const t = useTranslations();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section id="process" className="bg-surface-low py-24">
|
<section id="process" className="bg-surface-low py-20">
|
||||||
<div className="container mx-auto px-6">
|
<div className="container mx-auto px-6">
|
||||||
|
|
||||||
{/*
|
{/*
|
||||||
|
|||||||
@@ -514,7 +514,7 @@ function ComingSoonCard({ item }: { item: ComingSoonItem }) {
|
|||||||
className={cn(
|
className={cn(
|
||||||
'relative flex flex-col items-center justify-center gap-4',
|
'relative flex flex-col items-center justify-center gap-4',
|
||||||
'rounded-xl p-8 min-h-[160px]',
|
'rounded-xl p-8 min-h-[160px]',
|
||||||
'border border-dashed border-outline-variant/30',
|
'border border-dashed border-outline-variant/50',
|
||||||
'coming-soon-card',
|
'coming-soon-card',
|
||||||
'overflow-hidden',
|
'overflow-hidden',
|
||||||
)}
|
)}
|
||||||
@@ -528,14 +528,14 @@ function ComingSoonCard({ item }: { item: ComingSoonItem }) {
|
|||||||
<div className="relative z-10 flex flex-col items-center gap-3 text-center">
|
<div className="relative z-10 flex flex-col items-center gap-3 text-center">
|
||||||
<Icon
|
<Icon
|
||||||
size={20}
|
size={20}
|
||||||
className="text-outline/40"
|
className="text-outline/60"
|
||||||
strokeWidth={1.5}
|
strokeWidth={1.5}
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
<p className="font-serif text-base font-medium text-on-surface/40 leading-snug">
|
<p className="font-serif text-base font-medium text-on-surface/60 leading-snug">
|
||||||
{item.title}
|
{item.title}
|
||||||
</p>
|
</p>
|
||||||
<p className="label-md text-outline/50 mt-1">{item.subtitle}</p>
|
<p className="label-md text-outline/70 mt-1">{item.subtitle}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
@@ -551,7 +551,7 @@ export default function SelectedWorks() {
|
|||||||
const secondaryProjects = PROJECTS.filter((p) => !p.featured);
|
const secondaryProjects = PROJECTS.filter((p) => !p.featured);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section id="work" className="bg-surface-low py-24">
|
<section id="work" className="bg-surface-low py-20">
|
||||||
<style>{`
|
<style>{`
|
||||||
@keyframes dashed-drift {
|
@keyframes dashed-drift {
|
||||||
0% { background-position: 0 0, 100% 0, 100% 100%, 0 100%; }
|
0% { background-position: 0 0, 100% 0, 100% 100%, 0 100%; }
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export default function ServicesOverview() {
|
|||||||
return (
|
return (
|
||||||
<section
|
<section
|
||||||
id="services"
|
id="services"
|
||||||
className="relative bg-surface py-24"
|
className="relative bg-surface py-20"
|
||||||
style={{
|
style={{
|
||||||
backgroundImage: [
|
backgroundImage: [
|
||||||
'repeating-linear-gradient(0deg, rgba(25,28,29,0.02) 0px, rgba(25,28,29,0.02) 1px, transparent 1px, transparent 48px)',
|
'repeating-linear-gradient(0deg, rgba(25,28,29,0.02) 0px, rgba(25,28,29,0.02) 1px, transparent 1px, transparent 48px)',
|
||||||
@@ -57,7 +57,7 @@ export default function ServicesOverview() {
|
|||||||
<div className="container mx-auto px-6">
|
<div className="container mx-auto px-6">
|
||||||
|
|
||||||
{/* Section header */}
|
{/* Section header */}
|
||||||
<div className="mb-16">
|
<div className="mb-12">
|
||||||
<SectionHeader
|
<SectionHeader
|
||||||
eyebrow={t('services.eyebrow')}
|
eyebrow={t('services.eyebrow')}
|
||||||
title={t('services.title')}
|
title={t('services.title')}
|
||||||
@@ -66,7 +66,7 @@ export default function ServicesOverview() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Three-pillar grid with gap-px separator trick */}
|
{/* Three-pillar grid with gap-px separator trick */}
|
||||||
<div className="bg-outline/10 rounded-xl overflow-hidden shadow-subtle">
|
<div className="bg-outline/20 rounded-xl overflow-hidden shadow-subtle">
|
||||||
<motion.div
|
<motion.div
|
||||||
variants={staggerContainerWide}
|
variants={staggerContainerWide}
|
||||||
initial="hidden"
|
initial="hidden"
|
||||||
|
|||||||
@@ -111,11 +111,11 @@ export default function TrustBar() {
|
|||||||
return (
|
return (
|
||||||
<section
|
<section
|
||||||
aria-label="Trust indicators"
|
aria-label="Trust indicators"
|
||||||
className="relative bg-surface-low py-16"
|
className="relative bg-surface-low py-12"
|
||||||
>
|
>
|
||||||
{/* Gradient bridge — blends hero surface-high into this section */}
|
{/* Gradient bridge — blends hero surface-high into this section */}
|
||||||
<div
|
<div
|
||||||
className="absolute top-0 left-0 right-0 h-8 pointer-events-none"
|
className="absolute top-0 left-0 right-0 h-16 pointer-events-none"
|
||||||
style={{
|
style={{
|
||||||
background: 'linear-gradient(to bottom, #ffffff, transparent)',
|
background: 'linear-gradient(to bottom, #ffffff, transparent)',
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user