Compare commits

...

2 Commits

Author SHA1 Message Date
ljy ffc6b7414f fix:修改首页的动画 2026-07-29 23:02:06 +08:00
ljy 855be4d3ad fix:修改样式 2026-07-29 22:43:28 +08:00
3 changed files with 70 additions and 11 deletions
+1
View File
@@ -10,6 +10,7 @@ alwaysApply: false
- `hero``system``.poetic-section`(宣纸/国风:`--paper`、`--ink`、`--red`、`--gold` - `hero``system``.poetic-section`(宣纸/国风:`--paper`、`--ink`、`--red`、`--gold`
- `tech``contact``.tech-section`(深色科技:`--tech`、`--tech-card`、`--tech-line` - `tech``contact``.tech-section`(深色科技:`--tech`、`--tech-card`、`--tech-line`
- 普通模式 `activeIndex >= tech` 时顶栏加 `is-tech-theme`;展控(`?mode=stage`)不加
- 新增章节必须选对主题族;勿混用两套配色令牌 - 新增章节必须选对主题族;勿混用两套配色令牌
## 改章节 ## 改章节
+66 -10
View File
@@ -65,6 +65,36 @@ a {
box-shadow: 0 1.125rem 4.375rem rgba(83, 42, 18, 0.14); box-shadow: 0 1.125rem 4.375rem rgba(83, 42, 18, 0.14);
backdrop-filter: blur(1rem); backdrop-filter: blur(1rem);
transform: translateX(-50%); transform: translateX(-50%);
transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.topbar.is-tech-theme {
border-color: rgba(201, 154, 69, 0.28);
background: rgba(8, 9, 15, 0.78);
box-shadow: 0 1.125rem 4.375rem rgba(0, 0, 0, 0.35);
}
.topbar.is-tech-theme .brand-lockup strong,
.topbar.is-tech-theme .brand-lockup small {
color: #fff4df;
transition: color 0.35s ease;
}
.topbar.is-tech-theme .nav-links {
color: rgba(241, 217, 154, 0.82);
transition: color 0.35s ease;
}
.topbar.is-tech-theme .nav-links a:hover,
.topbar.is-tech-theme .nav-cta:hover {
color: var(--gold-light);
}
.topbar.is-tech-theme .nav-cta {
border-color: rgba(201, 154, 69, 0.42);
color: var(--gold-light);
background: rgba(255, 244, 223, 0.06);
transition: color 0.35s ease, border-color 0.35s ease, background 0.35s ease, transform 0.2s ease;
} }
.brand-lockup { .brand-lockup {
@@ -930,7 +960,6 @@ blockquote cite {
.tech-grid article, .tech-grid article,
.ports-grid article, .ports-grid article,
.partner-list span, .partner-list span,
.qr-card,
.stage-panel { .stage-panel {
border: 1px solid var(--tech-line); border: 1px solid var(--tech-line);
background: var(--tech-card); background: var(--tech-card);
@@ -1152,15 +1181,35 @@ blockquote cite {
.qr-card { .qr-card {
display: grid; display: grid;
justify-items: center; justify-items: center;
gap: 1rem; align-self: center;
padding: 1.75rem; gap: 1.35rem;
margin-block: 1.75rem;
padding: 3.75rem 1.75rem 3.5rem;
border: 1px solid rgba(201, 154, 69, 0.2);
border-radius: 1.25rem;
background: rgba(255, 255, 255, 0.045);
box-shadow: inset 0 1px 0 rgba(255, 244, 223, 0.06);
backdrop-filter: blur(1.125rem);
} }
.qr-card img { .qr-card img {
width: 15rem; width: 14.5rem;
height: 15rem; height: 14.5rem;
border-radius: 1.125rem; padding: 0.65rem;
border-radius: 0.75rem;
background: #fff; background: #fff;
box-sizing: border-box;
object-fit: contain;
}
.qr-card span {
max-width: 13.5rem;
margin: 0;
color: rgba(255, 244, 223, 0.72);
font-size: 0.8125rem;
letter-spacing: 0.08em;
line-height: 1.6;
text-align: center;
} }
.footer { .footer {
@@ -1822,8 +1871,8 @@ blockquote cite {
bottom: 3.625rem; bottom: 3.625rem;
} }
@keyframes floatBottle { @keyframes floatBottle {
0%, 100% { transform: translateY(0); } 0%, 100% { transform: translateY(0) rotate(-10deg); }
50% { transform: translateY(-0.75rem); } 50% { transform: translateY(-2rem) rotate(0deg); }
} }
@media (max-width: 1100px) { @media (max-width: 1100px) {
@@ -2113,13 +2162,20 @@ blockquote cite {
} }
.qr-card { .qr-card {
padding: 0.75rem !important; margin-block: clamp(0.75rem, 2vh, 1.5rem) !important;
gap: 0.5rem !important; padding: 2.25rem 0.9rem 2.1rem !important;
gap: 0.85rem !important;
} }
.qr-card img { .qr-card img {
width: min(28vh, 11rem) !important; width: min(28vh, 11rem) !important;
height: min(28vh, 11rem) !important; height: min(28vh, 11rem) !important;
padding: 0.45rem !important;
}
.qr-card span {
font-size: clamp(0.7rem, 1.2vh, 0.8125rem) !important;
line-height: 1.5 !important;
} }
.contact-person strong { .contact-person strong {
+3 -1
View File
@@ -223,10 +223,12 @@ function App() {
}, [autoPlay, isStageMode]) }, [autoPlay, isStageMode])
const progress = ((activeIndex + 1) / sections.length) * 100 const progress = ((activeIndex + 1) / sections.length) * 100
const techSectionIndex = sections.findIndex((s) => s.id === 'tech')
const isTechTopbar = !isStageMode && techSectionIndex >= 0 && activeIndex >= techSectionIndex
return ( return (
<div className={isStageMode ? 'site is-stage' : 'site'}> <div className={isStageMode ? 'site is-stage' : 'site'}>
<header className="topbar"> <header className={isTechTopbar ? 'topbar is-tech-theme' : 'topbar'}>
<a className="brand-lockup" href="#hero" onClick={() => goToSection(0)}> <a className="brand-lockup" href="#hero" onClick={() => goToSection(0)}>
<img className="haoke-logo-img" src="/assets/haoke-logo.png" alt="杜康好客" /> <img className="haoke-logo-img" src="/assets/haoke-logo.png" alt="杜康好客" />
<span> <span>