diff --git a/src/lib/providers/prime-preset/tokens/components/togglebutton.ts b/src/lib/providers/prime-preset/tokens/components/togglebutton.ts index 228d2d39..7052e804 100644 --- a/src/lib/providers/prime-preset/tokens/components/togglebutton.ts +++ b/src/lib/providers/prime-preset/tokens/components/togglebutton.ts @@ -1,3 +1,11 @@ +/** + * Кастомная CSS-стилизация для компонента p-togglebutton. + * Подключается в map-tokens.ts: `import { togglebuttonCss } from './tokens/components/togglebutton'` + * + * Высота у всех размеров задаётся явно из размерной лестницы дизайна + * (`extend.*.iconOnlyWidth` = 32/40/56/64px). Без этого высота текстовой кнопки выводилась + * из паддинга и расходилась с icon-only на 2–6px, а внутри select-button — ещё и с группой. + */ export const togglebuttonCss = ({ dt }: { dt: (token: string) => string }): string => ` /* ─── Типографика ─── */ @@ -7,6 +15,20 @@ export const togglebuttonCss = ({ dt }: { dt: (token: string) => string }): stri line-height: ${dt('fonts.lineHeight.500')}; } +/* ─── Высота по размерам: одна лестница для текстовых и icon-only ─── */ +.p-togglebutton.p-component { + height: ${dt('togglebutton.extend.iconOnlyWidth')}; +} +.p-togglebutton.p-togglebutton.p-component.p-togglebutton-sm { + height: ${dt('togglebutton.extend.extSm.iconOnlyWidth')}; +} +.p-togglebutton.p-togglebutton.p-component.p-togglebutton-lg { + height: ${dt('togglebutton.extend.extLg.iconOnlyWidth')}; +} +.p-togglebutton.p-togglebutton.p-component.p-togglebutton-xlarge { + height: ${dt('togglebutton.extend.extXlg.iconOnlyWidth')}; +} + /* ─── Hover unchecked ─── */ .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover { border-color: ${dt('togglebutton.extend.hoverBorderColor')};