CSS 隣接セレクタ(隣接兄弟結合子)を活用すると、JavaScript のみで制御するよりもスマートな atoms を作ることができます。また、JavaScript の処理を削減することが出来ます。 【本稿サンプル】https://github.com/takefumi-yoshii/atoms-example 装飾は「状態管理」に依存させない 以下は関連記事をベースに作った Component です。ref forwarding が何故必要かは、そちらの記事を参照してください。 label 要素に囲まれており、状態をもたない input 要素を保持しているが、type は決まっていない Props で「3種の形状切り替え」が可能("checkbox" | "radio" | "toggle") import React from "react"; import styles from