クライアントが最小数の変数でサイトの配色を更新できるように、LESSCSSで「テーマエンジン」を開発しようとしています。現在、デフォルトセットを割り当てている変数ファイルがあり、ユーザー入力の数を短縮するために、明るくする機能と暗くする機能を頻繁に利用しています。
// snippet 1
@grayLight: #999999;
@grayLighter: darken(@grayLight, 10%);
明るく/暗くする機能を変数として割り当てる方法はありますか?このように、トーンのコントラスト(暗い/明るいまたは明るい/暗い)を指定するだけで済みます。
// snippet 2 (does not work)
@contrastVerb: darken;
@linkColorHover: @contrastVerb(@linkColor, 10%);//#FFA500;
Javascriptブラケット表記を使用して、関数リクエストを呼び出してみました。
// snippet 3 (does not work)
@linkColorHover: `window[@contrastVerb]`(@linkColor, 10%);//#FFA500;
オプションはパターンマッチングです:
// snippet 4
@tone: light;
.linkColor(light, @color){
color: lighten(@color, 10%);
}
.linkColor(dark, @color){
color: darken(@color, 10%);
}
.linkColor(@tone, #f17900);
ただし、スニペット4は、スニペット2または3よりもはるかに冗長であり、多くの余分なコードが生成されます。
前もって感謝します!