fix(color): eliminate redundant dark: accent modifiers (R-8.29), resolve A-1/A-2/A-9 contrast issues, and implement C11-9 quality gate

This commit is contained in:
2026-08-20 22:42:26 +09:00
parent 7e431de1b7
commit a838af4b94
14 changed files with 190 additions and 69 deletions
@@ -4,8 +4,8 @@ export function DirectionsBlock() {
return (
<section className="mt-20 pt-16 border-t border-line" id="directions">
<div className="flex items-center gap-3 mb-6">
<span className="h-px w-8 bg-vermillion"></span>
<span className="font-mono text-xs tracking-widest uppercase text-vermillion font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Location & Contact
</span>
</div>
@@ -48,7 +48,7 @@ export function DirectionsBlock() {
<span className="font-mono text-xs uppercase tracking-wider text-ink-mute w-20 pt-0.5">
</span>
<div className="flex flex-wrap gap-x-4 gap-y-1 text-xs font-mono text-cobalt-dark dark:text-cobalt">
<div className="flex flex-wrap gap-x-4 gap-y-1 text-xs font-mono text-cobalt-dark">
<a href="http://www.knu.ac.kr/" target="_blank" rel="noreferrer" className="hover:underline">
(KNU)
</a>
@@ -11,8 +11,8 @@ export function ProjectPageView() {
<div className="flex flex-col sm:flex-row sm:items-end justify-between gap-4 border-b border-line pb-4">
<div>
<div className="flex items-center gap-3 mb-1">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Key Initiatives
</span>
</div>
@@ -50,7 +50,7 @@ export function ProjectPageView() {
{proj.title}
</h3>
{proj.period && (
<span className="font-mono text-xs text-cobalt-dark dark:text-cobalt bg-ivory border border-line px-2 py-0.5 rounded shrink-0">
<span className="font-mono text-xs text-cobalt-dark bg-ivory border border-line px-2 py-0.5 rounded shrink-0">
{proj.period}
</span>
)}
@@ -85,12 +85,12 @@ export function ProjectPageView() {
) : proj.standardsTrack ? (
<div className="flex items-baseline justify-between gap-2">
<span className="text-ink-mute">Standards Track:</span>
<span className="text-cobalt-dark dark:text-cobalt font-bold">{proj.standardsTrack}</span>
<span className="text-cobalt-dark font-bold">{proj.standardsTrack}</span>
</div>
) : proj.standardsOrg ? (
<div className="flex items-baseline justify-between gap-2">
<span className="text-ink-mute">Organization:</span>
<span className="text-cobalt-dark dark:text-cobalt font-bold">{proj.standardsOrg}</span>
<span className="text-cobalt-dark font-bold">{proj.standardsOrg}</span>
</div>
) : null}
+5 -5
View File
@@ -10,8 +10,8 @@ export default function LecturesPage() {
{/* Header */}
<section className="space-y-3">
<div className="flex items-center gap-3">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Academic Courses
</span>
</div>
@@ -27,7 +27,7 @@ export default function LecturesPage() {
<section className="space-y-6 pt-6 md:pt-10 border-t border-line">
<div className="flex justify-between items-end">
<div>
<div className="font-mono text-xs text-cobalt-dark dark:text-cobalt uppercase tracking-widest font-bold">
<div className="font-mono text-xs text-cobalt-dark uppercase tracking-widest font-bold">
Recent Courses ({recentSemesters.length} Semesters)
</div>
<h2 className="font-serif text-3xl font-normal text-ink mt-1">
@@ -47,7 +47,7 @@ export default function LecturesPage() {
<span className="font-serif text-xl font-normal text-ink">
{sem.term} {sem.year}
</span>
<span className="font-mono text-xs text-vermillion font-bold">
<span className="font-mono text-xs text-vermillion-dark font-bold">
Latest
</span>
</div>
@@ -86,7 +86,7 @@ export default function LecturesPage() {
2016 Fall ~ 2024 Spring
</p>
</div>
<span className="font-mono text-xs text-vermillion font-bold border border-vermillion px-3 py-1.5 rounded group-open:bg-vermillion group-open:text-ivory transition-colors">
<span className="font-mono text-xs text-vermillion-dark font-bold border border-vermillion-dark px-3 py-1.5 rounded group-open:bg-vermillion-dark group-open:text-white dark:group-open:text-ivory transition-colors">
<span className="group-open:hidden"> </span>
<span className="hidden group-open:inline"> </span>
</span>
+12 -12
View File
@@ -15,8 +15,8 @@ export default function MembersPage() {
{/* Header */}
<section className="space-y-3">
<div className="flex items-center gap-3">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
People &amp; Researchers
</span>
</div>
@@ -30,7 +30,7 @@ export default function MembersPage() {
{/* Professor Section */}
<section className="space-y-6 pt-6 md:pt-10 border-t border-line">
<div className="font-mono text-xs text-cobalt-dark dark:text-cobalt uppercase tracking-widest font-bold">
<div className="font-mono text-xs text-cobalt-dark uppercase tracking-widest font-bold">
Faculty
</div>
@@ -51,7 +51,7 @@ export default function MembersPage() {
<div className="pt-4 border-t border-line/60 flex flex-wrap gap-4 text-xs font-mono">
<a
href="mailto:sjkoh@knu.ac.kr"
className="text-cobalt-dark dark:text-cobalt hover:underline"
className="text-cobalt-dark hover:underline"
>
sjkoh@knu.ac.kr
</a>
@@ -60,7 +60,7 @@ export default function MembersPage() {
href="https://github.com/sjkoh12"
target="_blank"
rel="noreferrer"
className="text-cobalt-dark dark:text-cobalt hover:underline"
className="text-cobalt-dark hover:underline"
>
GitHub @sjkoh12
</a>
@@ -81,7 +81,7 @@ export default function MembersPage() {
<section className="space-y-8 pt-6 md:pt-10 border-t border-line">
<div className="flex justify-between items-end">
<div>
<div className="font-mono text-xs text-cobalt-dark dark:text-cobalt uppercase tracking-widest font-bold">
<div className="font-mono text-xs text-cobalt-dark uppercase tracking-widest font-bold">
Active Researchers ({activeMembers.length} Members)
</div>
<h2 className="font-serif text-3xl font-normal text-ink mt-1">
@@ -105,13 +105,13 @@ export default function MembersPage() {
<span className="font-serif text-lg font-normal text-ink">
{mem.ko}
</span>
<span className="font-mono text-xs text-cobalt-dark dark:text-cobalt">
<span className="font-mono text-xs text-cobalt-dark">
{mem.degree}
</span>
</div>
<div className="font-mono text-xs text-ink-mute">{mem.en}</div>
{mem.affiliation && (
<div className="text-xs text-vermillion pt-1 border-t border-line/40">
<div className="text-xs text-vermillion-dark pt-1 border-t border-line/40">
with {mem.affiliation}
</div>
)}
@@ -135,13 +135,13 @@ export default function MembersPage() {
<span className="font-serif text-lg font-normal text-ink">
{mem.ko}
</span>
<span className="font-mono text-xs text-cobalt-dark dark:text-cobalt">
<span className="font-mono text-xs text-cobalt-dark">
{mem.degree}
</span>
</div>
<div className="font-mono text-xs text-ink-mute">{mem.en}</div>
{mem.affiliation && (
<div className="text-xs text-vermillion pt-1 border-t border-line/40">
<div className="text-xs text-vermillion-dark pt-1 border-t border-line/40">
with {mem.affiliation}
</div>
)}
@@ -174,7 +174,7 @@ export default function MembersPage() {
2007 2026 (Ph.D.) (M.S.)
</p>
</div>
<span className="font-mono text-xs text-vermillion font-bold border border-vermillion px-3 py-1.5 rounded group-open:bg-vermillion group-open:text-white dark:group-open:text-ivory transition-colors">
<span className="font-mono text-xs text-vermillion-dark font-bold border border-vermillion-dark px-3 py-1.5 rounded group-open:bg-vermillion-dark group-open:text-white dark:group-open:text-ivory transition-colors">
<span className="group-open:hidden"> </span>
<span className="hidden group-open:inline"> </span>
</span>
@@ -199,7 +199,7 @@ export default function MembersPage() {
{alum.major && <span>{alum.major}</span>}
</div>
{alum.currentPosition && (
<div className="text-xs text-cobalt-dark dark:text-cobalt pt-1 border-t border-line/40">
<div className="text-xs text-cobalt-dark pt-1 border-t border-line/40">
{alum.currentPosition}
</div>
)}
+2 -2
View File
@@ -5,7 +5,7 @@ export default function NotFound() {
return (
<div className="container-content py-20 sm:py-32 flex flex-col items-center justify-center text-center min-h-[60vh]">
<div className="border border-line bg-paper p-8 sm:p-12 rounded-lg max-w-xl w-full space-y-6 shadow-sm">
<div className="inline-block px-3 py-1 bg-vermillion/10 text-vermillion font-mono text-xs font-bold rounded tracking-widest uppercase">
<div className="inline-block px-3 py-1 bg-vermillion/10 text-vermillion-dark font-mono text-xs font-bold rounded tracking-widest uppercase">
404 Error
</div>
<h1 className="font-serif text-3xl sm:text-4xl font-normal text-ink leading-tight">
@@ -19,7 +19,7 @@ export default function NotFound() {
<div className="pt-4">
<Link
href="/"
className="inline-flex items-center justify-center px-6 py-3 border border-ink bg-ink text-ivory hover:bg-vermillion hover:border-vermillion transition-colors duration-200 text-sm font-medium rounded-md"
className="inline-flex items-center justify-center px-6 py-3 border border-ink bg-ink text-ivory hover:bg-vermillion-dark hover:border-vermillion-dark transition-colors duration-200 text-sm font-medium rounded-md"
>
</Link>
+7 -7
View File
@@ -63,7 +63,7 @@ export default function HomePage() {
{/* Hero Section */}
<section className="relative">
<div className="mb-4">
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Kyungpook National University · AI Agent Networking Lab (ANL)
</span>
</div>
@@ -72,7 +72,7 @@ export default function HomePage() {
<div className="lg:col-span-7 space-y-6 lg:pt-4">
<h1 className="font-serif text-4xl sm:text-5xl lg:text-6xl font-normal text-ink leading-tight">
Multi-Agent <br />
<span className="italic font-serif text-cobalt-dark dark:text-cobalt">Orchestration</span>
<span className="italic font-serif text-cobalt-dark">Orchestration</span>
</h1>
<p className="text-ink-mute text-base sm:text-lg leading-relaxed max-w-2xl">
AI (ANL) AI .
@@ -81,7 +81,7 @@ export default function HomePage() {
{/* Metrics Row (Derived from data array, AC-13) */}
<div className="pt-6 border-t border-line grid grid-cols-3 gap-4">
<div>
<div className="font-serif text-3xl text-cobalt-dark dark:text-cobalt font-normal">
<div className="font-serif text-3xl text-cobalt-dark font-normal">
{PILLARS.length}
</div>
<div className="font-mono text-xs text-ink-mute uppercase tracking-wider mt-1">
@@ -89,7 +89,7 @@ export default function HomePage() {
</div>
</div>
<div>
<div className="font-serif text-3xl text-cobalt-dark dark:text-cobalt font-normal">
<div className="font-serif text-3xl text-cobalt-dark font-normal">
{Math.floor((publications.length + patents.length) / 10) * 10}+
</div>
<div className="font-mono text-xs text-ink-mute uppercase tracking-wider mt-1">
@@ -120,7 +120,7 @@ export default function HomePage() {
<section className="space-y-8 pt-20 md:pt-28 border-t border-line">
<div className="flex justify-between items-end">
<div>
<div className="font-mono text-xs text-cobalt-dark dark:text-cobalt uppercase tracking-widest font-bold">
<div className="font-mono text-xs text-cobalt-dark uppercase tracking-widest font-bold">
Research Areas
</div>
<h2 className="font-serif text-3xl font-normal text-ink mt-1">
@@ -145,7 +145,7 @@ export default function HomePage() {
<div className="flex justify-between items-center">
<span
className={`font-mono text-sm font-bold ${
isVermillion ? "text-vermillion" : "text-cobalt-dark dark:text-cobalt"
isVermillion ? "text-vermillion" : "text-cobalt-dark"
}`}
>
[{pillar.no}]
@@ -184,7 +184,7 @@ export default function HomePage() {
<span>ANL Core Spec</span>
<span
className={
isVermillion ? "text-vermillion" : "text-cobalt-dark dark:text-cobalt"
isVermillion ? "text-vermillion" : "text-cobalt-dark"
}
>
Pillar #{pillar.no}
@@ -59,8 +59,8 @@ export default function PublicationCategoryPage({ params }: PageProps) {
{/* Header */}
<section className="space-y-3">
<div className="flex items-center gap-3">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Publications Category
</span>
</div>
@@ -81,7 +81,7 @@ export default function PublicationCategoryPage({ params }: PageProps) {
<span className="font-mono text-xs text-ink-mute uppercase">
Showing {records.length} Pre-rendered Records
</span>
<span className="font-mono text-xs text-vermillion font-bold">
<span className="font-mono text-xs text-vermillion-dark font-bold">
SSG Static HTML
</span>
</div>
@@ -108,7 +108,7 @@ export default function PublicationCategoryPage({ params }: PageProps) {
</h3>
<time
dateTime={rec.publishedAt}
className="font-mono text-xs text-vermillion bg-ivory border border-line px-2.5 py-1 rounded shrink-0 font-bold"
className="font-mono text-xs text-vermillion-dark bg-ivory border border-line px-2.5 py-1 rounded shrink-0 font-bold"
>
{rec.publishedAt}
</time>
@@ -121,7 +121,7 @@ export default function PublicationCategoryPage({ params }: PageProps) {
: {rec.appNo} ({rec.country}, {rec.appDate})
</p>
{rec.regNo && (
<p className="text-cobalt-dark dark:text-cobalt font-bold">
<p className="text-cobalt-dark font-bold">
: {rec.regNo} ({rec.regDate})
</p>
)}
@@ -20,7 +20,7 @@ export function CategoryNav({ currentCategory }: CategoryNavProps) {
className={`px-4 py-2 rounded text-xs font-mono tracking-wider transition-colors ${
isActive
? "bg-cobalt-dark text-white dark:text-ivory font-bold"
: "bg-paper text-ink border border-line hover:border-cobalt-dark dark:hover:border-cobalt"
: "bg-paper text-ink border border-line hover:border-cobalt-dark"
}`}
>
{cat.label}
+5 -5
View File
@@ -26,8 +26,8 @@ export default function PublicationsIndexPage() {
{/* Header section */}
<section className="space-y-4">
<div className="flex items-center gap-3">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt" />
<span className="font-mono text-xs font-bold uppercase tracking-widest text-cobalt-dark dark:text-cobalt">
<span className="h-px w-8 bg-cobalt-dark" />
<span className="font-mono text-xs font-bold uppercase tracking-widest text-cobalt-dark">
BIBLIOGRAPHY &amp; INTELLECTUAL PROPERTY
</span>
</div>
@@ -49,13 +49,13 @@ export default function PublicationsIndexPage() {
return (
<div
key={cat.slug}
className="flex flex-col justify-between border border-line bg-paper p-6 rounded-lg transition-colors hover:border-cobalt-dark dark:hover:border-cobalt group"
className="flex flex-col justify-between border border-line bg-paper p-6 rounded-lg transition-colors hover:border-cobalt-dark group"
>
<div className="space-y-3">
<span className="font-mono text-xs text-ink-mute uppercase tracking-wider">
Category
</span>
<h2 className="headline-ko text-xl text-ink font-bold group-hover:text-cobalt-dark dark:group-hover:text-cobalt transition-colors">
<h2 className="headline-ko text-xl text-ink font-bold group-hover:text-cobalt-dark transition-colors">
{cat.label}
</h2>
<p className="text-xs text-ink-mute leading-relaxed">
@@ -69,7 +69,7 @@ export default function PublicationsIndexPage() {
</span>
<Link
href={`/publications/${cat.slug}`}
className="inline-flex items-center text-xs font-bold text-vermillion hover:underline"
className="inline-flex items-center text-xs font-bold text-vermillion-dark hover:underline"
>
&rarr;
</Link>
@@ -13,8 +13,8 @@ export default function StandardizationPage() {
{/* Header */}
<section className="space-y-3">
<div className="flex items-center gap-3">
<span className="h-px w-8 bg-cobalt-dark dark:bg-cobalt"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark dark:text-cobalt font-bold">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Open Standards &amp; Contributions
</span>
</div>
@@ -33,7 +33,7 @@ export default function StandardizationPage() {
<div className="flex flex-wrap justify-between items-start gap-4 border-b border-line pb-4">
<div>
<div className="flex items-center gap-2">
<span className="font-mono text-xs text-cobalt-dark dark:text-cobalt font-bold uppercase">
<span className="font-mono text-xs text-cobalt-dark font-bold uppercase">
[{body.scope}]
</span>
{body.role && (
@@ -61,7 +61,7 @@ export default function StandardizationPage() {
<div key={pIdx} className="bg-ivory p-6 rounded border border-line space-y-3">
<div className="font-serif text-lg font-normal text-ink border-b border-line/60 pb-2 flex justify-between items-center">
<div>
<span className="font-mono text-xs text-cobalt-dark dark:text-cobalt font-bold mr-2">
<span className="font-mono text-xs text-cobalt-dark font-bold mr-2">
{proj.wg}
</span>
<span>{proj.name}</span>