关于 duskmoon-art-elements
面向 Web 开发者的 15 个 CSS 艺术自定义元素,可独立呈现动画,无需 JavaScript 逻辑或外部图片。元素可单独或整套安装,并支持通用尺寸和部分专属属性。
主要功能
- 0115 个动画 CSS 艺术元素
- 02无需 JavaScript 逻辑或外部图片
- 03可单独安装或整套安装
- 04支持小、中、大尺寸
- 05提供元素专属动画属性
适用场景
- 01为网页添加动画 CSS 艺术效果
- 02选用月亮、太阳或山脉元素
- 03调整降雪数量或动画状态
- 04仅注册所需元素以便摇树优化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gsmlg-dev/ code-agent --skill duskmoon-art-elements安装后在 Claude Code 中输入/duskmoon-art-elements确认已加载。
附带文件references/css-art-catalog.md
详细介绍
DuskMoon CSS 艺术元素
基于 @duskmoon-dev/el-base 构建的 15 个纯 CSS 艺术自定义元素。每个元素都会渲染一个独立的 CSS 动画——无需 JavaScript 逻辑,也无需外部图片。
安装
# Individual art element
bun add @duskmoon-dev/el-art-atom
# All art elements at once
bun add @duskmoon-dev/art-elements
注册
// Option 1: Explicit (tree-shakable)
import { register } from '@duskmoon-dev/el-art-atom';
register();
// Option 2: Side-effect auto-register
import '@duskmoon-dev/el-art-atom/register';
// Option 3: Register all CSS art elements
import { registerAllArts } from '@duskmoon-dev/art-elements';
registerAllArts();
在 HTML 中使用
<el-dm-art-atom></el-dm-art-atom>
<el-dm-art-atom size="lg"></el-dm-art-atom>
<el-dm-art-moon variant="crescent" glow></el-dm-art-moon>
<el-dm-art-sun variant="sunset" rays></el-dm-art-sun>
<el-dm-art-plasma-ball size="xl"></el-dm-art-plasma-ball>
<el-dm-art-synthwave-starfield size="lg" paused></el-dm-art-synthwave-starfield>
<el-dm-art-gemini-input placeholder="Ask me anything..."></el-dm-art-gemini-input>
<el-dm-art-gemini-input size="lg"></el-dm-art-gemini-input>
属性
所有 CSS 艺术元素默认均为 display: inline-block。大多数元素都支持 size:
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
size | String | 'md' | 尺寸变体——映射到 art-{name}-{size} CSS 类(sm、md、lg) |
元素专属属性:
| 元素 | 额外属性 |
|---|---|
el-dm-art-moon | variant(String)、glow(Boolean) |
el-dm-art-mountain | variant(String) |
el-dm-art-sun | variant(String)、rays(Boolean) |
el-dm-art-snow | count(Number)、unicode(Boolean)、fall(Boolean) |
el-dm-art-circular-gallery | title(String)、count(Number) |
el-dm-art-synthwave-starfield | paused(Boolean) |
el-dm-art-gemini-input | placeholder(String) |
剥离 CSS 层
CSS 艺术元素从 @duskmoon-dev/css-art 导入原始 CSS,并在注入 Shadow DOM 前剥离 @layer css-art { ... } 包装层:
import rawCss from '@duskmoon-dev/css-art/dist/art/{name}.css' with { type: 'text' };
const layerMatch = rawCss.match(/@layer\s+css-art\s*\{([\s\S]*)\}\s*$/);
const coreCss = layerMatch ? layerMatch[1] : rawCss;
这是必需的,因为 Shadow DOM 内的 @layer 不会与文档的层级顺序交互。
一些艺术元素(例如 gemini-input)还在层外声明了 @property——这些声明位于 @layer 块之前,不会被剥离正则表达式匹配,因此会予以保留。
参考资料
- CSS 艺术目录 — 全部 15 个 CSS 艺术包及其标签和属性
评论
支持 Markdown