Files
blog/src/styles/site/04-layout.css
T
2026-06-20 10:48:33 +08:00

262 lines
4.9 KiB
CSS

.hero {
width: min(var(--wide-width), calc(100% - (var(--page-gutter) * 2)));
min-height: 360px;
margin: 0 auto;
display: grid;
align-items: center;
}
.compact-hero {
min-height: 260px;
}
.hero h1 {
margin: 0;
font-size: clamp(3rem, 8vw, 6.5rem);
line-height: 0.95;
}
.hero p {
max-width: 620px;
margin: 18px 0 0;
color: var(--muted);
font-size: 1.12rem;
}
.home-hero {
grid-template-columns: minmax(320px, 0.74fr) minmax(360px, 1fr);
gap: clamp(28px, 6vw, 84px);
}
.hero-copy {
min-width: 0;
}
.hero-talk {
align-self: center;
width: 100%;
max-width: 820px;
min-height: 190px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.52);
border-radius: 8px;
padding: 18px 18px 16px;
background:
linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(241, 250, 244, 0.16)),
rgba(255, 255, 255, 0.18);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.58),
0 18px 46px rgba(44, 55, 63, 0.12);
backdrop-filter: blur(10px) saturate(135%);
-webkit-backdrop-filter: blur(10px) saturate(135%);
}
.hero-talk-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-bottom: 12px;
color: var(--accent-strong);
font-size: 0.86rem;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hero-talk-head a {
display: grid;
width: 34px;
height: 34px;
place-items: center;
border: 1px solid rgba(15, 118, 110, 0.16);
border-radius: 999px;
color: var(--accent);
background: rgba(236, 253, 245, 0.54);
transition:
color 0.2s ease,
background-color 0.2s ease,
transform 0.2s ease;
}
.hero-talk-head a:hover {
color: #fff;
background: #3eb8be;
transform: translateY(-1px);
}
.hero-talk .talk-list {
display: grid;
height: 120px;
margin: 0;
overflow: hidden;
padding: 0;
list-style: none;
}
.hero-talk .talk-list:empty::before {
content: "说说加载中...";
display: grid;
min-height: 58px;
align-items: center;
color: var(--muted);
font-size: 0.95rem;
}
.hero-talk .item {
display: flex;
min-height: 40px;
align-items: center;
gap: 10px;
border-top: 1px dashed rgba(104, 111, 120, 0.22);
padding: 9px 2px;
color: #40505a;
font-size: 0.96rem;
line-height: 1.55;
}
.hero-talk .item:first-child {
border-top: 0;
}
.hero-talk .item::before {
content: "";
width: 7px;
height: 7px;
flex: 0 0 auto;
border-radius: 999px;
background: #3eb8be;
box-shadow: 0 0 0 4px rgba(62, 184, 190, 0.14);
}
.hero-talk .item i {
color: var(--accent);
}
.eyebrow {
margin: 0 0 16px !important;
color: var(--accent-strong) !important;
font-size: 0.95rem !important;
font-weight: 700;
}
.content-wrap {
width: min(var(--content-width), calc(100% - (var(--page-gutter) * 2)));
margin: 0 auto 72px;
}
.content-wrap.narrow {
width: min(var(--narrow-width), calc(100% - (var(--page-gutter) * 2)));
}
.page-header-card {
position: relative;
overflow: hidden;
margin: 40px 0 26px;
border: 1px solid rgba(255, 255, 255, 0.58);
border-radius: 8px;
padding: clamp(26px, 5vw, 44px);
background:
radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.78), transparent 36%),
linear-gradient(135deg, rgba(255, 255, 255, 0.58), rgba(238, 250, 243, 0.36)),
rgba(255, 253, 248, 0.72);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.82),
0 18px 48px rgba(58, 51, 38, 0.12);
backdrop-filter: blur(18px) saturate(165%);
-webkit-backdrop-filter: blur(18px) saturate(165%);
}
.page-header-card::after {
content: "";
position: absolute;
top: 10px;
right: 18px;
left: 18px;
height: 1px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.76);
}
.page-header-eyebrow {
position: relative;
z-index: 1;
margin: 0 0 8px;
color: var(--accent);
font-size: 0.86rem;
font-weight: 700;
}
.page-header-card h1,
.content-wrap .page-header-card h1 {
position: relative;
z-index: 1;
margin: 0;
color: #20242a;
font-size: clamp(2rem, 5vw, 3.6rem);
line-height: 1.08;
}
.page-header-subtitle {
position: relative;
z-index: 1;
max-width: 620px;
margin: 12px 0 0;
color: var(--muted);
font-size: 1rem;
}
.page-with-card {
margin-bottom: 0;
}
.page-article {
margin-top: 0;
}
.post-layout {
width: min(var(--wide-width), calc(100% - (var(--page-gutter) * 2)));
margin: 40px auto 84px;
display: grid;
grid-template-columns: minmax(0, 1fr) 320px;
align-items: start;
gap: 28px;
}
.post-layout .article {
width: 100%;
min-width: 0;
margin: 0;
}
.home-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 320px;
align-items: start;
gap: 24px;
}
.home-main {
min-width: 0;
}
.section-heading {
display: flex;
align-items: end;
justify-content: space-between;
gap: 20px;
margin-bottom: 18px;
}
.section-heading h2,
.content-wrap h1 {
margin: 0;
font-size: 1.8rem;
line-height: 1.2;
}
.section-heading a {
color: var(--muted);
}