v0.1.6 헤더 및 포스트 레이아웃 수정

This commit is contained in:
2026-04-13 16:03:37 +09:00
parent d5bb44b0e2
commit d834827236
5 changed files with 140 additions and 72 deletions

View File

@@ -18,6 +18,7 @@
--sidebar-right: 320px; --sidebar-right: 320px;
--content-column: 720px; --content-column: 720px;
--content-measure: 680px; --content-measure: 680px;
--content-header: 720px;
--topbar-height: 62px; --topbar-height: 62px;
--shell-width: calc(var(--sidebar-left) + var(--content-column) + var(--sidebar-right)); --shell-width: calc(var(--sidebar-left) + var(--content-column) + var(--sidebar-right));
--font-sans: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif; --font-sans: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;
@@ -94,6 +95,7 @@ input {
.site-shell-wrap { .site-shell-wrap {
border-top: 1px solid var(--border); border-top: 1px solid var(--border);
background: var(--bg);
} }
.sidebar, .sidebar,
@@ -115,7 +117,7 @@ input {
position: sticky; position: sticky;
top: var(--topbar-height); top: var(--topbar-height);
height: calc(100vh - var(--topbar-height)); height: calc(100vh - var(--topbar-height));
padding: 18px 16px; padding: 0 16px 18px;
overflow-y: auto; overflow-y: auto;
} }
@@ -152,6 +154,8 @@ input {
.menu-groups { .menu-groups {
display: grid; display: grid;
gap: 2px; gap: 2px;
padding-top: 18px;
padding-bottom: 16px;
} }
.menu-group { .menu-group {
@@ -165,7 +169,7 @@ input {
width: 100%; width: 100%;
padding: 8px 10px; padding: 8px 10px;
border: 0; border: 0;
border-radius: 14px; border-radius: 15px;
background: none; background: none;
color: inherit; color: inherit;
cursor: pointer; cursor: pointer;
@@ -177,10 +181,11 @@ input {
padding: 0; padding: 0;
transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1);
will-change: height; will-change: height;
overflow: hidden;
} }
.menu-group__content > * { .menu-group__content > * {
padding: 4px 0 10px; padding: 6px 0 12px;
} }
.menu-group .nav { .menu-group .nav {
@@ -191,7 +196,7 @@ input {
.menu-group .nav li + li, .menu-group .nav li + li,
.link-list li + li { .link-list li + li {
margin-top: 4px; margin-top: 3px;
} }
.menu-group .nav a, .menu-group .nav a,
@@ -201,8 +206,8 @@ input {
.menu-group .nav a { .menu-group .nav a {
display: block; display: block;
padding: 7px 14px 7px 30px; padding: 8px 14px 8px 30px;
border-radius: 12px; border-radius: 13px;
transition: background-color 0.22s ease, color 0.22s ease; transition: background-color 0.22s ease, color 0.22s ease;
} }
@@ -220,8 +225,8 @@ input {
.menu-sub-link { .menu-sub-link {
display: block; display: block;
padding: 7px 14px 7px 30px; padding: 8px 14px 8px 30px;
border-radius: 12px; border-radius: 13px;
transition: background-color 0.22s ease, color 0.22s ease; transition: background-color 0.22s ease, color 0.22s ease;
} }
@@ -302,16 +307,17 @@ input {
.category-grid { .category-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px 16px; gap: 8px 18px;
} }
.category-chip { .category-chip {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 10px;
padding: 6px 2px; min-width: 0;
border-radius: 10px; padding: 6px 0;
transition: color 0.2s ease; border-radius: 12px;
transition: color 0.2s ease, transform 0.2s ease;
font-weight: 600; font-weight: 600;
letter-spacing: -0.01em; letter-spacing: -0.01em;
} }
@@ -322,6 +328,10 @@ input {
background: transparent; background: transparent;
} }
.category-chip:hover {
transform: translateX(1px);
}
.category-chip__dot { .category-chip__dot {
width: 5px; width: 5px;
height: 19px; height: 19px;
@@ -329,10 +339,11 @@ input {
background: linear-gradient(135deg, #5d66ff, #29b6f6); background: linear-gradient(135deg, #5d66ff, #29b6f6);
} }
.category-chip__count { .category-chip__label {
margin-left: auto; min-width: 0;
color: var(--text-dim); overflow: hidden;
font-size: 11px; text-overflow: ellipsis;
white-space: nowrap;
} }
.author-list { .author-list {
@@ -354,8 +365,17 @@ input {
display: block; display: block;
} }
.author-list__body {
min-width: 0;
}
.author-list__item strong {
line-height: 1.3;
}
.author-list__item small { .author-list__item small {
color: var(--text-soft); color: var(--text-soft);
line-height: 1.25;
} }
.sidebar-footer { .sidebar-footer {
@@ -382,6 +402,8 @@ input {
margin: 0 auto; margin: 0 auto;
background: color-mix(in srgb, var(--bg) 94%, transparent); background: color-mix(in srgb, var(--bg) 94%, transparent);
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
border-left: 1px solid var(--border);
border-right: 1px solid var(--border);
} }
.topbar__brand, .topbar__brand,
@@ -392,12 +414,17 @@ input {
.topbar__brand { .topbar__brand {
padding: 0 16px; padding: 0 16px;
border-right: 1px solid var(--border); border-right: 1px solid var(--border);
height: 100%;
display: flex;
align-items: center;
} }
.topbar__search { .topbar__search {
display: flex; display: flex;
justify-content: center; justify-content: center;
padding: 0 18px; padding: 0 18px;
height: 100%;
align-items: center;
} }
.search-trigger, .search-trigger,
@@ -433,6 +460,7 @@ input {
gap: 10px; gap: 10px;
padding: 0 16px; padding: 0 16px;
border-left: 1px solid var(--border); border-left: 1px solid var(--border);
height: 100%;
} }
.button, .button,
@@ -493,6 +521,7 @@ input {
.content-area { .content-area {
padding: 0 20px 44px; padding: 0 20px 44px;
min-width: 0;
} }
.hero { .hero {
@@ -710,6 +739,14 @@ input {
font-weight: 800; font-weight: 800;
} }
.site-intro {
display: grid;
grid-template-columns: 54px minmax(0, 1fr);
gap: 14px;
align-items: center;
padding-top: 18px;
}
.about-block h2, .about-block h2,
.author-feature h3 { .author-feature h3 {
margin: 0 0 4px; margin: 0 0 4px;
@@ -725,14 +762,15 @@ input {
.social-row { .social-row {
display: flex; display: flex;
gap: 12px; gap: 14px;
} }
.social-row a { .social-row a {
color: var(--text-soft); color: var(--text-soft);
text-transform: uppercase; text-transform: uppercase;
font-size: 12px; font-size: 11px;
font-weight: 700; font-weight: 700;
letter-spacing: 0.06em;
} }
.recommended-list { .recommended-list {
@@ -740,12 +778,12 @@ input {
padding: 0; padding: 0;
list-style: none; list-style: none;
display: grid; display: grid;
gap: 8px; gap: 6px;
} }
.recommended-list a { .recommended-list a {
display: block; display: block;
padding: 6px 0; padding: 5px 0;
border-radius: 10px; border-radius: 10px;
line-height: 1.5; line-height: 1.5;
font-size: 0.94rem; font-size: 0.94rem;
@@ -778,19 +816,26 @@ input {
} }
.post-template { .post-template {
max-width: var(--content-measure); max-width: var(--content-header);
margin: 0 auto; margin: 0 auto;
padding: 24px 0 10px; padding: 18px 0 10px;
} }
.post-header { .post-header {
display: grid; display: grid;
gap: 14px; gap: 14px;
padding-top: 14px; padding-top: 8px;
padding-bottom: 24px; padding-bottom: 24px;
border-bottom: 1px solid var(--border); border-bottom: 1px solid var(--border);
} }
.post-header__inner,
.post-body {
max-width: var(--content-measure);
width: 100%;
margin: 0 auto;
}
.post-tag { .post-tag {
color: var(--accent); color: var(--accent);
font-weight: 700; font-weight: 700;
@@ -815,9 +860,14 @@ input {
border-radius: 14px; border-radius: 14px;
} }
.post-body {
padding-top: 22px;
}
.kg-content { .kg-content {
font-size: 1.02rem; font-size: 1.02rem;
line-height: 1.88; line-height: 1.88;
min-width: 0;
} }
.kg-content > * + * { .kg-content > * + * {
@@ -1025,6 +1075,8 @@ input {
.topbar { .topbar {
width: 100%; width: 100%;
grid-template-columns: 240px minmax(0, 1fr); grid-template-columns: 240px minmax(0, 1fr);
border-left: 0;
border-right: 0;
} }
.topbar__actions { .topbar__actions {
@@ -1046,6 +1098,8 @@ input {
grid-template-columns: 1fr; grid-template-columns: 1fr;
padding: 0 14px; padding: 0 14px;
border-bottom: 1px solid var(--border); border-bottom: 1px solid var(--border);
border-left: 0;
border-right: 0;
} }
.topbar__brand, .topbar__brand,
@@ -1090,6 +1144,15 @@ input {
padding-inline: 0; padding-inline: 0;
} }
.post-template {
max-width: 100%;
}
.post-header__inner,
.post-body {
max-width: 100%;
}
.category-overview__row { .category-overview__row {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 10px; gap: 10px;

View File

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

View File

@@ -79,8 +79,7 @@
{{#foreach tags}} {{#foreach tags}}
<a class="category-chip" href="{{url}}"> <a class="category-chip" href="{{url}}">
<span class="category-chip__dot"></span> <span class="category-chip__dot"></span>
<span>{{name}}</span> <span class="category-chip__label">{{name}}</span>
<span class="category-chip__count">{{count.posts}}</span>
</a> </a>
{{/foreach}} {{/foreach}}
{{/get}} {{/get}}
@@ -100,7 +99,7 @@
{{else}} {{else}}
<span class="avatar avatar--fallback">A</span> <span class="avatar avatar--fallback">A</span>
{{/if}} {{/if}}
<span> <span class="author-list__body">
<strong>{{name}}</strong> <strong>{{name}}</strong>
<small>{{plural count.posts empty="No posts" singular="% post" plural="% posts"}}</small> <small>{{plural count.posts empty="No posts" singular="% post" plural="% posts"}}</small>
</span> </span>

View File

@@ -1,5 +1,6 @@
<aside class="sidebar sidebar--right"> <aside class="sidebar sidebar--right">
<div class="sidebar__inner sidebar__inner--right"> <div class="sidebar__inner sidebar__inner--right">
<section class="site-intro">
{{#if @site.icon}} {{#if @site.icon}}
<img class="site-icon" src="{{@site.icon}}" alt="{{@site.title}}"> <img class="site-icon" src="{{@site.icon}}" alt="{{@site.title}}">
{{else}} {{else}}
@@ -11,6 +12,7 @@
<p>{{@site.description}}</p> <p>{{@site.description}}</p>
{{/if}} {{/if}}
</div> </div>
</section>
{{subscribe_form {{subscribe_form
placeholder="Your email" placeholder="Your email"

View File

@@ -4,6 +4,7 @@
<main class="content-area content-area--post"> <main class="content-area content-area--post">
<article class="post-template {{post_class}}"> <article class="post-template {{post_class}}">
<header class="post-header"> <header class="post-header">
<div class="post-header__inner">
{{#if primary_tag}} {{#if primary_tag}}
<a class="post-tag" href="{{primary_tag.url}}">{{primary_tag.name}}</a> <a class="post-tag" href="{{primary_tag.url}}">{{primary_tag.name}}</a>
{{/if}} {{/if}}
@@ -15,6 +16,7 @@
{{/primary_author}} {{/primary_author}}
<span>{{reading_time}}</span> <span>{{reading_time}}</span>
</div> </div>
</div>
{{#if feature_image}} {{#if feature_image}}
<figure class="post-feature-image"> <figure class="post-feature-image">
<img <img
@@ -27,6 +29,7 @@
{{/if}} {{/if}}
</header> </header>
<div class="post-body">
<section class="post-content kg-content"> <section class="post-content kg-content">
{{content}} {{content}}
</section> </section>
@@ -54,6 +57,7 @@
</div> </div>
{{/primary_author}} {{/primary_author}}
</footer> </footer>
</div>
</article> </article>
{{> "post/post-navigation"}} {{> "post/post-navigation"}}