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:
@@ -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}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 & 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>
|
||||
)}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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 & 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"
|
||||
>
|
||||
전체 보기 →
|
||||
</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 & 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>
|
||||
|
||||
Reference in New Issue
Block a user