Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

Commit d071e9e

Browse files
committed
feat(admin): redesign sidebar chrome and tighten page header typography
- Sidebar header: brand (favicon + "Mx Space") left, avatar-only popover trigger right; theme + locale preferences moved inside the user popover and the persistent footer strip removed. Right-clicking the brand opens a product context menu (version + GitHub). - Shell header height: APP_SHELL_HEADER_HEIGHT_CLASS h-16 -> h-14 (and matching 4rem -> 3.5rem CSS value). - Page-header titles: unify h2 inside h-14 page headers to text-lg font-semibold across _shared/ContentListHeader and every feature route/detail pane. - Topics: remove the inline icon prompt button from TopicDetail header; add an upload affordance next to the icon URL field in TopicFormModal that calls uploadFile(file, 'icon').
1 parent 323b9a8 commit d071e9e

45 files changed

Lines changed: 203 additions & 130 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/admin/src/constants/layout.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export const APP_SHELL_HEADER_HEIGHT_CLASS = 'h-16'
2-
export const APP_SHELL_HEADER_HEIGHT_VALUE = '4rem'
1+
export const APP_SHELL_HEADER_HEIGHT_CLASS = 'h-14'
2+
export const APP_SHELL_HEADER_HEIGHT_VALUE = '3.5rem'

apps/admin/src/features/_shared/components/content-list-toolbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export function ContentListHeader(props: {
6363
{props.icon}
6464
</span>
6565
<div className="flex min-w-0 items-baseline gap-2">
66-
<h2 className="truncate text-sm font-medium text-neutral-950 dark:text-neutral-50">
66+
<h2 className="truncate text-lg font-semibold text-neutral-950 dark:text-neutral-50">
6767
{props.title}
6868
</h2>
6969
{props.count != null ? (

apps/admin/src/features/ai/components/TaskDetail.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export function TaskDetail(props: {
8282
/>
8383
<div className="min-w-0 flex-1">
8484
<div className="flex min-w-0 items-center gap-2">
85-
<h2 className="truncate text-sm font-medium text-neutral-950 dark:text-neutral-50">
85+
<h2 className="truncate text-lg font-semibold text-neutral-950 dark:text-neutral-50">
8686
{t(taskTypeLabelKeys[task.type])}
8787
</h2>
8888
<StatusBadge status={effectiveStatus}>

apps/admin/src/features/backup/components/BackupDetail.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function BackupDetail(props: {
4747
>
4848
<ArrowLeft aria-hidden="true" className="size-4" />
4949
</button>
50-
<h2 className="text-sm font-medium text-neutral-900 dark:text-neutral-100">
50+
<h2 className="text-lg font-semibold text-neutral-900 dark:text-neutral-100">
5151
{t('backup.detail.title')}
5252
</h2>
5353
</div>

apps/admin/src/features/categories/components/CategoriesRouteViewContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export function CategoriesRouteViewContent() {
111111
)}
112112
>
113113
<div className="min-w-0">
114-
<h2 className="inline-flex items-center gap-2 text-sm font-medium">
114+
<h2 className="inline-flex items-center gap-2 text-lg font-semibold">
115115
<FolderOpen aria-hidden="true" className="size-4" />
116116
{t('categories.list.title')}
117117
</h2>

apps/admin/src/features/categories/components/DetailHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export function DetailHeader(props: {
2424
>
2525
<ArrowLeft aria-hidden="true" className="size-4" />
2626
</button>
27-
<h2 className="truncate text-sm font-medium text-neutral-950 dark:text-neutral-50">
27+
<h2 className="truncate text-lg font-semibold text-neutral-950 dark:text-neutral-50">
2828
{props.title}
2929
</h2>
3030
</div>

apps/admin/src/features/comments/components/CommentDetail.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export function CommentDetail(props: {
138138
>
139139
<ChevronRight aria-hidden="true" className="size-4 rotate-180" />
140140
</Button>
141-
<h2 className="text-sm font-medium text-neutral-900 dark:text-neutral-100">
141+
<h2 className="text-lg font-semibold text-neutral-900 dark:text-neutral-100">
142142
{t('comments.detail.title')}
143143
</h2>
144144
</div>

apps/admin/src/features/cron/components/DefinitionDetail.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export function DefinitionDetail(props: {
6767
<ArrowLeft aria-hidden="true" className="size-4" />
6868
</button>
6969
<div className="min-w-0">
70-
<h2 className="truncate text-base font-semibold text-neutral-950 dark:text-neutral-50">
70+
<h2 className="truncate text-lg font-semibold text-neutral-950 dark:text-neutral-50">
7171
{label}
7272
</h2>
7373
<p className="mt-1 truncate text-xs text-neutral-500 dark:text-neutral-400">

apps/admin/src/features/cron/components/DefinitionsRouteViewContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export function DefinitionsRouteViewContent() {
9090
APP_SHELL_HEADER_HEIGHT_CLASS,
9191
)}
9292
>
93-
<h2 className="flex min-w-0 items-baseline gap-2 text-sm font-medium">
93+
<h2 className="flex min-w-0 items-baseline gap-2 text-lg font-semibold">
9494
<span className="truncate">{t('cron.definitions.title')}</span>
9595
<span className="text-xs font-normal tabular-nums text-neutral-400 dark:text-neutral-500">
9696
{definitions.length}

apps/admin/src/features/cron/components/HistoryRouteViewContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export function HistoryRouteViewContent() {
170170
APP_SHELL_HEADER_HEIGHT_CLASS,
171171
)}
172172
>
173-
<h2 className="flex min-w-0 items-baseline gap-2 text-sm font-medium">
173+
<h2 className="flex min-w-0 items-baseline gap-2 text-lg font-semibold">
174174
<span className="truncate">{t('cron.history.title')}</span>
175175
<span className="text-xs font-normal tabular-nums text-neutral-400 dark:text-neutral-500">
176176
{total}

0 commit comments

Comments
 (0)