Repository navigation
Give Studio the Firefly brand foundation - #14
Merged
Merged
Conversation
added 14 commits
October 7, 2026 21:50
… tabs on one line
…e scale Placeholders draw in --subtle at full opacity instead of Chromium's grey. Human task looks like every other step kind. Operations error notices use the danger tokens, the canvas dot grid uses --canvas-dot, and the disabled checked segment keeps 7:1 text. Off-scale weights (650, 550) move to the scale, and the weight and 12px rules now scan component styles. The lockup reserves its box, tokenColor() refuses an undefined token, and stale color names leave the comments.
Its label stayed on one line and was wider than the dialog's column, so it widened every section of the connection form's grid past the panel. macOS hid the overflow in the panel's padding; Linux font metrics pushed it past.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brand PR 1 of 3: the Studio foundation (contract C1) for the usable-product program.
studio/src/styles.css:rootnow holds one dark, role-named value set (color-scheme: dark): surfaces, text, accent, lines, status tones, focus and selection, canvas, charts, sticky notes, code, diffs and loading. Every component color is a token, including the 21 former literals; decorative icons use--mutedand placeholders use--subtle. Unit tests enforce the contrast floors and forbid color literals and token redefinitions outside:root, so a light theme can be added later as one more value set.@fontsource-variable/manrope5.3.0 (OFL-1.1) at/fonts/manrope/, with a preload; Studio no longer depends on system fonts, so Linux CI measures the same text widths that people see.lucide-static1.52.0 (ISC, with MIT for the Feather-derived icons) feedsstudio/scripts/build-icons.mjs, which generatesicon-data.tsfor 94 Weave names (51 used today and 43 reserved for the editor, AI and operations lanes).<weave-icon>draws them at a 1.5px stroke and flags any unknown name.scripts/brand/weave-lockup.mjscomposes the files from a local checkout of the private kit at run time; no kit source is in the repository. At the sidebar's 200px the Firefly part of the lockup measures 86.79px (FW 619.4 of 1427.4 units).lumiidentifiers, API paths, capabilities, roles and storage names are unchanged.NOTICEstates that the Firefly name, logo and icon are trademarks of Firefly Software Solutions Inc., used by the Firefly Software Foundation with permission and not licensed under the Apache License 2.0, and adds the Manrope and Lucide notices. The source inventory records every mark, font and Lucide-derived file as third-party.Not in this PR
docs/guides/weave-ai.md, docs and README prose, and the removal ofassets/weave-logo*.svg.Verification
What ran locally on macOS (arm64) with Node 26.3.0 (CI pins Node 24.15.0), at 7e1d572:
uv run --locked --no-editable --reinstall-package firefly-weave --all-extras --group docs python scripts/check.py: All requested checks passed. The stages were source inventory, docs links and SVGs, the strict MkDocs build, Ruff lint and format, mypy, the unit and contract tests (3,730 collected), the agentic and files workers, release preparation and installed artifacts. The run did not use--release, so it did not build container images.npm run check,npm run format:check,npm test(59 files, 668 tests) andnpm run buildall exit 0.real-platform.spec.ts, which need a real platform.Screenshot review
360x740: 133 screenshots checked; fixed in cb330ea: the inspector title "Wait for signal" no longer wraps (44-inspector-signal.png, 44-inspector-signal-2.png), the simulation tabs "Workflow input" and "Action results (1)" no longer wrap (50-simulation-setup.png, 50-simulation-setup-results.png), and decorative icons use --muted instead of --link (01-workflows-new-menu.png, 43-designer-step-picker.png, 73-connections-list.png, 80-runs-list.png, 81-runs-detail.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png); pre-existing (also at b4c0643): condition chips cut without an ellipsis, "North America" shows "North A" and "is in list" shows "is in lis" (39-condition-operators.png, 39-condition-operators-2.png), the field chip "approval › decision" shows "approval › decisio" (39-path-cards-2.png, 39-path-cards-3.png), the button label "Sign in with a different account" wraps to two lines (21-wizard-not-linked.png), the button label "Check configuration (no request is sent)" wraps to two lines (74-connections-detail.png, 74-connections-detail-2.png), the "Local draft" pill is cut at the row's right edge (03-workflows-local.png); left for the owner: a secondary action filled amber (51-simulation-wait.png, 52-simulation-signal.png, 66-openapi-listed.png, 67-openapi-created.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png, human-task-files-2.png). No other label is clipped or wrapped inside its control; content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot), local Home (one column, no mascot) and the collapsed-sidebar mark look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (not in view in 41-designer-branches.png at this size; checked at 768x1024 and wider).
600x500: 166 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link (01-workflows-new-menu.png, 73-connections-list.png, 80-runs-list.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png); pre-existing (also at b4c0643): "Assign role" and "Cancel" cut at the window's bottom edge, reachable by scrolling the sheet (33-settings-assign-role.png, 33-settings-assign-role-2.png), "Cancel" and "Start run" cut at the window's bottom edge (56-start-run-dialog.png), "Reload settings" continues below the dialog's scroll area (lumi-settings-2.png), the sign-in address row continues under the wizard's sticky footer (17-wizard-sign-in-code.png); left for the owner: a secondary action filled amber (51-simulation-wait.png, 52-simulation-signal.png, 67-openapi-created.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png, human-task-files-2.png). No label is clipped or wrapped inside its control ("North America" fits in 39-condition-operators.png); the viewport-edge cases are the ones listed above. Pairing (lockup, no mascot), local Home (one column, no mascot) and the collapsed-sidebar mark look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (not in view in 41-designer-branches.png at this size; checked at 768x1024 and wider).
768x1024: 105 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link (01-home-local.png template glyphs, 01-workflows-new-menu.png, 43-designer-step-picker.png, 73-connections-list.png, 80-runs-list.png, 81-runs-detail.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png); pre-existing (also at b4c0643): the condition chip "North America" shows "North Ameri" without an ellipsis (39-condition-operators.png, 39-condition-operators-2.png); left for the owner: a secondary action filled amber (51-simulation-wait.png, 52-simulation-signal.png, 66-openapi-listed.png, 67-openapi-created.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png). No other label is clipped or wrapped inside its control; content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot), local Home (one column, no mascot) and the collapsed-sidebar mark look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (41-designer-branches.png).
1280x720: 142 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link in the designer's Steps palette (64 files: 38-designer-lanes.png … 53-simulation-human-task.png) and in 01-home-local.png (template glyphs), 01-workflows-new-menu.png, 73-connections-list.png, 80-runs-list.png, 81-runs-detail.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png; pre-existing (also at b4c0643): the condition chip "North America" shows "North Ameri" without an ellipsis (39-condition-operators.png), the button label "Check configuration (no request is sent)" wraps to two lines in the detail panel (74-connections-detail.png, 74-connections-detail-2.png); left for the owner: a secondary action filled amber (51-simulation-wait.png, 52-simulation-signal.png, 66-openapi-listed.png, 67-openapi-created.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png, human-task-files-2.png). No other label is clipped or wrapped inside its control; content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot), local Home (one column, no mascot) and the collapsed-sidebar mark look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (41-designer-branches.png).
1440x900: 119 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link in the designer's Steps palette (49 files: 38-designer-lanes.png … 53-simulation-human-task.png) and in 01-home-local.png (template glyphs), 01-workflows-new-menu.png, 73-connections-list.png, 80-runs-list.png, 81-runs-detail.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png, human-task-files.png (row icon); pre-existing (also at b4c0643): the condition chip "North America" shows "North Ameri" without an ellipsis (39-condition-operators.png, 39-condition-operators-2.png); left for the owner: "List operations" and "Create 1 action" filled amber beside the dialog's primary "Publish action" (66-openapi-listed.png, 67-openapi-created.png) and the simulation panel's "Finish the wait at wait-1 (1 min)" / "Send customer-approved" filled amber beside the toolbar's "Save draft" (51-simulation-wait.png, 52-simulation-signal.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png). No other label is clipped or wrapped inside its control; content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot), local Home (one column, no mascot) and the expanded-sidebar lockup look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (41-designer-branches.png).
1920x1080: 102 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link in the designer's Steps palette (41 files: 38-designer-lanes.png … 53-simulation-human-task.png) and in 01-home-local.png (template glyphs), 01-workflows-new-menu.png, 73-connections-list.png, 80-runs-list.png, 81-runs-detail.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png; left for the owner: "List operations" and "Create 1 action" filled amber beside the primary "Publish action" (66-openapi-listed.png, 67-openapi-created.png) and the simulation panel's action filled amber (51-simulation-wait.png, 52-simulation-signal.png), the native "Choose File" button is Chromium's dark-scheme grey #6b6b6b (human-task-files.png). No label is clipped or wrapped inside its control ("North America" fits in 39-condition-operators.png); content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot), local Home (one column, no mascot) and the expanded-sidebar lockup look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (41-designer-branches.png).
1280x720-zoom200: 208 screenshots checked; fixed in cb330ea: decorative icons use --muted instead of --link (01-workflows-new-menu.png, 43-designer-step-picker.png, 73-connections-list.png, 80-runs-list.png, 82-tasks-list.png, 84-email-list.png, 86-workers-list.png); pre-existing (also at b4c0643): "Open sign-in page" sits half under the wizard's sticky footer (17-wizard-sign-in-code.png); left for the owner, pre-existing (also at b4c0643): the collapsed sidebar is scrolled so the mark is out of view (21 files: 17-wizard-sign-in-code.png, 18-wizard-workspace.png, 30-settings-local.png, 30-settings-local-2.png, 30-settings-local-3.png, 30-settings-local-4.png, 31-settings-platforms.png, 31-settings-platforms-2.png, 31-settings-platforms-3.png, 31-settings-platforms-4.png, 31-settings-platforms-5.png, 31-settings-platforms-6.png, 31-settings-platforms-7.png, 31-settings-platforms-8.png, 32-settings-people.png, 32-settings-people-2.png, 32-settings-people-3.png, 32-settings-people-4.png, 33-settings-assign-role.png, 33-settings-assign-role-2.png, 33-settings-assign-role-3.png); left for the owner: a secondary action filled amber (51-simulation-wait.png, 52-simulation-signal.png, 67-openapi-created.png). No label is clipped or wrapped inside its control ("North America" fits in 39-condition-operators.png); content that continues below the window in a scrolling pane is not counted. Pairing (lockup, no mascot) and local Home (one column, no mascot) look right. Fixed in 17ea1af: the empty-branch "+ Add a step" hint uses --muted instead of --link (41-designer-branches.png).
Method: agent review of every screenshot via contact sheets (scales: 360x740 1:1, 8 per sheet; 600x500 1:1, 6 per sheet; 768x1024 0.75, 4 per sheet; 1280x720 0.6, 6 per sheet; 1440x900 0.53, 4 per sheet; 1920x1080 0.4, 4 per sheet; 1280x720-zoom200 0.6 of its 2x pixels, 6 per sheet), with full-resolution checks of 87 screenshots and baseline comparisons against b4c0643 for every pre-existing finding; the contact sheets cover the run at cb330ea, and the re-run at 17ea1af (224 passed) was checked for the hint color in 41-designer-branches.png at every size (full resolution at 360x740, 600x500 and 1440x900, pixel measurement at the others); the owner's own review is pending.
Follow-ups for the owner and the lanes
--sunken, menus--raisedwith a 1px--border, a 1px border on modal panels, a 2px selected-row bar.lumicomponent kind shown in Operations.design-tokens.test.tsand can only shrink.CI
This PR is ready to merge only when CI is green on Linux ("Checks":
offlineandstudio, with Playwright and the visual tour) and in "Desktop installers" on macOS (arm64 and Intel), Windows and Linux, which run the Studio type check, unit tests and production build on each operating system. The owner's own review of the screenshots is still pending.