feat: implement 4 future backlog tasks (side margins, max-width, 1240px header breakpoint, remove intl-conf category)
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
|||||||
|
# 📌 ANL Homepage Backlog & Improvement Tasks
|
||||||
|
|
||||||
|
본 문서는 ANL 연구실 홈페이지의 추가 개선 요청 및 반영 완료된 작업 내역을 관리합니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ✅ 완료된 추후 작업 (Completed Tasks)
|
||||||
|
|
||||||
|
#### 1. 전 모드 좌우 여유 공백(Side Margins/Padding) 추가
|
||||||
|
- **적용 위치**: `refer_landing_page/app/globals.css` (`.container-content`)
|
||||||
|
- **내용**: 모바일, 태블릿, 데스크톱 전 모드에서 시각적 답답함을 해소하고 여유로운 에디토리얼 여백을 제공하도록 `px-6 sm:px-10 md:px-12 lg:px-16` 패딩 시스템 반영
|
||||||
|
|
||||||
|
#### 2. Desktop 모드 `max_width` 비율 고정
|
||||||
|
- **적용 위치**: `refer_landing_page/tailwind.config.ts` (`maxWidth.content: "78rem"`) & `.container-content`
|
||||||
|
- **내용**: 초고해상도(Ultrawide / 4K) 모니터에서 페이지 가로 폭이 지나치게 넓어져 레이아웃 비율이 깨지는 현상을 방지하기 위해 최대 폭(1248px) 고정 및 중앙 정렬
|
||||||
|
|
||||||
|
#### 3. 헤더 1240px 반응형 햄버거 메뉴 전환
|
||||||
|
- **적용 위치**: `refer_landing_page/components/Header.tsx`
|
||||||
|
- **내용**: 윈도우 폭이 1240px 미만일 때 "AI 에이전트 네트워크 연구실" 및 "AI Agent Networking Lab (ANL)" 타이틀 카피가 2줄로 줄바꿈되어 깨지는 현상을 방지하도록 `min-[1240px]` 브레이크포인트 적용. 1240px 미만에서는 햄버거 토글 메뉴로 자동 전환
|
||||||
|
|
||||||
|
#### 4. Publications 페이지 "International Conference" 카테고리 정리
|
||||||
|
- **적용 위치**: `refer_landing_page/content/categories.ts`, `content/types.ts`, `app/publications/`
|
||||||
|
- **내용**: 실측 데이터상 중복 분류 가능성이 있던 `International Conference` 단독 카테고리를 제거하고, `International Journal & Conference`, `Domestic Journal & Conference`, `Patent` 3대 카테고리로 슬림화 (논문 223건 전량 보존)
|
||||||
@@ -72,7 +72,7 @@ npm run dev
|
|||||||
| `/intro` | Home (`/`)으로 308 permanent redirect |
|
| `/intro` | Home (`/`)으로 308 permanent redirect |
|
||||||
| `/members` | 구성원 — 지도교수 및 재학 연구원 16명, 졸업생 60명 이력 인벤토리 |
|
| `/members` | 구성원 — 지도교수 및 재학 연구원 16명, 졸업생 60명 이력 인벤토리 |
|
||||||
| `/publications` | 연구 실적 개요 — 223건 카테고리 분류 및 Top 10 최신 성과 |
|
| `/publications` | 연구 실적 개요 — 223건 카테고리 분류 및 Top 10 최신 성과 |
|
||||||
| `/publications/[category]` | 카테고리별 실적 (intl-conf, intl-journal-conf, domestic-journal-conf, patent) — ● SSG 정적 프리렌더 |
|
| `/publications/[category]` | 카테고리별 실적 (intl-journal-conf, domestic-journal-conf, patent) — ● SSG 정적 프리렌더 |
|
||||||
| `/lectures` | 강의 — 45개 학기 학부·대학원 개설 교과목 이력 |
|
| `/lectures` | 강의 — 45개 학기 학부·대학원 개설 교과목 이력 |
|
||||||
| `/standardization` | 표준화 활동 — IEC TC100, ISO/IEC JTC1, ITU-T, TTA 등 6개 기구 / 44개 규격 문서 |
|
| `/standardization` | 표준화 활동 — IEC TC100, ISO/IEC JTC1, ITU-T, TTA 등 6개 기구 / 44개 규격 문서 |
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ body {
|
|||||||
================================================================== */
|
================================================================== */
|
||||||
@layer components {
|
@layer components {
|
||||||
.container-content {
|
.container-content {
|
||||||
@apply mx-auto w-full max-w-content px-5 sm:px-8 lg:px-12;
|
@apply mx-auto w-full max-w-content px-6 sm:px-10 md:px-12 lg:px-16;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Massive magazine display title (English serif). */
|
/* Massive magazine display title (English serif). */
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ export default function Header() {
|
|||||||
</span>
|
</span>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{/* Desktop nav — small caps, wide tracking */}
|
{/* Desktop nav — small caps, wide tracking (visible at >= 1240px) */}
|
||||||
<div className="hidden items-center gap-7 lg:flex">
|
<div className="hidden items-center gap-7 min-[1240px]:flex">
|
||||||
<nav className="flex items-center gap-7" aria-label="주 메뉴">
|
<nav className="flex items-center gap-7" aria-label="주 메뉴">
|
||||||
{navItems.map((item) => (
|
{navItems.map((item) => (
|
||||||
<Link
|
<Link
|
||||||
@@ -84,8 +84,8 @@ export default function Header() {
|
|||||||
<ThemeToggle />
|
<ThemeToggle />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Mobile controls */}
|
{/* Mobile controls (visible under 1240px) */}
|
||||||
<div className="flex items-center gap-2 lg:hidden">
|
<div className="flex items-center gap-2 min-[1240px]:hidden">
|
||||||
<ThemeToggle />
|
<ThemeToggle />
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -110,7 +110,7 @@ export default function Header() {
|
|||||||
{open && (
|
{open && (
|
||||||
<nav
|
<nav
|
||||||
id="mobile-menu"
|
id="mobile-menu"
|
||||||
className="border-t border-ink bg-ivory lg:hidden"
|
className="border-t border-ink bg-ivory min-[1240px]:hidden"
|
||||||
aria-label="모바일 메뉴"
|
aria-label="모바일 메뉴"
|
||||||
>
|
>
|
||||||
<ul className="container-content flex flex-col divide-y divide-line py-2">
|
<ul className="container-content flex flex-col divide-y divide-line py-2">
|
||||||
|
|||||||
@@ -8,11 +8,6 @@ export interface CategoryInfo {
|
|||||||
|
|
||||||
// Single source of truth for Publications categories (P-02 / D-01)
|
// Single source of truth for Publications categories (P-02 / D-01)
|
||||||
export const PUB_CATEGORIES: CategoryInfo[] = [
|
export const PUB_CATEGORIES: CategoryInfo[] = [
|
||||||
{
|
|
||||||
slug: "intl-conf",
|
|
||||||
label: "International Conference",
|
|
||||||
desc: "국제 학술대회 발표 및 프로시딩 논문",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
slug: "intl-journal-conf",
|
slug: "intl-journal-conf",
|
||||||
label: "International Journal & Conference",
|
label: "International Journal & Conference",
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ export interface Alumnus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type PubCategory =
|
export type PubCategory =
|
||||||
| "intl-conf"
|
|
||||||
| "intl-journal-conf"
|
| "intl-journal-conf"
|
||||||
| "domestic-journal-conf"
|
| "domestic-journal-conf"
|
||||||
| "patent";
|
| "patent";
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ EXPECTED_SSG_ROUTES = [
|
|||||||
os.path.join(".next", "server", "app", "index.html"),
|
os.path.join(".next", "server", "app", "index.html"),
|
||||||
os.path.join(".next", "server", "app", "members.html"),
|
os.path.join(".next", "server", "app", "members.html"),
|
||||||
os.path.join(".next", "server", "app", "publications.html"),
|
os.path.join(".next", "server", "app", "publications.html"),
|
||||||
os.path.join(".next", "server", "app", "publications", "intl-conf.html"),
|
|
||||||
os.path.join(".next", "server", "app", "publications", "intl-journal-conf.html"),
|
os.path.join(".next", "server", "app", "publications", "intl-journal-conf.html"),
|
||||||
os.path.join(".next", "server", "app", "publications", "domestic-journal-conf.html"),
|
os.path.join(".next", "server", "app", "publications", "domestic-journal-conf.html"),
|
||||||
os.path.join(".next", "server", "app", "publications", "patent.html"),
|
os.path.join(".next", "server", "app", "publications", "patent.html"),
|
||||||
|
|||||||
@@ -62,7 +62,6 @@ class TestANLHomepageE2E(unittest.TestCase):
|
|||||||
def test_03_publications_category_routes(self):
|
def test_03_publications_category_routes(self):
|
||||||
"""TC-T1-F5: Verify Publications categories SSG static pages."""
|
"""TC-T1-F5: Verify Publications categories SSG static pages."""
|
||||||
cats = [
|
cats = [
|
||||||
("intl-conf.html", "International Conference"),
|
|
||||||
("intl-journal-conf.html", "International Journal"),
|
("intl-journal-conf.html", "International Journal"),
|
||||||
("domestic-journal-conf.html", "Domestic Journal"),
|
("domestic-journal-conf.html", "Domestic Journal"),
|
||||||
("patent.html", "Patent"),
|
("patent.html", "Patent"),
|
||||||
|
|||||||
Reference in New Issue
Block a user