{"_id":"@edwardhamu/dsh-glassmorphism-theme","_rev":"4-1eafc3722767bdb94a7807eff5e91508","name":"@edwardhamu/dsh-glassmorphism-theme","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@edwardhamu/dsh-glassmorphism-theme","version":"0.1.0","license":"BSD-3-Clause","_id":"@edwardhamu/dsh-glassmorphism-theme@0.1.0","maintainers":[{"name":"wateryurban","email":"a50541853@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"fe093b238c1e3a18b780c16ec73d92fc8e642fa5","tarball":"https://registry.npmjs.org/@edwardhamu/dsh-glassmorphism-theme/-/dsh-glassmorphism-theme-0.1.0.tgz","fileCount":11,"integrity":"sha512-kejVtTVlRMzi732zcy2rWM53CADdkTaxLDEd2svTcEgdeWSRt2V26VLcx3RbQkQpWH71hOSQ5xX9gTOWZ27Nlg==","signatures":[{"sig":"MEUCIArkhvU1rO9zsybLXlgCmNtNZiNDjiNHxhpRo6HP+exHAiEAj7+cBx6riC8UifOu3mqKizzRJHuSS26lADgJAi8gmPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289305},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"build":"tsc -p tsconfig.json && tsdown","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"wateryurban","email":"a50541853@gmail.com"},"_npmVersion":"11.6.2","description":"Glassmorphism theme layer for the DeepSeek Harness web UI.","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^5.9.0","@types/node":"^24.13.3"},"peerDependencies":{"cordis":">=4.0.0-rc <5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-glassmorphism-theme_0.1.0_1787278716112_0.5518151526903046","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@edwardhamu/dsh-glassmorphism-theme","version":"0.1.1","license":"BSD-3-Clause","_id":"@edwardhamu/dsh-glassmorphism-theme@0.1.1","maintainers":[{"name":"wateryurban","email":"a50541853@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"12fa99f630ab3c474c5c6e5ea39325ebde0d9802","tarball":"https://registry.npmjs.org/@edwardhamu/dsh-glassmorphism-theme/-/dsh-glassmorphism-theme-0.1.1.tgz","fileCount":11,"integrity":"sha512-Uc7RarwPJG6kg7JSZx7MNxaU6nbFYk323jn2AdgD8PJGfyweNq2nvrcQjsbrON9NxcJFgCQvz4tNWGZ2iqNFzA==","signatures":[{"sig":"MEUCIFd5faZCOB1+xpjnqNexHgIHlOZcRO0eogXh+cI6Q8qQAiEAjh7pOX+EqomtQm8h20Q6YvwQcpgPkB8TshScwPLB1wM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289545},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"scripts":{"build":"tsc -p tsconfig.json && tsdown","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"wateryurban","email":"a50541853@gmail.com"},"_npmVersion":"11.6.2","description":"Glassmorphism theme layer for the DeepSeek Harness web UI.","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^5.9.0","@types/node":"^24.13.3"},"peerDependencies":{"cordis":">=4.0.0-rc <5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-glassmorphism-theme_0.1.1_1787280484793_0.3460385856353201","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@edwardhamu/dsh-glassmorphism-theme","version":"0.1.2","license":"BSD-3-Clause","_id":"@edwardhamu/dsh-glassmorphism-theme@0.1.2","maintainers":[{"name":"wateryurban","email":"a50541853@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"dist":{"shasum":"374fcc914b5deb10bbb5d8a92c26ba16fb779f20","tarball":"https://registry.npmjs.org/@edwardhamu/dsh-glassmorphism-theme/-/dsh-glassmorphism-theme-0.1.2.tgz","fileCount":11,"integrity":"sha512-P5govUmP9InfLgCCnKOXzPD7StrhnQTJlwe7+L8PpmswhRng9nJsAXoWJp/J6kHvOzJXyiOy6iO17FlKs7gF2w==","signatures":[{"sig":"MEUCIQCj9YYz8lvDIpSfcM7bGIBsMfk6exkNLBbGXKFpHc13IgIgJ16z9p6Bq4yXzIbmBB4AQivSNsEKyPnpf17dvmT8zTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289545},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"04a869660072fe004a466b7f442a48de7c91cf21","scripts":{"build":"tsc -p tsconfig.json && tsdown","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"wateryurban","email":"a50541853@gmail.com"},"_npmVersion":"11.6.2","description":"Glassmorphism theme layer for the DeepSeek Harness web UI.","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^5.9.0","@types/node":"^24.13.3"},"peerDependencies":{"cordis":">=4.0.0-rc <5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-glassmorphism-theme_0.1.2_1787283203688_0.3163312043333284","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@edwardhamu/dsh-glassmorphism-theme","version":"0.1.3","description":"Glassmorphism theme layer for the DeepSeek Harness web UI.","type":"module","main":"./lib/index.js","types":"./lib/types/index.d.ts","license":"BSD-3-Clause","peerDependencies":{"cordis":">=4.0.0-rc <5"},"devDependencies":{"@types/node":"^24.13.3","tsdown":"^0.22.14","typescript":"^5.9.0"},"scripts":{"build":"tsc -p tsconfig.json && tsdown","typecheck":"tsc -p tsconfig.json --noEmit"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./cordis.patch.yml":"./cordis.patch.yml","./package.json":"./package.json"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"gitHead":"04a869660072fe004a466b7f442a48de7c91cf21","_id":"@edwardhamu/dsh-glassmorphism-theme@0.1.3","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-7Xncvljf4zS6w9c/wiBc5Kfdy8NdClXsO3NjZjPlJ7lDLBEyQ2D5XwFkPDXE93bwKIcogCIDkal8Nfzn5+ahfg==","shasum":"089874487c58e2af8cffee8ac6b02e5a32379073","tarball":"https://registry.npmjs.org/@edwardhamu/dsh-glassmorphism-theme/-/dsh-glassmorphism-theme-0.1.3.tgz","fileCount":11,"unpackedSize":289788,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEUOG74Y2qyKW5kJs63QMJPYUHfdXRmT++ONQ5+BrWIvAiEA7EljYMN8EtRrfOEfwuyphoCXFufcC6QoRWINAKznDoc="}]},"_npmUser":{"name":"wateryurban","email":"a50541853@gmail.com"},"directories":{},"maintainers":[{"name":"wateryurban","email":"a50541853@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-glassmorphism-theme_0.1.3_1787303392350_0.29315100375137715"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T02:18:35.968Z","modified":"2026-08-21T09:09:52.687Z","0.1.0":"2026-08-21T02:18:36.256Z","0.1.1":"2026-08-21T02:48:04.928Z","0.1.2":"2026-08-21T03:33:23.835Z","0.1.3":"2026-08-21T09:09:52.496Z"},"license":"BSD-3-Clause","description":"Glassmorphism theme layer for the DeepSeek Harness web UI.","maintainers":[{"name":"wateryurban","email":"a50541853@gmail.com"}],"readme":"# dsh-glassmorphism-theme\n\nMaterial Design 3 glassmorphism theme for the DeepSeek Harness Web UI.\n\n![dsh-glassmorphism-theme preview](https://i0.wp.com/tva1.sinaimg.cn/large/9448bbf8gy1igbaivjxl6j21du0rb1kx.jpg)\n\nThis plugin applies a modern glassmorphism (frosted glass) aesthetic with\ncustom wallpaper support, transparent surfaces, and backdrop blur effects.\nIt's client-only, mapping MD3 design tokens onto DSH's semantic CSS without\nreplacing DOM structure or modifying application settings.\n\n## Features\n\n### Glassmorphism Effects\n\n- **Backdrop blur and transparency**: Sidebar, top bar, composer card, chat glass layer,\n  settings panel, and all menus/portals use `backdrop-filter` with 10px blur and 115% saturation.\n- **Semi-transparent surfaces**: Chat bubbles and code blocks use 30% opacity backgrounds,\n  selected sidebar rows use 30% opacity, preserving text and syntax highlighting clarity.\n- **Nested menu optimization**: Command and model menus use pseudo-element glass layers to\n  avoid nested backdrop-filter conflicts, ensuring visible blur effects.\n- **Performance-optimized chat layer**: Fixed-position glass background covers only the visible\n  chat viewport (not the full message list), updated on resize/layout changes, never on scroll.\n\n### Custom Wallpaper\n\n- **Built-in wallpaper settings**: A `壁纸` page in the native Settings dialog supports:\n  - Local image files (stored in IndexedDB, never uploaded)\n  - HTTP/HTTPS image URLs (validated and preloaded)\n  - Fill modes: cover, contain, auto\n  - Position: center, top, bottom, left, right\n  - Readability overlay with adjustable darkness\n  - Enable/disable and clear controls\n- **Privacy-first storage**: Wallpaper images stay in the browser profile's IndexedDB;\n  lightweight preferences use localStorage. Nothing is sent to DSH services.\n- **Single fixed layer**: One `position: fixed` wallpaper element at page bottom, with\n  all glass surfaces layered above.\n\n### Material Design 3 Foundation\n\n- **Color system**: Light and dark palettes synchronized with DSH's `data-ds-dark-theme`,\n  covering surface hierarchy, primary/secondary/tertiary/error, success, and warning roles.\n- **Typography & spacing**: MD3 type scale and 4dp grid.\n- **Elevation & interaction**: Restrained shadows, state layers, visible keyboard focus,\n  and accessible contrast.\n- **Comprehensive coverage**: Sidebar, session rows, composer, bubbles, menus, dialogs,\n  settings, form fields, buttons, scrollbars, cards, and responsive viewport adjustments.\n\n### Accessibility & Compatibility\n\n- **Reduced transparency mode**: Respects `prefers-reduced-transparency` (uses same 10px blur).\n- **Backdrop-filter fallback**: Transparent backgrounds when `backdrop-filter` is unavailable.\n- **Reduced motion**: Respects `prefers-reduced-motion`.\n\n## Build\n\n```powershell\nnpm install\nnpm run typecheck\nnpm run build\n```\n\n## Install from npm into the local Web profile\n\nInstall the published package from [npm](https://www.npmjs.com/package/@edwardhamu/dsh-glassmorphism-theme):\n\n```powershell\ndsh plugin --profile web add \"@edwardhamu/dsh-glassmorphism-theme\"\n```\n\nReload `http://localhost:3080` after installation. Use the existing **Appearance**\nsetting to switch between light and dark palettes.\n\n## Wallpaper Setup\n\nOpen **设置** → **壁纸** to configure your background:\n\n1. **Choose source**:\n   - Upload a local image file (JPG, PNG, WebP, etc.)\n   - Enter an HTTP/HTTPS image URL\n\n2. **Adjust display**:\n   - **Fill mode**: Cover (default, fills viewport), Contain (fit within), or Auto\n   - **Position**: Center, Top, Bottom, Left, Right\n   - **Readability overlay**: Add a dark tint (0–100%) to improve text contrast\n\n3. **Enable** the wallpaper to activate glassmorphism effects across the UI.\n\nThe wallpaper is **off by default** and stored locally in your browser profile.\nNo images or settings are synced or uploaded to DSH servers.\n","readmeFilename":"README.md"}