feat: 헤더 매뉴얼 버튼 · 프로필 검색 · 상세 뒤로가기 뎁스 정리
- 헤더 프로필 왼쪽에 '매뉴얼' 버튼 추가(MANUAL_URL 환경변수, 기본 gitea MANUAL) - 검색을 페이지 내 data-search 카드 전체 대상으로 일반화 → 프로필에서 그 사람 프로젝트도 검색(자리표시자도 페이지별로: 공유/내/○○ 님의 프로젝트) - 상세 페이지 뒤로가기: ?from= 내부경로 기반으로 프로필→상세는 프로필로 복귀 - '사내 개발 포털' +4pt, 도구 카드 이름·설명 +2pt Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -14,8 +14,8 @@
|
||||
font-size: 24px; background: var(--tile); border: 1px solid var(--tile-bd);
|
||||
}
|
||||
.tool-card.admin .tool-icon { background: var(--admin-bg); border-color: var(--admin-bd); }
|
||||
.tool-name { display: block; margin-top: 14px; font-size: 14.5px; font-weight: 700; color: var(--fg); }
|
||||
.tool-desc { display: block; margin-top: 3px; font-size: 12.5px; color: var(--fg2); line-height: 1.45; }
|
||||
.tool-name { display: block; margin-top: 14px; font-size: 16.5px; font-weight: 700; color: var(--fg); }
|
||||
.tool-desc { display: block; margin-top: 3px; font-size: 14.5px; color: var(--fg2); line-height: 1.45; }
|
||||
.tool-admin-badge {
|
||||
display: inline-flex; align-items: center; gap: 5px; margin-top: 11px; font-size: 11px; font-weight: 600;
|
||||
color: var(--admin-fg); background: var(--admin-bg); border: 1px solid var(--admin-bd); border-radius: 999px; padding: 2px 8px; white-space: nowrap;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.brand { display: flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; flex: 0 0 auto; }
|
||||
.brand-mark { display: inline-flex; color: var(--hfg); transition: transform .2s ease, filter .2s ease; }
|
||||
.brand-name { font-weight: 800; font-size: 15px; letter-spacing: .13em; color: var(--hfg); }
|
||||
.brand-sub { font-size: 11px; color: var(--hfg2); font-weight: 500; border-left: 1px solid var(--hbd); padding-left: 10px; margin-left: 2px; white-space: nowrap; }
|
||||
.brand-sub { font-size: 15px; color: var(--hfg2); font-weight: 500; border-left: 1px solid var(--hbd); padding-left: 10px; margin-left: 2px; white-space: nowrap; }
|
||||
|
||||
.hdr-search { flex: 1; max-width: 300px; position: relative; display: flex; align-items: center; }
|
||||
.hdr-search-ico { position: absolute; left: 10px; display: inline-flex; color: var(--hfg2); pointer-events: none; }
|
||||
@@ -25,6 +25,14 @@
|
||||
transition: background .14s ease, color .14s ease;
|
||||
}
|
||||
.icon-btn:hover { background: rgba(255,255,255,.08); color: var(--hfg); }
|
||||
/* 헤더 텍스트 링크 버튼(매뉴얼 등) — 아이콘 + 글자 */
|
||||
.hdr-link {
|
||||
display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px;
|
||||
border-radius: 8px; border: 1px solid var(--hbd); background: transparent;
|
||||
color: var(--hfg2); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap;
|
||||
transition: background .14s ease, color .14s ease;
|
||||
}
|
||||
.hdr-link:hover { background: rgba(255,255,255,.08); color: var(--hfg); }
|
||||
.theme-ico-sun { display: none; }
|
||||
html[data-aidev-theme="dark"] .theme-ico-moon { display: none; }
|
||||
html[data-aidev-theme="dark"] .theme-ico-sun { display: inline-flex; }
|
||||
|
||||
@@ -2,11 +2,13 @@
|
||||
import { $, $$ } from "./util.js";
|
||||
|
||||
function applyFeed() {
|
||||
const grid = $("#feedGrid"); if (!grid) return;
|
||||
// 검색 대상 = 현재 페이지의 검색 가능한 카드 전체(대시보드=공유 프로젝트, 프로필=그 사람 프로젝트).
|
||||
const cards = $$(".fcard[data-search]");
|
||||
if (!cards.length) return;
|
||||
const q = (($("#feedSearch") && $("#feedSearch").value) || "").trim().toLowerCase();
|
||||
const starOnly = $("#feedStarFilter") && $("#feedStarFilter").classList.contains("on");
|
||||
let visible = 0;
|
||||
$$(".fcard", grid).forEach((c) => {
|
||||
cards.forEach((c) => {
|
||||
const hit = !q || (c.getAttribute("data-search") || "").indexOf(q) >= 0;
|
||||
const st = !starOnly || c.getAttribute("data-starred") === "true";
|
||||
const show = hit && st;
|
||||
|
||||
Reference in New Issue
Block a user