Skip to content

ショートカット

ショートカットは、Windi CSSにインスパイアされた、複数のルールを1つの短縮形に組み合わせる機能です。

使用方法

ts
shortcuts: {
  // 複数のユーティリティへのショートカット
  'btn': 'py-2 px-4 font-semibold rounded-lg shadow-md',
  'btn-green': 'text-white bg-green-500 hover:bg-green-700',
  // 単一のユーティリティエイリアス
  'red': 'text-red-100',
}

単純なマッピングに加えて、UnoCSSでは動的なショートカットを定義することもできます。

ルールと同様に、動的ショートカットはRegExpマッチャーとハンドラー関数の組み合わせです。

ts
shortcuts: [
  // オブジェクトスタイルも使用可能
  {
    btn: 'py-2 px-4 font-semibold rounded-lg shadow-md',
  },
  // 動的ショートカット
  [/^btn-(.*)$/, ([, c]) => `bg-${c}-400 text-${c}-100 py-2 px-4 rounded-lg`],
]

これにより、btn-greenbtn-redを使用して以下のCSSを生成できます:

css
.btn-green {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  --un-bg-opacity: 1;
  background-color: rgb(74 222 128 / var(--un-bg-opacity));
  border-radius: 0.5rem;
  --un-text-opacity: 1;
  color: rgb(220 252 231 / var(--un-text-opacity));
}
.btn-red {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  --un-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--un-bg-opacity));
  border-radius: 0.5rem;
  --un-text-opacity: 1;
  color: rgb(254 226 226 / var(--un-text-opacity));
}

Released under the MIT License.