From 72bbac6f12f05299b8ef889910d5e92a0d152ff3 Mon Sep 17 00:00:00 2001 From: Exoridus Date: Sat, 27 Jun 2026 20:02:50 +0200 Subject: [PATCH] feat(site): companion 8-state callouts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reworks the guide Callout into the eight Pocket Relic Bot states from the companion design brief: info, hint, warning, pitfall, success, debug, invalid, broken. Each callout now pairs the painterly companion sprite (a trailing-edge badge with a state-coloured screen-glow) with a state-coloured glyph + label — glyph and label carry the meaning, so the callout still reads via shape and text, not colour alone. - 8 transparent companion sprites keyed + optimised to ~6 KB WebP each in site/public/brand/companion/. - Colour exclusivity per the brief: amber=warning, mint=success, gray=invalid, red=broken; info/hint/pitfall/debug share the companion cyan and are told apart by glyph. State colours are fixed, so they stay stable across the user-selectable accent themes. - Migrates the existing usages to the new states: common-mistake→pitfall, tip→hint, and the two browser callouts → info / warning by meaning. Verified all eight states render cleanly in light and dark (Playwright), with no sprite halo on either theme; astro check 0 errors. The right-rail "Need a hand?" helper card is a deliberate follow-up. --- site/public/brand/companion/broken.webp | Bin 0 -> 6220 bytes site/public/brand/companion/debug.webp | Bin 0 -> 5826 bytes site/public/brand/companion/hint.webp | Bin 0 -> 6874 bytes site/public/brand/companion/info.webp | Bin 0 -> 6414 bytes site/public/brand/companion/invalid.webp | Bin 0 -> 6416 bytes site/public/brand/companion/pitfall.webp | Bin 0 -> 6210 bytes site/public/brand/companion/success.webp | Bin 0 -> 6276 bytes site/public/brand/companion/warning.webp | Bin 0 -> 5814 bytes site/src/components/Callout.astro | 134 ++++++++++++------ site/src/content/guide/audio/audio-basics.mdx | 2 +- .../content/guide/getting-started/setup.mdx | 2 +- .../guide/getting-started/what-is-exojs.mdx | 2 +- .../getting-started/your-first-scene.mdx | 2 +- 13 files changed, 96 insertions(+), 46 deletions(-) create mode 100644 site/public/brand/companion/broken.webp create mode 100644 site/public/brand/companion/debug.webp create mode 100644 site/public/brand/companion/hint.webp create mode 100644 site/public/brand/companion/info.webp create mode 100644 site/public/brand/companion/invalid.webp create mode 100644 site/public/brand/companion/pitfall.webp create mode 100644 site/public/brand/companion/success.webp create mode 100644 site/public/brand/companion/warning.webp diff --git a/site/public/brand/companion/broken.webp b/site/public/brand/companion/broken.webp new file mode 100644 index 0000000000000000000000000000000000000000..5f540734ec7640b2962b59ae3247f740f8f1630b GIT binary patch literal 6220 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/companion/debug.webp b/site/public/brand/companion/debug.webp new file mode 100644 index 0000000000000000000000000000000000000000..fec154eb91b14ef408a6c296ce0c02862ba95b85 GIT binary patch literal 5826 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 Mpc?=H000000R2x?b^rhX literal 0 HcmV?d00001 diff --git a/site/public/brand/companion/hint.webp b/site/public/brand/companion/hint.webp new file mode 100644 index 0000000000000000000000000000000000000000..3f56f6801ff8537c92a6dbb0c0b7e2cffc48f25c GIT binary patch literal 6874 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/companion/invalid.webp b/site/public/brand/companion/invalid.webp new file mode 100644 index 0000000000000000000000000000000000000000..28937a9e3c74ddeb1107bde53170e4995728252f GIT binary patch literal 6416 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/companion/pitfall.webp b/site/public/brand/companion/pitfall.webp new file mode 100644 index 0000000000000000000000000000000000000000..1698d950a0078fd8f690c16c1b17978d9838b7aa GIT binary patch literal 6210 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/site/src/components/Callout.astro b/site/src/components/Callout.astro index 5ae173fb..e009af5d 100644 --- a/site/src/components/Callout.astro +++ b/site/src/components/Callout.astro @@ -1,58 +1,85 @@ --- /** - * Callout — a labelled aside for notes, tips, warnings, and platform hints. + * Callout — a labelled aside for the eight Guide Companion states. + * + * Each state pairs the painterly companion sprite (a trailing-edge badge) with a + * state-coloured glyph + label. The glyph and label carry the meaning, so the + * callout reads for colour-blind readers and in high-contrast modes; the sprite + * and its state-coloured screen-glow are enrichment. * * Usage in MDX: * import Callout from '../../../components/Callout.astro'; * - * - * Start each frame with `context.backend.clear()`. + * + * Pulling in several assets? `loadMany()` batches the requests for you. * * - * + * * A sprite's default anchor is the top-left corner, not its center. * * - * The type is conveyed by a text label and a glyph, never colour alone, so the - * meaning survives for colour-blind readers and in high-contrast modes. + * Colour exclusivity: amber=warning, mint=success, gray=invalid, red=broken; + * info/hint/pitfall/debug share the companion cyan and are told apart by glyph. */ -type CalloutType = 'note' | 'tip' | 'important' | 'common-mistake' | 'webgpu' | 'browser'; +type CalloutType = 'info' | 'hint' | 'warning' | 'pitfall' | 'success' | 'debug' | 'invalid' | 'broken'; interface Props { type?: CalloutType; - /** Optional heading. Falls back to the type's default label. */ + /** Optional heading. Falls back to the state's default label. */ title?: string; } const META: Record = { - 'note': { label: 'Note', glyph: 'i' }, - 'tip': { label: 'Tip', glyph: '+' }, - 'important': { label: 'Important', glyph: '!' }, - 'common-mistake': { label: 'Common mistake', glyph: '×' }, - 'webgpu': { label: 'WebGPU', glyph: '◆' }, - 'browser': { label: 'Browser behavior', glyph: '◐' }, + info: { label: 'Good to know', glyph: 'i' }, + hint: { label: 'Tip', glyph: '✦' }, + warning: { label: 'Heads up', glyph: '!' }, + pitfall: { label: 'Common pitfall', glyph: '?' }, + success: { label: "You're set", glyph: '✓' }, + debug: { label: 'Debug tip', glyph: '[]' }, + invalid: { label: 'Not supported', glyph: 'Ø' }, + broken: { label: 'Runtime error', glyph: '✕' }, }; -const { type = 'note', title } = Astro.props; +const { type = 'info', title } = Astro.props; const meta = META[type]; const heading = title ?? meta.label; +const base = import.meta.env.BASE_URL; --- diff --git a/site/src/content/guide/audio/audio-basics.mdx b/site/src/content/guide/audio/audio-basics.mdx index d07bd85a..1ea87828 100644 --- a/site/src/content/guide/audio/audio-basics.mdx +++ b/site/src/content/guide/audio/audio-basics.mdx @@ -60,7 +60,7 @@ if (this.app.audio.locked) { } ``` - + Browsers won't start audio until the user interacts with the page. Trigger the first sound or music from a click, tap, or key press — the embedded examples below ask for a click for exactly this reason. diff --git a/site/src/content/guide/getting-started/setup.mdx b/site/src/content/guide/getting-started/setup.mdx index 7cee9e7a..d7410927 100644 --- a/site/src/content/guide/getting-started/setup.mdx +++ b/site/src/content/guide/getting-started/setup.mdx @@ -75,7 +75,7 @@ const app = new Application({ canvas: { element: canvas } }); // ...or let the application create one and mount app.canvas yourself. ``` - + `app.canvas` is the active `HTMLCanvasElement` the runtime renders into. Append it wherever your layout needs it. diff --git a/site/src/content/guide/getting-started/what-is-exojs.mdx b/site/src/content/guide/getting-started/what-is-exojs.mdx index a0758281..46a75796 100644 --- a/site/src/content/guide/getting-started/what-is-exojs.mdx +++ b/site/src/content/guide/getting-started/what-is-exojs.mdx @@ -47,7 +47,7 @@ ExoJS ships as ESM with TypeScript declarations. JavaScript projects can use the ExoJS targets evergreen browsers: current Chrome, Firefox, Edge, and Safari. Some examples in this guide need browser features beyond rendering — audio playback, gamepad APIs, or multi-touch input. Capability badges above each example list what it expects; when a feature is missing, the embedded preview shows a clear overlay instead of failing silently. - + On startup the runtime auto-selects the strongest available backend — WebGPU when present, WebGL2 otherwise. You write the same scene code either way. diff --git a/site/src/content/guide/getting-started/your-first-scene.mdx b/site/src/content/guide/getting-started/your-first-scene.mdx index 702f2262..17becef6 100644 --- a/site/src/content/guide/getting-started/your-first-scene.mdx +++ b/site/src/content/guide/getting-started/your-first-scene.mdx @@ -59,7 +59,7 @@ A few things worth pointing out: - `loader.load(Texture, { bunny: 'image/bunny.png' })` declares one asset under the name `bunny`. Inside `init`, `loader.get(Texture, 'bunny')` returns the loaded texture instance. Names are stable; paths can change later without touching the rest of the code. - The default sprite anchor is `(0, 0)` — the top-left. With `setAnchor(0.5)`, the sprite's center becomes its pivot point, so `setPosition(width / 2, height / 2)` places the sprite at the canvas center rather than offset to one corner. - + A sprite's default anchor is its top-left corner. `setPosition(width / 2, height / 2)` then places the corner — not the center — at the middle of the canvas. Call `setAnchor(0.5)` first.