fix(web): stabilize hero whale hover

This commit is contained in:
ZiyaZhang
2026-08-11 08:53:39 -07:00
parent 1d7ce83894
commit d5820df03b
3 changed files with 21 additions and 6 deletions

View File

@@ -118,7 +118,9 @@ export function HeroShell({ t, children }: HeroShellProps) {
<div className={css.stack}>
<div className={css.headline}>
{/* figma 34:10412: fish 34×25 leading the headline, gap 10. */}
<FishLogo size={34} className={css.fish} />
<span className={css.fishHitbox}>
<FishLogo size={34} className={css.fish} />
</span>
<span className={css.headlineText}>{t('hero.headline')}</span>
<span className={css.previewBadge}>{t('hero.preview')}</span>
</div>

View File

@@ -61,12 +61,18 @@
white-space: nowrap;
}
/* Keep the hero mark in the same primary ink as its headline. */
.fish {
/* Keep hover detection on a stationary box while the mark moves within it. */
.fishHitbox {
grid-row: 1;
grid-column: 1;
display: inline-flex;
align-items: center;
justify-content: center;
}
/* Keep the hero mark in the same primary ink as its headline. */
.fish {
color: var(--dsw-alias-label-primary);
transform-box: fill-box;
transform-origin: 50% 60%;
}
@@ -85,8 +91,8 @@
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
.fish:hover {
animation: hero-fish-swim 560ms cubic-bezier(0.2, 0.8, 0.2, 1);
.fishHitbox:hover .fish {
animation: hero-fish-swim var(--ds-transition-duration-slow) var(--ds-ease-in-out);
}
}