Label роль
Описание
Label — это маленькая, утилитарная роль, используемая для таких вещей, как текст внутри компонентов или для очень маленького текста в основной части содержимого, например для подписей.
Кнопки, например, используют крупный стиль label.

Label роль должна обеспечивать быстрое и удобное чтение на небольших размерах, например на кнопках.

Музыкальный плеер, использующий label для таймкода

Navigation Bar использующий label в качестве текста к ссылкам
Примеры
font-size: 14px
line-height: 20px
letter-spacing: 0.1px
font-weight: 500
font-size: 12px
line-height: 16px
letter-spacing: 0.5px
font-weight: 500
font-size: 11px
line-height: 16px
letter-spacing: 0.5px
font-weight: 500
Компонент
Скопируйте и вставьте код в свой проект.
Можно сохранить компонент в файл src/shared/typography/Label.tsx:
import React from "react"import { cva, type VariantProps } from "class-variance-authority"import { cn } from "@/lib/cn"export const labelVariants = cva("text-inherit", {variants: {size: {large: "text-sm tracking-[0.1px] font-medium",medium: "text-xs tracking-[0.5px] font-medium",small: "text-[11px] leading-4 tracking-[0.5px] font-medium",},},defaultVariants: {size: "medium",},})interface LabelPropsextends VariantProps<typeof labelVariants>,React.HTMLAttributes<HTMLSpanElement> {}const Label = React.forwardRef<HTMLSpanElement, LabelProps>(({ children, size, className, ...props }, forwardedRef) => {return (<spanclassName={cn(labelVariants({ size }), className)}{...props}ref={forwardedRef}>{children}</span>)})Label.displayName = "Label"export default Label
Использование
import Label from "@/components/typography/Label"{/* Большой */}<Label size="large">Label large</Label>{/* Средний */}<Label size="medium">Label medium</Label>{/* или без указания size (medium по умолчанию) */}<Label>Label medium</Label>{/* Маленький */}<Label size="small">Label small</Label>
Кастомизация
Подходя к Label у меня закончились идеи по кастомизации, поэтому ловите набор разноцветных слов.