ショートカット
UnoCSS が提供するショートカット機能は Windi CSS のものと似ています。
ショートカット
ショートカットは、複数のルールを1つの略記にまとめることができ、Windi CSS に触発されています。
使用法
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 では動的なショートカットを定義することもできます。
Rules と同様に、動的ショートカットはマッチャーの RegExp とハンドラ関数の組み合わせです。
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-green と btn-red を使用して、以下の 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));
}
© 2021–PRESENT Anthony Fu https://github.com/antfu
※このページは Nuxt.js 公式ドキュメントの翻訳ページです。
公式ドキュメントの該当ページはこちら:
#