feat(avbeat): typography phase-1 slice + drop homepage Topics chip row
Typography (approved Phase 1 slice only — utility classes + other reclasses deferred): - src/styles/tailwind.css body rule: re-add smoothing now that the surface palette is locked in — -webkit-font-smoothing antialiased, -moz-osx-font-smoothing grayscale, text-rendering optimizeLegibility, font-feature-settings 'kern','liga', global letter-spacing -0.005em. - src/components/FeaturedBentoFromDb.tsx:115 cinematic hero headline: text-2xl md:text-4xl lg:text-5xl leading-tight → text-[40px] md:text-[48px] lg:text-[56px] leading-[1.05] tracking-[-0.02em] font-bold. Confident editorial display per the avinteractive reference. - src/app/news/[slug]/NewsArticleDetailClient.tsx:309 and src/app/articles/[slug]/ArticleDetailClient.tsx:255 article H1: text-[#f0f0f0] → text-[#0F172A]. Fixes the leftover white-on-white readability bug on article pages. UI: - src/app/home-page/components/ArticleFeed.tsx: removed the 'Topics:' chip row from Industry News per current design direction; all stories now show without per-topic filter.
This commit is contained in:
@@ -252,7 +252,7 @@ export default function ArticleDetailClient({ article, relatedArticles, relatedF
|
|||||||
<span className="text-xs text-[#555]">·</span>
|
<span className="text-xs text-[#555]">·</span>
|
||||||
<span className="text-xs text-[#777]">{article.readTime}</span>
|
<span className="text-xs text-[#777]">{article.readTime}</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="font-heading text-3xl md:text-4xl font-bold mb-4 leading-tight text-[#f0f0f0]">
|
<h1 className="font-heading text-3xl md:text-4xl font-bold mb-4 leading-tight text-[#0F172A]">
|
||||||
{article.title}
|
{article.title}
|
||||||
</h1>
|
</h1>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
|
|||||||
@@ -416,29 +416,8 @@ export default function ArticleFeed() {
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Row: topic chips */}
|
{/* Topic chip row removed per current design direction —
|
||||||
<div className="flex items-center gap-2 flex-wrap">
|
Industry News shows all stories with no per-topic filter. */}
|
||||||
<span className="text-[#555] text-[10px] font-body uppercase tracking-wider shrink-0">Topics:</span>
|
|
||||||
<div className="flex gap-1.5 flex-wrap">
|
|
||||||
{ALL_CATEGORIES.map((cat) => {
|
|
||||||
const isActive = activeCategory === cat;
|
|
||||||
return (
|
|
||||||
<button
|
|
||||||
key={cat}
|
|
||||||
type="button"
|
|
||||||
onClick={() => { setActiveCategory(cat); setPage(1); }}
|
|
||||||
aria-pressed={isActive}
|
|
||||||
className={`px-3 py-1.5 rounded-sm font-body text-[11px] font-semibold uppercase tracking-wide transition-all duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[#1D4ED8] ${
|
|
||||||
isActive
|
|
||||||
? "bg-[#1D4ED8]/20 text-[#1D4ED8] border border-[#1D4ED8]/50"
|
|
||||||
: "bg-[#111] text-[#888] border border-[#DCE6F2] hover:text-[#ccc] hover:border-[#3a3a3a]"
|
|
||||||
}`}>
|
|
||||||
{cat}
|
|
||||||
</button>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Advanced filters panel */}
|
{/* Advanced filters panel */}
|
||||||
{showAdvanced && (
|
{showAdvanced && (
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ export default function NewsArticleDetailClient({
|
|||||||
<span className="text-xs text-[#777]">{article.readTime}</span>
|
<span className="text-xs text-[#777]">{article.readTime}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 className="font-heading text-3xl md:text-4xl font-bold mb-4 leading-tight text-[#f0f0f0]">
|
<h1 className="font-heading text-3xl md:text-4xl font-bold mb-4 leading-tight text-[#0F172A]">
|
||||||
{article.title}
|
{article.title}
|
||||||
</h1>
|
</h1>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ export default async function FeaturedBento() {
|
|||||||
{hero.category}
|
{hero.category}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<h3 className="font-serif text-2xl md:text-4xl lg:text-5xl text-white leading-tight max-w-3xl group-hover:text-[var(--color-text-info,#60a5fa)] transition-colors">
|
<h3 className="font-serif text-[40px] md:text-[48px] lg:text-[56px] text-white leading-[1.05] tracking-[-0.02em] font-bold max-w-3xl group-hover:text-[var(--color-text-info,#60a5fa)] transition-colors">
|
||||||
{hero.title}
|
{hero.title}
|
||||||
</h3>
|
</h3>
|
||||||
{hero.excerpt && (
|
{hero.excerpt && (
|
||||||
|
|||||||
@@ -56,10 +56,11 @@ body {
|
|||||||
font-family: var(--font-body);
|
font-family: var(--font-body);
|
||||||
background-color: var(--color-bg);
|
background-color: var(--color-bg);
|
||||||
color: var(--color-foreground);
|
color: var(--color-foreground);
|
||||||
/* Smoothing intentionally NOT overridden — `antialiased`/`grayscale` was
|
-webkit-font-smoothing: antialiased;
|
||||||
correct for the old dark theme but renders thinner/harsher on the new
|
-moz-osx-font-smoothing: grayscale;
|
||||||
light theme. Default OS smoothing (subpixel on Windows/older macOS,
|
text-rendering: optimizeLegibility;
|
||||||
`auto` elsewhere) gives Inter + Lora their intended weight. */
|
font-feature-settings: 'kern', 'liga';
|
||||||
|
letter-spacing: -0.005em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =====================
|
/* =====================
|
||||||
|
|||||||
Reference in New Issue
Block a user