Skip to content

Commit db53d43

Browse files
authored
Feat/slider new (#959)
* feat: add new slider to unstable blocks
1 parent b3dfd03 commit db53d43

File tree

25 files changed

+1290
-1
lines changed

25 files changed

+1290
-1
lines changed

package-lock.json

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
"react-waypoint": "^10.1.0",
107107
"sanitize-html": "2.12.1",
108108
"snakecase-keys": "^5.1.0",
109+
"swiper": "^6.8.4",
109110
"typograf": "^6.14.0",
110111
"utility-types": "^3.10.0",
111112
"uuid": "^9.0.0"
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
@import '../../../../styles/mixins.scss';
2+
@import '../../../../styles/variables.scss';
3+
4+
$block: '.#{$ns}slider-new-block-arrow';
5+
6+
%flex {
7+
display: flex;
8+
align-items: center;
9+
justify-content: center;
10+
}
11+
12+
#{$block} {
13+
@include desktop-tablet-only();
14+
@extend %flex;
15+
16+
$root: &;
17+
18+
width: $sliderArrowSize;
19+
height: $sliderArrowSize;
20+
cursor: pointer;
21+
22+
&_type_left {
23+
#{$root}__icon-wrapper {
24+
transform: rotate(180deg);
25+
}
26+
}
27+
28+
&__button {
29+
@include reset-button-style();
30+
@include shadow();
31+
@extend %flex;
32+
33+
width: $sliderArrowSize;
34+
height: $sliderArrowSize;
35+
36+
color: var(--g-color-text-secondary);
37+
border-radius: 100%;
38+
background-color: var(--g-color-base-background);
39+
box-shadow: 0 4px 24px var(--pc-color-sfx-shadow), 0 2px 8px var(--pc-color-sfx-shadow);
40+
41+
transition: box-shadow 0.3s $ease-out-cubic, color 0.3s $ease-out-cubic;
42+
43+
@include focusable();
44+
}
45+
46+
&:hover {
47+
#{$root}__button {
48+
color: var(--g-color-text-primary);
49+
box-shadow: 0 2px 12px var(--pc-color-sfx-shadow), 0 4px 24px var(--pc-color-sfx-shadow);
50+
}
51+
}
52+
53+
&__icon-wrapper {
54+
@extend %flex;
55+
}
56+
57+
&__icon {
58+
position: relative;
59+
}
60+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import React from 'react';
2+
3+
import ToggleArrow from '../../../components/ToggleArrow/ToggleArrow';
4+
import {ClassNameProps} from '../../../models';
5+
import {block} from '../../../utils';
6+
import {i18n} from '../i18n';
7+
8+
import './Arrow.scss';
9+
10+
const b = block('slider-new-block-arrow');
11+
12+
export type ArrowType = 'left' | 'right';
13+
14+
export interface ArrowProps {
15+
type: ArrowType;
16+
onClick?: () => void;
17+
size?: number;
18+
}
19+
20+
const Arrow = ({type, onClick, className, size = 16}: ArrowProps & ClassNameProps) => (
21+
<div className={b({type}, className)}>
22+
<button className={b('button')} onClick={onClick} aria-label={i18n(`arrow-${type}`)}>
23+
<span className={b('icon-wrapper')}>
24+
<ToggleArrow
25+
size={size}
26+
type={'horizontal'}
27+
iconType="navigation"
28+
className={b('icon')}
29+
/>
30+
</span>
31+
</button>
32+
</div>
33+
);
34+
35+
export default Arrow;

0 commit comments

Comments
 (0)