refactor: resolve all 2nd round review feedback (C1-C9 & 3+2 magazine grid) for ANL lab transformation
This commit is contained in:
@@ -66,7 +66,7 @@ npm run dev
|
||||
| `/members` | 구성원 — 지도교수 및 박사·석사·학부 연구원 (placeholder) |
|
||||
| `/publications` | 논문 — 대표 저널/학회 논문 목록 (placeholder) |
|
||||
| `/lectures` | 강의 — 담당 학부·대학원 강의 (placeholder) |
|
||||
| `/standardization` | 표준화 활동 — A2A, ACP, W3C WoT, IETF QUIC 기여 (placeholder) |
|
||||
| `/standardization` | 표준화 활동 — oneM2M, W3C WoT, IETF QUIC, OMA LwM2M 기여 (placeholder — 마이그레이션 예정) |
|
||||
|
||||
## 디자인 시스템 (Design System)
|
||||
|
||||
|
||||
@@ -82,10 +82,13 @@ const pillars = [
|
||||
];
|
||||
|
||||
// CUSTOMIZATION HOOK: headline figures (animated counters).
|
||||
// `value: 2026` is marked static so it renders as a fixed year, not a
|
||||
// 0→2026 count-up, at the smaller `display-sm` scale so the 4-digit year
|
||||
// does not push the cell padding. See LAYOUT_AUDIT #11 + #13.
|
||||
const figures = [
|
||||
{ value: 5, label: "연구 기둥 · Research Pillars", suffix: "", size: "display-sm" as const, static: false },
|
||||
{ value: 12, label: "에이전트 프로토콜 · Protocols", suffix: "", size: "display-sm" as const, static: false },
|
||||
{ value: 99.9, label: "가동률 % · Availability", suffix: "%", size: "display-sm" as const, static: false },
|
||||
{ value: pillars.length, label: "연구 기둥 · Research Pillars", suffix: "", size: "display" as const, static: false },
|
||||
{ value: pillars.reduce((n, p) => n + p.points.length, 0), label: "세부 연구 주제 · Research Topics", suffix: "", size: "display" as const, static: false },
|
||||
{ value: 2026, label: "Issue · 발행", suffix: "", size: "display-sm" as const, static: true },
|
||||
];
|
||||
|
||||
// CUSTOMIZATION HOOK: research keyword ticker.
|
||||
@@ -128,14 +131,15 @@ export default function IntroPage() {
|
||||
<span className="text-vermillion">미래</span>를 짓다
|
||||
</h1>
|
||||
<p className="display mt-3 leading-[0.9]" aria-hidden>
|
||||
Agents
|
||||
<span className="block italic text-cobalt">in Motion</span>
|
||||
</p>
|
||||
</Reveal>
|
||||
<Reveal delay={200}>
|
||||
<p className="mt-8 max-w-prose text-base leading-relaxed text-ink-soft">
|
||||
메타버스 상호운용성(MCM)과 QUIC 기반 멀티에이전트 오케스트레이션.
|
||||
국제 표준을 토대로 분산되고 이종적인 시스템이 동일한 의미로
|
||||
데이터를 교환하고 협력하도록 설계합니다.
|
||||
A2A·ACP 기반 에이전트 통신 프로토콜과 HERDR·LangGraph 멀티에이전트
|
||||
오케스트레이션. 개방형 표준을 토대로 분산되고 이종적인 에이전트가
|
||||
자율적으로 협력하고 고속으로 메시지를 교환하도록 설계합니다.
|
||||
</p>
|
||||
</Reveal>
|
||||
<Reveal delay={260}>
|
||||
@@ -160,7 +164,7 @@ export default function IntroPage() {
|
||||
<Reveal variant="scale" delay={200} className="lg:col-span-5">
|
||||
<HeroComposition className="w-full" />
|
||||
<p className="mt-3 text-right text-xs italic text-ink-mute">
|
||||
Fig. 01 — MCM 노드 메시 × QUIC 멀티스트림
|
||||
Fig. 01 — A2A 에이전트 메시 × QUIC/gRPC 멀티스트림
|
||||
</p>
|
||||
</Reveal>
|
||||
</div>
|
||||
@@ -224,15 +228,16 @@ export default function IntroPage() {
|
||||
<SectionLabel index={3} label="Five Research Pillars" />
|
||||
</Reveal>
|
||||
|
||||
<div className="mt-12 grid gap-px bg-line sm:grid-cols-2 lg:grid-cols-3">
|
||||
<div className="mt-12 grid gap-px bg-line sm:grid-cols-2 lg:grid-cols-6">
|
||||
{pillars.map((p, i) => {
|
||||
const isVerm = p.accent === "vermillion";
|
||||
const span = `${i < 3 ? "lg:col-span-2" : "lg:col-span-3"}${i === 4 ? " sm:col-span-2" : ""}`;
|
||||
return (
|
||||
<Reveal
|
||||
key={p.tag}
|
||||
variant={i % 2 === 0 ? "left" : "right"}
|
||||
delay={i * 80}
|
||||
className="bg-ivory"
|
||||
className={`bg-ivory ${span}`}
|
||||
>
|
||||
<article
|
||||
className={`group flex h-full flex-col justify-between border border-ink p-8 transition-colors duration-500 sm:p-10 ${
|
||||
|
||||
@@ -45,9 +45,9 @@
|
||||
| `ivory` | `#F5F1E8` | `--ivory` | 페이지 기본 배경(따뜻한 종이) |
|
||||
| `paper` | `#ECE6D6` | `--paper` | 인셋/호버용 어두운 종이 |
|
||||
| `line` | `#D8D1C0` | `--line` | 헤어라인 그리드 간격(`gap-px bg-line`) |
|
||||
| `vermillion` (DEFAULT) | `#D9342B` | `--vermillion` | **MCM 강조(Hot)** · 메타버스 · 저널 · 홀수 항목 |
|
||||
| `vermillion` (DEFAULT) | `#D9342B` | `--vermillion` | **Agent Eng / Orchestration 강조(Hot)** · 홀수 항목 |
|
||||
| `vermillion-dark` | `#A8231C` | — | vermillion 의 호버/심도(dim) 변형 |
|
||||
| `cobalt` (DEFAULT) | `#1B3A8A` | `--cobalt` | **QUIC 강조(Cool)** · 전송 · 학회 · 짝수 항목 |
|
||||
| `cobalt` (DEFAULT) | `#1B3A8A` | `--cobalt` | **MCP / A2A Protocol 강조(Cool)** · 짝수 항목 |
|
||||
| `cobalt-dark` | `#122863` | — | cobalt 의 호버/심도(dim) 변형 |
|
||||
| `brand`, `accent` | (별칭) | — | **레거시 호환 전용.** 신규 코드에서 사용 금지 |
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
accent.ink → ink (주 잉크/텍스트)
|
||||
종이(paper) 계열 → ivory, paper, line
|
||||
accent.ko (국문) → headline-ko 클래스가 font-serif-ko 로 처리(색은 ink)
|
||||
accent.ko-warm(강조) → vermillion (Hot, MCM/저널)
|
||||
accent.ko-warm(강조) → vermillion (Hot, Agent Eng / Orchestration)
|
||||
accent.glow / dim → vermillion-dark / cobalt-dark (각 강조색의 dark 변형)
|
||||
QUIC 강조 → cobalt (Cool, 전송/학회)
|
||||
Protocol/A2A 강조 → cobalt (Cool, MCP / A2A Protocol)
|
||||
```
|
||||
|
||||
> 별도의 `accent.glow`(발광)나 중립 회색 팔레트는 현재 정의돼 있지 않습니다. 강조가
|
||||
@@ -246,7 +246,7 @@ Marquee(props: {
|
||||
|
||||
### `HeroComposition` — 추상 편집 히어로 (인트로 전용)
|
||||
|
||||
인라인 SVG 일러스트(에셋 없음). **MCM = 상호연결 노드 성좌(vermillion, `node-pulse`)**,
|
||||
인라인 SVG 일러스트(에셋 없음). **A2A = 에이전트 메시 노드 성좌(vermillion, `node-pulse`)**,
|
||||
**QUIC = 다중화 스트림 흐름(cobalt, `stream-dash`)**. 색은 CSS 변수 상속, 기하만 내부 정의.
|
||||
|
||||
```tsx
|
||||
@@ -269,7 +269,7 @@ HeroComposition(props: { className?: string })
|
||||
|
||||
| 라우트 | index | 잡지에서의 역할 | 특징 |
|
||||
| --- | --- | --- | --- |
|
||||
| `/intro` | 1 | **커버 스프레드** | 거대 한/영 히어로 + `HeroComposition` 아트, 키워드 `Marquee`, 통계, 풀쿼트, 두 Thrust 비교 스프레드 |
|
||||
| `/intro` | 1 | **커버 스프레드** | 거대 한/영 히어로 + `HeroComposition` 아트, 키워드 `Marquee`, 통계, 풀쿼트, 5대 연구 기둥 3+2 매거진 조판 그리드 |
|
||||
| `/members` | 2 | **기고자 페이지(Contributors)** | 인원 통계 카운터, PI 피처 스프레드, 박/석/학부 그룹을 헤어라인 그리드 + 교차 강조색으로 |
|
||||
| `/publications` | 3 | **목차/서지(Index & Bibliography)** | 서지 `Marquee`, 파생 통계, 번호 매긴 편집 목록(저널=vermillion, 학회=cobalt) |
|
||||
| `/lectures` | 4 | **강의 카탈로그(Course catalog)** | 3개 강의 카드(테두리·강조색 호버 면), 코드·KO/EN 제목·레벨 칩 |
|
||||
@@ -304,7 +304,7 @@ A. 강조색 2개(`vermillion`, `cobalt`)와 그 `-dark` 변형만 교체하면
|
||||
`tailwind.config.ts` 의 `theme.extend.colors` **와** `app/globals.css` 의 `:root`
|
||||
CSS 변수(`--vermillion`, `--cobalt`)를 **함께** 바꾸세요(그레인/그라디언트/SVG가 변수를
|
||||
참조). 종이 톤을 바꾸려면 `ivory`/`paper`/`line` 을 같은 방식으로 조정합니다. 의미
|
||||
페어링(vermillion=MCM, cobalt=QUIC)을 유지하면 페이지 전반의 강조색 배정 로직을
|
||||
페어링(vermillion=Agent Eng / Orchestration, cobalt=MCP / A2A Protocol)을 유지하면 페이지 전반의 강조색 배정 로직을
|
||||
건드리지 않아도 됩니다.
|
||||
|
||||
**Q. 모션 줄이기(prefers-reduced-motion) 대응은 되어 있나요?**
|
||||
|
||||
Generated
+2
-2
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "iot-standards-lab-landing",
|
||||
"name": "anl-landing",
|
||||
"version": "0.1.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "iot-standards-lab-landing",
|
||||
"name": "anl-landing",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"next": "14.2.35",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "iot-standards-lab-landing",
|
||||
"name": "anl-landing",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Reference prototype landing page for 경북대학교 컴퓨터학부 AI 에이전트 네트워크 연구실 (ANL / AI Agent Networking Lab).",
|
||||
|
||||
Reference in New Issue
Block a user