← 動的パーツギャラリーへ戻る

パーツ番号 11-02-12 ・ JavaScript使用

カラーテーマスウォッチピッカー

スウォッチを選ぶとミニプレビューのアクセントカラーが即座に切り替わります。WordPressのテーマカスタマイザーやカラー設定UIのイメージ確認に使えます。

js

プレビュー

ソースコード

HTML

<div class="d11-02-12-wrap">
          <div class="d11-02-12-preview">
            <div class="d11-02-12-bar"></div>
            <div class="d11-02-12-body">
              <span class="d11-02-12-chip">タグ</span>
              <button type="button" class="d11-02-12-btn">ボタン</button>
            </div>
          </div>
          <div class="d11-02-12-swatches">
            <button type="button" class="d11-02-12-sw is-on" style="--c:#5b6ef5" data-c="#5b6ef5" aria-label="インディゴ"></button>
            <button type="button" class="d11-02-12-sw" style="--c:#f43f5e" data-c="#f43f5e" aria-label="ローズ"></button>
            <button type="button" class="d11-02-12-sw" style="--c:#22c07d" data-c="#22c07d" aria-label="グリーン"></button>
            <button type="button" class="d11-02-12-sw" style="--c:#f59e0b" data-c="#f59e0b" aria-label="アンバー"></button>
          </div>
        </div>

CSS

.d11-02-12-wrap{width:230px}
        .d11-02-12-preview{--accent:#5b6ef5;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.12);background:#fff;margin-bottom:14px}
        .d11-02-12-bar{height:10px;background:var(--accent);transition:background .3s}
        .d11-02-12-body{padding:16px;display:flex;align-items:center;gap:10px}
        .d11-02-12-chip{font-size:11px;padding:4px 10px;border-radius:999px;background:#eef0fe;color:var(--accent);font-weight:700;transition:.3s}
        .d11-02-12-btn{margin-left:auto;border:0;border-radius:8px;padding:8px 16px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:background .3s}
        .d11-02-12-swatches{display:flex;gap:10px;justify-content:center}
        .d11-02-12-sw{width:26px;height:26px;border-radius:50%;background:var(--c);border:2px solid transparent;cursor:pointer;transition:transform .2s}
        .d11-02-12-sw.is-on{border-color:#26264a;transform:scale(1.15)}

JavaScript

(function(){
        var root=document.querySelector('#item-11-02-12 .d11-02-12-wrap');if(!root)return;
        var preview=root.querySelector('.d11-02-12-preview'),sws=root.querySelectorAll('.d11-02-12-sw');
        sws.forEach(function(sw){
          sw.addEventListener('click',function(){
            sws.forEach(function(x){x.classList.remove('is-on');});
            sw.classList.add('is-on');
            preview.style.setProperty('--accent',sw.dataset.c);
          });
        });
      })();

クラス名 .d11-02-12 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。