From 45d3f1ae11af97063f1c508f3ff02854dcff9222 Mon Sep 17 00:00:00 2001 From: cynarAI <155274210+cynarAI@users.noreply.github.com> Date: Fri, 9 Oct 2026 13:33:44 +0200 Subject: [PATCH] Equal message sizes and one evOo logo on the way in (#183) * Read agent replies at the size of the user's own messages Chat markdown set its own 17px reading size scaled for phones, so agent replies rendered at about 19px while the user's bubbles on the same phone read at 16px. The markdown now takes size and leading from the bubble around it. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Tgvrj34NMnaqvtgvruYQZZ * Show the same evOo logo on the welcome and sign-in screens The welcome screen showed the eyes-only mascot over an "EvOo" title, while sign-in and sign-up showed the teal face (the favicon and app icon) through a CSS override of the old two-pill markup. Both screens now render the teal logo directly, the title reads "evOo", and the CSS override is gone. The welcome lines balance so no word sits alone. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Tgvrj34NMnaqvtgvruYQZZ * Run the autopilot auto-merge job on Linux runners again The macOS runners that joined the evoo-ci pool have no gh on the runner's PATH, so the job died with "gh: command not found" whenever one of them picked it up. The job takes seconds, so it gains nothing from the extra runners. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Tgvrj34NMnaqvtgvruYQZZ --------- Co-authored-by: Claude --- .github/workflows/autopilot-auto-merge.yml | 2 +- apps/web/e2e/mobile-font-size.spec.ts | 3 +++ apps/web/e2e/welcome.spec.ts | 16 ++++++++++++++++ apps/web/public/evoo-brand.css | 21 --------------------- apps/web/src/pages/Auth.tsx | 5 +---- apps/web/src/pages/Welcome.tsx | 9 ++++----- apps/web/src/styles.css | 6 +++--- 7 files changed, 28 insertions(+), 34 deletions(-) create mode 100644 apps/web/e2e/welcome.spec.ts diff --git a/.github/workflows/autopilot-auto-merge.yml b/.github/workflows/autopilot-auto-merge.yml index 938b7da..f579353 100644 --- a/.github/workflows/autopilot-auto-merge.yml +++ b/.github/workflows/autopilot-auto-merge.yml @@ -21,7 +21,7 @@ concurrency: jobs: auto-merge: name: Autopilot auto-merge - runs-on: [self-hosted, evoo-ci] + runs-on: [self-hosted, evoo-ci, Linux] steps: - name: Resolve pull request id: pr diff --git a/apps/web/e2e/mobile-font-size.spec.ts b/apps/web/e2e/mobile-font-size.spec.ts index 759b6af..f2ce9a5 100644 --- a/apps/web/e2e/mobile-font-size.spec.ts +++ b/apps/web/e2e/mobile-font-size.spec.ts @@ -28,6 +28,9 @@ test("phone widths read text at 16px and up while desktop keeps its sizes", asyn await page.setViewportSize({ width: 390, height: 844 }); await expect.poll(() => fontSize(smallText)).toBeCloseTo(16, 1); expect(await fontSize(composer)).toBeGreaterThanOrEqual(16); + const userText = page.getByTestId("message-user-bubble").last(); + const replyText = reply.locator(".rk-chat-markdown p").first(); + expect(await fontSize(replyText)).toBe(await fontSize(userText)); await page.emulateMedia({ colorScheme: "dark" }); await expect(page.locator("html")).toHaveAttribute("data-theme", "dark"); diff --git a/apps/web/e2e/welcome.spec.ts b/apps/web/e2e/welcome.spec.ts new file mode 100644 index 0000000..69e1a39 --- /dev/null +++ b/apps/web/e2e/welcome.spec.ts @@ -0,0 +1,16 @@ +import { expect, test } from "@playwright/test"; +import { captureScreenshot } from "./helpers"; + +test("the welcome and sign-in screens carry the same evOo logo", async ({ page }, testInfo) => { + await page.setViewportSize({ width: 390, height: 844 }); + for (const scheme of ["dark", "light"] as const) { + await page.emulateMedia({ colorScheme: scheme }); + await page.goto("/", { waitUntil: "domcontentloaded" }); + await expect(page.getByText("evOo", { exact: true })).toBeVisible(); + await expect(page.locator('img[src="/evoo-logo.svg"]')).toBeVisible(); + await captureScreenshot(page, testInfo, `phone-welcome-${scheme}`); + await page.goto("/sign-in", { waitUntil: "domcontentloaded" }); + await expect(page.locator('img[src="/evoo-logo.svg"]')).toBeVisible(); + await captureScreenshot(page, testInfo, `phone-sign-in-${scheme}`); + } +}); diff --git a/apps/web/public/evoo-brand.css b/apps/web/public/evoo-brand.css index 082774f..a10e706 100644 --- a/apps/web/public/evoo-brand.css +++ b/apps/web/public/evoo-brand.css @@ -1,24 +1,3 @@ -/* EvOo-Branding: ersetzt das Rakazo-Logo (runder Kreis mit zwei gleichen Pillen-Augen) - ueberall durch das Oo-Logo - Welcome, Anmelden, Registrieren und jede weitere Stelle, - an der Rakazo dieses Markup rendert: -
- x2 -
- Rein per CSS (:has), damit es Bundle-Updates mit neuen Datei-Hashes uebersteht. */ -div.rounded-full.items-center.justify-center:has( - > span.rounded-full:first-child:nth-last-child(2) -):has(> span.rounded-full:last-child:nth-child(2)) { - background: url("/evoo-logo.svg") center / contain no-repeat; - border-radius: 0; - box-shadow: none; -} -div.rounded-full.items-center.justify-center:has( - > span.rounded-full:first-child:nth-last-child(2) - ):has(> span.rounded-full:last-child:nth-child(2)) - > span { - visibility: hidden; -} - /* Display-Font fuer Headlines: Bagel Fat One (SIL OFL 1.1, selbst gehostet, Latin-Subset, 23 KB). Ultrafett und teigig-rund - die O sind pralle Ringe wie die Oo-Augen. Plakat-Charakter, setzt sich klar von der UI-Schrift (Geist/System) ab. EIN Schnitt (400): nie fett synthetisieren, nur fuer Headlines. */ diff --git a/apps/web/src/pages/Auth.tsx b/apps/web/src/pages/Auth.tsx index ac75f13..f885bec 100644 --- a/apps/web/src/pages/Auth.tsx +++ b/apps/web/src/pages/Auth.tsx @@ -337,10 +337,7 @@ function AuthFrame({ return (
-
- - -
+

{title}

diff --git a/apps/web/src/pages/Welcome.tsx b/apps/web/src/pages/Welcome.tsx index 4815276..ed6f141 100644 --- a/apps/web/src/pages/Welcome.tsx +++ b/apps/web/src/pages/Welcome.tsx @@ -1,5 +1,4 @@ import { Trans } from "@lingui/react/macro"; -import { EvooMascot } from "@rakazo/ui-web"; import { useNavigate } from "react-router-dom"; import { WindowChrome } from "./WindowChrome"; @@ -12,16 +11,16 @@ export function WelcomePage() {
- +
- EvOo + evOo
-

+

Your specialists. One calm place to talk.

-

+

Simple to start. Expert when you need it.

diff --git a/apps/web/src/styles.css b/apps/web/src/styles.css index edf4909..002ffa3 100644 --- a/apps/web/src/styles.css +++ b/apps/web/src/styles.css @@ -96,10 +96,10 @@ body, } /* Gemini-Grade Accessible Typography (Apple-like with Inter Variable). - Heading, code and quote colors come from the shared @rakazo/chat-ui markdown styles. */ + Heading, code and quote colors come from the shared @rakazo/chat-ui markdown styles. + Size and leading come from the surrounding bubble, so a reply reads at the size of the + message it answers. */ .rk-chat-markdown { - font-size: calc(var(--font-size-reading) * var(--font-scale)); - line-height: var(--line-height-reading); color: var(--foreground); letter-spacing: -0.011em; font-weight: 400;