Skip to content

Commit 7ef98fd

Browse files
authored
fix: improve footer responsiveness on mobile screens (#1419)
- Hide TOC breadcrumbs, stats, save time, and separator dots on small screens - Compact cursor position to `line:col` format on mobile - Hide selection badge on mobile - Narrow document switcher max-width on mobile - Add `shrink-0`/`ml-auto` to prevent layout overflow on narrow viewports - Dark/light mode toggle remains visible at all breakpoints
1 parent bc7c3d5 commit 7ef98fd

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

apps/web/src/components/editor/Footer.vue

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,11 @@ const stats = computed(() => [
294294

295295
<template>
296296
<footer
297-
class="flex select-none items-center px-3 py-1 text-xs text-muted-foreground"
297+
class="flex select-none items-center overflow-hidden px-3 py-1 text-xs text-muted-foreground"
298298
>
299299
<TooltipProvider :delay-duration="300">
300300
<!-- 左侧:光标位置 & 选区 -->
301-
<div class="flex items-center gap-3">
301+
<div class="flex shrink-0 items-center gap-2 sm:gap-3">
302302
<!-- Go-to-Line 内联输入 -->
303303
<span v-if="isGoToLineActive" class="flex items-center gap-1">
304304
<Keyboard class="size-3 opacity-60" />
@@ -318,7 +318,8 @@ const stats = computed(() => [
318318
<TooltipTrigger as-child>
319319
<span class="flex cursor-pointer items-center gap-1 tabular-nums transition-colors hover:text-foreground" @click="openGoToLine">
320320
<Keyboard class="size-3 opacity-60" />
321-
行 {{ cursorLine }},列 {{ cursorCol }}
321+
<span class="hidden sm:inline">行 {{ cursorLine }},列 {{ cursorCol }}</span>
322+
<span class="sm:hidden">{{ cursorLine }}:{{ cursorCol }}</span>
322323
</span>
323324
</TooltipTrigger>
324325
<TooltipContent side="top" :side-offset="6" class="text-xs text-muted-foreground">
@@ -328,7 +329,7 @@ const stats = computed(() => [
328329

329330
<span
330331
v-if="selectionLength > 0"
331-
class="flex items-center gap-1 rounded bg-primary/10 px-1.5 py-0.5 text-primary tabular-nums"
332+
class="hidden items-center gap-1 rounded bg-primary/10 px-1.5 py-0.5 text-primary tabular-nums sm:flex"
332333
>
333334
已选 {{ selectionLength }} 字符
334335
</span>
@@ -340,7 +341,7 @@ const stats = computed(() => [
340341
<Tooltip>
341342
<TooltipTrigger as-child>
342343
<button
343-
class="ml-2 flex max-w-36 cursor-pointer items-center gap-1 rounded px-1.5 py-0.5 transition-colors hover:bg-accent hover:text-foreground"
344+
class="ml-1.5 flex max-w-24 shrink-0 cursor-pointer items-center gap-1 rounded px-1.5 py-0.5 transition-colors hover:bg-accent hover:text-foreground sm:ml-2 sm:max-w-36"
344345
@click="openSwitcher"
345346
>
346347
<FileText class="size-3 shrink-0 opacity-60" />
@@ -385,8 +386,8 @@ const stats = computed(() => [
385386
</PopoverContent>
386387
</Popover>
387388

388-
<!-- 中间:TOC 面包屑 -->
389-
<div class="mx-3 flex min-w-0 flex-1 items-center justify-center">
389+
<!-- 中间:TOC 面包屑(小屏隐藏) -->
390+
<div class="mx-3 hidden min-w-0 flex-1 items-center justify-center sm:flex">
390391
<div v-if="breadcrumbs.length" class="flex min-w-0 items-center gap-0.5 truncate">
391392
<template v-for="(crumb, idx) in breadcrumbs" :key="crumb.line">
392393
<ChevronRight v-if="idx > 0" class="size-3 shrink-0 opacity-40" />
@@ -408,11 +409,11 @@ const stats = computed(() => [
408409
</div>
409410

410411
<!-- 右侧:统计信息 -->
411-
<div class="flex items-center gap-3">
412-
<!-- 保存状态 -->
412+
<div class="ml-auto flex shrink-0 items-center gap-2 sm:gap-3">
413+
<!-- 保存状态(小屏隐藏) -->
413414
<Tooltip v-if="displaySavedTime">
414415
<TooltipTrigger as-child>
415-
<span class="flex cursor-default items-center gap-1 opacity-70 transition-opacity hover:opacity-100">
416+
<span class="hidden cursor-default items-center gap-1 opacity-70 transition-opacity hover:opacity-100 sm:flex">
416417
<FileText class="size-3" />
417418
{{ displaySavedTime }}
418419
</span>
@@ -422,11 +423,12 @@ const stats = computed(() => [
422423
</TooltipContent>
423424
</Tooltip>
424425

425-
<span class="text-border">·</span>
426+
<span class="hidden text-border sm:block">·</span>
426427

428+
<!-- 统计项(小屏隐藏) -->
427429
<Tooltip v-for="stat in stats" :key="stat.tooltip">
428430
<TooltipTrigger as-child>
429-
<span class="flex cursor-default items-center gap-1 tabular-nums">
431+
<span class="hidden cursor-default items-center gap-1 tabular-nums sm:flex">
430432
<component :is="stat.icon" class="size-3 opacity-60" />
431433
{{ stat.value }}
432434
</span>
@@ -436,7 +438,7 @@ const stats = computed(() => [
436438
</TooltipContent>
437439
</Tooltip>
438440

439-
<span class="text-border">·</span>
441+
<span class="hidden text-border sm:block">·</span>
440442

441443
<!-- 深浅色切换 -->
442444
<Tooltip>

0 commit comments

Comments
 (0)