From 8973123adfe84fdd57db1b9677fe538c57c31b07 Mon Sep 17 00:00:00 2001 From: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co> Date: Wed, 8 Jul 2026 12:49:52 +0100 Subject: [PATCH 1/8] feat(desktop): animated bee on loading gates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the static Buzz mark and spinner on the setup splash and workspace-switch gate with the looping FuzzyLogo (fuzzy texture, theme-adaptive tint). A static BuzzMark renders underneath so the box paints instantly on hard reload instead of flashing blank. Loops continuously via loopRestSeconds=0 — the prior rest window left the mark visually static for ~63% of each cycle, which read as 'not animated'. Signed-off-by: Fizz <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co> --- desktop/src/app/App.tsx | 47 +++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/desktop/src/app/App.tsx b/desktop/src/app/App.tsx index c3624af24..4c11fe15d 100644 --- a/desktop/src/app/App.tsx +++ b/desktop/src/app/App.tsx @@ -25,27 +25,56 @@ import { createBuzzQueryClient } from "@/shared/api/queryClient"; import { isSharedIdentity as isSharedIdentityCmd } from "@/shared/api/tauri"; import { listenForDeepLinks } from "@/shared/deep-link"; import { useSystemColorScheme } from "@/shared/theme/useSystemColorScheme"; +import { cn } from "@/shared/lib/cn"; import { Button } from "@/shared/ui/button"; import { BuzzMark } from "@/shared/ui/buzz-logo/BuzzMark"; -import { Spinner } from "@/shared/ui/spinner"; +import { FuzzyLogo } from "@/shared/ui/buzz-logo/FuzzyLogo"; import { StartupWindowDragRegion } from "@/shared/ui/StartupWindowDragRegion"; import { StepProgress } from "@/shared/ui/step-progress"; const LOADING_TEXT = "Setting up your workspace..."; -// Cold boot gate: a plain static Buzz mark (#D7D72E) on solid black. No -// animation machinery, no gradient — the mark must paint complete on the very -// first frame, even in webviews that render before scripting or SMIL start. +// Animated Buzz mark for the loading gates. The static BuzzMark renders in +// normal flow and sizes the box — it's plain SVG (no JS/SMIL), so it paints on +// the very first frame even before scripting starts, avoiding a blank flash on +// hard reload. The animated FuzzyLogo is layered on top and takes over once it +// begins playing. +function BeeLoader({ + ariaLabel, + className, + tintClassName = "text-foreground", +}: { + ariaLabel: string; + className?: string; + tintClassName?: string; +}) { + return ( +
+ + +
+ ); +} + +// Cold boot gate: the animated Buzz mark (fuzzy texture, theme-adaptive tint) +// on the app background, with a static mark underneath so it paints instantly +// on reload rather than flashing blank while the animation boots. function AppLoadingGate() { return (
{LOADING_TEXT} - +
); } @@ -69,7 +98,11 @@ function WorkspaceSwitchGate() { Switching workspace… {showSpinner ? ( -