Skip to content

Commit 1f23295

Browse files
committed
Create ScrollView component (#53)
1 parent de1ad75 commit 1f23295

File tree

20 files changed

+1244
-20
lines changed

20 files changed

+1244
-20
lines changed

src/demo/pages/DemoContainer.jsx

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
Row,
3737
RowEnd,
3838
RowStart,
39+
ScrollView,
3940
SelectField,
4041
Table,
4142
TextField,
@@ -1897,6 +1898,141 @@ class DemoContainer extends React.Component {
18971898
/>
18981899
)}
18991900
/>
1901+
<h3 id="ui-components-scrollview" className="typography-size-4 mb-6">Scroll View</h3>
1902+
<p>
1903+
You should always enable arrows in horizontal mode when scrollbar is disabled.
1904+
Otherwise users without horizontal-scrolling-enabled device (like an old-school mouse)
1905+
might not be able to access your content.
1906+
</p>
1907+
<Documentation
1908+
name="Vertical Scroll View"
1909+
component={(
1910+
<div style={{ height: '200px' }}>
1911+
<ScrollView>
1912+
<Placeholder
1913+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc."
1914+
/>
1915+
</ScrollView>
1916+
</div>
1917+
)}
1918+
/>
1919+
<Documentation
1920+
name="Horizontal Scroll View with custom shadow color and size"
1921+
component={(
1922+
<ScrollView
1923+
direction="horizontal"
1924+
shadowColor={{
1925+
alpha: 0.75,
1926+
blue: 139,
1927+
green: 119,
1928+
red: 0,
1929+
}}
1930+
shadowSize="80px"
1931+
>
1932+
<div style={{ whiteSpace: 'nowrap' }}>
1933+
<Placeholder
1934+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo."
1935+
/>
1936+
</div>
1937+
</ScrollView>
1938+
)}
1939+
/>
1940+
<Documentation
1941+
name="Horizontal Scroll View with optional arrows and disabled scrollbar"
1942+
component={(
1943+
<ScrollView arrows direction="horizontal" scrollbar={false} shadowSize="3.5rem">
1944+
<div style={{ whiteSpace: 'nowrap' }}>
1945+
<Placeholder
1946+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo."
1947+
/>
1948+
</div>
1949+
</ScrollView>
1950+
)}
1951+
/>
1952+
<Documentation
1953+
name="Horizontal Scroll View with customised shadows, arrows and scroll step"
1954+
component={(
1955+
<ScrollView
1956+
arrows
1957+
arrowsColor="white"
1958+
arrowsScrollStep={300}
1959+
customNextArrow={(
1960+
<span
1961+
style={{
1962+
fontSize: '1.5rem',
1963+
fontWeight: 'bold',
1964+
position: 'relative',
1965+
textShadow: '0 0 0.4em black',
1966+
top: '-0.05em',
1967+
}}
1968+
>
1969+
1970+
</span>
1971+
)}
1972+
customPrevArrow={(
1973+
<span
1974+
style={{
1975+
fontSize: '1.5rem',
1976+
fontWeight: 'bold',
1977+
position: 'relative',
1978+
textShadow: '0 0 0.4em black',
1979+
top: '-0.05em',
1980+
}}
1981+
>
1982+
1983+
</span>
1984+
)}
1985+
direction="horizontal"
1986+
scrollbar={false}
1987+
shadowColor={{
1988+
alpha: 0.75,
1989+
blue: 0,
1990+
green: 0,
1991+
red: 0,
1992+
}}
1993+
shadowSize="5rem"
1994+
>
1995+
<div style={{ whiteSpace: 'nowrap' }}>
1996+
<Placeholder
1997+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo."
1998+
/>
1999+
</div>
2000+
</ScrollView>
2001+
)}
2002+
/>
2003+
<Documentation
2004+
name="Vertical Scroll View with completely custom shadows and disabled scrollbar"
2005+
component={(
2006+
<div style={{ height: '200px' }}>
2007+
<ScrollView
2008+
customStartShadowStyle={{
2009+
background: 'radial-gradient(farthest-side at center top, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.05) 60%, rgba(0, 0, 0, 0.02) 85%, rgba(0, 0, 0, 0) 100%)',
2010+
}}
2011+
customEndShadowStyle={{
2012+
background: 'radial-gradient(farthest-side at center bottom, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.05) 60%, rgba(0, 0, 0, 0.02) 85%, rgba(0, 0, 0, 0) 100%)',
2013+
}}
2014+
scrollbar={false}
2015+
shadowSize="40px"
2016+
>
2017+
<Placeholder
2018+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc."
2019+
/>
2020+
</ScrollView>
2021+
</div>
2022+
)}
2023+
/>
2024+
<Documentation
2025+
name="Vertical Scroll View with arrows and disabled scrollbar"
2026+
component={(
2027+
<div style={{ height: '200px' }}>
2028+
<ScrollView arrows scrollbar={false} shadowSize="3.5rem">
2029+
<Placeholder
2030+
text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc."
2031+
/>
2032+
</ScrollView>
2033+
</div>
2034+
)}
2035+
/>
19002036
<h3 id="ui-components-selectfield" className="typography-size-4 mb-6">Select Field</h3>
19012037
<Documentation
19022038
name="Select field variants"

src/demo/pages/navigation.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ export default [
101101
link: '#ui-components-radio',
102102
title: 'Radio',
103103
},
104+
{
105+
link: '#ui-components-scrollview',
106+
title: 'Scroll View',
107+
},
104108
{
105109
link: '#ui-components-selectfield',
106110
title: 'Select Field',

src/lib/components/ui/Alert/Alert.scss

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import '../../../styles/tools/offset';
2+
@import '../../../styles/tools/reset';
23
@import 'mixins';
34

45
.root {
@@ -11,7 +12,6 @@
1112
border-radius: $alert-border-radius;
1213
}
1314

14-
.close,
1515
.icon,
1616
.message {
1717
padding: $alert-padding;
@@ -42,14 +42,11 @@
4242
}
4343

4444
.close {
45+
@include reset-button();
46+
47+
padding: $alert-padding;
4548
font-size: map-get($typography-size-values, 3);
4649
line-height: 1;
47-
border: 0;
48-
background: none;
49-
box-shadow: none;
50-
appearance: none;
51-
user-select: none;
52-
cursor: pointer;
5350
}
5451

5552
.closeSign {

src/lib/components/ui/Modal/Modal.scss

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import '../../../styles/tools/offset';
2+
@import '../../../styles/tools/reset';
23
@import 'theme';
34
@import 'variables';
45

@@ -32,16 +33,12 @@
3233
}
3334

3435
.close {
36+
@include reset-button();
37+
3538
padding: offset(1) offset(2);
3639
font-size: map-get($typography-size-values, 3);
3740
line-height: 1;
3841
color: inherit;
39-
border: 0;
40-
background: none;
41-
box-shadow: none;
42-
appearance: none;
43-
user-select: none;
44-
cursor: pointer;
4542
}
4643

4744
.body {

0 commit comments

Comments
 (0)