dsh-motion: Adding Restrained Interface Motion Effects to DeepSeek Harness

Preface

The DSH plugin ecosystem allows extending the Harness interface behavior on the browser side. Menus, listboxes, dialogs, tab panels, and state toggles are already available, but transition animations, when implemented individually by each theme or application, tend to conflict with host animations, theme variables, and accessibility settings.

dsh-motion addresses this problem: it adds short, restrained enter, exit, and state-change animations to components with stable semantic markup, while prioritizing the preservation of Harness or theme-native behavior.

What This Is

@dsh-external/dsh-motion is maintained by bilbillm and is licensed under the MIT License. It is a lightweight, zero-configuration browser plugin for DeepSeek Harness, covering interfaces such as menus, listboxes, dialogs, tab panels, conversation page content layers, Tabs, Switches, and workspace group expansion states.

Core Capabilities

The plugin’s behavior is conservative by design, with the following verified boundaries listed below:

  • Harness or theme-native animations are prioritized for preservation; interfaces that cannot be reliably detected are skipped.
  • Transient interfaces only animate opacity, independent translate/scale, and color properties.
  • Menus, listboxes, dialogs, and overlays use paired exit effects.
  • Exit clones are set to aria-hidden, inert, non-clickable, and are removed after the animation ends.
  • Model and inference tier card pagination uses through-fade with directional cues.
  • Command list filtering does not repeatedly trigger animations due to option updates.
  • When a dialog mounts, the outer panel handles entry animations uniformly, and inner slots do not re-animate.
  • Glass panels with backdrop-filter only pause background sampling during short animations and restore the theme’s original declarations afterward.
  • Real-time monitoring of prefers-reduced-motion; when reduced motion is enabled, displacement and fade-ins are disabled.
  • No settings page, intensity sliders, polling, or persistent animation frame loops are added.

Installation and Enablement

package.json declares node >=20 and packageManager pnpm@11.7.0. After building the source, install it into an isolated profile via Harness’s standard plugin flow:

pnpm install
pnpm run build
dsh plugin --profile web add C:\path\to\dsh-motion

Restart or reload the corresponding profile after installation.

Typical Usage

Applications or themes can explicitly disable motion for a subtree:

<section data-dsh-motion="off">...</section>

Build and check:

pnpm install
pnpm run check
pnpm run pack:check

pnpm run check performs type checking, builds both Node/Browser halves, and runs unit tests, JSDOM tests, and bundle smoke tests.

The optional browser E2E matrix requires a running isolated web profile:

$env:DSH_MOTION_E2E_URL = 'http://127.0.0.1:3080/'
pnpm run test:e2e

Applicable Scenarios and Considerations

Suitable for adding motion to existing semantic interfaces in a Harness web profile, especially when the following conditions are met:

  • Using default light/dark or angelina-light/angelina-dark theme semantic markup.
  • Not relying on CSS Module hashed class names.
  • Preserving host control over layout and system-level animations.
  • Adhering to prefers-reduced-motion settings for reduced motion.

The current version is tested against the local Harness 0.1.0-rc.5 source and the published 0.1.0-rc.6 client runtime dependencies.

The following areas are outside the plugin’s control: AppFrame and sidebar geometry, Trajectory interactions, Tooltips, Toasts, Composer typography, streaming conversation lines, large page exit clones, and Angelina parallax layers. Semantic menus/listboxes within the Composer and workspace tree group expansion are explicit exceptions.

In terms of security, dsh-motion is loaded as a Harness plugin and runs with the current dsh process’s privileges. Before enabling it, inspect the source code, dependencies, and the scope of the MIT license.

Links

Index page: No URL provided in verified materials.

GitHub: https://github.com/bilbillm/dsh-motion

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye