以下のような美しいウェブサイトを作成するために
styled-componentsをダウンロードするには、以下を実行します
npm install styled-components
これだけで完了です。これであなたのアプリで使えるようになりました!(そう、ビルドステップは不要です👌)
可能な場合は、styled-components Babelプラグインを使用することをお勧めします(必須ではありません)。これにより、より判読しやすいクラス名、サーバーサイドレンダリングの互換性、より小さなバンドルなど、多くのメリットが得られます。
アプリケーション全体で使用できるシンプルで再利用可能な<Button />
コンポーネントを作成したいとします。通常のバージョンと、重要なボタン用の大きくてprimary
バージョンが必要です。レンダリングすると以下のようになります。(これはライブの例です。クリックしてみてください!)
まず、styled-componentsをインポートし、styled.button
を作成しましょう
import styled from 'styled-components' const Button = styled.button``
ここのButton
変数は、他のReactコンポーネントと同じように使用できるReactコンポーネントです。この珍しいバッククォート構文は、タグ付きテンプレートリテラルと呼ばれる新しいJavaScriptの機能です。
括弧を使って関数を呼び出すことができることはご存知でしょう? (myFunc()
) さて、バッククォートで関数を呼び出すこともできます!(タグ付きテンプレートリテラルの詳細)
もし今、私たちの素敵なコンポーネントを(他のコンポーネントのように: <Button />
)レンダリングすると、以下のようになります。
ボタンがレンダリングされました!しかし、これはあまり良いボタンではありませんね😕 これよりもっと良くできるはずです。少しスタイリングして、その中に隠された美しさを引き出してみましょう!
const Button = styled.button` background: transparent; border-radius: 3px; border: 2px solid #BF4F74; color: #BF4F74; margin: 0 1em; padding: 0.25em 1em; `
ご覧のとおり、styled-componentsを使用すると、JavaScriptで実際のCSSを記述できます。これは、メディアクエリ、すべての疑似セレクター、ネストなど、使用し愛しているCSSのすべての機能を使用できることを意味します(ただし、これらに限定されません)。
最後のステップは、プライマリボタンがどのように見えるかを定義する必要があることです。それを行うには、styled-components
から{ css }
をインポートし、コンポーネントのpropsが渡される関数をテンプレートリテラルに挿入します。
import styled, { css } from 'styled-components' const Button = styled.button<{ $primary?: boolean; }>` background: transparent; border-radius: 3px; border: 2px solid #BF4F74; color: '#BF4F74'; margin: 0 1em; padding: 0.25em 1em; ${props => props.$primary && css` background: '#BF4F74'; color: white; `}; `
ここでは、$primary
プロパティが設定されている場合に、コンポーネントにさらにcss
を追加し、この場合は背景と色を変更したいと述べています。
これで完了です!完成したコンポーネントを見てください。
いいね😍 これもライブ更新エディターなので、実際にstyled-componentsを操作する感覚を掴むために少し試してみてください!準備ができたら、ドキュメントを読んで、styled-componentsができるすべてのクールなことについて学んでください。