brand: unclip sidebar wordmark, styled dark 404, human files error, Element brand text

From the brand review: the sidebar truncated 'Tactical Media Broadcast Hub'
on eleven desktop routes; unknown routes rendered a stock white Next.js 404;
solo users saw the raw 'groupid must be a UUID' validation text on Files;
Element's config brand string still read 'OccupyMedia Hub'.
This commit is contained in:
glass beadian 2026-10-13 16:25:48 +00:00
parent 11f75e945e
commit a3cf150494
3 changed files with 24 additions and 2 deletions

View file

@ -133,7 +133,10 @@ export default function FilesPage(): React.ReactElement {
return;
}
setSource("live");
setError(errorMessage(err));
const message = errorMessage(err);
// Solo accounts have no collective yet: the API's validation text leaks
// an implementation detail, so give the human next step instead.
setError(/groupid/i.test(message) ? "Files live inside a collective — create or join one, then its library appears here." : message);
})
.finally(() => {
if (!controller.signal.aborted) setLoading(false);

View file

@ -0,0 +1,19 @@
import Link from "next/link";
export default function NotFound(): React.ReactElement {
return (
<div className="flex min-h-full flex-col items-center justify-center gap-4 bg-bg p-6 text-center">
<p className="text-5xl font-semibold tracking-tight text-accent">404</p>
<h1 className="text-lg font-semibold">This page was silenced. Our stories aren&apos;t.</h1>
<p className="max-w-sm text-xs text-text-faint">
Nothing lives at this address — but the newsroom does.
</p>
<Link
href="/streams"
className="rounded-md bg-accent px-4 py-2 text-xs font-semibold text-white transition-opacity hover:opacity-90"
>
Back to the newsroom
</Link>
</div>
);
}

View file

@ -42,7 +42,7 @@ export function Sidebar(): React.ReactElement {
<div className="flex items-center gap-2.5 border-b border-border-subtle px-4 py-4">
<LogoMark size={30} title="Tactical Media Broadcast Hub" />
<div className="min-w-0">
<div className="truncate text-sm font-semibold tracking-tight">Tactical Media Broadcast Hub</div>
<div className="text-xs font-semibold leading-tight tracking-tight">Tactical Media Broadcast Hub</div>
<div className="truncate text-2xs text-text-faint" title={workspaceName}>
{workspaceName} ▾
</div>