Utils
animatedScrollToX
/ animatedScrollToY
Плавная прокрутка по оси X и Y.
import React from 'react';
import { animatedScrollToX } from '@salutejs/plasma-b2c';
const ScrollComponent: React.FC = ({ children }) => {
const ref = React.useRef(null);
React.useLayoutEffect(() => {
if (ref.current) {
// Плавный скролл на 400px после первого рендера компонента
animatedScrollToX(ref.current, 400);
}
}, []);
return <div ref={ref}>{children}</div>;
};
convertRoundnessMatrix
По заданному шаблону-матрице выводит значения для border-radius
.
Значение символов: r
- радиус стандартный, h
- радиус округлый (вычисляется из высоты).
import styled from 'styled-components';
import { convertRoundnessMatrix } from '@salutejs/plasma-b2c';
// Выведет значение для border-radius, равное '1em 2em 2em 1em'
const Box = styled.div`
border-radius: ${convertRoundnessMatrix('r h h r', '1em', '2em')};
`;
mediaQuery
Обертка над css media query
с заранее определенными Breakpoints.
Для корректной работы на разных поверхностях, необходимо указывать второй параметр
deviceScale
.
import styled, { css } from 'styled-components';
import { mediaQuery, breakpoints } from '@salutejs/plasma-b2c';
// Определяем поверхность
const deviceScale = 2;
// Блок Box примет красный цвет фона на больших экранах
const Box = styled.div`
${mediaQuery('XL', deviceScale)(css`
background-color: red;
`)};
`;
// Возможно использование массива `breakpoints`, в котором перечислен список разрешений
const colors = {
xl: 'azure',
lg: 'aliceblue',
md: 'aquamarine',
sm: 'cadetblue'
};
const Text = styled.span`
${breakpoints.map((breakpoint) =>
mediaQuery(breakpoint)(css`
color: ${colors[breakpoint]};
`)
)}
`;