diff --git a/.changeset/polish-account-settings-mobile.md b/.changeset/polish-account-settings-mobile.md
new file mode 100644
index 000000000..ea729ff92
--- /dev/null
+++ b/.changeset/polish-account-settings-mobile.md
@@ -0,0 +1,5 @@
+---
+default: patch
+---
+
+Polish the account panel and settings layout on mobile.
diff --git a/src/app/components/user-profile/UserHero.tsx b/src/app/components/user-profile/UserHero.tsx
index a39e6323f..a41b5332f 100644
--- a/src/app/components/user-profile/UserHero.tsx
+++ b/src/app/components/user-profile/UserHero.tsx
@@ -202,7 +202,7 @@ export function UserHero({
maxHeight: isFullStatus ? toRem(105) : toRem(48),
cursor: allowEditing || isExpandable ? 'pointer' : 'default',
display: 'flex',
- width: 'fit-content',
+ width: allowEditing ? '100%' : 'fit-content',
padding: `${toRem(8)} ${toRem(12)}`,
backgroundColor: statusSurfaceColor,
color: textColor,
@@ -218,7 +218,7 @@ export function UserHero({
{isFullStatus ? (
diff --git a/src/app/features/settings/SettingsRoute.tsx b/src/app/features/settings/SettingsRoute.tsx
index b23fa24c5..33044d833 100644
--- a/src/app/features/settings/SettingsRoute.tsx
+++ b/src/app/features/settings/SettingsRoute.tsx
@@ -102,15 +102,18 @@ export function SettingsRoute({ routeSection }: SettingsRouteProps) {
if (section === undefined) return;
if (screenSize === ScreenSize.Mobile) {
+ if (routeState?.backgroundLocation) {
+ const backTarget = getSettingsCloseTarget(routeState);
+ navigate(backTarget.to, { replace: true, state: backTarget.state });
+ return;
+ }
+
if (hasPreviousEntry) {
navigate(-1);
return;
}
- navigate(getSettingsPath(), {
- replace: true,
- state: routeState?.backgroundLocation ? routeState : undefined,
- });
+ navigate(getSettingsPath(), { replace: true });
return;
}
diff --git a/src/app/features/settings/SettingsSectionPage.tsx b/src/app/features/settings/SettingsSectionPage.tsx
index a19d102d4..5cf428742 100644
--- a/src/app/features/settings/SettingsSectionPage.tsx
+++ b/src/app/features/settings/SettingsSectionPage.tsx
@@ -3,7 +3,7 @@ import { Box, IconButton, Text } from 'folds';
import { Page, PageHeader } from '$components/page';
import { ScreenSize, useScreenSizeContext } from '$hooks/useScreenSize';
import { ArrowLeft, composerIcon, X } from '$components/icons/phosphor';
-import { settingsHeader } from './styles.css';
+import { settingsHeader, settingsSectionBody } from './styles.css';
type SettingsSectionPageProps = {
title: ReactNode;
@@ -49,7 +49,9 @@ export function SettingsSectionPage({
- {children}
+
+ {children}
+
);
}
diff --git a/src/app/features/settings/styles.css.ts b/src/app/features/settings/styles.css.ts
index 23067658a..0799779a6 100644
--- a/src/app/features/settings/styles.css.ts
+++ b/src/app/features/settings/styles.css.ts
@@ -1,11 +1,24 @@
-import { style } from '@vanilla-extract/css';
-import { config } from 'folds';
+import { globalStyle, style } from '@vanilla-extract/css';
+import { config, toRem } from 'folds';
import { messageJumpHighlight } from '$components/message/layout/layout.css';
export const SequenceCardStyle = style({
padding: config.space.S300,
});
+export const settingsSectionBody = style({
+ width: '100%',
+ maxWidth: toRem(800),
+ marginInline: 'auto',
+});
+
+globalStyle(`${settingsSectionBody} *`, {
+ scrollbarWidth: 'none',
+});
+globalStyle(`${settingsSectionBody} *::-webkit-scrollbar`, {
+ display: 'none',
+});
+
export const settingsHeader = style({
paddingLeft: config.space.S300,
paddingRight: config.space.S200,
diff --git a/src/app/pages/client/profile/Profile.tsx b/src/app/pages/client/profile/Profile.tsx
index 23801b499..2c40ac5ff 100644
--- a/src/app/pages/client/profile/Profile.tsx
+++ b/src/app/pages/client/profile/Profile.tsx
@@ -13,6 +13,7 @@ import {
} from 'folds';
import { GearSix, SquaresFour, menuIcon, sizedIcon } from '$components/icons/phosphor';
import { PageNav, PageNavHeader } from '$components/page';
+import { NavButton, NavItem, NavItemContent } from '$components/nav';
import { useEffect, useMemo, useState } from 'react';
import { ScreenSize, useScreenSizeContext } from '$hooks/useScreenSize';
import { useSetting } from '$state/hooks/settings';
@@ -224,18 +225,18 @@ export function ProfileMobile() {
const IconComponent = item.icon;
return (
-
+
+ openSettings(item.id)} aria-label={item.name}>
+
+
+ {menuIcon(IconComponent)}
+
+ {item.name}
+
+
+
+
+
);
})}