Skip to content

Commit 4cb08d5

Browse files
committed
feat: wire up new PL-specific iframe loader toast to display before the JS updating the iframe content kicks in
1 parent 100ea8f commit 4cb08d5

4 files changed

Lines changed: 107 additions & 5 deletions

File tree

packages/uikit-workshop/gulpfile.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ gulp.task('build:css', function() {
5656
style: 'expanded',
5757
'sourcemap=none': true,
5858
})
59+
.src([
60+
'src/sass/pattern-lab.scss',
61+
'src/sass/pattern-lab--iframe-loader.scss',
62+
])
5963
.pipe(
6064
plugins.autoprefixer(
6165
{
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<div class="pl-c-loader">
2+
<div class="pl-c-loader__content">
3+
<div class="pl-c-loader__message">Loading Pattern Lab</div>
4+
<div class="pl-c-loader__spinner">
5+
<svg class="pl-c-loader-svg" viewBox="0 0 268 255">
6+
<circle class="pl-c-loader-svg__outer-circle" cx="134.2" cy="127.6" r="115.1"/>
7+
<circle class="pl-c-loader-svg__inner-circle" cx="134.2" cy="127.6" r="66.3"/>
8+
<path class="pl-c-loader-svg__electron" d="M253,56.3c0,15.6-12.6,28.2-28.2,28.2s-28.2-12.6-28.2-28.2s12.6-28.2,28.2-28.2
9+
C240.3,28.1,253,40.7,253,56.3z"/>
10+
</svg>
11+
</div>
12+
</div>
13+
</div>
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<div class="pl-c-viewport pl-js-viewport">
2-
2+
33
<div class="pl-c-viewport__cover pl-js-viewport-cover"></div>
44

55
<div class="pl-c-viewport__iframe-wrapper pl-js-vp-iframe-container">
6-
7-
<iframe class="pl-c-viewport__iframe pl-js-iframe" sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-modals"></iframe>
8-
6+
7+
<iframe class="pl-c-viewport__iframe pl-js-iframe" sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-modals" srcdoc='<style>@@include('../../../dist/styleguide/css/pattern-lab--iframe-loader.css')</style>@@include('./iframe-loader.html')'></iframe>
8+
99
<div class="pl-c-viewport__resizer pl-js-resize-container">
1010

1111
<div class="pl-c-viewport__resizer-handle pl-js-resize-handle"></div>
@@ -14,4 +14,4 @@
1414

1515
</div><!--end pl-c-viewport__iframe-wrapper-->
1616

17-
</div><!--end pl-c-viewport-->
17+
</div><!--end pl-c-viewport-->
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
@import 'scss/abstracts/variables';
2+
@import 'scss/abstracts/mixins';
3+
4+
@keyframes animateIn {
5+
from {
6+
transform: translate3d(-50%, -100%, 0px);
7+
opacity: 0;
8+
}
9+
to {
10+
opacity: 1;
11+
transform: translate3d(-50%, calc(3rem - 50%), 0px);
12+
}
13+
}
14+
15+
@keyframes rotate {
16+
0% {
17+
transform: rotate(0deg);
18+
}
19+
100% {
20+
transform: rotate(360deg);
21+
}
22+
}
23+
24+
.pl-c-loader {
25+
z-index: 1000;
26+
position: absolute;
27+
top: 0;
28+
left: 50%;
29+
margin: auto;
30+
max-width: $pl-space * 25;
31+
width: calc(90vw - #{$pl-doublespace});
32+
border-radius: $pl-border-radius;
33+
background: rgba($pl-color-black, 0.9);
34+
transform: translate3d(-50%, -100%, 0px);
35+
transition: opacity 0.3s ease, transform 0.3s ease;
36+
pointer-events: none;
37+
opacity: 0;
38+
animation: animateIn ease 0.3s forwards;
39+
}
40+
41+
.pl-c-loader__content {
42+
display: flex;
43+
align-items: center;
44+
pointer-events: auto;
45+
}
46+
47+
.pl-c-loader__message {
48+
flex: 1;
49+
padding: $pl-space;
50+
font-size: $pl-font-size-sm-2;
51+
color: $pl-color-white;
52+
}
53+
54+
.pl-c-loader__spinner {
55+
position: relative;
56+
display: inline-block;
57+
width: $pl-doublespace * 2;
58+
height: $pl-doublespace;
59+
}
60+
61+
.pl-c-loader-svg:not(:root) {
62+
overflow: hidden;
63+
}
64+
65+
.pl-c-loader-svg {
66+
position: absolute;
67+
top: 0;
68+
left: 0;
69+
width: 100%;
70+
height: 100%;
71+
transform: translateZ(0);
72+
animation: rotate 1s linear infinite;
73+
}
74+
75+
.pl-c-loader-svg__outer-circle {
76+
fill: none;
77+
stroke: $pl-color-white;
78+
stroke-width: 15;
79+
stroke-miterlimit: 10;
80+
}
81+
82+
.pl-c-loader-svg__inner-circle,
83+
.pl-c-loader-svg__electron {
84+
fill: $pl-color-gray-20;
85+
}

0 commit comments

Comments
 (0)