IMPROVED - Use swappable image icons and move controls to a corner dock

- Dock icons are now real SVG files under public/dock/ (macOS squircle
  look, active variants), so they can be replaced with custom art later.
- Full-bleed icons (DockIcon padding 0), fixed logo src to stop the
  refresh flash.
- Remove the top menu bar entirely; relocate theme/language/sound (+admin)
  into a corner control dock that expands on click.
This commit is contained in:
moh
2026-09-20 19:12:44 +02:00
parent 6e7cc4dbc6
commit ac8746a287
15 changed files with 267 additions and 271 deletions
+3 -9
View File
@@ -8,7 +8,7 @@ import { SiteDock } from "@/components/layout/site-dock";
import { SiteFooter } from "@/components/layout/site-footer";
import { ScrollSmootherProvider } from "@/components/scroll-smoother-provider";
import { isSuperAdmin } from "@/lib/admin-auth";
import { getMaintenanceMode, getSiteSettings, getSiteSettingsMediaBindings } from "@/lib/app-config";
import { getMaintenanceMode, getSiteSettings } from "@/lib/app-config";
import { getLocalizedPath, resolveLocale } from "@/lib/locale";
type SiteLayoutProps = {
@@ -24,9 +24,8 @@ export const revalidate = 0;
export default async function SiteLayout({ children, params }: SiteLayoutProps) {
noStore();
await params;
const [maintenanceEnabled, mediaBindings, siteSettings] = await Promise.all([
const [maintenanceEnabled, siteSettings] = await Promise.all([
getMaintenanceMode(),
getSiteSettingsMediaBindings(),
getSiteSettings(),
]);
const localeKey = resolveLocale(await getLocale().catch(() => siteSettings.defaultLocale), siteSettings.defaultLocale);
@@ -44,12 +43,7 @@ export default async function SiteLayout({ children, params }: SiteLayoutProps)
<>
<ScrollSmootherProvider />
<SiteAmbientBackdrop />
<SiteDock
lightLogoUrl={mediaBindings.siteLogoLight?.url}
darkLogoUrl={mediaBindings.siteLogoDark?.url}
defaultLocale={siteSettings.defaultLocale}
isSuperAdmin={authenticated}
/>
<SiteDock defaultLocale={siteSettings.defaultLocale} isSuperAdmin={authenticated} />
<div id="smooth-wrapper">
<div id="smooth-content">
<div className="site-content-frame flex min-h-screen flex-col">