Skip to content

Releases

dsh-ui-outline v0.2.0 — ⌘F search, wheel stepping, new glass materials

Choose a tag to compare

@iluluyu iluluyu released this 13 Oct 10:08

What's new in 0.2.0

  • ⌘F / Ctrl+F conversation search — Spotlight-style overlay: space-separated AND matching across Chinese/English text, highlighted context snippets, fully keyboard-driven (↑↓ · ↵ jump with flash · Esc), sliced background indexing that never blocks typing.
  • Wheel-stepped turn preview — roll the wheel on the rail to walk a live preview through turns; the conversation stays put, a click commits the shown turn.
  • Current liquid glass material — 25% veil, 4px backdrop blur, saturate boost, uniform hairline rim; frost and opaque also selectable, live-switchable for both preview card and search overlay.
  • macOS-fidelity morph — empty search is a 52px stadium capsule; the first keystroke grows it into the results card with a constant 26px radius.
  • Rail placement & density — dock left or right, loose or compact ticks; narrow-column visibility toggle.

Requires dsh >= 0.2.0-rc.1. Install: dsh plugin --profile web add dsh-ui-outline

Full README with diagrams: https://github.com/iluluyu/dsh-ui-outline

0.0.3 — glass, tuned by eye

Choose a tag to compare

@iluluyu iluluyu released this 12 Sep 13:05

English

0.0.3 is a taste pass over the preview card's glass, driven by multi-model visual review (blind ballots on rendered pixels, not opinions) and two rounds of live user feedback.

Liquid glass, actually liquid

  • Edge lens retuned. The displacement rim now bends backdrop content 1–2px with structure intact — perceptible, not jelly. (Scale 18 / rim 16, chosen over stronger candidates that showed jelly edges and dark-theme moiré.)
  • Neutral surface. The old warm corner light read as a tea stain and the rim's backlight as a neon filament; both replaced with a small neutral cool-white glint at the conversation-facing corner plus a strict one-way Fresnel rim (.30 peak in light, gone by 45% of the edge). Dither stays: without it the veil banded.
  • Readability first. Liquid·airy's veil is the knob that makes subtitles readable over saturated backdrops (blur barely touches low-frequency bands) — two rounds walked it to 75/4, with the ladder re-spaced so airy and standard differ on both axes.

Presets re-tuned toward beauty

Preset frost t / blur liquid t / blur
airy 清透 85% / 3px 75% / 4px
standard 标准 80% / 6px 65% / 6px
misty 朦胧 55% / 18px 50% / 10px
  • Standard steps off the reverse-engineered iOS regular anchor toward airier glass — background color temperature shows through while text stays planted.
  • Misty is real fog that glows (18px blur dissolves color bands into light), never a milk wall; all values sit on the slider lattice.
  • Defaults follow the standard presets; existing personal settings are untouched.

Docs & diagrams

  • All five diagrams redrawn against the real client parameters: the materials strip now shows the corner glint, Fresnel rim, and the thick-lens fold; the hero and side-mirror scenes match.
  • READMEs (en/zh) refreshed for accuracy (preset semantics, neutral light) and lightly polished.

中文

0.0.3 是对预览卡玻璃的品相轮:多模型盲投票(对渲染像素、不对观点)+ 两轮真实使用反馈驱动。

  • 边缘透镜重调:折射带弯折 1–2px、结构完整——恰好可感、不果冻;暖角光(茶渍感)与背光反弹(霓虹灯丝)换成中性冷白小光斑 + 严格单向菲涅尔边缘光,dither 保留(否则面纱出现色带)。
  • 可读性优先:液态清透档以面纱为可读性旋钮(模糊对低频色带几乎无效),两轮走到 75/4;阶梯双轴重排,清透与标准一眼可辨。
  • 预设整体向美观靠拢:标准档脱离 iOS regular 锚点走向更透的玻璃;朦胧是会发光的真雾,不再是乳白墙;所有取值落在滑杆格点上。默认值跟随标准档,个人已有设置不受影响。
  • 文档与示意图:五张示意图按真实参数重绘(角光斑、菲涅尔边缘光、厚透镜折叠带),双语 README 事实修正与轻度润色。

0.0.2 — official design language, first-class settings, glass

Choose a tag to compare

@iluluyu iluluyu released this 30 Aug 12:54

English

0.0.2 is a ground-up rework around the official TurnNavigator design language. Same mission — a turn rail for the conversation — now native to dsh, deeply configurable, and measurably cheap.

The rail

  • Official geometry & tokens. Hugs the conversation column edge (details-panel safe), centers on the live reading band, hides below a 900px column. All colors/radii/shadows/motion resolve live from --dsw-alias-* tokens with official fallbacks.
  • Takeover handshake. While this rail is up, the official navigator stands down; below two turns (the official minimum) this one stands down and the official returns. Never two rails.
  • A living mark language. Idle ticks rest aligned; the current turn is color-highlighted only; hover/focus sweeps a neighbor wave (1 / .7 / .4 / .2 → 20 / 14 / 8 px). One language, two densities:
    • compact — 14px pitch, official proportional compression, capped min(natural, band − 64px, 420px).
    • loose — one real 30px row per turn (a 44×30px target), capped min(natural, band − 64px, 70vh, 640px), internal scroll with edge fade.

Input you don't have to aim

  • 44px hit strip: any click snaps to the nearest visible turn — the 2px line is never the target.
  • Drag anywhere in the strip to scrub the conversation (5px threshold separates click from scrub; pointer capture keeps it through fast moves; touch drags are owned via touch-action: none).
  • Click-arrivals get a quiet landing flash; scrubs stay animation-free.
  • Full keyboard path: tab to a mark, Enter to jump, focus drives the same wave.

Preview card, in glass

  • Hover/focus/scrub shows that turn's prompt + response (two short lines each), centered on the mark, clamped inside the rail.
  • Three materials — none (official opaque tokens), frost (default: 45% token tint + blur(6px)), liquid (42% tint + blur(5px) + a soft light from the conversation-facing corner; pure CSS, no SVG filters, never overflows).
  • G2 corners where supported: corner-shape: squircle at 18.4px, measured diagonal-equivalent to the official 10px G1 arc; uniform 1px ring (a stroked border rasterizes unevenly on superellipse diagonals).

First-class settings

  • New settings card under Settings → Plugins → Plugin configuration: Side (right/left, mirrored automatically), Preview material (none/frost/liquid), Mark layout (compact/loose). Bilingual zh/en, applies live.
  • Preferences persist in the host's settings document (outline namespace) — they follow you across browsers and machines. Requires dsh ≥ 0.1.0-rc.7. Not localStorage.
  • The plugin's cordis.yml row now carries a config: block, registered as the namespace's composition (base) layer — profile owners can pin fleet-wide defaults that personal settings always override (the layered shape the settings cookbook prescribes).

Performance (measured, not promised)

  • Scroll tracking: one rect read + binary search per frame; offsets refill only on conversation DOM change.
  • Every animation is compositor-only (transform/opacity) — including the preview card's glide.
  • Pointer moves coalesce to one read-then-write job per animation frame: scrubbing costs O(1) layouts at any pointer frequency.
  • Streaming: unchanged rows reuse objects; per-turn snippets read textContent (never innerText), newest step only.
  • The rail is position: fixed in the click-through overlay — cannot stretch the page or add a scrollbar.

Fixed since 0.0.1

  • Loose-mode marks rendering invisible (missing background-color: currentColor).
  • Liquid material dropping a leaked 300×150 default box into the host — the SVG machinery is gone; liquid is pure CSS now.
  • Minimum-turns parity between layouts; preview re-placement on layout/geometry changes; response text legibility (secondary token, separate font declarations).

Docs

  • Theme-adaptive SVG illustrations (light/dark via prefers-color-scheme inside the SVG), English-primary README with a Chinese mirror (README.zh-CN.md).

中文

0.0.2 围绕官方 TurnNavigator 设计语言全面重写:

  • 官方几何与 token:贴会话列边缘、居中阅读带、<900px 隐藏;颜色/圆角/阴影/动效实时读取 --dsw-alias-*,官方兜底。
  • 接管握手:本轨道启用时官方退位;少于 2 轮本轨道退位。绝不双轨。
  • 会呼吸的刻度:静息齐平、当前轮纯颜色高亮、悬停邻近波浪;紧凑 14px / 宽松 30px 两种密度。
  • 宽容输入:44px 点击条吸附最近轮次;拖拽擦洗整个会话;点击落点轻闪、擦洗无残留;完整键盘路径。
  • 玻璃预览卡:无/毛玻璃/液态三材质,光从朝向会话的角落射入;G2 squircle 圆角(18.4px 与官方 10px 对角线等效)+ 均匀 1px 外环;纯 CSS 不溢出。
  • 一等公民设置:设置 → 插件 → 插件配置,位置/材质/刻度分布三项,实时生效、持久化到宿主设置文档(跟随跨机器),需 dsh ≥ rc.7。
  • 性能:滚动每帧 1 次矩形 + 二分;全动画仅合成器;指针合帧(擦洗 O(1) 布局);流式零泛涟漪;position: fixed 不可能撑出页面。
  • 修复:宽松刻度不可见、液态 SVG 宿主泄漏、双布局最小轮次不一致、预览布局变化不重排、回答小字可读性。
  • 文档:明暗自适应 SVG 插图;英文主 README + 中文镜像。