見出し画像

emotion の使い方

1. emotion

emotion」はJavaScriptでCSSを記述するためのライブラリです。
「emotion」を使用方法は2つあります。

・Framework Agnostic
・React

今回は、「React」を使います。

2. emotionのインストール

Reactのプロジェクトを作成後、以下のコマンドで「emotion」をインストールします。

$ npm install --save @emotion/core

3. はじめてのemotionのコード

はじめての「emotion」のコードは次のとおりです。
ホバーで文字色が変更するスタイルを指定しています。

// このコメントでJSXに変換するようにBabelに指示
/** @jsx jsx */
import { css, jsx } from '@emotion/core';

const hoverStyle = css({
  padding: '32px',
  backgroundColor: 'hotpink',
  fontSize: '24px',
  borderRadius: '4px',
  "&:hover": {
    color: 'white'
  },
});

function App() {
  return (
    <div css={hoverStyle}>ホバーで色変更</div>
  );
};

export default App;

「@emotion/core」のインポートの上に「/** @jsx jsx */」という「JSX Pragma」を付加することで、コンパイル時にJSXに変換しています。

/** @jsx jsx */
import { css, jsx } from '@emotion/core';

CSSのスタイルセットは次のように定義します。

const hoverStyle = css({
  padding: '32px',
  backgroundColor: 'hotpink',
  fontSize: '24px', 
  borderRadius: '4px',
  "&:hover": {
    color: 'white'
  },
});

定義したスタイルを「css={スタイル}」で指定することができます。

<div css={hoverStyle}>ホバーで色変更</div>


いいなと思ったら応援しよう!