slow-steps 0.1.1 → 0.1.2
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.
- 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
|