cssでの色の管理
色の取得をしてくれるもの
基本的な書き方
css
通常
:root { --blue: #00f; } .className { color: var(--blue); /* 青色 */ }
scss
通常
$blue: #00f; .className { color: $blue; // 青色 }
パレットを使ってそこで管理
$palettes: ( 'default': ( 'blue': #00f ), 'footer': ( 'dark': #333 ) ); @function palette($palette-type, $palette-group: 'default') { @return map-get(map-get($palettes, $palette-group), $palette-type); }
.className { color: palette('blue'); // #00fが適応される }
参考 : https://www.nxworld.net/tips/color-palettes-using-sass-maps.html
stylus
通常
$blue = #00f .className color $blue // 青色
パレットを使ってそこで管理
COLOR_Palette = { default: { back: #fff, text: #323232, }, firstview: { back: #e7f3ff }, } MixinColorPalette(type, pattern = default) return COLOR_Palette[pattern][type]
.className color MixinColorPalette(text) // #323232 が適応される
参考 : https://chaika.hatenablog.com/entry/2016/11/30/114217
所感
長期的に運用していくものだと、コンテンツがどんどん増えていくと思う&色ベースで管理した方が事故が起こりにくいと思うので、
$palettes: ( 'blue': ( 'main': #2681e7, 'dark': #2c3e51 ), 'monotone': ( 'black': #333, 'white': #fff ) );
のような「色ベース」で管理した方が良いと思った。
逆に更新がほとんどされないもの(コーポレートサイトなど)だと コンテンツはそんなに増えていかない(増えたとしてもコンテンツ内で色を追加すればよい)&「〇〇の色は青」みたいな方が伝えやすいと思うので、
$palettes: ( 'default': ( 'text': #333 ), 'btn': ( 'main': #2681e7, 'blue': #0000ff, ), );
のような「コンテンツベース」で管理した方が良いと思った。