Files
TK-FB-Project/web-ui/templates/admin-layout.html
Hyungi Ahn 0ec099b493 feat: UI 표준화 Phase 1 - 네비게이션/헤더 통일
## 주요 변경사항

### 1. Design System 색상 업데이트
- 하늘색 계열 primary 색상으로 변경 (#0ea5e9, #38bdf8, #7dd3fc)
- CSS 변수 추가: --header-gradient

### 2. Navbar 컴포넌트 표준화
- 50개 이상의 하드코딩 값을 CSS 변수로 변경
- 모든 페이지에서 동일한 헤더 스타일 적용

### 3. 중복 코드 제거 (102줄)
- dashboard.html: 50줄 → 2줄 (navbar 컴포넌트로 교체)
- work/report-view.html: 54줄 → 2줄 (navbar 컴포넌트로 교체)
- modern-dashboard.css: 중복 헤더 스타일 제거
- project-management.css: 중복 헤더 스타일 제거

### 4. 표준 레이아웃 템플릿 생성
- dashboard-layout.html (대시보드용)
- work-layout.html (작업 페이지용)
- admin-layout.html (관리자 페이지용)
- simple-layout.html (프로필/설정용)
- templates/README.md (사용 가이드)

### 5. 누락된 design-system.css 추가
- work/report-view.html
- work/analysis.html
- admin/accounts.html

### 6. ES6 Module 문법 수정
- load-navbar.js: type="module" 추가
- modern-dashboard.js: navbar 엘리먼트 안전 처리

## 문서 업데이트
- CODING_GUIDE.md: 표준 컴포넌트 사용법 추가
- 개발 log/2026-01-20-ui-standardization-phase1.md: 상세 작업 로그

## 영향
- 수정: 10개 파일
- 신규: 6개 파일 (템플릿 5개 + 로그 1개)
- 코드 감소: -102줄

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 14:08:54 +09:00

154 lines
5.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>관리자 | 테크니컬코리아</title>
<!-- 모던 디자인 시스템 -->
<link rel="stylesheet" href="/css/design-system.css">
<link rel="stylesheet" href="/css/common.css">
<link rel="stylesheet" href="/css/modern-dashboard.css">
<!-- 페이지별 CSS 추가 -->
<!-- <link rel="stylesheet" href="/css/your-admin-page.css"> -->
<!-- 필수 스크립트 (순서 중요) -->
<script type="module" src="/js/api-config.js"></script>
<script type="module" src="/js/auth-check.js"></script>
<script type="module" src="/js/load-navbar.js"></script>
<!-- 페이지별 스크립트 추가 -->
<!-- <script type="module" src="/js/your-admin-page.js" defer></script> -->
</head>
<body>
<!-- 네비게이션 헤더 (자동 로드됨) -->
<div id="navbar-container"></div>
<!-- 메인 콘텐츠 -->
<main class="dashboard-main">
<div class="admin-page-container">
<!-- 페이지 헤더 -->
<div class="page-header">
<div class="page-header-left">
<button class="btn btn-secondary" onclick="history.back()">
<span></span>
뒤로
</button>
</div>
<div class="page-header-center">
<h2 class="page-title">⚙️ 관리 페이지</h2>
<p class="page-subtitle">시스템 설정 및 데이터 관리</p>
</div>
<div class="page-header-right">
<!-- 추가 액션 버튼 -->
<button class="btn btn-primary">
<span></span>
추가
</button>
</div>
</div>
<!-- 관리 콘텐츠 카드 -->
<div class="admin-card">
<!-- 탭 네비게이션 (선택사항) -->
<div class="tab-navigation">
<button class="tab-btn active" data-tab="tab1">탭 1</button>
<button class="tab-btn" data-tab="tab2">탭 2</button>
<button class="tab-btn" data-tab="tab3">탭 3</button>
</div>
<!-- 검색/필터 영역 -->
<div class="admin-filters">
<div class="filter-group">
<label class="filter-label">검색</label>
<input type="text" class="filter-input" placeholder="검색어 입력">
</div>
<div class="filter-group">
<label class="filter-label">상태</label>
<select class="filter-select">
<option value="all">전체</option>
<option value="active">활성</option>
<option value="inactive">비활성</option>
</select>
</div>
<button class="btn btn-primary">
<span>🔍</span>
검색
</button>
</div>
<!-- 데이터 테이블 영역 -->
<div class="admin-table-container">
<table class="admin-table">
<thead>
<tr>
<th>
<input type="checkbox" id="selectAll">
</th>
<th>ID</th>
<th>이름</th>
<th>상태</th>
<th>등록일</th>
<th>작업</th>
</tr>
</thead>
<tbody id="tableBody">
<!-- 데이터 행들이 동적으로 추가됩니다 -->
<tr>
<td><input type="checkbox"></td>
<td>1</td>
<td>샘플 데이터</td>
<td><span class="badge badge-success">활성</span></td>
<td>2025-01-20</td>
<td>
<button class="btn btn-sm btn-secondary">수정</button>
<button class="btn btn-sm btn-error">삭제</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 페이지네이션 (선택사항) -->
<div class="pagination">
<button class="pagination-btn" disabled>이전</button>
<span class="pagination-info">1 / 10</span>
<button class="pagination-btn">다음</button>
</div>
</div>
</div>
</main>
<!-- 로딩 스피너 -->
<div id="loadingSpinner" class="loading-overlay" style="display: none;">
<div class="loading-content">
<div class="spinner"></div>
<p>처리 중...</p>
</div>
</div>
<!-- 확인 모달 -->
<div id="confirmModal" class="modal-overlay" style="display: none;">
<div class="modal-container">
<div class="modal-header">
<h2 id="confirmModalTitle">확인</h2>
<button class="modal-close-btn" onclick="closeConfirmModal()">×</button>
</div>
<div class="modal-body">
<p id="confirmModalMessage">작업을 진행하시겠습니까?</p>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" onclick="closeConfirmModal()">취소</button>
<button class="btn btn-primary" id="confirmModalBtn">확인</button>
</div>
</div>
</div>
</body>
</html>