Open amotarao opened 4 years ago
https://vue-loader-v14.vuejs.org/ja/features/scoped-css.html
現状 scss を利用するコンポーネントがほとんど
<style>
に scoped をつけると、ビルド時コンポーネントごとに全DOMに data-v-hogehoge
属性が自動付与される
同じクラス名でも別コンポーネントであれば data-v-hogehoge
が異なるため、スタイルが上書きされることがなくなる
<template>
<p class="example">EXAMPLE</p>
</template>
<style lang="scss" scoped>
.example {
// style
}
</style>
https://vue-loader-v14.vuejs.org/ja/features/css-modules.html
簡単に言えばセレクタを変数化する ビルド時にクラス名が被らないように変換される
js からのアクセスも可能だが、 $style.
が必須
<template>
<p :class="$style.example">EXAMPLE</p>
</template>
<style lang="scss" module>
.example {
// style
}
</style>
global な style が書かれている箇所が分散している
ほぼ同じ見た目なのにスタイルが別々に書かれている箇所がある デザイン変更時に漏れが発生する可能性もあるので、まとめたい
一旦、個人的に気になる部分を列挙しました ほかに CSS 関連で気になることがあれば是非コメントをお願いします
- 同じスタイルをまとめる 各ページ Heading
見出しのコンポーネントを統一するの下記PRでバグ修正に伴いやっております〜 https://github.com/tokyo-metropolitan-gov/covid19/pull/658
scoped css と css modules について 検討材料になりそうな情報
margin, paddingはあちこちに定義が分散、かつピクセル値が奇数だったりすると体裁が整わなかったりするので、 Vuetifyが提供しているHelper Classを使うと良さそうですー Spacing - Vuetify
font-sizeの指定が@include font-size(<number>)
、px
、rem
、vw
それぞれ存在し、実装者によって流儀が異なっているので、@include font-size(<number>)
に合わせたい。
引数の数値はなんらかの規則性をもたせたり(現状は16 = 1remであり、上記のSpacing Helper Classに沿うなら12, 20, 24など4の倍数が好ましい?)、指定できるサイズを数パターンにしぼりたい。
まず全体に関わるCSSの課題をまとめたいです
改善詳細 / Details of Improvement
個人的に気になるものは上記3つ、それぞれの詳細は下記 他に気になることがあればコメントをお願いします!