v1.0.0: 헤더 최종 점검과 사이드바 스타일 정리

Made-with: Cursor
This commit is contained in:
2026-04-17 14:31:30 +09:00
parent f7920f96d6
commit 1e095798e3
10 changed files with 23 additions and 43 deletions

View File

@@ -685,13 +685,6 @@ body.left-sidebar-collapsed .sidebar--left .sidebar__inner {
min-width: 0;
}
.topbar__brand {
padding: 0 16px;
height: 100%;
display: flex;
align-items: center;
gap: 12px;
}
.topbar__sidebar-toggle {
display: inline-flex;
@@ -754,15 +747,6 @@ body:not(.left-sidebar-collapsed) .topbar__sidebar-toggle:hover .topbar__sidebar
display: block;
}
.topbar__search {
display: flex;
justify-content: center;
padding: 0 18px;
height: 100%;
align-items: center;
box-sizing: border-box;
}
.search-trigger,
.search-modal__input {
display: flex;
@@ -805,15 +789,6 @@ body:not(.left-sidebar-collapsed) .topbar__sidebar-toggle:hover .topbar__sidebar
font-size: 12px;
}
.topbar__actions {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 10px;
padding: 0 16px;
height: 100%;
}
@media (min-width: 1024px) {
.topbar__search {
min-width: min(var(--topbar-search-min), 100%);
@@ -1947,12 +1922,6 @@ body:not(.left-sidebar-collapsed) .topbar__sidebar-toggle:hover .topbar__sidebar
padding: 0;
}
.topbar__brand {
grid-column: 1;
grid-row: 1;
min-width: 0;
}
.topbar__search {
display: none;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
# 배포 가이드
## 현재 버전
- `v0.2.11`
- `v1.0.0`
## Git 기본 설정
- 저장소 작성자 정보는 아래 값으로 통일한다.

View File

@@ -1,5 +1,8 @@
# 의사결정 이력
## 2026-04-17 v1.0.0
헤더 점검 과정에서 `topbar__inner` 구조 클래스가 빠지면 `screen.css`의 3열 그리드가 적용되지 않아 전체 정렬이 쉽게 붕괴되는 문제가 확인됐다. 이후 검색 폭 보정 목적의 유틸리티 클래스가 구조 클래스와 중복되며 충돌 지점이 늘어났기 때문에, 최종 버전에서는 `topbar__inner`/`topbar__brand`/`topbar__search`/`topbar__actions`를 기준 축으로 고정하고 동일 역할의 Tailwind 유틸 중복을 줄이는 방향을 기본 원칙으로 확정했다.
## 2026-04-17 v0.2.7
Ghost 관리자의 Secondary navigation은 기본 테마 헬퍼만으로는 출력 위치가 없어 활용되지 않았다. Primary와 동일한 `ul.nav` 스타일을 재사용하려면 `Home pages` 블록과 같은 아코디언 래퍼 안에 `{{navigation type="secondary"}}`를 두고, 항목이 없을 때는 빈 UI가 나오지 않도록 `{{#if @site.secondary_navigation}}`으로 감싸는 방식이 가장 단순하다.

View File

@@ -1,14 +1,14 @@
# 파일-화면 매핑 가이드
## 현재 버전
- `v0.2.11`
- `v1.0.0`
## 공통 레이아웃
- [default.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/default.hbs): 전체 3열 셸, 1296px 공통 폭 계산, 공통 자산 로드
- [partials/site/sidebar-left.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/sidebar-left.hbs): 좌측 탐색(Primary `{{navigation}}`, Secondary `{{navigation type="secondary"}}`·`@site.secondary_navigation` 있을 때만)/Tags/카테고리 아코디언/푸터
- [page-tags.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/page-tags.hbs): `slug=tags` 페이지용 태그 디렉터리
- [tags-index.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/tags-index.hbs): `/tags/` 커스텀 라우트용 태그 디렉터리
- [partials/site/topbar.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/topbar.hbs): 상단 3열 헤더, 중앙 검색(최소 폭·라벨 말줄임), 좌측 사이드바 토글
- [partials/site/topbar.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/topbar.hbs): 상단 3열 헤더, 중앙 검색(최소 폭·라벨 말줄임), 좌측 사이드바 토글, 구조 클래스 기준 레이아웃
- [partials/site/sidebar-right.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/sidebar-right.hbs): 우측 287px 사이드바, Ghost Recommendations 기반 추천 링크/구독/푸터 구성
## 홈 및 목록

View File

@@ -1,7 +1,7 @@
# 기술 명세
## 현재 버전
- `v0.2.11`
- `v1.0.0`
## 테마 개요
- Ghost `v5` 대응 커스텀 테마
@@ -15,6 +15,7 @@
- Ghost `navigation`, `get`, `subscribe_form`, `comments`, `pagination` 헬퍼 사용
- `@site.accent_color`가 설정된 경우 `default.hbs`의 body 인라인 변수로 전역 `--accent`/`--accent-strong`를 덮어써 테마 포인트 색상을 동기화함
- `topbar` 브랜드는 `@site.logo`를 우선 렌더링하고, 로고 미설정 시 `@site.title` 텍스트를 fallback으로 사용함
- `topbar` 헤더는 구조 클래스(`topbar__inner`, `topbar__brand`, `topbar__search`, `topbar__actions`)를 레이아웃 기준으로 사용하고, 동일 역할의 Tailwind 유틸 중복은 줄여 구조 클래스와 유틸 충돌을 방지함
- 데스크톱 `topbar__inner``var(--sidebar-left) minmax(0, var(--content-column)) var(--sidebar-right)` 3열 그리드이며, `1024px` 이상에서만 검색 셀(`.topbar__search`)에 `min-width: min(--topbar-search-min, 100%)`를 적용해 중앙 검색 최소 폭을 완만히 보장함. 검색 트리거는 라벨(`.search-trigger__label`) 말줄임·단축키 `flex-shrink: 0` 유지. 브랜드 텍스트는 말줄임, 로고 이미지는 `max-width: 100%`로 축소
- `1023px` 이하에서는 `topbar__inner``minmax(0, 1fr) auto` 2열로 바꾸고 검색 열을 숨긴 뒤, 브랜드·액션을 각각 1·2열에 배치함(헤더가 3열 정의만 남는 문제 방지)
- `home` Hero는 `@site.cover_image`가 있을 때 배경 이미지로 적용하며 오버레이와 텍스트 대비를 함께 조정함

View File

@@ -1,5 +1,12 @@
# 업데이트 로그
## v1.0.0 - 2026-04-17
- `package.json` 버전을 `1.0.0`으로 증가.
- `partials/site/topbar.hbs`: `topbar__inner` 구조 클래스를 복구하고 `topbar__brand`, `topbar__search`, `topbar__actions` 구간의 중복 Tailwind 유틸(`flex`, `h-full`, `items-center`, `justify-end` 등)을 정리해 구조 클래스와 유틸 충돌을 최소화.
- `partials/site/sidebar-right.hbs`: 추천 fallback 목록 컨테이너의 `rounded-theme`를 제거해 주변 섹션과 모서리 스타일을 통일.
- `docs/spec.md`, `docs/map.md`, `docs/deploy.md`, `docs/history.md` 버전을 `v1.0.0`으로 동기화.
- `npm run build:tailwind``assets/built/tailwind.css` 재생성.
## v0.2.11 - 2026-04-17
- `package.json` 버전을 `0.2.11`로 증가.
- `assets/built/screen.css`: `topbar__inner` 그리드를 `minmax(0, var(--content-column))` 중앙 열로 복구해 데스크톱 3열 배치를 안정화. `minmax(260px, min(720px, 1fr))`·검색 트리거 강제 `min-width` 제거. 브랜드 `overflow: hidden` 제거 및 로고 `max-width: 100%` 보정. `1023px` 이하에서는 `topbar__inner``minmax(0,1fr) auto` 2열로 두고 검색 숨김 시 액션을 그리드 2열에 배치(절대 위치 제거). `1024px` 이상에서만 `.topbar__search``min-width: min(--topbar-search-min, 100%)` 적용.

View File

@@ -1,6 +1,6 @@
{
"name": "ghost-theme-thred-clone",
"version": "0.2.11",
"version": "1.0.0",
"private": true,
"description": "A Ghost theme inspired by the Thred reference layout.",
"keywords": [

View File

@@ -88,7 +88,7 @@
{{#match @site.recommendations_enabled}}
{{recommendations limit="4"}}
{{else}}
<ul class="flex flex-col gap-1 rounded-theme overflow-hidden">
<ul class="flex flex-col gap-1 overflow-hidden">
<li>
<a href="{{@site.url}}" class="py-1 text-[0.8rem] leading-tight flex items-center gap-2 hover:opacity-75">
<h3 class="font-medium line-clamp-1 text-ellipsis overflow-hidden">{{@site.title}}</h3>

View File

@@ -1,7 +1,7 @@
<header class="topbar border-b border-brd bg-bgr/95 supports-[backdrop-filter]:bg-bgr/80">
<div class="topbar__inner mx-auto">
<div class="topbar__brand flex h-full items-center gap-3 px-4 lg:px-0">
<button class="topbar__sidebar-toggle inline-flex items-center justify-center rounded-theme group" type="button" data-left-sidebar-toggle aria-expanded="true" aria-label="Toggle left sidebar">
<div class="topbar__inner">
<div class="topbar__brand">
<button class="topbar__sidebar-toggle group" type="button" data-left-sidebar-toggle aria-expanded="true" aria-label="Toggle left sidebar">
<span class="topbar__sidebar-toggle-icon topbar__sidebar-toggle-icon--open">
<i class="icon icon-layout-sidebar size-6 stroke-2" role="presentation">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-layout-sidebar"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4l0 16"></path></svg>
@@ -31,7 +31,7 @@
{{/if}}
</a>
</div>
<div class="topbar-search topbar__search flex h-full min-w-0 items-center justify-center px-4">
<div class="topbar-search topbar__search">
<button class="search-trigger flex w-full min-w-0 max-w-xs items-center gap-2.5 rounded-xl border border-brd bg-bgr px-3.5 py-2 text-sm text-typ-tone transition-colors hover:bg-bgr-tone hover:text-typ" type="button" data-search-open aria-label="Open search">
<i class="icon icon-search shrink-0 size-5 md:size-4 stroke-2 md:stroke-[2.25] fill-bgr-tone [&amp;&gt;svg]:fill-inherit" role="presentation">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
@@ -44,7 +44,7 @@
<span class="search-shortcut shrink-0">/</span>
</button>
</div>
<div class="topbar__actions relative flex h-full items-center justify-end gap-2 px-4 lg:px-0">
<div class="topbar__actions relative">
<button class="w-8 h-8 cursor-pointer icon-button--user-menu inline-flex items-center justify-center rounded-theme overflow-hidden {{#unless @member}}bg-bgr hover:bg-bgr-tone{{/unless}}" type="button" aria-label="Open user menu" data-user-menu-toggle>
{{#if @member}}
<figure class="relative w-8 h-8 pointer-events-none" data-member-avatar-figure>