Ariver
2026-06-06 e45c0a8b5228f2ba009c4f9e3ed8ede249897f73
Fix hero: use original design visual crop, no CSS 3D transforms

Left column stays as HTML copy for SEO; right column shows the stacked
windows exactly as in the user's redesign (vertical crop only).
3 files modified
2 files added
68 ■■■■■ changed files
docs/assets/hero-design-original.jpg patch | view | raw | blame | history
docs/assets/hero-visual-only.jpg patch | view | raw | blame | history
docs/index-en.html 16 ●●●●● patch | view | raw | blame | history
docs/index.html 16 ●●●●● patch | view | raw | blame | history
docs/styles.css 36 ●●●● patch | view | raw | blame | history
docs/assets/hero-design-original.jpg
docs/assets/hero-visual-only.jpg
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-visual-stack.jpg">
  <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-design-original.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">
@@ -37,18 +37,16 @@
        <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" aria-hidden="true">
        <div class="hero__stack-stage">
      <figure class="hero__art">
          <img
            class="hero__stack-img"
            src="assets/hero-visual-stack.jpg"
          src="assets/hero-visual-only.jpg"
            alt=""
            width="533"
          width="592"
            height="687"
            fetchpriority="high"
            decoding="async">
        </div>
      </div>
          decoding="async"
          role="presentation">
      </figure>
    </div>
  </section>
docs/index.html
@@ -5,7 +5,7 @@
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>TagLauncher — 标签化 Mac 应用启动器</title>
  <meta name="description" content="在全球,这可能是Mac最好用的应用启动台。不用怀念 macOS 26 Tahoe 上消失的 Launchpad,TagLauncher 用标签管理 Mac 应用。">
  <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-visual-stack.jpg">
  <meta property="og:image" content="https://shanghai3168.github.io/taglauncher/assets/hero-design-original.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">
@@ -37,18 +37,16 @@
        <p class="hero__lead">不用怀念 macOS 26 Tahoe 上消失的 Launchpad(启动台),因为他从来都没真的好用过,他从来就勉强可以用</p>
      </div>
      <div class="hero__visual" aria-hidden="true">
        <div class="hero__stack-stage">
      <figure class="hero__art">
          <img
            class="hero__stack-img"
            src="assets/hero-visual-stack.jpg"
          src="assets/hero-visual-only.jpg"
            alt=""
            width="533"
          width="592"
            height="687"
            fetchpriority="high"
            decoding="async">
        </div>
      </div>
          decoding="async"
          role="presentation">
      </figure>
    </div>
  </section>
docs/styles.css
@@ -163,8 +163,8 @@
.hero__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 20px 48px;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 12px 32px;
  align-items: center;
  min-height: calc(100svh - var(--header-h) - 96px);
  min-height: calc(100vh - var(--header-h) - 96px);
@@ -191,31 +191,20 @@
  max-width: 22em;
}
.hero__visual {
  position: relative;
  min-height: 420px;
/* Right art: pixels from user's original design (vertical crop only — stack + reflection intact) */
.hero__art {
  margin: 0;
  line-height: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.hero__stack-stage {
  position: relative;
  width: 100%;
  max-width: 620px;
  margin-left: auto;
  padding: 12px 0 28px;
  perspective: 1600px;
  perspective-origin: 35% 45%;
}
.hero__stack-img {
.hero__art img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  transform: rotateY(-11deg) rotateX(4deg) translateZ(0);
  transform-origin: 40% 50%;
  filter: drop-shadow(0 28px 48px rgba(30, 45, 90, 0.14));
}
/* Main content */
@@ -385,13 +374,8 @@
    gap: 32px;
  }
  .hero__stack-stage {
    max-width: 100%;
    margin-left: 0;
  }
  .hero__stack-img {
    transform: rotateY(-7deg) rotateX(3deg);
  .hero__art {
    justify-content: center;
  }
}