ページ内ナビ
概要
styled-componentsはtagged template literalでReact componentへCSSを結び付け、生成class nameによるscope、propsに応じたdynamic style、theme、global style、SSRを提供するCSS-in-JS libraryです。client componentだけでなくserver componentやstreaming SSR、React Nativeも同じAPI familyで扱います。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
styled.elementでCSSとReact componentを一体化する
styled.button等でcomponentを定義し、pseudo selector、media query、nesting、keyframes等の通常のCSS表現をtemplate literal内で利用できます。
出典:[1]
props・ThemeProvider・css helperでvariantとdesign tokenを構成する
component propsからdynamic styleを生成し、ThemeProviderでdesign tokenを共有し、css helperで再利用可能なstyle blockを構成できます。
出典:[1]
向いている用途
component単位でCSSとvariantを管理するReact design systemに向く
class name namingやCSS file分割よりもcomponent abstractionを中心にstylingを整理し、themeやpropsでvariantを組み立てたいUI codebaseに適します。
出典:[1]
導入前の確認
6.5.3はReact 16.8以上・Node 16以上を要求する
package metadataはReact/React DOM >=16.8.0とNode >=16を要求します。React Nativeを使う場合はReact Native >=0.68.0もpeer条件です。
出典:[2]
6.5.3はTypeScriptのdata-*拡張時の型errorを修正するpatch release
6.5.3ではReact HTML propsへdata-* template-literal index signatureを追加したprojectで発生するTypeScript errorが修正されています。
出典:[3]
参考にした公式資料
- [1]styled-components 6.5.3 README(2026-10-05)
- [2]styled-components 6.5.3 package metadata(2026-10-05)
- [3]styled-components 6.5.3 release(2026-10-05)
- [4]styled-components MIT license(2026-10-05)
編集部からの補足
v6はTypeScript型をpackage内に含み、React Server Components/streaming SSRも対象にしています。既存v5 codebaseではmigration差分とruntime styling costを確認してください。
3ステップで試す
- 1
styled-components 6.5.3を固定して導入する
一時npm projectへstyled-componentsとReact peer dependencyを固定して導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/styled-components.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact styled-components@6.5.3 react@19.2.0 react-dom@19.2.0 - 2
package versionを確認する
review対象versionが導入されていることを確認します。
test "$(node -e "console.log(JSON.parse(require('fs').readFileSync('node_modules/styled-components/package.json')).version)")" = '6.5.3' - 3
styled・theme・css APIを確認する
browserを起動せず、component生成・shared style・themeの主要APIが利用可能であることを確認します。
test "$(node --input-type=module -e "import styled,{css,ThemeProvider} from 'styled-components'; console.log(Boolean(styled.div&&css&&ThemeProvider))")" = 'true'
成長
成長の推移 · 直近30日
41,099 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 3
- Open PR
- 12
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- react
- css-in-js
- styled-components
- css
- reactnative
- rsc
- Stars
- 41,099
- Forks
- 2,672
- Watchers
- 397
- Open Issues
- 12
- Contributors
- 345
- 所有者種別
- Organization
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/09/28
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Tailwind CSS97,773 Stars
共通タグ 3件 · 同じ言語
ユーティリティクラスをHTMLやコンポーネントで組み合わせ、必要なCSSをビルド時に生成する
TypeScript - Storybook91,200 Stars
共通タグ 3件 · 同じ言語
UI状態をstoryとして保存し、Docs・interaction test・AI toolへ再利用するfrontend workshop
TypeScript - Zustand58,786 Stars
共通タグ 3件 · 同じ言語
Reactの状態をproviderなしのhook storeで管理し、selectorで必要な部分だけ購読する
TypeScript - Expo52,566 Stars
共通タグ 3件 · 同じ言語
React NativeアプリをAndroid・iOS・Webへ一つのprojectから展開する
TypeScript - Motion33,834 Stars
共通タグ 3件 · 同じ言語
React・JavaScript・Vueでgestureやspring、layout transitionを含むWeb animationを構築する
TypeScript - Linaria12,350 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
CSS-in-JSのauthoring experienceを保ちつつ、styleをbuild時にstatic CSSへextractする
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。