diff --git a/docs/images/settings/appearance-density.png b/docs/images/settings/appearance-density.png new file mode 100644 index 00000000..6547a615 Binary files /dev/null and b/docs/images/settings/appearance-density.png differ diff --git a/docs/reference/settings.mdx b/docs/reference/settings.mdx index 828d7c7f..ae5c5abe 100644 --- a/docs/reference/settings.mdx +++ b/docs/reference/settings.mdx @@ -13,7 +13,7 @@ Open the Settings Hub by clicking the **Profile** icon in the top bar and select | Group | What it covers | |-------|----------------| -| **Identity** | Account, License, Users, SSO, API Tokens | +| **Identity** | Account, Appearance, License, Users, SSO, API Tokens | | **System** (node-scoped) | System Limits, Registries, Nodes | | **Alerts** | Notifications, Routing, Webhooks | | **Advanced** | Labels, Security, Developer, App Store, Support, About | @@ -54,6 +54,25 @@ Click **Update Password** to apply. The change takes effect immediately; existin --- +## Appearance + +**Scope:** Per-device (saved to this browser only) + +Control how much information Sencho packs on screen. Each browser you sign in from remembers its own choice, so a compact laptop setup does not force the same rhythm on a larger desktop. + + + Appearance settings showing the Density selector + + +| Density | When to pick it | +|---------|-----------------| +| **Comfortable** | Default spacing. Roomier rows and tiles for review and orientation. | +| **Compact** | Tighter rows and tiles. Fits more stacks, tasks, and audit entries on screen at once. | + +Density affects the dashboard stack table, the resource gauge strip, the Settings Hub sidebar, the Schedules and Audit Log tables, and every other data table in Sencho. Typography, color, and layout structure stay the same; only vertical padding compresses. + +--- + ## License **Scope:** Global diff --git a/frontend/src/components/AuditLogView.tsx b/frontend/src/components/AuditLogView.tsx index 4bc1ca28..2a1419f3 100644 --- a/frontend/src/components/AuditLogView.tsx +++ b/frontend/src/components/AuditLogView.tsx @@ -565,7 +565,7 @@ function StreamRow({ entry, now }: StreamRowProps) { ''; return ( -
+
{formatRelative(entry.timestamp, now)}
diff --git a/frontend/src/components/SettingsModal.tsx b/frontend/src/components/SettingsModal.tsx index 61a2ad38..c9bd5dcc 100644 --- a/frontend/src/components/SettingsModal.tsx +++ b/frontend/src/components/SettingsModal.tsx @@ -31,6 +31,7 @@ import { ApiTokensSection } from './ApiTokensSection'; import { RegistriesSection } from './RegistriesSection'; import { AccountSection, + AppearanceSection, LicenseSection, UsersSection, SystemSection, @@ -298,6 +299,7 @@ export function SettingsModal({ isOpen, onClose, initialSection }: SettingsModal isSaving={isSavingPassword} /> ); + case 'appearance': return ; case 'license': return ; case 'users': return ; case 'sso': return ; @@ -394,7 +396,7 @@ export function SettingsModal({ isOpen, onClose, initialSection }: SettingsModal key={item.id} onClick={() => switchSection(item.id)} className={cn( - 'relative flex items-center gap-2 rounded-sm px-2 py-1.5 text-left transition-colors', + 'relative flex items-center gap-2 rounded-sm px-2 py-[var(--density-cell-y)] text-left transition-colors', isActive ? 'bg-gradient-to-r from-brand/10 to-transparent text-stat-value' : 'text-stat-subtitle hover:bg-accent/40 hover:text-stat-value', diff --git a/frontend/src/components/dashboard/ResourceGauges.tsx b/frontend/src/components/dashboard/ResourceGauges.tsx index ce54ea2b..f51f4939 100644 --- a/frontend/src/components/dashboard/ResourceGauges.tsx +++ b/frontend/src/components/dashboard/ResourceGauges.tsx @@ -71,7 +71,7 @@ export function ResourceGauges({ systemStats, cpuHistory, netHistory, historyEnd return (
{/* CPU hero */} -
+
CPU{systemStats ? ` ยท ${systemStats.cpu.cores} cores` : ''}
@@ -95,7 +95,7 @@ export function ResourceGauges({ systemStats, cpuHistory, netHistory, historyEnd
{/* Memory */} -
+
MEMORY
@@ -109,7 +109,7 @@ export function ResourceGauges({ systemStats, cpuHistory, netHistory, historyEnd
{/* Disk */} -
+
DISK
@@ -123,7 +123,7 @@ export function ResourceGauges({ systemStats, cpuHistory, netHistory, historyEnd
{/* Network */} -
+
NETWORK
diff --git a/frontend/src/components/dashboard/StackHealthTable.tsx b/frontend/src/components/dashboard/StackHealthTable.tsx index a80fbeaa..a3628742 100644 --- a/frontend/src/components/dashboard/StackHealthTable.tsx +++ b/frontend/src/components/dashboard/StackHealthTable.tsx @@ -184,7 +184,7 @@ export function StackHealthTable({
) : null}
-
+
STACK HOST @@ -207,7 +207,7 @@ export function StackHealthTable({ onNavigateToStack(row.file); } }} - className={`grid ${GRID_TEMPLATE} cursor-pointer items-center gap-4 px-5 py-3 transition-colors hover:bg-accent/5 ${rowTint[row.state]}`} + className={`grid ${GRID_TEMPLATE} cursor-pointer items-center gap-4 px-[var(--density-row-x)] py-[var(--density-row-y)] transition-colors hover:bg-accent/5 ${rowTint[row.state]}`} >