Skip to content

feat(ui): give the card sheets the header of the design system - #768

Merged
farfromrefug merged 4 commits into
feat/cardwallet-buttonsfrom
feat/cardwallet-sheets
Oct 29, 2026
Merged

farfromrefug merged 4 commits into
feat/cardwallet-buttonsfrom
feat/cardwallet-sheets

Conversation

@farfromrefug

@farfromrefug farfromrefug commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on the buttons PR (#767).

Summary

  • New SheetHeader: iOS glass Cancel pill, centered title, prominent action (45% when disabled, on-accent text); Android close icon, title, text action (Components > Sheets anatomy). No platform if: button props are picked in the script, the title is styled by css.
  • Used by the create card, extra field and card edit sheets. Create card and extra field keep stacked outlined fields (iOS capsule, Android notched outline from feat(ui): style outlined text fields after the design system #766); the color of a new card is a row of its own (label left, swatch right) on both platforms.

Not done here (needs ui-bottomsheet): the transparent sheet appearance, the hairline under the header on scroll, the 32% dim, detents.

Testing

  • Run on the iOS simulator (iPhone 17, iOS 27) and the Android emulator: create card sheet. svelte-check clean.
  • A visual check of the extra field and edit sheets is still required.

🤖 Generated with Claude Code

A shared sheet header: iOS has a glass Cancel pill, the centered title and a prominent
action; Android a close icon, the title and a text action. The create card, extra field and
card edit sheets use it, so their add button leaves the bottom of the sheet, and the color
of a new card moves to its own row.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

<!-- iOS: a glass Cancel pill, the title centered and a prominent Done. Android: a close icon, the title and a Save text button -->
<gridlayout columns="auto,*,auto" padding="12 16 8 16" {...$$restProps}>
{#if __IOS__}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the if here? cant we do it with styling? should be a rule to prevent if IOS/ANDROID in templates as much as possible

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 062bce3: no if, the button props are picked in the script (iOS: glass Cancel + contained, Android: close icon + text), the title is styled by css (.sheetHeaderTitle). The rule is in the working agreement (PR 765).

<uibutton colSpan={2} horizontalAlignment="right" isEnabled={name?.length > 0} row={5} text={lc('add')} variant={__IOS__ ? 'prominentGlass' : 'contained'} on:tap={add} />
<gesturerootview bind:this={rootView} rows="auto,auto">
<SheetHeader doneEnabled={name?.length > 0} doneText={lc('add')} onCancel={close} onDone={add} title={lc('create')} />
<gridlayout columns="*,auto" padding="0 16 16 16" row={1} rows="auto,auto,auto,auto,auto,auto">

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this does not follow the ui specs. each item should be wrapped in a ListItem as shown in screenshot

Image

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 062bce3: the create card and extra field sheets are a grouped form, each row a ListItemAutoSize (label left, value right), on the grouped page color like the edit sheet.

farfromrefug and others added 3 commits October 29, 2026 10:25
…orm ifs

The sheet header shares its markup between platforms (buttons props picked in the script,
title styled by css). The create card and extra field sheets are a grouped form of rows
(label left, value right), each a ListItemAutoSize, like the edit sheet of the design.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… disabled add readable

The create card and extra field sheets keep the header of the design system and use the
outlined fields again, the color of a new card is a row of its own on both platforms. The
primary action is 45% when disabled and keeps its on-accent text color, so it is no longer
red over red on iOS.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The outlined fields take the accent while they have the focus: a css pseudo class set from
the focus and blur events on iOS, the stroke colors of the text field on Android. The sheets
with fields resize with the keyboard on Android, so the focused field stays visible. The
color row has the height of a field.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@farfromrefug
farfromrefug marked this pull request as ready for review October 29, 2026 10:07
@farfromrefug
farfromrefug merged commit d272293 into feat/cardwallet-buttons Oct 29, 2026
1 check failed
@farfromrefug
farfromrefug deleted the feat/cardwallet-sheets branch October 29, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant