mcpField
D
duskmoon-art-elements

duskmoon-art-elements

github.com/gsmlg-devデザイン・UI035 回インストール3 週間前に更新
リポジトリ

duskmoon-art-elements について

Web 開発者向けの、アニメーションする CSS アートのカスタム要素 15 種です。JavaScript のロジックや外部画像を使わずに描画でき、個別または一括で導入できるほか、共通サイズと要素別プロパティを備えています。

主な機能

  1. 01アニメーション付き CSS アート要素 15 種
  2. 02JavaScript ロジックや外部画像が不要
  3. 03個別または一括でインストール
  4. 04小・中・大のサイズに対応
  5. 05要素別のアニメーションプロパティ

活用シーン

  1. 01Web ページに CSS アートの動きを追加
  2. 02月、太陽、山の要素を選択
  3. 03降雪数やアニメーション状態を調整
  4. 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 を基盤とする、純粋な CSS アートのカスタム要素 15 個です。各要素は自己完結型の 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 が使えます。

プロパティ型デフォルト説明
sizeString'md'サイズのバリエーション。art-{name}-{size} CSS クラスに対応します(sm、md、lg)

要素固有のプロパティ:

要素追加プロパティ
el-dm-art-moonvariant(String)、glow(Boolean)
el-dm-art-mountainvariant(String)
el-dm-art-sunvariant(String)、rays(Boolean)
el-dm-art-snowcount(Number)、unicode(Boolean)、fall(Boolean)
el-dm-art-circular-gallerytitle(String)、count(Number)
el-dm-art-synthwave-starfieldpaused(Boolean)
el-dm-art-gemini-inputplaceholder(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 ブロックより前に記述され、正規表現のマッチ対象にならないため、除去処理後も保持されます。

参考資料

コメント