From 7ba036d79602feb1c5e79c1b6f143d7c47eaefb3 Mon Sep 17 00:00:00 2001 From: Sven Reiser Date: Sun, 21 Jun 2026 16:00:34 +0200 Subject: [PATCH 1/3] chore(deps): bump @mind-studio/ui to 0.7.0 (brand-refresh typography) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Picks up the serif heading typography (Fraunces h1–h3), kbd mono, the semantic state tokens, and the new weave mark (auto via ) from the design-system brand refresh. Refs #29 Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 289b222..7d8f708 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@inrupt/solid-client-authn-browser": "^4.0.0", "@inrupt/solid-client-authn-node": "^3.1.0", "@mind-studio/core": "^0.8.0", - "@mind-studio/ui": "^0.4.0", + "@mind-studio/ui": "^0.7.0", "lucide-react": "^0.460.0", "next": "16.2.6", "react": "19.2.4", @@ -1516,9 +1516,9 @@ } }, "node_modules/@mind-studio/ui": { - "version": "0.4.0", - "resolved": "https://npm.pkg.github.com/download/@mind-studio/ui/0.4.0/4d57829589aba38f8123b53c858598ed84db4910", - "integrity": "sha512-GOMaHU1tR8z0JIOnOHMJBLcYDItcUuYVuxgBmsBXGoipoSxrknzVnarqiR/7Wm26AWkQ7ISyzDkDcFot6jTgyQ==", + "version": "0.7.0", + "resolved": "https://npm.pkg.github.com/download/@mind-studio/ui/0.7.0/70071acee41c5d7bcc3bed636a6473e35dac9f6a", + "integrity": "sha512-PvkztbjfiFM7W8Zk0/rWYlMn26DiIakuhBQfxphi5les6J6eo9W7zZzLhbGpEp7ytB1+SaKev95ZFOxVhKx6cw==", "license": "MIT", "dependencies": { "@base-ui/react": "^1.5.0", diff --git a/package.json b/package.json index 76b321e..b0e4612 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@inrupt/solid-client-authn-browser": "^4.0.0", "@inrupt/solid-client-authn-node": "^3.1.0", "@mind-studio/core": "^0.8.0", - "@mind-studio/ui": "^0.4.0", + "@mind-studio/ui": "^0.7.0", "lucide-react": "^0.460.0", "next": "16.2.6", "react": "19.2.4", From 8626b1bb0dc8dc243253cd48b0e39b5a7cece9d6 Mon Sep 17 00:00:00 2001 From: Sven Reiser Date: Sun, 21 Jun 2026 16:14:31 +0200 Subject: [PATCH 2/3] fix(brand): load Fraunces so serif headings render under ui 0.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The app exposed no --font-fraunces, so ui 0.7.0's h1–h3 serif rule fell back to system serif. Load Fraunces via next/font and expose --font-fraunces on the document root to complete the chain. Refs #29 Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app/layout.tsx | 6 ++++-- src/lib/theme/emai.ts | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index e95710a..5003700 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,5 @@ import type { Metadata } from "next"; -import { Geist, Geist_Mono, Space_Grotesk } from "next/font/google"; +import { Fraunces, Geist, Geist_Mono, Space_Grotesk } from "next/font/google"; import { headers } from "next/headers"; import { Providers } from "@/components/Providers"; import { profile } from "@/lib/profile"; @@ -9,6 +9,8 @@ import "./globals.css"; const display = Space_Grotesk({ subsets: ["latin"], variable: "--font-display-var" }); const sans = Geist({ subsets: ["latin"], variable: "--font-sans-var" }); const mono = Geist_Mono({ subsets: ["latin"], variable: "--font-mono-var" }); +// Serif for ui 0.7.0's h1–h3 rule, which resolves to --font-fraunces. +const serif = Fraunces({ subsets: ["latin"], variable: "--font-fraunces", display: "swap" }); // Host-resolved per-project metadata: the document title/description reflect the // project of the subdomain being served (one image, many projects in subdomain @@ -26,7 +28,7 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac return ( diff --git a/src/lib/theme/emai.ts b/src/lib/theme/emai.ts index 6900cd7..2d1de8a 100644 --- a/src/lib/theme/emai.ts +++ b/src/lib/theme/emai.ts @@ -55,6 +55,9 @@ export const emai: Theme = parseTheme( radius: "0.5rem", font: { sans: "var(--font-sans-var), ui-sans-serif, system-ui, sans-serif", + // ui 0.7.0 maps h1–h3 → --mind-font-serif; keep the fleet Fraunces stack. + serif: + 'var(--font-fraunces), "Fraunces", ui-serif, Georgia, Cambria, "Times New Roman", serif', mono: "var(--font-mono-var), ui-monospace, SFMono-Regular, monospace", }, logo: { From 8483b966f8b39b5450d3d217576ed844fac65b74 Mon Sep 17 00:00:00 2001 From: Sven Reiser Date: Sun, 21 Jun 2026 17:39:18 +0200 Subject: [PATCH 3/3] feat: adopt brand logo lockup (ui#29 wave 2) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/components/Landing.tsx | 13 +++++-------- src/components/RouterShell.tsx | 6 ++---- src/components/Shell.tsx | 6 ++---- src/components/WorkspaceShell.tsx | 12 ++++-------- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/components/Landing.tsx b/src/components/Landing.tsx index 205ac13..5edc247 100644 --- a/src/components/Landing.tsx +++ b/src/components/Landing.tsx @@ -5,7 +5,7 @@ // a light-shaft hero, the login card always visible on the right. Logged-in // users never see this — Shell renders the dashboard for them. -import { Symbol } from "@mind-studio/ui"; +import { Logo } from "@mind-studio/ui"; import { CalendarDays, FileText, @@ -61,13 +61,10 @@ export function Landing({ onLoggedIn }: { onLoggedIn?: () => void }) { {/* public header — no nav (anonymous) */}
- - - {profile.appName} - {brand.title !== profile.appName && ( - · {brand.title} - )} - + + {brand.title !== profile.appName && ( + · {brand.title} + )}
{brand.title} diff --git a/src/components/RouterShell.tsx b/src/components/RouterShell.tsx index 562b902..96688f2 100644 --- a/src/components/RouterShell.tsx +++ b/src/components/RouterShell.tsx @@ -16,6 +16,7 @@ import { Button, Card, CardContent, + Logo, Spinner, Symbol, } from "@mind-studio/ui"; @@ -208,10 +209,7 @@ function ApexChrome({ displayName, children }: { displayName: string; children:
- - - {profile.appName} - +
diff --git a/src/components/Shell.tsx b/src/components/Shell.tsx index c093804..2dc9f20 100644 --- a/src/components/Shell.tsx +++ b/src/components/Shell.tsx @@ -12,6 +12,7 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, + Logo, Spinner, Symbol, } from "@mind-studio/ui"; @@ -267,10 +268,7 @@ export function Shell({ children }: { children: ReactNode }) {
- - - {profile.appName} - + {myProjects.length > 1 && ( diff --git a/src/components/WorkspaceShell.tsx b/src/components/WorkspaceShell.tsx index 018050c..e7d0fb2 100644 --- a/src/components/WorkspaceShell.tsx +++ b/src/components/WorkspaceShell.tsx @@ -9,7 +9,7 @@ // every path), so navigation is route-aware HERE: changes the URL, // RouterShell re-mounts us, and we pick the view from usePathname(). -import { Avatar, AvatarFallback, Button, Symbol } from "@mind-studio/ui"; +import { Avatar, AvatarFallback, Button, Logo } from "@mind-studio/ui"; import { CalendarDays, FileText, LayoutDashboard, LogOut, SquareKanban, Users } from "lucide-react"; import Link from "next/link"; import { usePathname } from "next/navigation"; @@ -126,13 +126,9 @@ export function WorkspaceShell({
- - - {profile.appName} - - {" "} - · {HUB_BRANDING.title} - + + + · {HUB_BRANDING.title}