fix(web): 窄屏底部导航栏错位到顶部 — 顶栏 backdrop-filter 创建了包含块

.sb-nav 用 position:fixed;bottom:0 想贴视口底部,但父元素 .sidebar 带
backdrop-filter。backdrop-filter 与 transform/filter 同理,会为后代的
position:fixed 创建【包含块】—— 于是 bottom:0 变成相对顶栏下沿定位而不是
视口,tab bar 贴在顶栏正下方,看起来就是固定在屏幕顶部。

窄屏下关掉顶栏的 backdrop-filter,改用近实色底
color-mix(var(--w4f-card-solid) 92%, transparent);玻璃模糊保留在
.sb-nav 自身(元素自己的 backdrop-filter 不影响自己的定位)。

顺带 bump 到 0.1.2(version 包 / release.sh / build_installers.sh /
rpm spec + changelog / README 安装示例文件名)。

验证:tsc --noEmit 通过、npm run build 通过;产物 CSS 中确认 720px 段的
.sidebar 已含 backdrop-filter:none;三节点部署后 /status 报告 0.1.2,
环正常(cycle 推进、pending=0、5 条转发 frpc 进程与 topology 归属一致)。
This commit is contained in:
JianFeeeee
2026-09-03 08:45:22 +08:00
parent 609f0df517
commit 0559cc55bd
6 changed files with 26 additions and 12 deletions

View File

@ -79,7 +79,7 @@ cd web && npm run build && rm -rf internal/httpapi/dist && cp -r web/dist intern
### Linux (Debian / Ubuntu) ### Linux (Debian / Ubuntu)
```bash ```bash
sudo dpkg -i webui4frpc-0.1.1-linux-amd64.deb # 或 linux-arm64.deb sudo dpkg -i webui4frpc-0.1.2-linux-amd64.deb # 或 linux-arm64.deb
sudo nano /etc/webui4frpc/webui4frpc.env # 改掉默认密码 sudo nano /etc/webui4frpc/webui4frpc.env # 改掉默认密码
sudo systemctl restart webui4frpc sudo systemctl restart webui4frpc
``` ```
@ -87,7 +87,7 @@ sudo systemctl restart webui4frpc
### Linux (RHEL / Fedora / openEuler / 默认 / 龙蜥) ### Linux (RHEL / Fedora / openEuler / 默认 / 龙蜥)
```bash ```bash
sudo rpm -i webui4frpc-0.1.1-linux-x86_64.rpm sudo rpm -i webui4frpc-0.1.2-linux-x86_64.rpm
sudo vi /etc/webui4frpc/webui4frpc.env sudo vi /etc/webui4frpc/webui4frpc.env
sudo systemctl enable --now webui4frpc sudo systemctl enable --now webui4frpc
``` ```
@ -97,7 +97,7 @@ sudo systemctl enable --now webui4frpc
### Windows ### Windows
双击 `webui4frpc-0.1.1-windows-amd64-setup.exe`ARM 设备用 `windows-arm64-setup.exe`)。 双击 `webui4frpc-0.1.2-windows-amd64-setup.exe`ARM 设备用 `windows-arm64-setup.exe`)。
安装向导会询问监听地址与管理员凭据,完成后: 安装向导会询问监听地址与管理员凭据,完成后:
- 程序装到 `C:\Program Files\webui4frpc` - 程序装到 `C:\Program Files\webui4frpc`
@ -107,8 +107,8 @@ sudo systemctl enable --now webui4frpc
### macOS ### macOS
```bash ```bash
sudo installer -pkg webui4frpc-0.1.1-darwin-arm64.pkg -target / # Apple Silicon sudo installer -pkg webui4frpc-0.1.2-darwin-arm64.pkg -target / # Apple Silicon
sudo installer -pkg webui4frpc-0.1.1-darwin-amd64.pkg -target / # Intel sudo installer -pkg webui4frpc-0.1.2-darwin-amd64.pkg -target / # Intel
``` ```
或直接双击 `.pkg` 走图形安装器。安装后 launchd 开机自启,配置在 或直接双击 `.pkg` 走图形安装器。安装后 launchd 开机自启,配置在
@ -126,7 +126,7 @@ sudo launchctl kickstart -k system/com.jianfeeeee.webui4frpc
不想装服务只想跑一下,用对应的 `.tar.gz` / `.zip`,解压即用: 不想装服务只想跑一下,用对应的 `.tar.gz` / `.zip`,解压即用:
```bash ```bash
tar xzf webui4frpc-0.1.1-linux-amd64.tar.gz tar xzf webui4frpc-0.1.2-linux-amd64.tar.gz
./webui4frpc -addr 127.0.0.1:7500 -user admin -password 你的密码 -workdir ./data ./webui4frpc -addr 127.0.0.1:7500 -user admin -password 你的密码 -workdir ./data
``` ```

View File

@ -2,11 +2,11 @@
// //
// Value is overridable at build time so release artifacts carry the real tag: // Value is overridable at build time so release artifacts carry the real tag:
// //
// go build -ldflags="-X webui4frpc/internal/version.Version=0.1.1" ./cmd/webui4frpc // go build -ldflags="-X webui4frpc/internal/version.Version=0.1.2" ./cmd/webui4frpc
// //
// Kept in its own package because both cmd/ and internal/httpapi report it // Kept in its own package because both cmd/ and internal/httpapi report it
// (main can't be imported, and httpapi must not depend on cmd). // (main can't be imported, and httpapi must not depend on cmd).
package version package version
// Version is the running build's semantic version, without a leading "v". // Version is the running build's semantic version, without a leading "v".
var Version = "0.1.1" var Version = "0.1.2"

View File

@ -1,5 +1,5 @@
Name: webui4frpc Name: webui4frpc
Version: %{?_w4f_version}%{!?_w4f_version:0.1.1} Version: %{?_w4f_version}%{!?_w4f_version:0.1.2}
Release: 1%{?dist} Release: 1%{?dist}
Summary: Visual frpc controller with token-ring cluster Summary: Visual frpc controller with token-ring cluster
License: MIT License: MIT
@ -67,6 +67,11 @@ fi
%doc %{_docdir}/webui4frpc/README.md %doc %{_docdir}/webui4frpc/README.md
%changelog %changelog
* Wed Sep 03 2026 JianFeeeee <jianfeeeee@gitcode> - 0.1.2-1
- 修复窄屏底部导航栏错位到顶部:顶栏的 backdrop-filter 会为
position:fixed 后代创建包含块,使 tab bar bottom:0 相对顶栏而
非视口定位。窄屏下关掉顶栏模糊,改用近实色底。
* Wed Sep 02 2026 JianFeeeee <jianfeeeee@gitcode> - 0.1.1-1 * Wed Sep 02 2026 JianFeeeee <jianfeeeee@gitcode> - 0.1.1-1
- 修复令牌环冻结:心跳到达时复活被误判 offline 的前驱; - 修复令牌环冻结:心跳到达时复活被误判 offline 的前驱;
全环无可达后继时保留 inflight leader 超时重发令牌。 全环无可达后继时保留 inflight leader 超时重发令牌。

View File

@ -12,7 +12,7 @@
# 在 release.sh 流程内被调用;依赖 dist/artifacts/<version>/bin/<os>-<arch>/ 下的二进制。 # 在 release.sh 流程内被调用;依赖 dist/artifacts/<version>/bin/<os>-<arch>/ 下的二进制。
set -euo pipefail set -euo pipefail
VERSION="${1:-0.1.1}" VERSION="${1:-0.1.2}"
VERSION="${VERSION#v}" VERSION="${VERSION#v}"
ROOT="$(cd "$(dirname "$0")/.." && pwd)" ROOT="$(cd "$(dirname "$0")/.." && pwd)"
OUT="$ROOT/dist/artifacts/$VERSION" OUT="$ROOT/dist/artifacts/$VERSION"

View File

@ -3,7 +3,7 @@
# webui4frpc 多平台发布脚本 # webui4frpc 多平台发布脚本
# #
# 用法: # 用法:
# ./scripts/release.sh [version] # 默认 version=0.1.1 # ./scripts/release.sh [version] # 默认 version=0.1.2
# #
# 行为: # 行为:
# 1. 构建前端 (web/dist) 并同步到 internal/httpapi/dist (go:embed 用) # 1. 构建前端 (web/dist) 并同步到 internal/httpapi/dist (go:embed 用)
@ -19,7 +19,7 @@
# NO_BUILD_FRONTEND 设为 1 跳过前端构建 (用现有 dist) # NO_BUILD_FRONTEND 设为 1 跳过前端构建 (用现有 dist)
set -euo pipefail set -euo pipefail
VERSION="${1:-0.1.1}" VERSION="${1:-0.1.2}"
VERSION="${VERSION#v}" # 去掉可能的前导 v VERSION="${VERSION#v}" # 去掉可能的前导 v
ROOT="$(cd "$(dirname "$0")/.." && pwd)" ROOT="$(cd "$(dirname "$0")/.." && pwd)"
OUT="$ROOT/dist/artifacts/$VERSION" OUT="$ROOT/dist/artifacts/$VERSION"

View File

@ -388,6 +388,15 @@ const currentLabel = computed(() => nav.value.find((n) => n.key === view.value)?
border-right: none; border-right: none;
border-bottom: 1px solid var(--w4f-line); border-bottom: 1px solid var(--w4f-line);
padding-top: max(10px, env(safe-area-inset-top)); padding-top: max(10px, env(safe-area-inset-top));
/* 关键backdrop-filter 会为 position:fixed 后代创建【包含块】
(与 transform/filter 同理)。若保留它,下面 .sb-nav 的
bottom:0 就是相对这条顶栏定位而非视口,底部 tab bar 会贴在
顶栏下沿、看起来固定在屏幕顶部。因此窄屏必须关掉顶栏的玻璃
模糊,改用接近实色的底,模糊效果留在 .sb-nav 自己身上
(元素自身的 backdrop-filter 不影响它自己的定位)。 */
backdrop-filter: none;
-webkit-backdrop-filter: none;
background: color-mix(in srgb, var(--w4f-card-solid) 92%, transparent);
} }
.sb-brand { .sb-brand {
padding: 0; padding: 0;