npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

aemeath-theme-plugin

v0.1.1

Published

Aemeath theme for the dsh web GUI — sakura pink × icy cyan × pearl white × deep navy, dual light/dark, animated pulsing composer border, and wallpaper backdrops

Readme

Aemeath Theme Plugin · 爱弥斯主题插件

GitHub

dsh web GUI 的主题皮肤插件(独立可分发 bundle)。基于爱弥斯主题配色方案 (樱粉 × 冰青 × 珍珠白 × 深潮蓝),提供:

  • 浅色 / 深色双主题(顶部栏右侧胶囊切换,持久化到 localStorage)
  • 深色壁纸 Aemeath-Sky-Mechanical-Wings-Mecha.png(机械翼天空)/ 浅色壁纸 Aemeath-Window-Light.jpg(窗景)——固定底层 + 半透明蒙层
  • 用户输入框脉冲流光边框(标志渐变 #EAA1B8 → #F2C5D1 → #65E4E8 → #D982A5 旋转流动 + 亮度呼吸,仅限边框、框内不变)
  • 樱花渐变按钮、冰青/星砂金点缀(状态点、时间戳、commit 徽章边框等)

色板

| 角色 | 浅色 | 深色 | |---|---|---| | 主背景 | #FAF0F4 雾樱粉白 | #182231 夜航墨蓝 | | 面板/气泡 | #FFFFFF 珍珠白 | #243657 深潮蓝 | | 悬浮/激活 | #FBE3EC 雾樱粉 | #2A4066 深潮蓝提亮 | | 主强调(粉) | #D982A5 樱粉深 | #EAA1B8 星樱粉 | | 次强调 | #65E4E8 共鸣冰青 | #65E4E8 共鸣冰青 | | 点缀 | #B9A46B 星砂金 | #B9A46B 星砂金 | | 标志渐变 | #EAA1B8 → #F2C5D1 → #65E4E8 | 同 |

结构

aemeath-theme-plugin/
├── package.json       # dsh.bundle + dsh.client manifest(官方 bundle 形态)
├── cordis.patch.yml   # bundle patch:插入插件行 id: aemeath-theme
├── lib/
│   ├── index.js       # host 半:/aemeath-theme/wallpaper 静态路由(serve 壁纸)
│   └── client.js      # 浏览器工厂:主题 CSS + 切换按钮 + 流光边框 + 壁纸层
├── assets/
│   ├── dark-wallpaper.png    # 深色壁纸(1920×1080)
│   └── light-wallpaper.jpg   # 浅色壁纸(4096×2304)
├── skin.json          # 皮肤市场元数据
└── README.md

安装

本包已发布到 npm(无构建步骤,lib/ 为手写 ES module),可直接安装。

方式一:从 npm 安装(推荐)

dsh plugin --profile web add aemeath-theme-plugin

自动安装预构建包 → 加入 dsh.profile.bundles 并挂载。也可以指定版本:

dsh plugin --profile web add [email protected]

方式二:从 GitHub 安装

dsh plugin --profile web add github:malyjacob/aemeath-theme-plugin

自动拉取源码 → link 进 profile 的 node_modules → 加入 dsh.profile.bundles 并挂载。

pnpm ≥10 默认拒绝 git 依赖的 prepare 构建;本包无构建脚本,首次安装若被 供应链策略拦截,在 profile 的 pnpm-workspace.yaml 加:

allowBuilds:
  aemeath-theme-plugin: true

方式三:本地路径安装(开发测试)

dsh plugin --profile web add /path/to/aemeath-theme-plugin

方式四:tarball 安装(离线分发)

cd /path/to/aemeath-theme-plugin
npm pack          # 生成 aemeath-theme-plugin-0.1.1.tgz
dsh plugin --profile web add ./aemeath-theme-plugin-0.1.1.tgz

方式五:手动 patch(不改 profile)

在 cordis.patch.yml 中插入(或作为 --patch overlay 传入):

- insert:
    - id: aemeath-theme
      name: 'aemeath-theme-plugin'

若 name 无法由 profile 的 node_modules 解析,先确保该包已安装到 profile 依赖。

机制概要

  • 加载:client-modules 扫描 dsh.client 声明,将 lib/client.js 作为 factory-CJS 提供给浏览器(window.__ModuleLoader__.load)。
  • 主题:body[data-ds-aemeath] 作用域 + --dsw-alias-* token 重映射; 亮度由 data-ds-aemeath-mode 与原生 data-ds-dark-theme 共同决定。
  • 切换按钮:注册进 conversation.session.header.actions(顶部栏右侧), React 实现,点击切换并持久化,与原生主题亮度同步。
  • 壁纸:host 半注册 /aemeath-theme/wallpaper/dark|light 路由 (ctx.webServer.register,防路径穿越);client 半创建 position:fixed; z-index:-1 的壁纸层,同时把 --dsw-alias-bg-base 等设为半透明让壁纸透出。
  • 流光边框:uV2eYG_card:not(.uV2eYG_cardWorkspaceTrigger) 的 ::before 画 conic-gradient 旋转环 + ::after 不透明遮罩(inset 2px)只露边框。
  • 所有 DOM 写入由 ctx.effect disposer 收回(卸载无残留)。

限知说明

  • 壁纸版权归原作者;分发前请确认使用许可。
  • uV2eYG_card 等 CSS Modules 哈希类名随 DSH 构建版本变化; 若未来失效,需按新哈希类名更新 lib/client.js 的选择器。
  • 本插件为演示型皮肤:副作用仅限 DOM 层,不请求模型。