diff --git a/src/index.css b/src/index.css
index ffdfa63..c0438b7 100644
--- a/src/index.css
+++ b/src/index.css
@@ -30,9 +30,23 @@ header button {
-webkit-tap-highlight-color: transparent;
}
-.ark-dropdown-enter {
- --animate-duration: 220ms;
+.ark-header-menu-enter,
+.ark-header-popover-enter {
+ animation: ark-header-menu-enter 180ms ease-out both;
transform-origin: top center;
+ will-change: clip-path, opacity;
+}
+
+@keyframes ark-header-menu-enter {
+ from {
+ opacity: 0;
+ clip-path: inset(0 0 100% 0);
+ }
+
+ to {
+ opacity: 1;
+ clip-path: inset(0 0 0 0);
+ }
}
/* Desktop header nav: thin scrollbar when links overflow (still 單列) */
diff --git a/src/layouts/PublicLayout.tsx b/src/layouts/PublicLayout.tsx
index 2086f34..68a6f15 100644
--- a/src/layouts/PublicLayout.tsx
+++ b/src/layouts/PublicLayout.tsx
@@ -61,8 +61,8 @@ function navClassName(active: boolean) {
].join(" ");
}
-const dropdownAnimationClass =
- "animate__animated animate__fadeInDown ark-dropdown-enter";
+const dropdownAnimationClass = "ark-header-popover-enter";
+const headerMenuAnimationClass = "ark-header-menu-enter";
const publicMenuOpenChangeEvent = "ark:public-menu-open-change";
@@ -508,7 +508,7 @@ export function PublicLayout() {
{open ? (