fix(ui): app icon visible on light wallpapers + country select overflow on mobile (#162)
## Why ### Problem Two iOS-specific UX issues reported by users: 1. **App icon invisible on light wallpapers** — the home screen shortcut icon was a black logo on a white background, making it nearly invisible against light iOS wallpapers (appeared as a faint frosted outline). 2. **Country dropdown overflows viewport** — the country picker in the Connect Account flow exceeded the mobile viewport height, making it impossible to scroll through the full list on small screens. ### Root Cause 1. All icon PNGs were exported with a white background and a black/grey logo. The PWA manifest `background_color` was also `#ffffff`. No dark background was baked in. 2. `SelectContent` used a fixed `max-h-96` (384px) regardless of available screen space. The `SelectPrimitive.Viewport` height was bound to `--radix-select-trigger-height` (the trigger element's height) instead of the actual available viewport space, preventing Radix's internal scroll buttons from working correctly on mobile. ## What ### Changes - Regenerated all icon PNGs (favicon, apple-touch-icon, web-app-manifest, whispermoney_icon_x*) — white logo on `#1b1b18` dark background via ImageMagick Screen composite - Updated `site.webmanifest` `background_color` from `#ffffff` → `#1b1b18` - Fixed `SelectContent` max height: `max-h-96` → `max-h-[min(24rem,var(--radix-select-content-available-height))]` - Fixed `SelectPrimitive.Viewport` height: `--radix-select-trigger-height` → `--radix-select-content-available-height` ## Verification ### Tests No automated tests cover static asset generation or CSS utility values — these are visual/rendering fixes. ### Manual - iOS: Remove and re-add the home screen shortcut from Safari to pick up the new `apple-touch-icon.png`. Icon should show a white bird logo on a dark background, visible on any wallpaper. - Mobile (iOS/Android): Open Connect Account dialog and verify the country dropdown fits within the viewport and is fully scrollable.
This commit is contained in:
parent
b1f01e4a8f
commit
1b7b147832
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.7 KiB |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M620.333 376.583H620.584" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M279.083 674.499H512C569.463 674.499 624.573 651.672 665.206 611.039C705.839 570.407 728.666 515.297 728.666 457.833V376.583C728.727 353.506 721.417 331.012 707.801 312.379C694.185 293.747 674.975 279.949 652.97 272.997C630.964 266.045 607.314 266.301 585.464 273.729C563.615 281.157 544.708 295.368 531.5 314.292L241.167 728.666" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M728.668 376.583L782.834 390.125L728.668 403.666" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M457.834 674.5V755.75" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M566.166 667.73V755.751" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M376.583 674.5C409.98 674.499 442.566 664.207 469.905 645.026C497.244 625.845 518.01 598.706 529.376 567.302C540.741 535.899 542.155 501.756 533.424 469.52C524.694 437.284 506.243 408.522 480.583 387.146" stroke="black" stroke-width="50" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
|
@ -55,7 +55,7 @@ function SelectContent({
|
|||
<SelectPrimitive.Content
|
||||
data-slot="select-content"
|
||||
className={cn(
|
||||
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",
|
||||
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-[min(24rem,var(--radix-select-content-available-height))] min-w-[8rem] overflow-hidden rounded-md border shadow-md",
|
||||
position === "popper" &&
|
||||
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
||||
className
|
||||
|
|
@ -68,7 +68,7 @@ function SelectContent({
|
|||
className={cn(
|
||||
"p-1",
|
||||
position === "popper" &&
|
||||
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
||||
"h-[var(--radix-select-content-available-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
<link rel="icon" type="image/png" href="/favicon/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon/favicon.svg" />
|
||||
<link rel="shortcut icon" href="/favicon/favicon.ico" />
|
||||
<link rel="apple-touch-icon" href="/favicon/apple-touch-icon.svg" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
|
||||
<meta name="apple-mobile-web-app-title" content="Whisper Money" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue