perf+ui: gzip (api/static precompressed), immutable attachment cache, responsive dialogs/header, safe-area + dynamic theme-color, mobile tuning

This commit is contained in:
root
2026-10-16 23:34:36 +08:00
parent 3ba44aa2de
commit 275a0313e1
21 changed files with 145 additions and 95 deletions
+4 -4
View File
@@ -29,7 +29,7 @@ export function Header({ onMenu }: { onMenu?: () => void }) {
};
return (
<header className="flex h-14 shrink-0 items-center gap-4 border-b border-line bg-surface px-5">
<header className="flex h-14 shrink-0 items-center gap-2 border-b border-line bg-surface px-3 sm:gap-4 sm:px-5">
<Button variant="ghost" size="icon" className="lg:hidden" onClick={onMenu} aria-label="打开导航">
<Menu size={17} />
</Button>
@@ -39,7 +39,7 @@ export function Header({ onMenu }: { onMenu?: () => void }) {
{meta.sub && <p className="truncate text-[11px] leading-tight text-ink-3">{meta.sub}</p>}
</div>
<div className="relative ml-auto w-[280px]">
<div className="relative ml-auto hidden w-[240px] md:block lg:w-[280px]">
<Search size={14} className="pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-ink-3" />
<Input
className="pl-8"
@@ -58,9 +58,9 @@ export function Header({ onMenu }: { onMenu?: () => void }) {
{dark ? <Sun size={15} /> : <Moon size={15} />}
</Button>
<Button variant="primary" onClick={() => navigate('/records?new=1')}>
<Button variant="primary" onClick={() => navigate('/records?new=1')} aria-label="新建记录">
<Plus size={14} />
新建记录
<span className="hidden sm:inline">新建记录</span>
</Button>
</header>
);