@internetstiftelsen/styleguide 2.25.0 → 2.25.1-beta.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/molecules/form/Form.js +0 -8
  2. package/dist/molecules/form/index.js +1 -1
  3. package/dist/molecules/glider/glider-hero.js +28 -28
  4. package/dist/organisms/podcast/podcast.js +0 -8
  5. package/dist/organisms/timeline/timeline.js +17 -22
  6. package/dist/organisms/video-guide/VideoGuidePlayback.js +1 -47
  7. package/dist/organisms/video-guide/VideoGuideSubtitles.js +0 -12
  8. package/dist/organisms/video-guide/VideoGuideTimeline.js +5 -15
  9. package/package.json +1 -1
  10. package/src/app.js +0 -10
  11. package/src/app.scss +1 -0
  12. package/src/atoms/button/_button.scss +18 -0
  13. package/src/atoms/button/button.config.js +1 -1
  14. package/src/atoms/height-limiter/_height-limiter.scss +10 -0
  15. package/src/atoms/hr/hr.config.js +42 -0
  16. package/src/atoms/hr/readme.md +2 -0
  17. package/src/components.js +2 -0
  18. package/src/configurations/_extends.scss +10 -0
  19. package/src/configurations/_wordpress.scss +41 -0
  20. package/src/configurations/typography/_typography.scss +11 -1
  21. package/src/molecules/card/_card.scss +0 -8
  22. package/src/molecules/form/Form.js +0 -5
  23. package/src/molecules/form/index.js +1 -3
  24. package/src/molecules/glider/_glider-hero.scss +0 -8
  25. package/src/molecules/glider/glider-hero.js +28 -28
  26. package/src/molecules/modal/_modal.scss +79 -0
  27. package/src/molecules/modal/modal-graph.js +40 -0
  28. package/src/molecules/modal/modal.js +2 -0
  29. package/src/molecules/overview-navigation/_overview-navigation.scss +139 -0
  30. package/src/molecules/overview-navigation/overview-navigation.config.js +0 -0
  31. package/src/molecules/overview-navigation/overview-navigation.js +68 -0
  32. package/src/organisms/hero/_hero.scss +0 -1
  33. package/src/organisms/podcast/podcast.js +0 -8
  34. package/src/organisms/sections/_sections.scss +1 -1
  35. package/src/organisms/timeline/_timeline.scss +2 -2
  36. package/src/organisms/timeline/timeline.config.js +3 -3
  37. package/src/organisms/timeline/timeline.js +18 -23
  38. package/src/organisms/video-guide/VideoGuidePlayback.js +1 -47
  39. package/src/organisms/video-guide/VideoGuideSubtitles.js +0 -12
  40. package/src/organisms/video-guide/VideoGuideTimeline.js +5 -13
  41. package/src/organisms/video-guide/video-guide.config.js +12 -3
  42. package/src/pages/soi-report/soi-report.config.js +0 -0
  43. package/src/utilities/_gutter.scss +1 -1
  44. package/src/utilities/_margin.scss +1 -1
  45. package/dist/assets/js/Events.js +0 -80
  46. package/src/assets/js/Events.js +0 -47
@@ -14,10 +14,6 @@ var _lodash = require('lodash.template');
14
14
 
15
15
  var _lodash2 = _interopRequireDefault(_lodash);
16
16
 
17
- var _Events = require('../../assets/js/Events');
18
-
19
- var _Events2 = _interopRequireDefault(_Events);
20
-
21
17
  var _Button = require('../../atoms/button/Button');
22
18
 
23
19
  var _Button2 = _interopRequireDefault(_Button);
@@ -64,7 +60,6 @@ var Form = function () {
64
60
  };
65
61
 
66
62
  this.displayError = function (error) {
67
- _this.events.emit('error', error);
68
63
  _this.setLoading(false);
69
64
 
70
65
  if ('response' in error) {
@@ -136,8 +131,6 @@ var Form = function () {
136
131
 
137
132
  _this.success.classList.remove('is-hidden');
138
133
  _this.success.innerHTML = tmpl(json);
139
-
140
- _this.events.emit('success', json);
141
134
  };
142
135
 
143
136
  this.captchaCallback = function () {
@@ -161,7 +154,6 @@ var Form = function () {
161
154
  this.submit = new _Button2.default(this.element.querySelector('button[type="submit"]'));
162
155
  this.error = this.element.querySelector('[data-form-error]');
163
156
  this.success = this.element.querySelector('[data-form-success]');
164
- this.events = new _Events2.default();
165
157
 
166
158
  if (this.success) {
167
159
  var tpl = document.getElementById(this.success.getAttribute('data-form-success'));
@@ -10,6 +10,6 @@ var elements = document.querySelectorAll('[data-form]');
10
10
 
11
11
  if (elements.length) {
12
12
  elements.forEach(function (element) {
13
- element.form = new _Form2.default(element);
13
+ return new _Form2.default(element);
14
14
  });
15
15
  }
@@ -58,44 +58,44 @@ function initHeroGlider(node) {
58
58
  }, parseInt(autoplayDelay, 10));
59
59
  }
60
60
  }, 0);
61
- }
62
-
63
- document.querySelector('.js-glider-prev').addEventListener('click', function () {
64
- dataLayer.push({
65
- event: 'carousel',
66
- eventInfo: {
67
- category: 'carousel',
68
- action: 'click',
69
- label: 'arrow_left'
70
- }
71
- });
72
- });
73
-
74
- document.querySelector('.js-glider-next').addEventListener('click', function () {
75
- dataLayer.push({
76
- event: 'carousel',
77
- eventInfo: {
78
- category: 'carousel',
79
- action: 'click',
80
- label: 'arrow_right'
81
- }
61
+ } else {
62
+ document.querySelector('.js-glider-prev').addEventListener('click', function () {
63
+ dataLayer.push({
64
+ event: 'carousel',
65
+ eventInfo: {
66
+ category: 'carousel',
67
+ action: 'click',
68
+ label: 'arrow_left'
69
+ }
70
+ });
82
71
  });
83
- });
84
72
 
85
- [].forEach.call(gliderLinks, function (gliderLink) {
86
- gliderLink.addEventListener('click', function () {
87
- var linkTarget = gliderLink.href;
88
- console.log(linkTarget);
73
+ document.querySelector('.js-glider-next').addEventListener('click', function () {
89
74
  dataLayer.push({
90
75
  event: 'carousel',
91
76
  eventInfo: {
92
77
  category: 'carousel',
93
78
  action: 'click',
94
- label: linkTarget
79
+ label: 'arrow_right'
95
80
  }
96
81
  });
97
82
  });
98
- });
83
+
84
+ [].forEach.call(gliderLinks, function (gliderLink) {
85
+ gliderLink.addEventListener('click', function () {
86
+ var linkTarget = gliderLink.href;
87
+ console.log(linkTarget);
88
+ dataLayer.push({
89
+ event: 'carousel',
90
+ eventInfo: {
91
+ category: 'carousel',
92
+ action: 'click',
93
+ label: linkTarget
94
+ }
95
+ });
96
+ });
97
+ });
98
+ }
99
99
  }
100
100
 
101
101
  (0, _nodeAdded2.default)('.js-glider-hero', initHeroGlider);
@@ -100,14 +100,6 @@ document.body.addEventListener('click', function (e) {
100
100
  var playBtn = e.target.closest('.js-play-episode');
101
101
  if (playBtn) {
102
102
  e.preventDefault();
103
-
104
- // Clear old episodedata
105
- audio.currentTime = 0;
106
- timeupdate();
107
- audio.pause();
108
- sessionStorage.removeItem('episodeData');
109
-
110
- // Play new episode
111
103
  playEpisode(playBtn);
112
104
  }
113
105
  });
@@ -94,32 +94,27 @@ function isInViewport(element) {
94
94
  top += element.offsetTop;
95
95
  }
96
96
 
97
- return top < window.scrollY + window.innerHeight && top + height / 4 > window.scrollY;
97
+ return top < window.pageYOffset + window.innerHeight && top + height > window.pageYOffset;
98
98
  }
99
99
 
100
100
  function decadeIsVisible() {
101
101
  [].forEach.call(decadeSections, function (decadeSection) {
102
- // Don't trigger Decade Visible too fast to prevent dataLayer.push
103
- // to trigger while user is scrolled past a decade.
104
- var timeOut = 1000;
105
- var viewTimeout = setTimeout(function () {
106
- if (isInViewport(decadeSection) && !decadeSection.classList.contains('is-in-view')) {
107
- decadeSection.classList.add('is-in-view');
108
- var decadeId = decadeSection.id;
109
-
110
- dataLayer.push({
111
- event: 'timeline',
112
- eventInfo: {
113
- category: 'timeline',
114
- action: 'active_year',
115
- label: decadeId
116
- }
117
- });
118
- } else if (!isInViewport(decadeSection)) {
119
- decadeSection.classList.remove('is-in-view');
120
- clearTimeout(viewTimeout);
121
- }
122
- }, timeOut);
102
+ if (isInViewport(decadeSection) && !decadeSection.classList.contains('is-in-view')) {
103
+ decadeSection.classList.add('is-in-view');
104
+
105
+ var decade = decadeSection.id;
106
+
107
+ dataLayer.push({
108
+ event: 'timeline',
109
+ eventInfo: {
110
+ category: 'timeline',
111
+ action: 'active_year',
112
+ label: decade
113
+ }
114
+ });
115
+ } else if (!isInViewport(decadeSection)) {
116
+ decadeSection.classList.remove('is-in-view');
117
+ }
123
118
  });
124
119
  }
125
120
 
@@ -59,15 +59,6 @@ var VideoGuidePlayback = function () {
59
59
  _this.setForwardState(false);
60
60
 
61
61
  _this.video.currentTime = 0;
62
-
63
- _this.dataLayer.push({
64
- event: 'guided_tour',
65
- eventInfo: {
66
- category: 'guided_tour',
67
- action: 'guide_completed',
68
- label: window.location.href
69
- }
70
- });
71
62
  };
72
63
 
73
64
  this.onAbort = function () {
@@ -112,15 +103,6 @@ var VideoGuidePlayback = function () {
112
103
  if (activeCueIndex < cues.length - 1) {
113
104
  _this.video.currentTime = cues[activeCueIndex + 1].startTime + 0.01;
114
105
  _this.updateChapterState();
115
-
116
- _this.dataLayer.push({
117
- event: 'guided_tour',
118
- eventInfo: {
119
- category: 'guided_tour',
120
- action: 'player_click',
121
- label: 'Forward'
122
- }
123
- });
124
106
  }
125
107
  };
126
108
 
@@ -132,19 +114,9 @@ var VideoGuidePlayback = function () {
132
114
  if (activeCueIndex > 0) {
133
115
  _this.video.currentTime = Math.max(0, cues[activeCueIndex - 1].startTime + 0.01);
134
116
  _this.updateChapterState();
135
-
136
- _this.dataLayer.push({
137
- event: 'guided_tour',
138
- eventInfo: {
139
- category: 'guided_tour',
140
- action: 'player_click',
141
- label: 'Backward'
142
- }
143
- });
144
117
  }
145
118
  };
146
119
 
147
- this.dataLayer = window.dataLayer || [];
148
120
  this.video = video;
149
121
  this.playBtn = element.querySelector('.js-play-btn');
150
122
  this.playIcon = element.querySelector('.js-play-icon');
@@ -191,7 +163,7 @@ var VideoGuidePlayback = function () {
191
163
  var seconds = Math.floor(this.duration % 60);
192
164
  var formattedDuration = minutes + ':' + (seconds < 10 ? '0' : '') + seconds;
193
165
 
194
- this.totaltimeElement.innerText = formattedDuration;
166
+ this.totaltimeElement.innerText = formattedDuration + ' \u2013 ';
195
167
  }
196
168
  }, {
197
169
  key: 'sync',
@@ -227,30 +199,12 @@ var VideoGuidePlayback = function () {
227
199
  value: function setPlayActive() {
228
200
  this.pauseIcon.classList.remove('is-hidden');
229
201
  this.playIcon.classList.add('is-hidden');
230
-
231
- this.dataLayer.push({
232
- event: 'guided_tour',
233
- eventInfo: {
234
- category: 'guided_tour',
235
- action: 'player_click',
236
- label: 'Play'
237
- }
238
- });
239
202
  }
240
203
  }, {
241
204
  key: 'setPauseActive',
242
205
  value: function setPauseActive() {
243
206
  this.pauseIcon.classList.add('is-hidden');
244
207
  this.playIcon.classList.remove('is-hidden');
245
-
246
- this.dataLayer.push({
247
- event: 'guided_tour',
248
- eventInfo: {
249
- category: 'guided_tour',
250
- action: 'player_click',
251
- label: 'Pause'
252
- }
253
- });
254
208
  }
255
209
  }, {
256
210
  key: 'setForwardState',
@@ -32,20 +32,8 @@ var VideoGuideSubtitles = function () {
32
32
  this.toggleSubtitles = function () {
33
33
  _this.subtitlesBtn.classList.toggle('is-active');
34
34
  _this.subtitlesContainer.classList.toggle('is-visible');
35
-
36
- _this.dataLayer.push({
37
- event: 'guided_tour',
38
- eventInfo: {
39
- category: 'guided_tour',
40
- action: 'player_click',
41
- label: 'Subtitles'
42
- }
43
- });
44
-
45
- console.log(_this.dataLayer);
46
35
  };
47
36
 
48
- this.dataLayer = window.dataLayer || [];
49
37
  this.element = element;
50
38
  this.video = video;
51
39
  this.subtitlesBtn = element.querySelector('.js-subtitles-btn');
@@ -25,23 +25,14 @@ var VideoGuideTimeline = function () {
25
25
 
26
26
  if (activeCues.length > 0) {
27
27
  var activeCue = activeCues[0];
28
- var activePost = _this.posts.find(function (post) {
29
- return post.dataset.id === activeCue.text;
30
- });
31
-
32
- if (activePost) {
33
- _this.posts.forEach(function (post) {
34
- post.classList.remove('is-current');
35
- });
36
-
37
- activePost.classList.add('is-current');
38
- }
39
28
 
40
- _this.images.forEach(function (post) {
29
+ _this.posts.forEach(function (post) {
41
30
  if (post.dataset.id === activeCue.text) {
42
31
  post.classList.add('is-current');
43
32
 
44
- _this.createImageHeadline(activeCue, post);
33
+ if (post.classList.contains('js-timeline-image') && activeCue.id) {
34
+ _this.createImageHeadline(activeCue, post);
35
+ }
45
36
  } else {
46
37
  post.classList.remove('is-current');
47
38
  }
@@ -52,8 +43,7 @@ var VideoGuideTimeline = function () {
52
43
  this.element = element;
53
44
  this.video = video;
54
45
  this.container = element.querySelector('.js-timeline-posts');
55
- this.posts = Array.from(element.querySelectorAll('.js-timeline-post:not(.js-timeline-image)'));
56
- this.images = Array.from(element.querySelectorAll('.js-timeline-image'));
46
+ this.posts = Array.from(element.querySelectorAll('.js-timeline-post'));
57
47
  this.toggleBtn = element.querySelector('.js-show-timelineposts');
58
48
  this.headlineTpl = element.querySelector('[data-video-headline-tpl]');
59
49
  this.headlineCache = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetstiftelsen/styleguide",
3
- "version": "2.25.0",
3
+ "version": "2.25.1-beta.0.1",
4
4
  "main": "dist/components.js",
5
5
  "ports": {
6
6
  "fractal": "3000"
package/src/app.js CHANGED
@@ -73,13 +73,3 @@ const unsubscribeOpen = onOpen((el, id) => {
73
73
  });
74
74
 
75
75
  // Call unsubscribe to remove callback
76
-
77
- const demoForms = document.querySelectorAll('[data-form]');
78
-
79
- [].forEach.call(demoForms, (el) => {
80
- if ('form' in el) {
81
- el.form.events.on('success', (data) => {
82
- console.log('Form success', data);
83
- });
84
- }
85
- });
package/src/app.scss CHANGED
@@ -67,6 +67,7 @@ $namespace: '';
67
67
  @import 'molecules/glider/glider-course';
68
68
  @import 'molecules/glider/glider-hero';
69
69
  @import 'molecules/continue-video-guide/continue-video-guide';
70
+ @import 'molecules/overview-navigation/overview-navigation';
70
71
 
71
72
  // Organisms
72
73
  @import 'organisms/header/header';
@@ -317,6 +317,24 @@
317
317
  }
318
318
  }
319
319
 
320
+ @include m(ocean-light) {
321
+ box-shadow: 0 0 0 1px inset $color-ocean;
322
+ color: $color-ocean-light;
323
+
324
+ &:hover,
325
+ &:focus {
326
+ color: $color-ocean;
327
+ }
328
+
329
+ @include e(text) {
330
+ color: $color-cyberspace;
331
+ }
332
+
333
+ @include e(icon) {
334
+ fill: $color-cyberspace;
335
+ }
336
+ }
337
+
320
338
  @include m(jade) {
321
339
  color: $color-jade;
322
340
 
@@ -168,7 +168,7 @@ module.exports = {
168
168
  {
169
169
  name: 'Transparent with icon',
170
170
  context: {
171
- modifiers: ['transparent a-button--icon'],
171
+ modifiers: ['transparent'],
172
172
  text: 'Going home',
173
173
  icon: 'arrow-forwards',
174
174
  el: 'button'
@@ -20,6 +20,16 @@
20
20
  }
21
21
  }
22
22
 
23
+ @include m(white) {
24
+ @include e(inner) {
25
+ &.is-limited {
26
+ &::after {
27
+ background-image: linear-gradient(to bottom, rgba($color-snow, 0) 0%, rgba($color-snow, 1) 100%);
28
+ }
29
+ }
30
+ }
31
+ }
32
+
23
33
  @include e(btn) {
24
34
  display: flex;
25
35
  position: relative;
@@ -0,0 +1,42 @@
1
+ module.exports = {
2
+ status: 'ready',
3
+
4
+ context: {
5
+ color: null,
6
+ modifier: null,
7
+ },
8
+ variants: [
9
+ {
10
+ name: 'alignfull',
11
+ context: {
12
+ class: 'alignfull',
13
+ color: 'color-cyberspace',
14
+ modifier: 'alignfull',
15
+ }
16
+ },
17
+ {
18
+ name: 'alignwide',
19
+ context: {
20
+ class: 'alignwide',
21
+ color: 'color-cyberspace',
22
+ modifier: 'alignwide',
23
+ }
24
+ },
25
+ {
26
+ name: 'aligncenter',
27
+ context: {
28
+ class: null,
29
+ color: 'color-cyberspace',
30
+ modifier: 'aligncenter',
31
+ }
32
+ },
33
+ {
34
+ name: 'alignleft',
35
+ context: {
36
+ class: null,
37
+ color: 'has-cyberspace-color',
38
+ modifier: 'alignleft',
39
+ }
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,2 @@
1
+ # Note!
2
+ Component is using block classes from wordpress instead of Atomic Design methodology
package/src/components.js CHANGED
@@ -24,6 +24,8 @@ import './molecules/glider/glider-course';
24
24
  import './molecules/glider/glider-hero';
25
25
  import './molecules/context-menu/context-menu';
26
26
  import './molecules/alert/alert';
27
+ import './molecules/modal/modal-graph';
27
28
  import './molecules/continue-video-guide/continue-video-guide';
28
29
  import './organisms/video-guide/video-guide';
29
30
  import './organisms/timeline/timeline';
31
+ import './molecules/overview-navigation/overview-navigation';
@@ -165,3 +165,13 @@
165
165
  fill: $color-cyberspace;
166
166
  }
167
167
  }
168
+
169
+ %is-fixed,
170
+ .is-fixed {
171
+ position: fixed !important;
172
+ }
173
+
174
+ %prevent-scroll,
175
+ .prevent-scroll {
176
+ overflow: hidden !important;
177
+ }
@@ -348,3 +348,44 @@ div.aligncenter {
348
348
  margin-top: -#{rhythm(3)};
349
349
  }
350
350
  }
351
+
352
+ .wp-block-separator {
353
+ display: flex;
354
+ border-color: currentColor;
355
+
356
+ &[class*=align] {
357
+ height: 22px;
358
+ background-color: currentColor;
359
+ --mask:
360
+ radial-gradient(9.18px at 50% calc(100% + 3.15px),#0000 calc(99% - 3px),#000 calc(101% - 3px) 99%,#0000 101%) calc(50% - 14px) calc(50% - 5px + .5px)/28px 10px repeat-x,
361
+ radial-gradient(9.18px at 50% -3.15px,#0000 calc(99% - 3px),#000 calc(101% - 3px) 99%,#0000 101%) 50% calc(50% + 5px)/28px 10px repeat-x;
362
+ -webkit-mask: var(--mask);
363
+ mask: var(--mask);
364
+ }
365
+
366
+ &.aligncenter {
367
+ width: 50vw;
368
+ max-width: rem(469px);
369
+ margin-top: rhythm(2);
370
+ margin-bottom: rhythm(2);
371
+ }
372
+
373
+ &.alignleft {
374
+ margin-left: $indent * 2;
375
+ float: none;
376
+ max-width: rem(90px);
377
+ margin-top: rhythm(2);
378
+ margin-bottom: rhythm(2);
379
+ }
380
+
381
+ &.alignwide {
382
+ max-width: none;
383
+ width: 100%;
384
+ max-width: 1360px;
385
+ }
386
+
387
+ &.alignfull {
388
+ max-width: none;
389
+ width: 100vw;
390
+ }
391
+ }
@@ -323,6 +323,9 @@ blockquote {
323
323
 
324
324
  @include bp-up(sm) {
325
325
  padding-right: rhythm(3);
326
+ max-width: rem(613px);
327
+ margin-left: auto;
328
+ margin-right: auto;
326
329
  }
327
330
 
328
331
  @include bp-up(md) {
@@ -331,11 +334,13 @@ blockquote {
331
334
 
332
335
  p {
333
336
  @include plumber(
334
- $font-size: 3,
337
+ $font-size: 2.7,
335
338
  $line-height: 4,
336
339
  $leading-bottom: 0,
337
340
  $leading-top: 1
338
341
  );
342
+
343
+ line-height: 32px;
339
344
  }
340
345
 
341
346
  .meta {
@@ -343,6 +348,11 @@ blockquote {
343
348
  line-height: rhythm(3.5);
344
349
  }
345
350
  }
351
+
352
+ @include bp-up(lg) {
353
+ margin-left: initial;
354
+ margin-right: initial;
355
+ }
346
356
  }
347
357
 
348
358
  b,
@@ -137,14 +137,6 @@
137
137
  padding-left: rhythm(4);
138
138
  }
139
139
  }
140
-
141
- &.wp-block-iis-visualization {
142
- @include e(content) {
143
- p {
144
- margin-top: 0;
145
- }
146
- }
147
- }
148
140
  }
149
141
 
150
142
  @include m(bordered) {
@@ -1,5 +1,4 @@
1
1
  import template from 'lodash.template';
2
- import Events from '../../assets/js/Events';
3
2
  import Button from '../../atoms/button/Button';
4
3
  import className from '../../assets/js/className';
5
4
  import validationMessage from '../../assets/js/validationMessage';
@@ -11,7 +10,6 @@ export default class Form {
11
10
  this.submit = new Button(this.element.querySelector('button[type="submit"]'));
12
11
  this.error = this.element.querySelector('[data-form-error]');
13
12
  this.success = this.element.querySelector('[data-form-success]');
14
- this.events = new Events();
15
13
 
16
14
  if (this.success) {
17
15
  const tpl = document.getElementById(this.success.getAttribute('data-form-success'));
@@ -165,7 +163,6 @@ export default class Form {
165
163
  }
166
164
 
167
165
  displayError = (error) => {
168
- this.events.emit('error', error);
169
166
  this.setLoading(false);
170
167
 
171
168
  if ('response' in error) {
@@ -277,8 +274,6 @@ export default class Form {
277
274
 
278
275
  this.success.classList.remove('is-hidden');
279
276
  this.success.innerHTML = tmpl(json);
280
-
281
- this.events.emit('success', json);
282
277
  };
283
278
 
284
279
  captchaCallback = () => {
@@ -3,7 +3,5 @@ import Form from './Form';
3
3
  const elements = document.querySelectorAll('[data-form]');
4
4
 
5
5
  if (elements.length) {
6
- elements.forEach((element) => {
7
- element.form = new Form(element);
8
- });
6
+ elements.forEach((element) => new Form(element));
9
7
  }
@@ -133,14 +133,6 @@
133
133
  }
134
134
  }
135
135
 
136
- .glider {
137
- visibility: hidden;
138
-
139
- &[data-glider-initialized="true"] {
140
- visibility: visible;
141
- }
142
- }
143
-
144
136
  .glider-slide {
145
137
  width: 100vw;
146
138