slow-steps 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/.DS_Store +0 -0
- data/_includes/functions/calc-svg-coord.html +40 -0
- data/_includes/functions/pull_page_args.html +31 -0
- data/_includes/head/.DS_Store +0 -0
- data/_includes/scripts.html +12 -0
- data/_includes/vimeoPlayer.html +12 -0
- data/_layouts/env/pwp.html +87 -28
- data/_layouts/feed.html +6 -2
- data/_sass/_mixins.sass +31 -0
- data/_sass/_variables.sass +3 -0
- data/_sass/about.sass +2 -1
- data/_sass/colors/_variables.sass +2 -0
- data/_sass/env/breakpoints/768.sass +26 -12
- data/_sass/env/landing.sass +5 -22
- data/_sass/env/pwp.sass +120 -89
- data/_sass/feed.sass +43 -23
- data/_sass/navigation/burger.sass +1 -1
- data/_sass/navigation/global.sass +4 -3
- data/assets/css/env/gaitq_clinician.sass +4 -0
- data/assets/css/env/gaitq_landing.sass +4 -0
- data/assets/css/env/gaitq_pwp.sass +4 -0
- data/assets/css/gaitq_global.sass +4 -0
- data/assets/css/gaitq_post.sass +1 -0
- data/assets/js/mobile-nav-slider.js +2 -2
- data/assets/js/svg_aos.js +25 -0
- data/assets/js/svg_text_width.js +36 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f99778250d8255d09c4feb5232eca79d4a8e9aaf2c7819a6cec2d050a09fc61c
|
4
|
+
data.tar.gz: e722072946f3eee1b5a47a14ebc2d6570a020cbcd1cb8b36a3c51f63b2881cd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87d1517e7f8e857e70260acdc241b5ff6de4f8bb79dab6f50b73a366e677a90bcfc80ea6d59c16cca351c3da9c15a911862fbfd1c56ad2acca1a125886bab78a
|
7
|
+
data.tar.gz: eb9d967005c27d31fa48dc25a8b6f93aac4b24b3f6264aa73a8392dc8373bb673429b78994354ad93b5bd3b1a4bfecfef71b86096dcdfe0872949087feac8666
|
data/_includes/.DS_Store
CHANGED
Binary file
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<!-- Take inputs from page front matter and calculate the coordinates of the svg elements -->
|
2
|
+
{% assign image_handle = include.image_handle %}
|
3
|
+
|
4
|
+
{% if page[image_handle].augment %}
|
5
|
+
|
6
|
+
<!-- get image dimensions -->
|
7
|
+
{%- assign imageX = page[image_handle].augment.image | split: ', ' | first -%}
|
8
|
+
{%- assign imageY = page[image_handle].augment.image | split: ', ' | last -%}
|
9
|
+
|
10
|
+
<!-- pre-assign arrays for circle centers and line ends -->
|
11
|
+
{% assign cX = '' | split: ',' %}
|
12
|
+
{% assign cY = '' | split: ',' %}
|
13
|
+
|
14
|
+
<!-- loop over all the requested labels -->
|
15
|
+
{% for item in page[image_handle].augment.labels %}
|
16
|
+
|
17
|
+
<!-- x(i) and y(i) -->
|
18
|
+
{% assign ix = item.coord | split: ', ' | first %}
|
19
|
+
{% assign iy = item.coord | split: ', ' | last %}
|
20
|
+
|
21
|
+
<!-- calculate circle centers as percentage of image size -->
|
22
|
+
{% assign cx = ix | times: 100 | divided_by: imageX | append: ', ' %}
|
23
|
+
{% assign cy = iy | times: 100 | divided_by: imageY | append: ', ' %}
|
24
|
+
<!-- push into arrays -->
|
25
|
+
{% assign cX = cX | push: cx %}
|
26
|
+
{% assign cY = cY | push: cy %}
|
27
|
+
|
28
|
+
{% endfor %}
|
29
|
+
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
<!--
|
33
|
+
in: [imageX, imageY] pixels
|
34
|
+
[x, y] pixels
|
35
|
+
|
36
|
+
out: cX = [cx_1, cx_2, ... , cx_n]
|
37
|
+
cY = [cy_1, cy_2, ... , cy_n]
|
38
|
+
|
39
|
+
X1 = [x1_1, x1_2, ... , x1_n]
|
40
|
+
-->
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
<script type="text/javascript">
|
3
|
+
|
4
|
+
function svg_aug_contained_image(){
|
5
|
+
|
6
|
+
var x_i = document.getElementsByClassName("image--guarantee")[0].offsetWidth ;
|
7
|
+
var y_i = document.getElementsByClassName("image--guarantee")[0].offsetHeight ;
|
8
|
+
/* ge scg labels */
|
9
|
+
var svg = document.querySelectorAll('.svg__augment > .augment--guarantee');
|
10
|
+
|
11
|
+
/* origanal image width in pixels */
|
12
|
+
var x_0 = {{ page.guarantee.augment.image | split: ', ' | first }} ;
|
13
|
+
var y_0 = {{ page.guarantee.augment.image | split: ', ' | last }} ;
|
14
|
+
|
15
|
+
for (let i = 0; i < svg.length; i++) {
|
16
|
+
/* origanal x position in pixels */
|
17
|
+
var dx_0 = parseInt( svg[i].getAttribute('x'), 10 ) / 100 ;
|
18
|
+
var dy_0 = parseInt( svg[i].getAttribute('y'), 10 ) / 100 ;
|
19
|
+
|
20
|
+
var dx_0Pixel = dx_0 * x_0 ;
|
21
|
+
var dy_0Pixel = dy_0 * y_0 ;
|
22
|
+
|
23
|
+
svg[i].setAttribute("x", (dx_0Pixel - ( x_0 / 2) + (x_i / 2) ) / x_i * 100 + '%');
|
24
|
+
svg[i].setAttribute("y", (dy_0Pixel - ( y_0 / 2) + (y_i / 2) ) / y_i * 100 + '%');
|
25
|
+
};
|
26
|
+
|
27
|
+
}
|
28
|
+
|
29
|
+
//window.setInterval(svg_aug_contained_image, 200 )
|
30
|
+
|
31
|
+
</script>
|
data/_includes/head/.DS_Store
CHANGED
Binary file
|
data/_includes/scripts.html
CHANGED
@@ -1,4 +1,16 @@
|
|
1
1
|
|
2
|
+
{% assign scripts = page.scripts | split: ', '%}
|
3
|
+
{% if scripts contains 'svg-aos' %}
|
4
|
+
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js" ></script>
|
5
|
+
|
6
|
+
<script type="text/javascript" src="{{ "{{ site.baseurl }}/assets/js/svg_text_width.js" | relative_url }}" async></script>
|
7
|
+
|
8
|
+
<script type="text/javascript" src="{{ "{{ site.baseurl }}/assets/js/svg_aos.js" | relative_url }}" async></script>
|
9
|
+
|
10
|
+
{% include functions/pull_page_args.html %}
|
11
|
+
|
12
|
+
{% endif %}
|
13
|
+
|
2
14
|
|
3
15
|
<script type="text/javascript" src="{{ "{{ site.baseurl }}/assets/js/animate_after_load.js" | relative_url }}" async></script>
|
4
16
|
|
data/_layouts/env/pwp.html
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
2
|
layout: default
|
3
|
+
|
3
4
|
---
|
4
5
|
{% if site.data.copy.landing.pwp.description %}
|
5
6
|
{% assign description = site.data.copy.landing.pwp.description %}
|
@@ -7,16 +8,16 @@ layout: default
|
|
7
8
|
{% assign description = site.description %}
|
8
9
|
{% endif %}
|
9
10
|
|
10
|
-
<div class="
|
11
|
+
<div class="hero-image hero__pwp">
|
11
12
|
|
12
|
-
<div class="
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
<div class="hero__overlay hero__overlay--pwp">
|
14
|
+
{% picture {{ page.hero.image | prepend: 'content/' }}
|
15
|
+
--img class="hero__image hero__image--pwp"
|
16
|
+
--alt {{ page.hero.alt }} %}</div>
|
16
17
|
|
17
|
-
<div class="
|
18
|
+
<div class="hero__strap">
|
18
19
|
<h1>
|
19
|
-
<span class="
|
20
|
+
<span class="hero__strap--start">
|
20
21
|
{% assign header = site.data.copy.landing.pwp %}
|
21
22
|
{% assign title = header.title | split: " " %}
|
22
23
|
{% assign n = header.split %}
|
@@ -35,25 +36,44 @@ layout: default
|
|
35
36
|
|
36
37
|
</div>
|
37
38
|
|
38
|
-
<div
|
39
|
+
<div class="augmented-image">
|
40
|
+
|
41
|
+
{% picture {{ page.subhero.image | prepend: 'content/' }}
|
42
|
+
--img class="hero__image"
|
43
|
+
--alt {{ page.subhero.alt }} %}
|
44
|
+
|
45
|
+
<svg class="svg__augment" viewBox="-50 -50 100 100" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
46
|
+
<defs>
|
47
|
+
<radialGradient id="augmentLED" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
|
48
|
+
<stop offset="0%" />
|
49
|
+
<stop offset="100%" />
|
50
|
+
</radialGradient>
|
51
|
+
</defs>
|
52
|
+
|
53
|
+
<circle class="svg__augment--pulse" cx="32%" cy="2%" />
|
54
|
+
<circle class="svg__augment--led" cx="32%" cy="2%" r=".8" />
|
39
55
|
|
40
|
-
|
56
|
+
</svg>
|
57
|
+
|
58
|
+
</div>
|
41
59
|
|
42
|
-
<div class="
|
60
|
+
<div class="strapline pwp--strap">
|
43
61
|
<h2>{{ site.data.copy.landing.pwp.subtitle }}</h2>
|
44
62
|
<p data-aos="fade-in">{{ site.data.copy.landing.pwp.strap }}</p>
|
45
63
|
</div>
|
46
64
|
|
47
|
-
<div class="pwp__grid-wrap">
|
48
65
|
|
49
|
-
|
50
|
-
|
66
|
+
|
67
|
+
<div class="segment-wrap">
|
68
|
+
|
69
|
+
<div class="segment__left">
|
70
|
+
<div class="segment__gaurentee strapline pwp--strap">
|
51
71
|
<div data-aos="fade-right">
|
52
72
|
{% include branding/site-logo.svg %}</div>
|
53
73
|
<p data-aos="fade-in" class="pwp--guarantee">
|
54
74
|
{{ description }}</p></div>
|
55
75
|
|
56
|
-
<div class="
|
76
|
+
<div class="strapline segment__keywords">
|
57
77
|
{% assign keyword = site.data.copy.landing.pwp.keywords | split: ", " %}
|
58
78
|
{% for word in (1..keyword.size) %}
|
59
79
|
<h3 data-aos="fade-in">{{ keyword[forloop.index0] }}</h3>
|
@@ -61,23 +81,62 @@ layout: default
|
|
61
81
|
|
62
82
|
</div>
|
63
83
|
|
64
|
-
<div class="
|
65
|
-
|
84
|
+
<div class="segment__right augmented-image" >
|
85
|
+
|
86
|
+
{% picture {{ page.guarantee.image | prepend: 'content/' }}
|
87
|
+
--img class="hero__image image--guarantee "
|
88
|
+
--alt {{ page.guarantee.alt }} %}
|
89
|
+
|
90
|
+
<svg class="svg__augment " width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
91
|
+
|
92
|
+
{% include functions/calc-svg-coord.html image_handle="guarantee" %}
|
93
|
+
|
94
|
+
{% for item in page.guarantee.augment.labels %}
|
95
|
+
|
96
|
+
<svg class="svg__labels augment--guarantee hidden" x="{{ cX[forloop.index0] | remove: ", " }}%" y="{{ cY[forloop.index0] | remove: ", " }}%" style="overflow: visible">
|
97
|
+
|
98
|
+
<circle class="svg--elem svg--circle" cx="0%" cy="0%" r="6" />
|
99
|
+
|
100
|
+
<line class="svg--elem svg--line" x1="0" y1="0" y2="0" />
|
101
|
+
|
102
|
+
<text class="svg--elem svg--text trans-{% if item.reverse %}right{% else %}left{% endif %}" >{{ item.text }}</text>
|
103
|
+
|
104
|
+
</svg>
|
105
|
+
|
106
|
+
{% endfor %}
|
107
|
+
|
108
|
+
</svg>
|
109
|
+
|
66
110
|
|
67
|
-
<svg viewBox="-50 -50 100 100" width="40vw" height="100vh" xmlns="http://www.w3.org/2000/svg">
|
68
|
-
<circle cx="-28%" cy="20%" r="1" fill="white"/>
|
69
|
-
</svg>
|
70
111
|
</div>
|
71
112
|
|
72
113
|
</div>
|
73
114
|
|
74
|
-
<div
|
115
|
+
<div class="augmented-image" >
|
116
|
+
|
117
|
+
{% picture {{ page.device.image | prepend: 'content/' }}
|
118
|
+
--img class="hero__image"
|
119
|
+
--alt {{ page.device.alt }} %}
|
120
|
+
|
121
|
+
{% include functions/calc-svg-coord.html image_handle="device" %}
|
122
|
+
|
123
|
+
<svg class="svg__augment" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
124
|
+
|
125
|
+
{% for item in page.device.augment.labels %}
|
126
|
+
|
127
|
+
<svg class="svg__labels hidden" x="{{ cX[forloop.index0] | remove: ", " }}%" y="{{ cY[forloop.index0] | remove: ", " }}%" style="overflow: visible">
|
75
128
|
|
76
|
-
<svg
|
77
|
-
|
78
|
-
<line
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
129
|
+
<circle class="svg--elem svg--circle" cx="0%" cy="0%" r="6" />
|
130
|
+
|
131
|
+
<line class="svg--elem svg--line" x1="0" y1="0" y2="0" />
|
132
|
+
|
133
|
+
<text class="svg--elem svg--text trans-{% if item.reverse %}right{% else %}left{% endif %}" >{{ item.text }}</text>
|
134
|
+
|
135
|
+
</svg>
|
136
|
+
|
137
|
+
{% endfor %}
|
138
|
+
|
139
|
+
|
140
|
+
</svg>
|
141
|
+
|
142
|
+
</div>
|
data/_layouts/feed.html
CHANGED
@@ -20,13 +20,17 @@ layout: default
|
|
20
20
|
|
21
21
|
<div class="feed__card">
|
22
22
|
|
23
|
+
<div class="feed__card__image">
|
23
24
|
{% picture {{ post.image | prepend: 'posts/' }} --alt {{ post.alt }} --img class="feed__card--image" %}
|
24
|
-
|
25
|
+
</div>
|
25
26
|
<div class="feed__card--text">
|
26
27
|
|
27
28
|
<a class="feed__card--link" href="{{ site.baseurl }}{{ post.url }}">
|
28
29
|
|
29
|
-
<
|
30
|
+
<h4 class="feed__card--title">{{ post.title }}</h4>
|
31
|
+
<p class="post__subtitle">{{ post.subtitle }}</p>
|
32
|
+
</a>
|
33
|
+
<p class="feed__card--meta">Published <span>{{ post.date | date: "%b %d, %Y" }}</span></p>
|
30
34
|
|
31
35
|
|
32
36
|
</div>
|
data/_sass/_mixins.sass
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
// Landing page animations
|
4
|
+
|
5
|
+
// hover and focus animation action
|
6
|
+
|
7
|
+
@mixin reveal-landing-strap
|
8
|
+
height: 30vh
|
9
|
+
padding: 0 3rem
|
10
|
+
|
11
|
+
// build in's
|
12
|
+
@mixin build-in($name)
|
13
|
+
animation: .8s $bezier-snap 0s 1 $name
|
14
|
+
|
15
|
+
@mixin slide-from-left
|
16
|
+
@keyframes slide-from-left
|
17
|
+
0%
|
18
|
+
transform: translateX(-50vw)
|
19
|
+
opacity: 0
|
20
|
+
100%
|
21
|
+
transform: translateX(0)
|
22
|
+
opacity: 1
|
23
|
+
|
24
|
+
@mixin slide-from-right
|
25
|
+
@keyframes slide-from-right
|
26
|
+
0%
|
27
|
+
transform: translateX(50vw)
|
28
|
+
opacity: 0
|
29
|
+
100%
|
30
|
+
transform: translateX(0)
|
31
|
+
opacity: 1
|
data/_sass/about.sass
CHANGED
@@ -149,7 +149,8 @@
|
|
149
149
|
|
150
150
|
.info__conceal
|
151
151
|
align-items: flex-end
|
152
|
-
|
152
|
+
// NOTE: when linear-gradient(rgba(0,0,0,0) ...) we get a shadow on safari
|
153
|
+
background-image: linear-gradient(rgba($pure-white,0), $white, $white)
|
153
154
|
color: $black
|
154
155
|
cursor: pointer
|
155
156
|
display: flex
|
@@ -1,30 +1,39 @@
|
|
1
1
|
|
2
2
|
@media screen and ( min-width: 768px )
|
3
3
|
|
4
|
-
.
|
4
|
+
.pwp--strap
|
5
|
+
color: $env-secondary
|
6
|
+
background-color: $opd-blue-trust
|
7
|
+
padding: 10rem 5rem
|
8
|
+
& > h2
|
9
|
+
padding-bottom: 5rem
|
10
|
+
& > p
|
11
|
+
max-width: 800px
|
12
|
+
margin: 0 auto
|
13
|
+
|
14
|
+
.segment-wrap
|
5
15
|
display: flex
|
6
16
|
flex-wrap: no-wrap
|
7
17
|
flex-direction: row
|
8
18
|
width: 100vw
|
9
19
|
max-height: 100vh
|
10
20
|
|
11
|
-
.
|
21
|
+
.segment__left, .segment__right
|
12
22
|
height: 100vh
|
13
23
|
display: flex
|
14
24
|
flex-direction: column
|
15
25
|
|
16
|
-
.
|
26
|
+
.segment__left
|
17
27
|
width: 60vw
|
18
28
|
|
19
|
-
.
|
29
|
+
.segment__right
|
30
|
+
width: 40vw
|
31
|
+
|
32
|
+
.augment--gaurentee
|
20
33
|
width: 40vw
|
21
|
-
|
22
|
-
display: none
|
23
|
-
position: absolute
|
24
|
-
//transform: translateY(-100%)
|
25
|
-
//-height: 100vh
|
34
|
+
height: 100vh
|
26
35
|
|
27
|
-
.
|
36
|
+
.segment__gaurentee
|
28
37
|
display: flex
|
29
38
|
align-items: center
|
30
39
|
justify-content: space-between
|
@@ -64,7 +73,7 @@
|
|
64
73
|
//padding-top: 100%
|
65
74
|
|
66
75
|
|
67
|
-
.
|
76
|
+
.segment__keywords
|
68
77
|
width: 100%
|
69
78
|
height: 50%
|
70
79
|
flex-direction: column
|
@@ -72,8 +81,13 @@
|
|
72
81
|
justify-content: center
|
73
82
|
|
74
83
|
& > *
|
75
|
-
padding: 2rem 0
|
84
|
+
//padding: 2rem 0
|
76
85
|
|
77
86
|
.clinician__strap
|
78
87
|
h1
|
79
88
|
display: block
|
89
|
+
|
90
|
+
.svg__labels
|
91
|
+
|
92
|
+
& > .svg--text
|
93
|
+
font-size: $font-size
|
data/_sass/env/landing.sass
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
// Landing page with 768 breakpoint
|
2
2
|
|
3
|
-
// Structurally we have one div, .landing-wrapper, wrapping 2 others, .landing__clinician and .landing__pwp
|
4
|
-
|
5
|
-
@mixin reveal-landing-strap
|
6
|
-
height: 30vh
|
7
|
-
padding: 0 3rem
|
8
|
-
|
9
3
|
// Using Custom Properties to scale properly inside mobile viewports
|
10
4
|
|
11
5
|
// Fallback for browsers that do not support Custom Properties
|
@@ -133,7 +127,7 @@ $landing-height: 100vh
|
|
133
127
|
box-shadow: -12px 10px 10px -10px $grey
|
134
128
|
right: 50%
|
135
129
|
transform: translateX(0)
|
136
|
-
|
130
|
+
@include build-in(slide-from-left)
|
137
131
|
&:hover
|
138
132
|
box-shadow: -20px 20px 20px -10px $grey
|
139
133
|
|
@@ -142,7 +136,7 @@ $landing-height: 100vh
|
|
142
136
|
box-shadow: 12px 10px 10px -10px $grey
|
143
137
|
left: 50%
|
144
138
|
transform: translateX(0)
|
145
|
-
|
139
|
+
@include build-in(slide-from-right)
|
146
140
|
&:hover
|
147
141
|
box-shadow: 20px 20px 20px -10px $grey
|
148
142
|
|
@@ -163,18 +157,7 @@ $landing-height: 100vh
|
|
163
157
|
.landing__title
|
164
158
|
text-align: left
|
165
159
|
|
166
|
-
@keyframes slide-from-right
|
167
|
-
0%
|
168
|
-
transform: translateX(50vw)
|
169
|
-
opacity: 0
|
170
|
-
100%
|
171
|
-
transform: translateX(0)
|
172
|
-
opacity: 1
|
173
160
|
|
174
|
-
@
|
175
|
-
|
176
|
-
|
177
|
-
opacity: 0
|
178
|
-
100%
|
179
|
-
transform: translateX(0)
|
180
|
-
opacity: 1
|
161
|
+
@include slide-from-right
|
162
|
+
|
163
|
+
@include slide-from-left
|
data/_sass/env/pwp.sass
CHANGED
@@ -1,35 +1,39 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
.
|
3
|
+
.hero-image
|
4
4
|
display: flex
|
5
5
|
justify-content: center
|
6
6
|
align-items: center
|
7
|
+
|
8
|
+
.hero__pwp
|
7
9
|
height: 90vh
|
8
|
-
height: calc(
|
10
|
+
height: calc(var(--vh, 1vh) * 90)
|
9
11
|
|
10
|
-
.
|
11
|
-
position: relative
|
12
|
-
height: 100%
|
12
|
+
.hero__overlay
|
13
13
|
width: 100%
|
14
|
-
|
15
|
-
|
16
|
-
opacity: .7
|
17
|
-
filter: grayscale(1) contrast(.2) brightness(1.6)
|
14
|
+
height: 100%
|
15
|
+
z-index: -1
|
18
16
|
|
19
|
-
.
|
20
|
-
|
17
|
+
.hero__overlay--pwp
|
18
|
+
background-color: $opd-orange-confidence
|
19
|
+
|
20
|
+
.hero__image
|
21
21
|
height: 100%
|
22
22
|
width: 100%
|
23
|
-
|
23
|
+
object-fit: cover
|
24
|
+
object-position: center
|
24
25
|
|
25
|
-
.pwp
|
26
|
+
.hero__image--pwp
|
27
|
+
opacity: .7
|
28
|
+
filter: grayscale(.2) contrast(.2) brightness(1.6)
|
29
|
+
|
30
|
+
.hero__strap
|
26
31
|
position: absolute
|
27
32
|
color: $env-secondary
|
28
33
|
text-align: center
|
29
34
|
padding-top: $navbar-height
|
30
35
|
|
31
|
-
|
32
|
-
.pwp--strap-start
|
36
|
+
.hero__strap--start
|
33
37
|
color: $env-primary
|
34
38
|
|
35
39
|
.pwp__follow
|
@@ -49,50 +53,52 @@
|
|
49
53
|
font-size: 20px
|
50
54
|
transform: scaleY(2)
|
51
55
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
56
|
+
|
57
|
+
.augmented-image
|
58
|
+
position: relative
|
59
|
+
display: flex
|
60
|
+
|
61
|
+
.svg__augment
|
62
|
+
position: absolute
|
63
|
+
top: 0
|
64
|
+
left: 0
|
65
|
+
|
66
|
+
.svg__augment--led
|
67
|
+
fill: url(#augmentLED)
|
68
|
+
|
69
|
+
#augmentLED
|
70
|
+
stop:first-child
|
71
|
+
stop-color: $pure-white
|
72
|
+
stop-opacity: 1
|
73
|
+
|
74
|
+
stop:last-child
|
75
|
+
stop-color: $led
|
76
|
+
stop-opacity: 1
|
77
|
+
|
78
|
+
.svg__augment--pulse
|
79
|
+
fill: $led
|
80
|
+
animation: pulse-ring 2s cubic-bezier(.1,.74,.53,.91) infinite
|
81
|
+
|
82
|
+
.strapline
|
74
83
|
text-align: center
|
75
|
-
//padding: 5rem 2rem
|
76
|
-
background-position: center
|
77
|
-
color: $env-secondary
|
78
84
|
|
79
|
-
.
|
85
|
+
.pwp--strap
|
86
|
+
color: $env-secondary
|
80
87
|
background-color: $opd-blue-trust
|
81
|
-
padding: 5rem
|
88
|
+
padding: 5rem 1rem
|
82
89
|
& > h2
|
83
|
-
padding:
|
90
|
+
padding: 1rem 0
|
84
91
|
|
85
|
-
.
|
92
|
+
.segment-wrap
|
86
93
|
display: flex
|
87
94
|
flex-direction: column-reverse
|
88
95
|
width: 100vw
|
89
96
|
|
90
|
-
.
|
91
|
-
|
92
|
-
|
93
|
-
position: absolute
|
97
|
+
.augment--gaurentee
|
98
|
+
width: 100%
|
99
|
+
height: 100%
|
94
100
|
|
95
|
-
.
|
101
|
+
.segment__gaurentee
|
96
102
|
display: flex
|
97
103
|
align-items: center
|
98
104
|
justify-content: center
|
@@ -113,11 +119,7 @@
|
|
113
119
|
.site__logo--Q
|
114
120
|
fill: $white
|
115
121
|
|
116
|
-
.
|
117
|
-
background-image: url($baseurl + 'assets/img/pwp__grid_img.png')
|
118
|
-
background-size: cover
|
119
|
-
background-repeat: no-repeat
|
120
|
-
padding-top: 150%
|
122
|
+
.image--guarantee
|
121
123
|
filter: grayscale(1) contrast(.8) brightness(.9) sepia(.4) hue-rotate(180deg)
|
122
124
|
|
123
125
|
.pwp--guarantee
|
@@ -125,57 +127,86 @@
|
|
125
127
|
width: 80%
|
126
128
|
margin: 3rem 0
|
127
129
|
|
128
|
-
.
|
130
|
+
.segment__keywords
|
129
131
|
display: flex
|
130
132
|
flex-direction: row
|
131
133
|
flex-wrap: wrap
|
132
134
|
background-color: $opd-blue-trust
|
135
|
+
color: $env-secondary
|
133
136
|
& > *
|
134
137
|
padding: 3rem 0
|
135
138
|
width: 50%
|
136
139
|
|
140
|
+
.svg__labels
|
137
141
|
|
138
|
-
|
139
|
-
|
140
|
-
left: 75.5%
|
141
|
-
top: 52.5%
|
142
|
-
transform: translateX(-50%) translateY(-50%)
|
143
|
-
width: 8px
|
144
|
-
height: 8px
|
145
|
-
|
146
|
-
&::before
|
147
|
-
content: ''
|
148
|
-
position: relative
|
149
|
-
display: block
|
150
|
-
width: 300%
|
151
|
-
height: 300%
|
152
|
-
box-sizing: border-box
|
153
|
-
margin-left: -100%
|
154
|
-
margin-top: -100%
|
155
|
-
border-radius: 100px
|
156
|
-
background-color: rgb(252, 133, 133)
|
157
|
-
animation: pulse-ring 2s cubic-bezier(.01,.56,.2,.2) infinite
|
142
|
+
& > *
|
143
|
+
fill: $white
|
158
144
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
width: 100%
|
166
|
-
height: 100%
|
167
|
-
background: radial-gradient(rgb(255, 176, 176), rgb(255, 107, 107))
|
168
|
-
border-radius: 100px
|
145
|
+
& > .svg--elem
|
146
|
+
transition: .4s ease-in-out
|
147
|
+
|
148
|
+
& > .svg--circle
|
149
|
+
stroke: rgba($pure-black, .2)
|
150
|
+
stroke-width: 1
|
169
151
|
|
152
|
+
& > .svg--line
|
153
|
+
stroke: $white
|
154
|
+
stroke-width: 1
|
155
|
+
|
156
|
+
& > .svg--text
|
157
|
+
font-size: $font-size * .8
|
158
|
+
|
159
|
+
.svg__labels.hidden
|
160
|
+
|
161
|
+
& > .svg--circle
|
162
|
+
opacity: 0
|
163
|
+
|
164
|
+
& > .svg--text
|
165
|
+
opacity: 0
|
166
|
+
|
167
|
+
.svg__labels.not-hidden
|
168
|
+
|
169
|
+
& > .svg--circle
|
170
|
+
opacity: 1
|
171
|
+
|
172
|
+
& > .svg--text
|
173
|
+
transform: translateX(0)
|
174
|
+
opacity: 1
|
175
|
+
|
176
|
+
& > .svg--line
|
177
|
+
stroke-dashoffset: 0!important
|
178
|
+
|
179
|
+
|
180
|
+
& > .trans-left
|
181
|
+
animation: trans-in-left .6s ease-in-out
|
182
|
+
|
183
|
+
& > .trans-right
|
184
|
+
animation: trans-in-right .6s ease-in-out
|
185
|
+
|
186
|
+
$svg-text-offset: 60px
|
187
|
+
|
188
|
+
@keyframes trans-in-left
|
189
|
+
0%
|
190
|
+
transform: translateX(-$svg-text-offset)
|
191
|
+
|
192
|
+
100%
|
193
|
+
transform: translateX(0)
|
194
|
+
|
195
|
+
@keyframes trans-in-right
|
196
|
+
0%
|
197
|
+
transform: translateX($svg-text-offset)
|
198
|
+
|
199
|
+
100%
|
200
|
+
transform: translateX(0)
|
170
201
|
|
171
202
|
@keyframes pulse-ring
|
172
203
|
0%
|
173
204
|
opacity: 1
|
174
|
-
|
205
|
+
r: .1
|
175
206
|
|
176
|
-
|
177
|
-
opacity:
|
207
|
+
50%
|
208
|
+
opacity: .1
|
178
209
|
|
179
210
|
100%
|
180
211
|
opacity: 0
|
181
|
-
|
212
|
+
r: 3
|
data/_sass/feed.sass
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
.feed__head
|
2
|
-
margin-top: ($navbar-height + $secondary-navbar-height)*1.5
|
2
|
+
margin-top: ($navbar-height + $secondary-navbar-height) * 1.5
|
3
3
|
width: 100vw
|
4
4
|
|
5
5
|
.feed__title
|
6
|
+
width: 80vw
|
7
|
+
max-width: 1200px
|
6
8
|
margin: auto
|
7
|
-
|
9
|
+
|
8
10
|
|
9
11
|
.post__feed
|
10
12
|
display: flex
|
11
|
-
justify-content: space-
|
13
|
+
justify-content: space-around
|
14
|
+
flex-wrap: wrap
|
12
15
|
width: 80vw
|
13
16
|
max-width: 1200px
|
14
17
|
margin: 10vh auto
|
@@ -16,43 +19,60 @@
|
|
16
19
|
.feed__card
|
17
20
|
display: flex
|
18
21
|
flex-direction: column
|
19
|
-
width:
|
22
|
+
width: 200px
|
20
23
|
max-width: 360px
|
21
|
-
height: 220px
|
22
|
-
margin
|
24
|
+
//height: 220px
|
25
|
+
margin: 20px
|
23
26
|
overflow: hidden
|
24
|
-
border-radius:
|
25
|
-
box-shadow: 0 0 6px rgba($env-primary,.8)
|
26
|
-
|
27
|
+
border-radius: 0
|
28
|
+
//box-shadow: 0 0 6px rgba($env-primary,.8)
|
29
|
+
|
27
30
|
|
28
31
|
&:hover
|
29
|
-
box-shadow: 2px 2px 10px rgba($env-primary,1)
|
30
32
|
.feed__card--image
|
31
|
-
transform: scale(1.
|
33
|
+
transform: scale(1.2)
|
34
|
+
.feed__card__image
|
35
|
+
box-shadow: 0 10px 6px -5px rgba($env-primary,.6)
|
36
|
+
transition: 1s ease-in-out
|
32
37
|
.feed__card--title
|
33
|
-
|
34
|
-
|
38
|
+
color: $pure-black
|
39
|
+
transition: .4s ease-in-out
|
40
|
+
|
41
|
+
.feed__card__image
|
42
|
+
width: 100%
|
43
|
+
height: 112.5px
|
44
|
+
overflow: hidden
|
45
|
+
box-shadow: 0 0 6px rgba($env-primary,.8)
|
46
|
+
transition: .6s ease-in-out
|
35
47
|
|
36
48
|
.feed__card--image
|
37
|
-
display: block
|
38
49
|
object-fit: cover
|
39
50
|
object-position: top
|
40
51
|
width: 100%
|
41
52
|
height: 100%
|
42
|
-
|
43
|
-
transition: .8s ease-in-out
|
53
|
+
transition: .6s ease-in-out
|
44
54
|
|
45
55
|
.feed__card--text
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
z-index: 1
|
50
|
-
font-size: $font-size * .7
|
56
|
+
padding: 2rem 0
|
57
|
+
color: $opd-blue-confidence
|
58
|
+
font-size: $font-size
|
51
59
|
|
52
60
|
.feed__card--link
|
53
61
|
text-decoration: none
|
54
62
|
color: inherit
|
55
|
-
|
63
|
+
|
64
|
+
|
65
|
+
.feed__card--title
|
66
|
+
transition: .2s ease-in-out
|
67
|
+
font-weight: 600
|
56
68
|
|
57
69
|
.feed__card--meta
|
58
|
-
font-size: $font-size * .
|
70
|
+
font-size: $font-size * .5
|
71
|
+
padding: 1rem 0
|
72
|
+
& > span
|
73
|
+
font-weight: 600
|
74
|
+
|
75
|
+
@media screen and ( min-width: 768px )
|
76
|
+
|
77
|
+
.feed__card--meta
|
78
|
+
font-size: $font-size * .7
|
@@ -16,12 +16,12 @@
|
|
16
16
|
top: 0
|
17
17
|
white-space: nowrap
|
18
18
|
width: 100%
|
19
|
-
z-index:
|
19
|
+
z-index: 99
|
20
20
|
|
21
21
|
.nav-brand
|
22
22
|
width: 30vw
|
23
23
|
padding-left: 3vw
|
24
|
-
z-index:
|
24
|
+
z-index: 100
|
25
25
|
|
26
26
|
.site__logo *
|
27
27
|
transition: 2s ease-in
|
@@ -51,7 +51,8 @@
|
|
51
51
|
|
52
52
|
.nav-group-content .nav-link
|
53
53
|
font-size: 1.7rem
|
54
|
-
|
54
|
+
z-index: 100
|
55
|
+
|
55
56
|
.nav-active
|
56
57
|
// we toggle this class in mobile-nav-slider.js on burger click
|
57
58
|
transform: translateX(0%)
|
data/assets/css/gaitq_post.sass
CHANGED
@@ -5,8 +5,8 @@ const navSlide = ()=>{
|
|
5
5
|
const navLinks = document.querySelectorAll('.nav-link');
|
6
6
|
const navBar = document.querySelector('.navbar');
|
7
7
|
|
8
|
-
// watch for touch clicks on the
|
9
|
-
|
8
|
+
// watch for touch clicks on the burger
|
9
|
+
burger.addEventListener('touchstart', () => {
|
10
10
|
// animate accordinaly
|
11
11
|
navSlider.classList.toggle('nav-active');
|
12
12
|
brand.classList.toggle('site__logo-active');
|
@@ -0,0 +1,25 @@
|
|
1
|
+
// collect all the circles and bubbles so we can ani them in at 0%
|
2
|
+
var view_height = document.documentElement.clientHeight;
|
3
|
+
|
4
|
+
var svg_aos = function(e) {
|
5
|
+
|
6
|
+
var svgs = Array.from(document.getElementsByClassName("svg__labels"));
|
7
|
+
|
8
|
+
for (let i = 0; i < svgs.length; i++) {
|
9
|
+
|
10
|
+
var abs_path_top = svgs[i].getBoundingClientRect().top;
|
11
|
+
|
12
|
+
if (abs_path_top <= .6 * view_height) {
|
13
|
+
svgs[i].classList.remove('hidden');
|
14
|
+
svgs[i].classList.add('not-hidden');
|
15
|
+
} else {
|
16
|
+
svgs[i].classList.add('hidden');
|
17
|
+
svgs[i].classList.remove('not-hidden');
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
}
|
22
|
+
|
23
|
+
};
|
24
|
+
|
25
|
+
window.addEventListener('scroll', _.throttle(svg_aos, 100, { leading: true, trailing: true}));
|
@@ -0,0 +1,36 @@
|
|
1
|
+
// Get the svg text elemnets inside svg__labels, calulate their length and position wiith clientWidth conditions.
|
2
|
+
|
3
|
+
function svg_text_width() {
|
4
|
+
// scren width
|
5
|
+
const view_width = document.documentElement.clientWidth;
|
6
|
+
// Get svg text and lines contained by .svg__labels
|
7
|
+
const text = document.querySelectorAll('.svg__labels > .svg--text');
|
8
|
+
const lines = document.querySelectorAll('.svg__labels > .svg--line');
|
9
|
+
|
10
|
+
for (let i = 0; i < text.length; i++) {
|
11
|
+
// get width of all the text labels
|
12
|
+
const width = text[i].getComputedTextLength();
|
13
|
+
// set up vars depending on 768 breakpoint
|
14
|
+
if(view_width > 768 ){
|
15
|
+
var lineLength = 100 ; // length in pixels of the drawn line
|
16
|
+
var x_offset = 10 + width ; // offset the text label s.t. last character sits 10 px from end of line
|
17
|
+
var y_offset = .5 ;
|
18
|
+
} else {
|
19
|
+
var lineLength = 70 ;
|
20
|
+
var x_offset = 0 ; // offset the text label s.t. first character sits inline with end of line
|
21
|
+
var y_offset = -1.5 ;}
|
22
|
+
lines[i].setAttribute("stroke-dashoffset", lineLength + 'px')
|
23
|
+
lines[i].setAttribute("stroke-dasharray", lineLength + 'px')
|
24
|
+
if( text[i].classList.contains('trans-left')){
|
25
|
+
lines[i].setAttribute("x2", -lineLength + 'px')
|
26
|
+
text[i].setAttribute("x", - lineLength - x_offset + 'px');
|
27
|
+
text[i].setAttribute("y", y_offset + 'rem');
|
28
|
+
} else {
|
29
|
+
lines[i].setAttribute("x2", lineLength + 'px')
|
30
|
+
text[i].setAttribute("x", lineLength + x_offset - width + 'px');
|
31
|
+
text[i].setAttribute("y", y_offset + 'rem');
|
32
|
+
};
|
33
|
+
};
|
34
|
+
}
|
35
|
+
|
36
|
+
svg_text_width()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slow-steps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Made Slowly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -188,6 +188,8 @@ files:
|
|
188
188
|
- _includes/footer/footer.html
|
189
189
|
- _includes/footer/footer_full.html
|
190
190
|
- _includes/forms/mc-register.html
|
191
|
+
- _includes/functions/calc-svg-coord.html
|
192
|
+
- _includes/functions/pull_page_args.html
|
191
193
|
- _includes/head/.DS_Store
|
192
194
|
- _includes/head/README.md
|
193
195
|
- _includes/head/descriptors/og-meta.html
|
@@ -199,6 +201,7 @@ files:
|
|
199
201
|
- _includes/link.html
|
200
202
|
- _includes/navigation/global.html
|
201
203
|
- _includes/scripts.html
|
204
|
+
- _includes/vimeoPlayer.html
|
202
205
|
- _layouts/about.html
|
203
206
|
- _layouts/compress.html
|
204
207
|
- _layouts/default.html
|
@@ -209,6 +212,8 @@ files:
|
|
209
212
|
- _layouts/feed.html
|
210
213
|
- _layouts/post.html
|
211
214
|
- _layouts/register.html
|
215
|
+
- _sass/_mixins.sass
|
216
|
+
- _sass/_variables.sass
|
212
217
|
- _sass/about.sass
|
213
218
|
- _sass/aos-overrides.sass
|
214
219
|
- _sass/breakpoints/about.sass
|
@@ -277,6 +282,8 @@ files:
|
|
277
282
|
- assets/js/animate_after_load.js
|
278
283
|
- assets/js/calc-mobile-viewport.js
|
279
284
|
- assets/js/mobile-nav-slider.js
|
285
|
+
- assets/js/svg_aos.js
|
286
|
+
- assets/js/svg_text_width.js
|
280
287
|
- assets/vendor/aos/aos.css
|
281
288
|
- assets/vendor/aos/aos.js
|
282
289
|
homepage: https://github.com/madeslowly/slow-steps
|