Миксины (mixins)

Раздел содержит функции, которые можно применять для стилизации компонент.

addFocus

Добавляет фокусную рамку к компоненту через псевдоэлемент ::before. Рамка реализована через CSS outline, что исключает влияние на scroll-область контейнера.

Параметры

ПараметрТипПо умолчаниюОписание
outlineSizestring'0.125rem'Толщина фокусной рамки
outlineOffsetstring'0.125rem'Отступ от элемента: отрицательное — рамка внутри , положительное — снаружи
outlineColorstring'var(--text-accent)'Цвет фокусной рамки
outlineRadiusstring'30px'Скругление углов фокусной рамки
hasTransitionbooleantrueАнимировать появление рамки
customFocusRulesstringПереопределяет стили состояния фокуса
import styled from 'styled-components';
import { addFocus } from '@salutejs/sdds-serv';

const FocusableCard = styled.div`
${addFocus({
outlineSize: '0.125rem',
outlineOffset: '0.125rem',
outlineRadius: '0.5rem',
outlineColor: 'var(--text-accent)',
})}
`;

applyPaper

Позволяет создать базовый стиль подложки для любого блока, со следующим набором свойств, значения которых доступны из темы sdds_serv:

  • backgroundColor - отвечает за цвет подложки в котором можно выбрать токены цветов и градиентов;
  • borderRadius - отвечает за скругление углов блока;
  • shadow - отвечает за применение стилей теней для блока;
  • styles - отвечает за все доступные css свойства.
import { applyPaper } from '@salutejs/sdds-serv';

<div
style={applyPaper({
backgroundColor: 'surfaceAccent',
borderRadius: 'borderRadiusM',
shadow: 'shadowDownHardM',
styles: {
color: 'white',
width: '10rem',
height: '10rem',
},
})}
>
Test card
</div>

addScrollbar

caution

Стилизация системного scrollbar возможна только в браузерах: Safari, Chrome и на базе Chromium!

Позволяет изменить внешний вид системного scrollbar согласно цветовым токенам темы.

import { addScrollbar } from '@salutejs/sdds-serv';

type Size = 's' | 'm';

const ScrollbarContainer = styled.div`
${addScrollbar('s')};
`;

<ScrollbarContainer>
{ children }
</ScrollbarContainer>