Update website design tokens fetched from single source of truth#56
Conversation
Review Summary by QodoImplement centralized design tokens and expand platform support
WalkthroughsDescription• Create centralized design token system sourced from single tokens.json • Add website theme support with light/dark mode CSS variables • Implement iOS build job in mobile release workflow • Add macOS bundle support to desktop release workflow Diagramflowchart LR
tokens["tokens.json<br/>(Single Source)"] -->|Generate| ts["tokens.ts<br/>(TypeScript)"]
tokens -->|Generate| css["css-vars.css<br/>(CSS Variables)"]
tokens -->|Generate| preset["tailwind.preset.cjs<br/>(Tailwind Config)"]
ts -->|applyTheme| website["Website Theme<br/>(Light/Dark)"]
css -->|Import| website
preset -->|Configure| website
website -->|data-theme attr| html["HTML Root<br/>(data-theme)"]
release["Release Workflows"] -->|Add iOS| ios["iOS Build Job"]
release -->|Add macOS| macos["macOS Bundle"]
File Changes1. website/app/theme/tokens.ts
|
Code Review by Qodo
|
| - name: Build iOS (signed) | ||
| if: env.IOS_SIGNING == 'true' | ||
| working-directory: mobile_client | ||
| run: | | ||
| flutter build ipa --release --no-tree-shake-icons \ | ||
| --export-options-plist=ios/ExportOptions.plist | ||
|
|
There was a problem hiding this comment.
2. Missing ios export plist 🐞 Bug ≡ Correctness
The new signed iOS build step runs flutter build ipa with --export-options-plist=ios/ExportOptions.plist, but that file is not present in the repo, so the signed iOS release path will fail.
Agent Prompt
## Issue description
The iOS signed build step references `ios/ExportOptions.plist`, but the file is not present, so `flutter build ipa` will fail when signing is enabled.
## Issue Context
This only affects the signed path (`flutter build ipa ... --export-options-plist=...`). The unsigned build path uses `flutter build ios --no-codesign` and does not need this file.
## Fix Focus Areas
- .github/workflows/release-mobile.yml[156-162]
- mobile_client/ios/ExportOptions.plist[1-1]
## What to change
- Either commit `mobile_client/ios/ExportOptions.plist` (with correct export method/team settings for your signing approach), OR
- Remove `--export-options-plist=ios/ExportOptions.plist` and use a different deterministic export mechanism that does not rely on a missing file.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| --color-overlay: rgba(2, 6, 23, 0.36); | ||
| --color-shadow-high: rgba(0, 0, 0, 0.1); | ||
| --color-shadow-low: rgba(0, 0, 0, 0.25); | ||
| --shadow-neumorphic: |
There was a problem hiding this comment.
1. Broken shadow token usage 🐞 Bug ≡ Correctness
--shadow-neumorphic was removed from desktop_app/app/theme/css-vars.css, but desktop CSS modules and Tailwind config still reference var(--shadow-neumorphic), so shadows will resolve to invalid and styling will regress.
Agent Prompt
## Issue description
`--shadow-neumorphic` was removed from the generated theme CSS, but the desktop app still references it for `box-shadow`, leading to invalid computed shadows.
## Issue Context
The new generated shadow helper is `.shadow-2layer` based on `--color-shadow-low/high`. Existing CSS and Tailwind config still use `var(--shadow-neumorphic)`.
## Fix Focus Areas
- desktop_app/app/theme/css-vars.css[31-36]
- desktop_app/app/dashboard/dashboard.module.css[35-45]
- desktop_app/app/home.module.css[28-43]
- desktop_app/tailwind.config.ts[51-56]
## What to change
- Replace `box-shadow: var(--shadow-neumorphic);` usages with the new 2-layer shadow (e.g. `0 1px 2px var(--color-shadow-low), 0 4px 8px var(--color-shadow-high)`) or apply the `.shadow-2layer` helper class where applicable.
- Update Tailwind `boxShadow.neumorphic` to either be removed or mapped to the new 2-layer shadow so `shadow-neumorphic` utilities don’t produce invalid CSS.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
No description provided.