This commit is contained in:
2026-04-09 13:37:49 +01:00
parent 1baabc88b9
commit 3aab9adaea
+28 -21
View File
@@ -79,6 +79,7 @@ const destaques = [
const recentes = [ const recentes = [
{ {
cat: "EM FOCO", cat: "EM FOCO",
readTime: "6",
catBg: "bg-pink-100 text-pink-700", catBg: "bg-pink-100 text-pink-700",
title: "Governo anuncia medidas para apoiar famílias e pequenas empresas.", title: "Governo anuncia medidas para apoiar famílias e pequenas empresas.",
excerpt: "Pacote inclui linhas de crédito e simplificação de procedimentos.", excerpt: "Pacote inclui linhas de crédito e simplificação de procedimentos.",
@@ -88,6 +89,7 @@ const recentes = [
}, },
{ {
cat: "ECONOMIA", cat: "ECONOMIA",
readTime: "6",
catBg: "bg-amber-100 text-amber-800", catBg: "bg-amber-100 text-amber-800",
title: "Inflação desce pelo terceiro mês consecutivo, segundo dados preliminares.", title: "Inflação desce pelo terceiro mês consecutivo, segundo dados preliminares.",
excerpt: "Analistas mantêm cautela face ao cenário internacional.", excerpt: "Analistas mantêm cautela face ao cenário internacional.",
@@ -97,6 +99,7 @@ const recentes = [
}, },
{ {
cat: "CULTURA", cat: "CULTURA",
readTime: "6",
catBg: "bg-violet-100 text-violet-800", catBg: "bg-violet-100 text-violet-800",
title: "Museu inaugura exposição com obras inéditas de artistas locais.", title: "Museu inaugura exposição com obras inéditas de artistas locais.",
excerpt: "Visitas guiadas e programa educativo arrancam no próximo fim de semana.", excerpt: "Visitas guiadas e programa educativo arrancam no próximo fim de semana.",
@@ -106,6 +109,7 @@ const recentes = [
}, },
{ {
cat: "SAÚDE", cat: "SAÚDE",
readTime: "6",
catBg: "bg-emerald-100 text-emerald-800", catBg: "bg-emerald-100 text-emerald-800",
title: "Campanha de vacinação alarga faixas etárias em todo o país.", title: "Campanha de vacinação alarga faixas etárias em todo o país.",
excerpt: "Autoridades de saúde reforçam importância da adesão às janelas recomendadas.", excerpt: "Autoridades de saúde reforçam importância da adesão às janelas recomendadas.",
@@ -206,14 +210,14 @@ export function TvoneDestaques() {
export function TvoneMainColumns() { export function TvoneMainColumns() {
return ( return (
<section className="mx-auto w-full max-w-[1200px] px-4 pb-20"> <section className="mx-auto w-full max-w-[1200px] px-4 pb-20">
{/* SECTION HEADER */} {/* SECTION HEADER UNIFICADO */}
<div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6"> <div className="mb-10 flex items-end justify-between border-b border-neutral-100 pb-6">
<h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl"> <h2 className="text-3xl font-bold tracking-tight text-neutral-900 md:text-4xl">
Destaques Destaques
</h2> </h2>
<Link <Link
href="/negocios" href="/noticias"
className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC] transition-colors hover:text-[#004499]" className="group flex items-center gap-1 text-sm font-semibold text-[#0066CC] transition-colors hover:text-[#004499]"
> >
Ver tudo Ver tudo
@@ -229,14 +233,14 @@ export function TvoneMainColumns() {
</Link> </Link>
</div> </div>
{/* TWO COLUMN GRID OF HORIZONTAL CARDS */} {/* GRID DE CARDS HORIZONTAIS */}
<div className="grid gap-x-10 gap-y-12 md:grid-cols-2"> <div className="grid gap-x-12 gap-y-12 md:grid-cols-2">
{recentes.map((item) => ( {recentes.map((item) => (
<article key={item.title} className="group cursor-pointer"> <article key={item.title} className="group cursor-pointer">
<Link href="#" className="flex flex-row items-start gap-5"> <Link href="#" className="flex flex-row items-start gap-6">
{/* 1. IMAGE SIDE (Fixed width on desktop) */} {/* 1. LADO DA IMAGEM (Limpo e Minimalista) */}
<div className="relative aspect-[16/9] w-32 shrink-0 overflow-hidden rounded-2xl bg-neutral-100 shadow-sm transition-all duration-500 group-hover:shadow-lg sm:w-44 md:w-48 lg:w-56"> <div className="relative aspect-[4/3] w-32 shrink-0 overflow-hidden rounded-[20px] bg-neutral-100 shadow-sm transition-all duration-500 group-hover:shadow-xl sm:w-44 md:w-48 lg:w-52">
<Image <Image
src={item.img} src={item.img}
alt="" alt=""
@@ -244,20 +248,25 @@ export function TvoneMainColumns() {
className="object-cover transition duration-700 group-hover:scale-110" className="object-cover transition duration-700 group-hover:scale-110"
sizes="(max-width: 768px) 128px, 224px" sizes="(max-width: 768px) 128px, 224px"
/> />
</div>
{/* THE INTERNAL LABEL (Bottom Left) */} {/* 2. LADO DO TEXTO (Categoria externa ao topo) */}
<div className="absolute bottom-2 left-2 z-10"> <div className="flex flex-1 flex-col pt-1">
<span className="rounded-lg bg-black/60 px-2 py-1 text-[9px] font-bold uppercase tracking-widest text-white backdrop-blur-md border border-white/10"> {/* CATEGORIA E DATA LADO A LADO */}
<div className="flex items-center gap-2 mb-2">
<span className="text-[10px] font-bold uppercase tracking-wider text-[#0066CC]">
{item.cat} {item.cat}
</span> </span>
<span className="h-1 w-1 rounded-full bg-neutral-300" />
<span className="text-[10px] font-semibold text-neutral-400 uppercase tracking-tight">
{item.date}
</span>
<span className="h-1 w-1 rounded-full bg-neutral-300" />
<span className="text-[10px] font-bold uppercase text-neutral-400">
{item.readTime} min
</span>
</div> </div>
{/* Subtle gradient for label contrast */}
<div className="absolute inset-x-0 bottom-0 h-1/3 bg-gradient-to-t from-black/40 to-transparent opacity-60" />
</div>
{/* 2. TEXT SIDE (Fills remaining space) */}
<div className="flex flex-1 flex-col">
<h3 className="line-clamp-2 text-base font-bold leading-tight text-neutral-900 transition-colors group-hover:text-[#0066cc] sm:text-lg lg:text-xl"> <h3 className="line-clamp-2 text-base font-bold leading-tight text-neutral-900 transition-colors group-hover:text-[#0066cc] sm:text-lg lg:text-xl">
{item.title} {item.title}
</h3> </h3>
@@ -266,18 +275,16 @@ export function TvoneMainColumns() {
{item.excerpt} {item.excerpt}
</p> </p>
<div className="mt-auto pt-3 flex items-center gap-2 text-[11px] font-semibold text-neutral-400"> {/* AUTOR / BYLINE */}
{/* <div className="mt-4 flex items-center gap-2 text-[10px] font-bold text-neutral-400 uppercase tracking-tighter">
<span className="text-neutral-900">{item.byline}</span> <span className="text-neutral-900">{item.byline}</span>
<span className="h-0.5 w-0.5 rounded-full bg-neutral-300" /> </div> */}
<span>{item.date}</span>
</div>
</div> </div>
</Link> </Link>
</article> </article>
))} ))}
</div> </div>
</section> </section>
); );
} }