Bundle
dsh-theme-cutout-clash
EN: Selectable neo-brutalist/pop-art themes for DeepSeek Harness Web with calm reading surfaces. 0.5.10 fixes the queued-message banner and the composer attachment button in every variant. ZH: 面向 DeepSeek Harness Web、兼顾安静阅读表面的新粗野主义与波普艺术主题。0.5.10 修复全部变体的排队消息面板与输入框附件按钮。
- Source
- YrracOwl
- License
- MIT
- Updated
- Updated 53 minutes ago
Readme
# dsh-theme-cutout-clash ## English Cutout Clash is a selectable neo-brutalist/pop-art theme bundle for DeepSeek Harness Web. It keeps conversation content calm while adding expressive shell, Composer, Goal, and transition surfaces. The Client Store compatibility path targets DSH 0.1.2+, with a legacy runtime fallback for older RC hosts. ## 中文 Cutout Clash 是面向 DeepSeek Harness Web 的可选择新粗野主义 / 波普艺术主题包:保持会话内容安静易读,同时增强 Shell、Composer、Goal 和转场表面。优先使用 DSH 0.1.2+ 的 Client Store,并为旧版 RC 保留 runtime 回退。 **Cutout Clash 0.5.10** is a standalone selectable DSH Web theme bundle built around original neo-brutalist and pop-art composition. It is a companion to `dsh-theme-acid-noir`; neither plugin replaces or patches the other. ## Visual system The theme follows **Loud edge, calm center**: - Sidebar, selection, Composer, Goal, and the transient theme transition carry the expressive geometry. - Conversation text, Markdown, terminals, diffs, code metrics, scroll geometry, and streaming content remain level and quiet. - Tool and Think surfaces use a narrow semantic state rail instead of a heavy shadow on every card. - Semantic states cover Goal/Todo text, inline code, distinct workspace-expanded and active-session states, Subagent popup hover, task-management hover, Settings navigation, Composer command controls, and the context dialog without relying on CSS-module hash names. - Settings content buttons retain their plugin-owned semantic foregrounds: a theme never flattens every dialog button to ordinary label text, so primary Save/Upgrade controls preserve the foreground paired with their fill token. - Produced-file chips keep their own controls, but the row behind them is transparent so the deliverables line does not read as another selected state. - Inline links are scoped to the conversation prose plane and use variant-specific, explicitly underlined link pairs: bright cyan/yellow on Night and deep blue/red on Pop. The explicit decoration line is required because DSH's base Markdown link style resets `text-decoration-line` to `none`; setting only decoration color and thickness does not render a highlight. Navigation, buttons, file chips, and plugin chrome are not recolored as prose links. - DSH's official Markdown renderer automatically turns an inline-code token whose complete value is an absolute HTTP(S) URL into `<code><a></a></code>`, including inside tight or loose list items. The theme therefore pairs every `code:not(pre code) a[href]` with the code chip foreground without assuming a paragraph parent. - When DSH's file-mention provider recognizes an inline-code path, the same renderer emits `<code><button type="button" title aria-label></button></code>`. The theme targets this stable semantic structure—not its CSS-module hash—so clickable file paths inherit the code chip foreground and retain an explicit underline in normal and hover states. - The Composer never receives a transform on hover, so its native context dialog retains DSH's original containing block and placement. - No external fonts, images, audio, network assets, game marks, or character assets are included. ## Install ```powershell dsh plugin --profile web add dsh-theme-cutout-clash ``` Restart the existing DSH Web process afterwards: the Host scans the browser plugin roster at startup, so the three themes appear only after that restart. Then open **Settings → General → Cutout Clash theme**. Local development, from the parent directory of this checkout: ```powershell dsh plugin --profile web add .\dsh-theme-cutout-clash ``` Either form records the package in the profile's `dsh.profile.bundles`, which is what serves the client bundle. Available choices: - **Default appearance** — follow the DSH built-in appearance. - **Cutout Clash** — warm paper, lime action, pink events, cyan signal. - **Night Cutout** — ink-blue Voltage palette with yellow and cyan hierarchy; filled yellow controls use dark foregrounds, while dark selected navigation uses light text. - **Pop Signal** — warm Press palette with print blue, red, and yellow. ## Motion and lifecycle - DSH currently exposes no public `app/ready`, `shell/ready`, or `boot/ready` Client event. `shell.overlay` is declared by AppFrame and therefore cannot cover the frame before AppFrame's first render. - A saved Cutout theme installs a small viewport-fixed early curtain as soon as the Client bundle script executes. The curtain is already present before `[data-dsh-frame]` mounts; after Theme Runtime restores the saved tokens and the official shell Slot is available, it reveals and removes itself. - Ordinary theme switches keep an additive `shell.overlay` lifecycle anchor, while the visual Plate is mounted directly under `document.body`. At a normal `z-index: 90` it escapes AppFrame's stacking context and covers shell content, yet sits below DSH's popup bands (menus at `100`, dialogs at `1000`, toasts at `1100`), so menus, dialogs, toasts, and third-party overlays can cover the transition. - Boot reveal cleanup has its own timer channel, so a simultaneous Theme Runtime event cannot cancel removal and leave an opaque curtain over the restored application. The pre-Cordis curtain also owns an independent 2.5-second watchdog that performs the same reveal and removal if any Client plugin load failure prevents the Cutout Fiber from applying. - Two geometric plates and one registration band perform a short non-blocking cover/reveal sequence. - The overlay is always `pointer-events: none`. - A monotonically increasing generation cancels stale timers during rapid switching. - Motion is selectable in Settings: **完整转场 / Full motion**, **跟随系统 / Follow system**, or **关闭转场 / Motion off**. Existing Cutout users default to Full motion so a browser-level reduced-motion flag does not silently hide the requested theme effect; users can choose Follow system at any time. - `prefers-reduced-motion: reduce` is honored when Follow system is selected; Full motion is an explicit user override, and Motion off is synchronous. - No transcript node, code line, terminal output, diff, or streamed token receives entrance motion. - Theme registrations, Slot entries, style nodes, timers, and body markers all belong to the plugin lifecycle and are removed on stop/unload. ## Preference coordination Acid Noir and Cutout Clash now share the versioned browser record `dsh.theme.preference.v1`. Legacy keys are read only for migration. A selected theme writes one record, and Default clears it, so a DSH restart has one unambiguous custom-theme owner instead of two competing restorers. DSH's built-in appearance scope can re-emit its durable `light` / `dark` / `system` preference when any Settings section is saved. If that refresh transiently replaces an active Cutout theme, the plugin restores the still-selected custom preference on the next task without requiring F5. This administrative recovery path is explicitly silent: it cancels any pending Plate and never plays the cover/reveal animation. Only cold boot and an intentional theme change animate. An explicit click on a built-in appearance choice or either theme family's Default button clears the custom record first, so intentional switching is never fought. The motion choice is stored separately as `dsh-theme-cutout-clash.motion`.
Install
dsh plugin --profile web add github:YrracOwl/dsh-theme-cutout-clash
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-theme-cutout-clash from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.