fix: meteor trail full-width from start, fix dialog not rendering in doc management, move sidebar trigger after logo
Docker Build / Build and Push Docker Image (push) Successful in 3m25s

This commit is contained in:
2026-06-15 03:15:21 +08:00
parent 71519301e4
commit ae380a5a81
6 changed files with 23 additions and 34 deletions
+1 -1
View File
@@ -31,8 +31,8 @@ export function Header({ className, children, ...props }: HeaderProps) {
{...props} {...props}
> >
<div className='flex h-full items-center gap-1.5 px-2 sm:gap-2 sm:px-3'> <div className='flex h-full items-center gap-1.5 px-2 sm:gap-2 sm:px-3'>
<SidebarTrigger variant='ghost' className='size-8' />
{children} {children}
<SidebarTrigger variant='ghost' className='size-8' />
</div> </div>
</header> </header>
) )
+2
View File
@@ -116,6 +116,7 @@ export function DocCategories() {
} }
return ( return (
<>
<SectionPageLayout> <SectionPageLayout>
<SectionPageLayout.Title>{t('Document Categories')}</SectionPageLayout.Title> <SectionPageLayout.Title>{t('Document Categories')}</SectionPageLayout.Title>
<SectionPageLayout.Actions> <SectionPageLayout.Actions>
@@ -217,5 +218,6 @@ export function DocCategories() {
</AlertDialogContent> </AlertDialogContent>
</AlertDialog> </AlertDialog>
</SectionPageLayout> </SectionPageLayout>
</>
) )
} }
+2
View File
@@ -160,6 +160,7 @@ export function DocsManagement() {
} }
return ( return (
<>
<SectionPageLayout> <SectionPageLayout>
<SectionPageLayout.Title>{t('Document Management')}</SectionPageLayout.Title> <SectionPageLayout.Title>{t('Document Management')}</SectionPageLayout.Title>
<SectionPageLayout.Actions> <SectionPageLayout.Actions>
@@ -290,5 +291,6 @@ export function DocsManagement() {
</AlertDialogContent> </AlertDialogContent>
</AlertDialog> </AlertDialog>
</SectionPageLayout> </SectionPageLayout>
</>
) )
} }
+6 -8
View File
@@ -477,11 +477,11 @@ export function Docs() {
.meteor { .meteor {
position: absolute; position: absolute;
width: 1.5px; width: 1.5px;
height: 0; height: 150px;
border-radius: 999px; border-radius: 999px;
animation: meteor-fall linear infinite; animation: meteor-fall linear infinite;
opacity: 0; opacity: 0;
will-change: transform, opacity, height; will-change: transform, opacity;
} }
.meteor::before { .meteor::before {
content: ''; content: '';
@@ -518,12 +518,10 @@ export function Docs() {
.meteor-7 { left: 88%; top: -2%; animation-duration: 1.9s; animation-delay: 25s; } .meteor-7 { left: 88%; top: -2%; animation-duration: 1.9s; animation-delay: 25s; }
.meteor-8 { left: 95%; top: -2%; animation-duration: 2.3s; animation-delay: 29s; } .meteor-8 { left: 95%; top: -2%; animation-duration: 2.3s; animation-delay: 29s; }
@keyframes meteor-fall { @keyframes meteor-fall {
0% { height: 0; opacity: 0; transform: translateY(0) translateX(0) rotate(220deg); } 0% { opacity: 0; transform: translateY(-150px) translateX(0) rotate(220deg); }
8% { opacity: 1; } 5% { opacity: 1; }
20% { height: 120px; opacity: 0.9; } 60% { opacity: 0.6; }
50% { height: 180px; opacity: 0.5; } 100% { opacity: 0; transform: translateY(800px) translateX(-120px) rotate(220deg); }
80% { height: 60px; opacity: 0.15; }
100% { height: 0; opacity: 0; transform: translateY(800px) translateX(-120px) rotate(220deg); }
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
.nebula-cloud, .meteor { animation: none !important; opacity: 0 !important; } .nebula-cloud, .meteor { animation: none !important; opacity: 0 !important; }
+6 -17
View File
@@ -420,11 +420,11 @@ export function Hero(props: HeroProps) {
.meteor { .meteor {
position: absolute; position: absolute;
width: 1.5px; width: 1.5px;
height: 0; height: 150px;
border-radius: 999px; border-radius: 999px;
animation: meteor-fall linear infinite; animation: meteor-fall linear infinite;
opacity: 0; opacity: 0;
will-change: transform, opacity, height; will-change: transform, opacity;
} }
.meteor::before { .meteor::before {
content: ''; content: '';
@@ -485,27 +485,16 @@ export function Hero(props: HeroProps) {
.meteor-10 { left: 95%; top: -2%; animation-duration: 2.0s; animation-delay: 27s; } .meteor-10 { left: 95%; top: -2%; animation-duration: 2.0s; animation-delay: 27s; }
@keyframes meteor-fall { @keyframes meteor-fall {
0% { 0% {
height: 0;
opacity: 0; opacity: 0;
transform: translateY(0) translateX(0) rotate(220deg); transform: translateY(-150px) translateX(0) rotate(220deg);
} }
8% { 5% {
opacity: 1; opacity: 1;
} }
20% { 60% {
height: 120px; opacity: 0.6;
opacity: 0.9;
}
50% {
height: 180px;
opacity: 0.5;
}
80% {
height: 60px;
opacity: 0.15;
} }
100% { 100% {
height: 0;
opacity: 0; opacity: 0;
transform: translateY(800px) translateX(-120px) rotate(220deg); transform: translateY(800px) translateX(-120px) rotate(220deg);
} }
+6 -8
View File
@@ -361,11 +361,11 @@ export function Pricing() {
.meteor { .meteor {
position: absolute; position: absolute;
width: 1.5px; width: 1.5px;
height: 0; height: 150px;
border-radius: 999px; border-radius: 999px;
animation: meteor-fall linear infinite; animation: meteor-fall linear infinite;
opacity: 0; opacity: 0;
will-change: transform, opacity, height; will-change: transform, opacity;
} }
.meteor::before { .meteor::before {
content: ''; content: '';
@@ -402,12 +402,10 @@ export function Pricing() {
.meteor-7 { left: 88%; top: -2%; animation-duration: 1.9s; animation-delay: 24s; } .meteor-7 { left: 88%; top: -2%; animation-duration: 1.9s; animation-delay: 24s; }
.meteor-8 { left: 95%; top: -2%; animation-duration: 2.3s; animation-delay: 28s; } .meteor-8 { left: 95%; top: -2%; animation-duration: 2.3s; animation-delay: 28s; }
@keyframes meteor-fall { @keyframes meteor-fall {
0% { height: 0; opacity: 0; transform: translateY(0) translateX(0) rotate(220deg); } 0% { opacity: 0; transform: translateY(-150px) translateX(0) rotate(220deg); }
8% { opacity: 1; } 5% { opacity: 1; }
20% { height: 120px; opacity: 0.9; } 60% { opacity: 0.6; }
50% { height: 180px; opacity: 0.5; } 100% { opacity: 0; transform: translateY(800px) translateX(-120px) rotate(220deg); }
80% { height: 60px; opacity: 0.15; }
100% { height: 0; opacity: 0; transform: translateY(800px) translateX(-120px) rotate(220deg); }
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
.nebula-cloud, .meteor { animation: none !important; opacity: 0 !important; } .nebula-cloud, .meteor { animation: none !important; opacity: 0 !important; }