feat: adicionar cadência editorial à home

This commit is contained in:
2026-08-06 14:33:15 -03:00
parent 0aee15e848
commit 75ab0b0ff5
18 changed files with 302 additions and 35 deletions

View File

@@ -1,10 +1,18 @@
@props([
'settings',
'editorial' => false,
])
<section aria-labelledby="final-cta-heading" class="border-t border-amare-border bg-amare-bg-deep py-20" data-chapter="final-cta" data-reveal-group>
<section aria-labelledby="final-cta-heading" @class([
'border-t border-amare-border bg-amare-bg-deep py-20',
'home-chapter' => $editorial,
]) data-chapter="final-cta" data-reveal-group>
<div class="container-amare space-y-6 text-center" data-reveal data-reveal-from="up">
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-amare-accent">Próximo passo</p>
@if ($editorial)
<x-home.folio label="Próximo passo" class="justify-center" />
@else
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-amare-accent">Próximo passo</p>
@endif
<h2 id="final-cta-heading" class="text-headline font-medium text-amare-text">Do casamento ao evento corporativo, tudo começa com uma boa conversa.</h2>
<p class="mx-auto max-w-2xl text-amare-muted">
Compartilhe as primeiras informações do seu evento. A Amare retorna para entender o contexto e orientar os próximos passos.

View File

@@ -0,0 +1,20 @@
@props([
'label',
'tone' => 'default',
])
@php
$tone = $tone === 'inverse' ? 'inverse' : 'default';
@endphp
<p
{{ $attributes->class([
'home-folio',
'home-folio--inverse' => $tone === 'inverse',
]) }}
data-home-folio
>
<span data-home-folio-label>{{ $label }}</span>
<span class="home-folio__separator" aria-hidden="true">·</span>
<span class="home-folio__number" data-home-folio-number aria-hidden="true"></span>
</p>

View File

@@ -4,11 +4,15 @@
<section
aria-labelledby="hero-heading"
class="border-b border-amare-border bg-amare-bg"
class="home-chapter border-b border-amare-border bg-amare-bg"
data-chapter="hero"
data-motion="page-open"
>
<div class="container-amare grid gap-12 py-20 md:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)] md:items-center md:py-28" data-reveal-group>
<div class="container-amare pt-8 md:pt-10">
<x-home.folio label="Capa" data-motion-beat="folio" />
</div>
<div class="container-amare grid gap-12 pb-20 pt-10 md:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)] md:items-center md:pb-28 md:pt-14" data-reveal-group>
<div class="space-y-8">
<div data-motion-beat="seal" class="flex items-center gap-4">
<x-brand.logo mark variant="on-light" class="h-8 w-auto" alt="" />

View File

@@ -8,9 +8,13 @@
$body = $settings->manifesto_body ?: 'A Amare combina sensibilidade e precisão para criar encontros coerentes com cada cliente, marca e ocasião — sem fórmulas prontas, excessos ou ruído.';
@endphp
<section aria-labelledby="manifesto-heading" class="border-b border-amare-border bg-amare-bg-deep py-20" data-chapter="manifesto">
<section aria-labelledby="manifesto-heading" class="home-chapter border-b border-amare-border bg-amare-bg-deep py-20" data-chapter="manifesto">
<div class="container-amare grid gap-8 md:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]" data-reveal-group>
<p class="text-sm font-medium uppercase tracking-[0.18em] text-amare-accent" data-reveal data-reveal-from="up">Manifesto</p>
<div class="space-y-5 md:pr-8" data-reveal data-reveal-from="up">
<x-home.folio label="Manifesto" />
<span class="block h-px w-16 bg-amare-border" aria-hidden="true"></span>
<p class="max-w-52 text-lg leading-snug text-amare-text">Humana no cuidado. Precisa na entrega.</p>
</div>
<div class="space-y-6" data-reveal data-reveal-from="up">
<h2 id="manifesto-heading" class="max-w-3xl text-headline font-medium text-amare-text">{{ $title }}</h2>
<p class="max-w-2xl text-xl leading-relaxed text-amare-text">{{ $lead }}</p>

View File

@@ -7,12 +7,19 @@
$intro = $settings->method_intro ?: 'Clareza em cada etapa. Tranquilidade durante todo o processo.';
@endphp
<section aria-labelledby="method-heading" class="border-b border-amare-border bg-amare-bg-archive py-20" data-chapter="method">
<section aria-labelledby="method-heading" class="home-chapter border-b border-amare-border bg-amare-bg-archive py-20" data-chapter="method">
<div class="container-amare grid gap-10 md:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)] md:items-start" data-reveal-group>
<div class="space-y-3" data-reveal data-reveal-from="up">
<p class="text-sm font-medium uppercase tracking-[0.18em] text-amare-accent">Método</p>
<div class="space-y-4" data-reveal data-reveal-from="up">
<x-home.folio label="Método" />
<h2 id="method-heading" class="text-headline font-medium text-amare-text">Cuidado orientado por processo.</h2>
<p class="text-amare-text-muted">{{ $intro }}</p>
<x-brand.logo
mark
variant="on-light"
class="mt-8 h-8 w-auto opacity-60"
alt=""
aria-hidden="true"
/>
</div>
<ol class="grid gap-5 border-t border-amare-border">

View File

@@ -3,10 +3,10 @@
])
@if ($cases->isNotEmpty())
<section aria-labelledby="portfolio-heading" class="border-b border-amare-accent-deep bg-amare-accent-deep py-20 text-amare-accent-text" data-chapter="portfolio">
<section aria-labelledby="portfolio-heading" class="home-chapter border-b border-amare-accent-deep bg-amare-accent-deep py-20 text-amare-accent-text" data-chapter="portfolio">
<div class="container-amare space-y-10" data-reveal-group>
<div class="grid gap-4 md:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]" data-reveal data-reveal-from="up">
<p class="text-sm font-medium uppercase tracking-[0.18em] text-amare-accent-text/80">Portfólio</p>
<x-home.folio label="Portfólio" tone="inverse" />
<div class="space-y-3">
<h2 id="portfolio-heading" class="text-headline font-medium">Celebrações que ganham forma com intenção.</h2>
<p class="max-w-2xl text-amare-accent-text/80">Recortes de eventos conduzidos com escuta, direção e presença em cada etapa.</p>

View File

@@ -7,10 +7,14 @@
$principles = filled($settings->principles) ? $settings->principles : \App\Models\SiteSetting::defaultPrinciples();
@endphp
<section aria-labelledby="positioning-heading" class="border-b border-amare-border py-20" data-chapter="positioning">
<section aria-labelledby="positioning-heading" class="home-chapter border-b border-amare-border py-20" data-chapter="positioning">
<div class="container-amare grid gap-10 md:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]" data-reveal-group>
<div class="space-y-3" data-reveal data-reveal-from="up">
<p class="text-sm font-medium uppercase tracking-[0.18em] text-amare-accent">A Amare</p>
<div class="space-y-4" data-reveal data-reveal-from="up">
<x-home.folio label="A Amare" />
<div class="flex items-center gap-4">
<span class="h-px w-10 bg-amare-border" aria-hidden="true"></span>
<p class="text-sm uppercase tracking-[0.12em] text-amare-text-muted">Assessoria boutique · São Paulo</p>
</div>
<h2 id="positioning-heading" class="text-headline font-medium text-amare-text">Presença que organiza o essencial.</h2>
</div>
<div class="space-y-8" data-reveal data-reveal-from="up">

View File

@@ -3,12 +3,17 @@
])
@if ($services->isNotEmpty())
<section aria-labelledby="services-heading" class="border-b border-amare-border py-20" data-chapter="services">
<section aria-labelledby="services-heading" class="home-chapter border-b border-amare-border py-20" data-chapter="services">
<div class="container-amare space-y-10" data-reveal-group>
<div class="max-w-2xl space-y-3" data-reveal data-reveal-from="up">
<p class="text-sm font-medium uppercase tracking-[0.18em] text-amare-accent">Atuação</p>
<h2 id="services-heading" class="text-3xl font-medium text-amare-text">Serviços</h2>
<p class="text-amare-text-muted">Assessoria sob medida para decisões importantes e celebrações bem conduzidas.</p>
<div class="grid gap-6 md:grid-cols-12 md:items-end" data-reveal data-reveal-from="up">
<div class="space-y-3 md:col-span-4">
<x-home.folio label="Serviços" />
<h2 id="services-heading" class="text-3xl font-medium text-amare-text">Serviços</h2>
</div>
<div class="space-y-4 md:col-span-6 md:col-start-7">
<p class="max-w-xl text-amare-text-muted">Assessoria sob medida para decisões importantes e celebrações bem conduzidas.</p>
<p class="border-l border-amare-border pl-4 text-sm uppercase tracking-[0.12em] text-amare-accent">Do íntimo ao corporativo</p>
</div>
</div>
<ol class="border-t border-amare-border">

View File

@@ -9,9 +9,10 @@
@endphp
@if ($testimonials->isNotEmpty())
<section aria-labelledby="testimonials-heading" class="border-b border-amare-border bg-amare-bg py-16" data-chapter="testimonials">
<section aria-labelledby="testimonials-heading" class="home-chapter border-b border-amare-border bg-amare-bg py-16" data-chapter="testimonials">
<div class="container-amare space-y-8" data-reveal-group>
<div class="max-w-2xl space-y-3" data-reveal data-reveal-from="up">
<x-home.folio label="Depoimentos" />
<h2 id="testimonials-heading" class="text-3xl font-medium text-amare-text">Depoimentos</h2>
<p class="text-amare-text-muted">Quem celebrou com a Amare conta como foi a experiência.</p>
</div>
@@ -23,12 +24,15 @@
$paragraphs = array_values(array_filter(array_map('trim', $paragraphs), fn (string $p): bool => $p !== ''));
@endphp
<blockquote class="space-y-4 border-t border-amare-border pt-4" data-reveal data-reveal-from="{{ $loop->odd ? 'left' : 'right' }}">
<div class="space-y-3 text-lg text-amare-text">
@foreach ($paragraphs as $index => $paragraph)
<p>@if ($index === 0)@endif{{ $paragraph }}@if ($index === count($paragraphs) - 1)@endif</p>
@endforeach
<div class="grid grid-cols-[1.5rem_minmax(0,1fr)] gap-2">
<span class="text-3xl leading-none text-amare-sage" aria-hidden="true"></span>
<div class="space-y-3 text-lg text-amare-text">
@foreach ($paragraphs as $paragraph)
<p>{{ $paragraph }}</p>
@endforeach
</div>
</div>
<footer class="text-sm text-amare-text-muted">
<footer class="pl-8 text-sm text-amare-text-muted">
<cite class="not-italic font-semibold text-amare-text">{{ $testimonial->author_name }}</cite>
@if (filled($testimonial->context))
<span> {{ $testimonial->context }}</span>