feat: adicionar heros fotográficos imersivos (#45)

This commit is contained in:
2026-08-11 08:28:09 -03:00
committed by GitHub
parent 338e3c9adb
commit 8afb925e17
16 changed files with 303 additions and 133 deletions

View File

@@ -1,13 +1,10 @@
@extends('layouts.public')
@section('content')
<div class="border-b border-amare-border bg-amare-bg-deep" data-motion="page-open">
<x-public.photo-hero :image-path="$siteSettings->portfolio_hero_image_path" :image-alt="$siteSettings->portfolio_hero_image_alt" eyebrow="Portfólio" title="Atmosferas que contam histórias." summary="Casos conduzidos com atenção a ritmo, composição e cada detalhe da experiência." />
<div class="border-b border-amare-border bg-amare-bg-deep">
<div class="container-amare space-y-10 py-16 md:py-24">
<div class="max-w-2xl space-y-4" data-motion-beat="heading">
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-amare-accent">Portfólio</p>
<h1 class="text-headline font-medium tracking-tight text-amare-text">Atmosferas que contam histórias.</h1>
<p class="text-lg text-amare-muted">Casos conduzidos com atenção a ritmo, composição e cada detalhe da experiência.</p>
</div>
@if ($cases->isEmpty())
<p class="text-amare-muted">Novos casos serão publicados assim que o acervo estiver organizado. Enquanto isso, fale conosco para conhecer o nosso trabalho.</p>

View File

@@ -1,35 +1,8 @@
@extends('layouts.public')
@section('content')
<article data-motion="page-open">
<div class="border-b border-amare-border bg-amare-bg">
<div class="container-amare space-y-8 py-16 md:py-24">
<header class="max-w-3xl space-y-4" data-motion-beat="heading">
@if (filled($case->event_type))
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-amare-accent">{{ $case->event_type }}</p>
@endif
<h1 class="text-headline font-medium tracking-tight text-amare-text">{{ $case->title }}</h1>
<p class="text-lg text-amare-muted">{{ $case->summary }}</p>
<p class="text-sm break-words text-amare-muted">
@if ($case->city){{ $case->city }}@endif
@if ($case->venue) · {{ $case->venue }}@endif
@if ($case->event_date) · {{ $case->event_date->format('d/m/Y') }}@endif
</p>
</header>
@if (filled($case->cover_image_path))
<x-media.image
:path="$case->cover_image_path"
:alt="$case->cover_image_alt ?: $case->title"
loading="eager"
fetchpriority="high"
sizes="(max-width: 1024px) calc(100vw - 3rem), 1120px"
class="img-editorial aspect-[16/9] w-full object-cover"
data-motion-beat="media"
/>
@endif
</div>
</div>
<article>
<x-public.photo-hero :image-path="$case->cover_image_path" :image-alt="$case->cover_image_alt" :eyebrow="$case->event_type" :title="$case->title" :summary="$case->summary" :metadata="collect([$case->city, $case->venue, $case->event_date?->format('d/m/Y')])->filter()->implode(' · ')" />
<div class="border-b border-amare-border bg-amare-bg-deep">
<div class="container-amare grid gap-10 py-16 md:grid-cols-3" data-reveal-group>
@@ -57,12 +30,7 @@
<div class="grid gap-6 md:grid-cols-2" data-reveal-group>
@foreach ($case->images as $image)
<figure class="space-y-2" data-reveal data-reveal-from="up" data-reveal-media>
<x-media.image
:path="$image->path"
:alt="$image->alt_text"
sizes="(max-width: 768px) calc(100vw - 3rem), 50vw"
class="img-editorial aspect-[4/3] w-full object-cover"
/>
<x-media.image :path="$image->path" :alt="$image->alt_text" sizes="(max-width: 768px) calc(100vw - 3rem), 50vw" class="img-editorial aspect-[4/3] w-full object-cover" />
@if (filled($image->caption))
<figcaption class="text-sm text-amare-muted">{{ $image->caption }}</figcaption>
@endif