Repository navigation
fix(native): match the web aurora, glass cards, ticker and remaining UI audit rows (batch 3) - #444
Merged
Merged
Conversation
…effects default UI audit batch 3 (K1, K2, K3, S-48), TS app as the reference: - Aurora wash ends at the web radius and the grain is fine per-pixel noise (from #440). - Card shadows are cut out under the card like a CSS box-shadow; Full effects cards use the same Core Animation layers with the glass-regular gradient on the CSS gradient line, and the dark Full-effects frame is --glass-border/0.08 as in the cascade. - Ticker starts active (it never fetched quotes before the scroll view reported it), natural tile widths, edge fade mask, liquid-glass box, hover pauses only the tape, and an empty provider id falls back to the symbol as in the model. - fullEffects reads the ADR-255 auto/on/off value; auto is on for the chosen Standard tier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…cus and report controls UI audit batch 3: S-06, S-07, S-08, S-65, S-66 and K4 system-colour leaks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…ialog height and sankey header UI audit batch 3: S-36, S-40, S-41, S-68, S-88, S-89 (tile order). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
UI audit batch 3: S-107 (Vision mark, product name, external-link icons). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…y inventory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
… compact amounts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…s and badges Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…ropdowns VisionMenu gains checkbox and radio items (Toggle) and VisionMenuLabel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…header Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
The hovered arc grows 4.5 % over 0.42 s out-expo and the centre swaps through a 0.15 s fade out then a 0.15 s fade and scale in; nothing moves under Reduce Motion. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
…ools Outline pill with elevation-2, monospaced footnote and hover/open colours; opaque card panel with border and elevation-4, underline tabs, ghost icon buttons, theme method colours. The Queries tab stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
… SVG The chart-wide tracker tested node rectangles first and lit a node's whole section from the band beside it. Each bar and band now tracks its own hover, bars drawn over bands, labels take no pointer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
Traffic lights at Electron's trafficLightPosition (20, 20), the 56 pt h-14 topbar with a ghost h-7 sidebar trigger on that centre line, the .app-topbar veil (gradient, border, highlight, shadow, glide fade), and no system scroll-edge band under the titlebar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B
EraPartner
marked this pull request as ready for review
November 14, 2026 12:08
This was referenced Nov 14, 2026
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.
Requested by EraPartner · project thread
Summary
Batch 3 of the 2026-11-14 Swift vs TypeScript UI audit, plus Tor's polish asks from the same day (chart hover motion, Sankey hover, API monitor, topbar). The TS app is the reference. Draft #440's aurora, card and ticker work is taken over here (adapted), so #440 is superseded once this merges.
EllipticalGradientending at 0.6 of a 3840 pt frame (twice the CSS120rem 60rem … 60%radius). The grain was 8/16/32-cell value noise, a blotchy texture, opaquefeTurbulence fractalNoise0.8 (from #440)box-shadowis (from #440). Both materials (glass-thin, glass-regular) are drawn as CA layers on the CSS gradient line (|w sin a| + |h cos a|). Dark Full effects frame is--glass-border/0.08, which wins the cascade over.premium-framevisiblestarted false and onlyonScrollVisibilityChangeset it, so the tape could stay inactive: no quote fetch, no motion. An emptyprice_provider_iddid not fall back to the symbol in the view (it does in the model).ticker-mask4 % edge fade;liquid-glassbox with elevation-2 shadows instead of a Card; hover pauses only the tape; placeholder shows only for all-hidden or offlinefullEffectsas a boolean; the backend stores"auto"(ADR-255), which read as offFullEffectsChoice(auto/on/off, old boolean read likesettingsStore.ts), resolved with the chosen tier; the switch writeson/off.blue; the report sheet used the system segmented picker and checkboxinfo;VisionSegmentedControlandvisionCheckbox. Badge tones checked againstbadge.tsx: they matchmd:hidden)usePageTitle); veil from 8 pt, title from 96 pt like AppLayoutPAGE_ICONSthrough the generated registry (VisionPageSymbol): Net worth, Forecast, Compare, Chart builder, Analysis, AI chat, Dossiers, portfolio import, tax printisFocused, which is true for every field in a focused panelVisionFocusRingModifieralready doesmax-h-[60vh])portfolio.assetClass.*labelslg:grid-cols-3compact cards, first-appearance order,performance.*labels, layout fromPerformanceBreakdown.tsxRadius.sm, 8 pt padding, pill tooltiprounded-control,py-1.5, nativetitletooltip, en dash for empty monthsSankeyTab.tsxAPP_NAME"Vision", label then external-link iconactiveorder); maturing colour was warningSavingsPagecard: 40 pt tinted tile, type badge + accent rate, balance and interest earned as a title-2 pair,FactRowlist, matured accent / maturing-soon primary border; holdings grouped in class order likebyAssetClass. S-94: the extra accrued stat is in the TS source tooNewsItem: count badge, whole row is the link withforeground/0.04hover, primary title and external-link glyph on hover, clock +formatDistanceToNowunits, outline ticker badges, compact empty statesformatAxisCompactformatCurrencyCompact(full amount up to 9 chars, otherwise locale compact) asMonthlyTrendsChartdoesMenu, one badge string per year, current won over filedVisionMenuwith the eyebrow label, year + lock/snowflake icon,YearStatusBadgetones and precedenceVisionMenupanels;VisionMenugains radio/checkbox items andVisionMenuLabelbodyMaxHeight(520))DonutChart: arc grows 4.5 % overdurations.slowout-expo, centre swaps via a 0.15 s fade out then 0.15 s fade/scale in; none under Reduce Motion. TS has no hover-intent timer; this is its whole "gradual" feelChartTooltipenter (opacity, y + 4) and exit (opacity, y + 2) overdurations.fastout-expoonMouseEnter/onMouseLeave), bars over bands, labels take no pointerregularMaterialcapsule and panel, system segmented tabs, system coloursInspectorToggleoutline pill (mono footnote, elevation-2, hover/open colours), opaque card panel with border and elevation-4, underline tabs, ghost icon buttons, theme method colours; Queries tab kepttrafficLightPosition(20, 20), the 56 pth-14bar with a ghosth-7trigger on that line,.app-topbarveil values,scrollEdgeEffectHiddenfor the top edgeChecked and left alone (code matches the TS source): S-16, S-37, S-50 (cause unknown, unverified), S-86, S-90, S-95, S-101, S-108.
Left open on purpose: S-25 (transactions table inner scroller). The Swift page's infinite loading and scroll restoration run on the page scroll; it needs a runtime check first.
PR #440: this branch takes #440's
AuroraCanvas.swiftandPortfolioTickerView.swiftand re-implements its card shadow fix in a reworkedVisionCardLayers. Everything else in #440 landed in #441/#442. #440 is superseded.Type of change
fix— bug fixChecklist
bun scripts/native-lint.ts:native-lint ok(string-literal-compare 702, baseline 716)Swift app (macOS)passed on 66e82e0docs/reference/native-parity/shell-and-settings.md(Full effectsautodefault; topbar and traffic-light position)Verification
Residual risk & follow-ups
saturate(150%)over the aurora is not reproduced.CATransaction.fullEffects: falsenow read it asauto(on with Standard), as the web store does.currencyCompactuses Foundation's compact notation; ICU output should matchIntl, not checked per locale.🤖 Generated with Claude Code
https://claude.ai/code/session_018QJtaMPi3Hb3LQWjLZBk1B