From 0d94a281b61744a344a82ab8c4f494fb92c96643 Mon Sep 17 00:00:00 2001
From: usrnk1 <7547651+usrnk1@users.noreply.github.com>
Date: Wed, 21 Oct 2026 10:21:51 +0200
Subject: [PATCH] fix(ui): restore pixel-grid loading indicators
---
packages/app/src/index.css | 25 -------------
.../src/runtime/extension/titlebar-items.tsx | 4 +--
packages/ui/src/components/spinner.css | 4 +++
packages/ui/src/components/spinner.tsx | 9 ++---
.../feedback/activity-ring/activity-ring.css | 27 --------------
.../feedback/activity-ring/activity-ring.tsx | 27 +++++---------
packages/ui/src/feedback/loader/loader.css | 27 --------------
.../ui/src/feedback/loader/loader.stories.tsx | 4 +--
packages/ui/src/feedback/loader/loader.tsx | 35 +++++--------------
9 files changed, 27 insertions(+), 135 deletions(-)
diff --git a/packages/app/src/index.css b/packages/app/src/index.css
index f25d7523f8d..3271b8238c2 100644
--- a/packages/app/src/index.css
+++ b/packages/app/src/index.css
@@ -207,31 +207,6 @@
);
}
- [data-slot="titlebar-update-loader"] {
- display: block;
- flex-shrink: 0;
- margin: 1px;
- width: 12px;
- height: 12px;
- border-radius: 9999px;
- border: 2px solid color-mix(in srgb, var(--v2-icon-icon-accent) 30%, transparent);
- border-top-color: var(--v2-icon-icon-accent);
- animation: titlebar-update-loader-spin 0.67s linear infinite;
- transform-origin: 50% 50%;
- }
-
- :root[data-motion="reduce"] {
- [data-slot="titlebar-update-loader"] {
- animation: none;
- }
- }
-
- @keyframes titlebar-update-loader-spin {
- to {
- transform: rotate(360deg);
- }
- }
-
@keyframes home-projects-fade-top {
from {
visibility: hidden;
diff --git a/packages/app/src/runtime/extension/titlebar-items.tsx b/packages/app/src/runtime/extension/titlebar-items.tsx
index 60fbe3d86ed..5acce9a5cd8 100644
--- a/packages/app/src/runtime/extension/titlebar-items.tsx
+++ b/packages/app/src/runtime/extension/titlebar-items.tsx
@@ -1,6 +1,6 @@
import { createMemo, For, Show } from "solid-js"
-import { syncSpinPhase } from "@opencode/ui/hooks"
import { Icon } from "@opencode/ui/icon"
+import { Spinner } from "@opencode/ui/spinner"
import { TitlebarItem } from "@opencode/gui-extensions/sdk"
import { useExtensionHost } from "./host"
@@ -73,7 +73,7 @@ function TitlebarItemButton(props: { item: TitlebarItem; vertical?: boolean }) {
>
}
+ fallback={}
>
({
corner: cornerIndices.has(i),
}))
-export function Spinner(props: {
- class?: string
- classList?: ComponentProps<"div">["classList"]
- style?: ComponentProps<"div">["style"]
-}) {
+export function Spinner(props: ComponentProps<"svg"> & { "data-component"?: string }) {
return (