feat(fortal): align visuals with Radix Themes 3.3.0 - #80
Conversation
dd2b05e to
f562077
Compare
Preserve the origin/main component contracts while adding the canonical Fortal theme, visual recipes, effect rendering, and an explicit parity/deferred-capability manifest. Render the generated Fortal wrappers from the Mix prerequisite and keep functional component expansions out of this visual-only layer.
f562077 to
460d41d
Compare
…into feat/fortal-polish
Rename fortal*Styler helpers to fortal*Style so @MixWidget infers Fortal* names from the Style suffix, and surface every recipe parameter (highContrast, fallbackLength, etc.) on the generated widgets.
Final coordination decision — no replay work remainsPR #80 is the only canonical Fortal implementation. It targets The valid follow-up work has already been absorbed:
PRs #84, #92, #93, and #94 are closed without merge. The obsolete Instructions for any agent returning to an old workspace
Naked UI #82 has also merged and its published Naked UI issue #81 is closed as completed. The combined canonical head passed Issues #89, #90, and #91 remain open only to track delivery through #80 and |
|
LGTM |
Description
This PR aligns Fortal recipes, tokens, states, scaling, and advanced box painting with the pinned Radix Themes 3.3.0 reference while preserving the established
origin/mainRemix component contracts. It also introduces the canonicalFortalScopetheme surface and keeps generated Fortal wrappers as style-free preset shells.Canonical status
This PR contains and supersedes #84 and targets
maindirectly. PR #84 must not merge independently because its earlier generated-wrapper surface predates the final generator/API decision recorded here.The canonical Fortal contract is:
@MixWidget(target: RemixX.new)annotations;fortalXStylerecipe names;variantparameter for dynamic selection;highContrastwhere supported and AvatarfallbackLength;factoryParameters,widgetParameters,targetParameters, or #998/#999 variant-registration machinery.Published prerequisites remain
mix 2.2.0-beta.1,mix_annotations 2.2.0-beta.1,mix_generator 2.2.0-beta.2, andnaked_ui 1.0.0-beta.8.Correctness and cleanup wrap-up
FortalSpinnerto the eight-leaf fading painter while preserving the legacy arc for plainRemixSpinner. Fortal Button and IconButton loading indicators now use the rounded leaf treatment; this is an intentional visual change.highContrastthrough the Select item recipe.Verification gates
Compositional Menu/Select APIs, range Slider, indeterminate Progress, wrapping Tabs, arbitrary button content, interactive Card, tooltip arrow painting, and broader Chromium fixture generation remain deferred. The dashboard example remains split into #95.
Related Issues
Stacked follow-up
#95 contains only the workspace dashboard example plus root workspace registration. It targets
feat/fortal-polish, must merge after this PR, and should then be retargeted tomain.Visual evidence
Validation
fvm dart run melos run generate:check— 23 committed artifacts reproduced byte-for-byte.cd packages/remix && fvm flutter test— all 2,109 tests passed.fvm dart run melos run ci— all five gates passed: hosted Mix consumer resolution, clean generation, 82 analyzable documentation examples plus 7 intentional skips, parity for 20 mapped families plus 3 extensions, and 2,109 Flutter tests.highContrastparameter and a stale evidence citation; docs validation rejected a Remix API snippet with its import removed. All mutations were restored.fvm flutter analyze— no issues.fvm dart format --output=none --set-exit-if-changed <189 changed Dart files>— no changes.git diff --check— passed.Checklist
Breaking Change
Does this PR require users of the package to manually update their code?