From 19832fd5cf823a45b29e5dc8ec8370c8c9e9c292 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sat, 06 Jun 2026 18:25:34 +0800
Subject: [PATCH] Implement user hero design: real HTML copy, cropped visual, app icon in header
---
docs/index-en.html | 38 +++------
docs/styles.css | 142 +++++------------------------------
docs/index.html | 38 +++------
docs/assets/hero-visual.jpg | 0
4 files changed, 45 insertions(+), 173 deletions(-)
diff --git a/docs/assets/hero-visual.jpg b/docs/assets/hero-visual.jpg
new file mode 100644
index 0000000..b1bd71d
--- /dev/null
+++ b/docs/assets/hero-visual.jpg
Binary files differ
diff --git a/docs/index-en.html b/docs/index-en.html
index 0c57f0c..64ecff2 100644
--- a/docs/index-en.html
+++ b/docs/index-en.html
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TagLauncher — Tag-based Mac app launcher</title>
<meta name="description" content="TagLauncher organizes Mac apps with tags: scrollable grid, multi-tag apps, searchable notes, JSON layout backup—beyond Launchpad folders and pages.">
- <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-shot-grid.jpg">
+ <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-visual.jpg">
<link rel="stylesheet" href="styles.css">
<link rel="alternate" hreflang="en" href="index-en.html">
<link rel="alternate" hreflang="zh-Hans" href="index.html">
@@ -33,33 +33,19 @@
<section class="hero" aria-label="TagLauncher hero">
<div class="layout hero__split">
<div class="hero__copy">
- <h1 class="hero__headline">Possibly the best Mac app launcher—anywhere</h1>
- <p class="hero__lead">Don't mourn Launchpad on macOS 26 Tahoe. It was never great—and it still isn't.</p>
+ <h1 class="hero__headline">Possibly the best Mac app launcher—in the world</h1>
+ <p class="hero__lead">Don't mourn Launchpad on macOS 26 Tahoe. It was never truly good—it was only barely usable.</p>
</div>
- <div class="hero__visual">
- <div class="hero__stack">
- <div class="hero-stack-layer hero-stack-layer--far" aria-hidden="true">
- <div class="hero-stack-layer__chrome"><span></span><span></span><span></span></div>
- <div class="hero-stack-layer__body"></div>
- </div>
- <div class="hero-stack-layer hero-stack-layer--near" aria-hidden="true">
- <div class="hero-stack-layer__chrome"><span></span><span></span><span></span></div>
- <div class="hero-stack-layer__body"></div>
- </div>
- <figure class="hero-window">
- <div class="hero-window__chrome">
- <span></span><span></span><span></span>
- </div>
- <div class="hero-window__screen">
- <img src="assets/hero-shot-grid.jpg" alt="TagLauncher App Grid" width="1600" height="1040" fetchpriority="high" decoding="async">
- </div>
- <div class="hero-window__reflection" aria-hidden="true">
- <img src="assets/hero-shot-grid.jpg" alt="" width="1600" height="1040">
- </div>
- </figure>
- </div>
- </div>
+ <figure class="hero__visual">
+ <img
+ src="assets/hero-visual.jpg"
+ alt="TagLauncher App Grid with colorful tags"
+ width="553"
+ height="619"
+ fetchpriority="high"
+ decoding="async">
+ </figure>
</div>
</section>
diff --git a/docs/index.html b/docs/index.html
index 6c0385f..6807fc5 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -4,8 +4,8 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TagLauncher — 标签化 Mac 应用启动器</title>
- <meta name="description" content="TagLauncher:用标签管理 Mac 应用,可滚动网格、多标签归类、应用备忘、布局备份。比 Launchpad 更适合应用很多的用户。">
- <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-shot-grid.jpg">
+ <meta name="description" content="在全球,这可能是Mac最好用的应用启动台。不用怀念 macOS 26 Tahoe 上消失的 Launchpad,TagLauncher 用标签管理 Mac 应用。">
+ <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-visual.jpg">
<link rel="stylesheet" href="styles.css">
<link rel="alternate" hreflang="en" href="index-en.html">
<link rel="alternate" hreflang="zh-Hans" href="index.html">
@@ -34,32 +34,18 @@
<div class="layout hero__split">
<div class="hero__copy">
<h1 class="hero__headline">在全球,这可能是Mac最好用的应用启动台</h1>
- <p class="hero__lead">不用怀念 macOS 26 Tahoe 上消失的 Launchpad(启动台),因为它一直都不好用,从来就没好用过</p>
+ <p class="hero__lead">不用怀念 macOS 26 Tahoe 上消失的 Launchpad(启动台),因为他从来都没真的好用过,他从来就勉强可以用</p>
</div>
- <div class="hero__visual">
- <div class="hero__stack">
- <div class="hero-stack-layer hero-stack-layer--far" aria-hidden="true">
- <div class="hero-stack-layer__chrome"><span></span><span></span><span></span></div>
- <div class="hero-stack-layer__body"></div>
- </div>
- <div class="hero-stack-layer hero-stack-layer--near" aria-hidden="true">
- <div class="hero-stack-layer__chrome"><span></span><span></span><span></span></div>
- <div class="hero-stack-layer__body"></div>
- </div>
- <figure class="hero-window">
- <div class="hero-window__chrome">
- <span></span><span></span><span></span>
- </div>
- <div class="hero-window__screen">
- <img src="assets/hero-shot-grid.jpg" alt="TagLauncher 应用网格界面" width="1600" height="1040" fetchpriority="high" decoding="async">
- </div>
- <div class="hero-window__reflection" aria-hidden="true">
- <img src="assets/hero-shot-grid.jpg" alt="" width="1600" height="1040">
- </div>
- </figure>
- </div>
- </div>
+ <figure class="hero__visual">
+ <img
+ src="assets/hero-visual.jpg"
+ alt="TagLauncher 应用网格界面:彩色标签分类与可滚动应用图标"
+ width="553"
+ height="619"
+ fetchpriority="high"
+ decoding="async">
+ </figure>
</div>
</section>
diff --git a/docs/styles.css b/docs/styles.css
index edd233e..a0b71ce 100644
--- a/docs/styles.css
+++ b/docs/styles.css
@@ -163,141 +163,45 @@
.hero__split {
display: grid;
- grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
- gap: 28px 40px;
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
+ gap: 20px 48px;
align-items: center;
- min-height: calc(100svh - var(--header-h) - 112px);
- min-height: calc(100vh - var(--header-h) - 112px);
+ min-height: calc(100svh - var(--header-h) - 96px);
+ min-height: calc(100vh - var(--header-h) - 96px);
}
.hero__copy {
- padding: 12px 0;
+ padding: 8px 0;
}
.hero__headline {
margin: 0;
- font-size: clamp(1.85rem, 4.2vw, 2.85rem);
- font-weight: 700;
- letter-spacing: -0.035em;
- line-height: 1.12;
- color: #111114;
+ font-size: clamp(2rem, 4.8vw, 3.15rem);
+ font-weight: 800;
+ letter-spacing: -0.04em;
+ line-height: 1.1;
+ color: #000;
}
.hero__lead {
- margin: 22px 0 0;
- font-size: clamp(0.98rem, 1.6vw, 1.12rem);
- line-height: 1.65;
- color: var(--muted);
- max-width: 26em;
+ margin: 28px 0 0;
+ font-size: clamp(1rem, 1.7vw, 1.2rem);
+ line-height: 1.7;
+ color: #1d1d1f;
+ max-width: 22em;
}
.hero__visual {
- position: relative;
- min-height: 340px;
-}
-
-/* One real screenshot in front; back layers are chrome-only depth cues */
-.hero__stack {
- position: relative;
- width: 100%;
- max-width: 520px;
- margin-left: auto;
- padding: 36px 0 48px;
-}
-
-.hero-stack-layer {
- position: absolute;
- left: 0;
- right: 0;
- border-radius: 12px;
- overflow: hidden;
- border: 1px solid rgba(0, 0, 0, 0.07);
- box-shadow: 0 16px 40px rgba(30, 45, 90, 0.1);
- pointer-events: none;
-}
-
-.hero-stack-layer__chrome,
-.hero-window__chrome {
- display: flex;
- gap: 7px;
- padding: 9px 11px 7px;
- background: linear-gradient(180deg, #f3f5f9 0%, #e8ecf3 100%);
- border-bottom: 1px solid rgba(0, 0, 0, 0.06);
-}
-
-.hero-stack-layer__chrome span,
-.hero-window__chrome span {
- width: 10px;
- height: 10px;
- border-radius: 50%;
-}
-
-.hero-stack-layer__chrome span:nth-child(1),
-.hero-window__chrome span:nth-child(1) { background: #ff6b6b; }
-.hero-stack-layer__chrome span:nth-child(2),
-.hero-window__chrome span:nth-child(2) { background: #ffd166; }
-.hero-stack-layer__chrome span:nth-child(3),
-.hero-window__chrome span:nth-child(3) { background: #6ee7a8; }
-
-.hero-stack-layer__body {
- height: 220px;
- background: linear-gradient(180deg, #fafbfd 0%, #eef1f7 100%);
-}
-
-.hero-stack-layer--far {
- top: 0;
- transform: translate(28px, -22px) scale(0.96);
- opacity: 0.45;
- z-index: 1;
-}
-
-.hero-stack-layer--near {
- top: 12px;
- transform: translate(14px, -10px) scale(0.98);
- opacity: 0.68;
- z-index: 2;
-}
-
-.hero-window {
- position: relative;
- margin: 24px 0 0;
- z-index: 3;
- transform: rotateY(-6deg) rotateX(3deg);
- transform-style: preserve-3d;
-}
-
-.hero-window__screen {
- border-radius: 0 0 12px 12px;
- overflow: hidden;
+ margin: 0;
line-height: 0;
- background: #fff;
- border: 1px solid rgba(0, 0, 0, 0.08);
- border-top: none;
- box-shadow:
- 0 28px 64px rgba(30, 45, 90, 0.16),
- 0 10px 24px rgba(30, 45, 90, 0.08);
}
-.hero-window__screen img {
+.hero__visual img {
display: block;
width: 100%;
+ max-width: 560px;
height: auto;
-}
-
-.hero-window__reflection {
- margin-top: 10px;
- transform: scaleY(-1);
- opacity: 0.18;
- mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, transparent 70%);
- -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, transparent 70%);
- border-radius: 12px;
- overflow: hidden;
-}
-
-.hero-window__reflection img {
- display: block;
- width: 100%;
- height: auto;
+ margin-left: auto;
}
/* Main content */
@@ -467,9 +371,9 @@
gap: 32px;
}
- .hero__stack {
- max-width: 100%;
+ .hero__visual img {
margin-left: 0;
+ max-width: 100%;
}
}
@@ -480,9 +384,5 @@
.hero {
padding: 32px 0 48px;
- }
-
- .hero-stack-layer__body {
- height: 160px;
}
}
\ No newline at end of file
--
Gitblit v1.9.3