nextjsのプロジェクトでclass-variance-authorityを採用した

レビューは勉強になる 最近案件が立て込んでいるのは6月のまとめに書いたんだけど、結果いくつかのプロジェクトで実装ではなく、ただのレビューアーと化している。 実装がしたいって今まで強く思っていた。 実装が実力を伸ばす唯一の手段だと思っていたけど、レビューも真剣にやればすごい勉強になることに気が付いた。 というのもレビューするには、まずコードをしっかり読まなければならないし、知らないプラグインとの出会いがあり、それを調べることで相当勉強になる。 で、今回出会ったのが、class-variance-authorityというプラグイン。 class-variance-authorityとは?? 簡単に言うとvariantsを定義して条件分岐をわかりやすくするもの。 公式にあるbuttonコンポーネントの例がわかりやすい。 import React from "react"; import { cva, type VariantProps } from "class-variance-authority"; const button = cva("button", { variants: { intent: { primary: [ "bg-blue-500", "text-white", "border-transparent", "hover:bg-blue-600", ], secondary: [ "bg-white", "text-gray-800", "border-gray-400", "hover:bg-gray-100", ], }, size: { small: ["text-sm", "py-1", "px-2"], medium: ["text-base", "py-2", "px-4"], }, }, compoundVariants: [{ intent: "primary", size: "medium", class: "uppercase" }], defaultVariants: { intent: "primary", size: "medium", }, }); export interface ButtonProps extends React....

投稿日 · 2024-07-06 · 更新日 · 2024-07-07 · 1 分 · nove-b