「CSS Modules」or「Scoped CSS」or「Styled Component」

BEMやMCSS、SMACSSとかはもう古い。

といっても、正直まだあまり理解指定ない。とりあえずStyled Componentが今人気ということは聞いた。

そしてどれもvueやreactで利用する。

CSS Modules

  • vue ファイルで<style module> と記載。
  • 装飾したい対象に :class=”$style.class_name” とclass名を記載。
  • class=“component_title_4WFpS” という指定になって唯一のスタイルとなる。
  • 衝突は発生しづらい

Scoped CSS

  • vue-loaderの機能
  • 指定したcssにscopeがつくため、影響範囲が狭まる
  • vue ファイルで<style scoped> と記載する。
  • スタイルが全て .title[data-v-298322f1] という形の指定になりスコープが絞られる。
  • デメリット
    • 親コンポーネントが子コンポーネントと同じクラス名を使うと、衝突が起きる可能性あり。
    • グローバルに定義されたスタイルに影響される

Styled Component

  • CSS in JSのライブラリ
  • npm install styled-components
  • シンプルにコーディングできる
  • <Button primary></Button>
  • ローカルスコープ

Fatal error: Uncaught Error: Call to undefined function set_post_views() in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php:658 Stack trace: #0 /home/jszk/desnote.com/public_html/wpjs/wp-includes/template-loader.php(78): include() #1 /home/jszk/desnote.com/public_html/wpjs/wp-blog-header.php(19): require_once('/home/jszk/desn...') #2 /home/jszk/desnote.com/public_html/index.php(17): require('/home/jszk/desn...') #3 {main} thrown in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php on line 658