Компоненты
Наименование
Заголовок раздела «Наименование»Название компонента должно быть в нотациии PascalCase, т.е. все слова начинаются с заглавной буквы, без символов-разделителей.
Пример простого компонента
Заголовок раздела «Пример простого компонента»import { FC } from "react";import styles from "./product-card.module.scss";import clsx from "clsx";
interface ProductCardProps {  image: string;  title: string;  description: string;  variant?: "primary" | "secondary";  size?: "small" | "medium" | "large";}
/** * Карточка продукта */export const ProductCard: FC<ProductCardProps> = ({  title,  description,  image,  variant = "primary",  size = "medium",}) => {  return (    <div className={clsx(styles.card, styles[`v-${variant}`]) styles[`s-${size}`])}>      <div className={styles.container}>        <img src={image} className={styles.image} />        <h3 className={styles.title}>{title}</h3>        <p className={styles.description}>{description}</p>      </div>    </div>  );};Атрибуты HTML-элемента
Заголовок раздела «Атрибуты HTML-элемента»Для того, чтобы унаследовать все атрибуты HTML-элемента в пропсах компонента, рекомендуется использовать тип ComponentPropsWithRef.
import type { ComponentPropsWithRef } from "react";
interface ButtonProps extends ComponentPropsWithRef<"button"> {  variant?: "primary" | "secondary" | "tertiary";  size?: "small" | "middle" | "large";  ...}