本日1件のお問い合わせがありました。

✉️FIELDにお問い合わせ

デザイン・フロントエンドITスクール

文字の白抜きをやってくれるjsライブラリ作りました。

作り方は簡単です。

まずはこちらのコードを
shironuki.jsとして保存してください

    document.querySelectorAll('[shironuki-style]').forEach(el => {
      el.style.fontSize = '50px';
      el.style.color = el.style.color || 'white';

      const parts = el.getAttribute('shironuki-style').split('-');
      const styleType = parts[0];
      const thickness = parseInt(parts[1], 10);
      const colors = parts[2].split('|');

      let shadow;

      switch (styleType) {
        case 'simple':
          shadow = `${-thickness}px ${-thickness}px 0 ${colors[0]}, ${thickness}px ${-thickness}px 0 ${colors[0]}, ${-thickness}px ${thickness}px 0 ${colors[0]}, ${thickness}px ${thickness}px 0 ${colors[0]}`;
          break;
        case 'blur':
          shadow = `0 0 ${thickness}px ${colors[0]}`;
          break;
        case 'multi':
          shadow = colors.map((c, i) => `${i + 1}px ${i + 1}px 0 ${c}`).join(',');
          break;
        case 'glow':
          shadow = `0 0 ${thickness / 4}px ${colors[0]}, 0 0 ${thickness / 2}px ${colors[0]}, 0 0 ${thickness}px ${colors[0]}, 0 0 ${thickness * 1.5}px ${colors[0]}`;
          break;
        case 'dotted':
          shadow = `${thickness}px ${thickness}px 0 ${colors[0]}, -${thickness}px -${thickness}px 0 ${colors[0]}, ${thickness}px -${thickness}px 0 ${colors[0]}, -${thickness}px ${thickness}px 0 ${colors[0]}, 0px ${thickness * 2}px 0 ${colors[0]}, ${thickness * 2}px 0px 0 ${colors[0]}, -${thickness * 2}px 0px 0 ${colors[0]}, 0px -${thickness * 2}px 0 ${colors[0]}`;
          break;
        case 'elegant':
          shadow = `${thickness}px ${thickness}px ${thickness}px ${colors[0]}`;
          el.style.fontFamily = 'Times New Roman, serif';
          break;
        case 'bold':
          shadow = `${-thickness}px ${-thickness}px 0 ${colors[0]}, ${thickness}px ${-thickness}px 0 ${colors[0]}, ${-thickness}px ${thickness}px 0 ${colors[0]}, ${thickness}px ${thickness}px 0 ${colors[0]}`;
          el.style.fontWeight = 'bold';
          break;
        default:
          shadow = `1px 1px ${thickness}px ${colors[0]}`;
      }

      el.style.textShadow = shadow;
    });

そしてHTML側で<script src=”shironuki.js”></script>で呼び出してください。

そうすると
白抜きにしたい文字に対して、

なんと
<div shironuki-style=”glow-20-purple”>光る紫白抜き</div>
とhtmlの属性に 白抜きスタイル=”種類,太さ,色”と書くだけで白抜きができます。

実際に白抜きしたものがこれになります。

動的白抜き文字バリエーション(新しい統一ロジック)

シンプルな縁取り

シンプル白抜き

太い縁取り

太い白抜き

ぼかし縁取り

ぼかし白抜き

色付き縁取り(黄+青)

色付き白抜き

多層縁取り(赤・青・黒)

多層白抜き

グローエフェクト(赤)

光る赤白抜き

グローエフェクト(青)

光る青白抜き

グローエフェクト(緑)

光る緑白抜き

グローエフェクト(紫)

光る紫白抜き

点状縁取り

点状白抜き

信頼できる白抜き

信頼できる白抜き

エレガントな白抜き

エレガントな白抜き

かなり太字の白抜き

かなり太字の白抜き

めちゃめちゃ簡単にできます。

白抜きの種別や色などどういう仕様かというと

基本的な使い方

白抜き効果を実現したい要素に、次の形式の属性を追加します。

shironuki-style="[スタイル]-[太さ]-[色]"

スタイルの種類

  • simple: シンプルな縁取り
  • blur: ぼかし効果
  • glow: 光る効果
  • multi: 複数色の多層縁取り
  • dotted: 点状の縁取り
  • elegant: エレガントな細い影
  • bold: 太い縁取り

太さの指定

数値で影や縁取りの太さを指定します。数値が大きいほど効果が強くなります。

色の指定方法

CSSの色名またはカラーコードで指定します。複数の色を使用する場合は、|(パイプ記号)で区切ります。

具体的な記述例

シンプルな縁取り

<div shironuki-style="simple-1-black">シンプル白抜き</div>

多層縁取り(複数色)

<div shironuki-style="multi-3-black|red|blue">多層白抜き</div>

グローエフェクト(光る効果)

<div shironuki-style="glow-20-red">光る赤白抜き</div>

導入方法

以下のスクリプトをHTMLに追加するだけで、ライブラリが使えるようになります。

<script src="shironuki.js"></script>

使用上の注意

  • このライブラリはテキスト要素のfont-sizecolorを自動的に調整します。
  • 色や太さの適切な指定によって多様な表現が可能です。

対応ブラウザ

Chrome、Firefox、Safari、Edgeなどの主要な最新ブラウザに対応しています。

ライセンス

MITライセンスで自由にご利用いただけます。

Yamamoto Yuya

プロフェッショナルとしての高いスキルと知識を持ち、誠実さと責任感を大切にする。常に向上心を持ち、新たな挑戦にも積極的に取り組む努力家。