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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd34733d1843e4e27502c6013bdfcc2f1a8550681d93567f6d107276f2a5b1d8
4
- data.tar.gz: d7fbf1db79bdbcf602526b92160a7286f3a56f4a64164f0dce65b7437382cd22
3
+ metadata.gz: f99778250d8255d09c4feb5232eca79d4a8e9aaf2c7819a6cec2d050a09fc61c
4
+ data.tar.gz: e722072946f3eee1b5a47a14ebc2d6570a020cbcd1cb8b36a3c51f63b2881cd5
5
5
  SHA512:
6
- metadata.gz: 731535f31508600501b23c473a9e2edfab5e536e5afbeb66edc4884d1737d001e4bffff0731e6ae9342392ff5325b3e27e9bb5d7f4653d08bf30fc4b296613c4
7
- data.tar.gz: 4e10a526240dfd3afc7bb8ee3ec067c01f41735cf0963581b37a6c8d00b718968077e3d4712e3f9511486f362cb36a7bc7ddb1fa2dddcc6efd323f33762432d4
6
+ metadata.gz: 87d1517e7f8e857e70260acdc241b5ff6de4f8bb79dab6f50b73a366e677a90bcfc80ea6d59c16cca351c3da9c15a911862fbfd1c56ad2acca1a125886bab78a
7
+ data.tar.gz: eb9d967005c27d31fa48dc25a8b6f93aac4b24b3f6264aa73a8392dc8373bb673429b78994354ad93b5bd3b1a4bfecfef71b86096dcdfe0872949087feac8666
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>
Binary file
@@ -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
 
@@ -0,0 +1,12 @@
1
+
2
+ <div class="embed-container">
3
+ <iframe
4
+ src="https://player.vimeo.com/video/{{ include.id }}"
5
+ width="500"
6
+ height="281"
7
+ frameborder="0"
8
+ webkitallowfullscreen
9
+ mozallowfullscreen
10
+ allowfullscreen>
11
+ </iframe>
12
+ </div>
@@ -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="pwp__mast">
11
+ <div class="hero-image hero__pwp">
11
12
 
12
- <div class="pwp__overlay">
13
- <div class="pwp__bg">
14
- </div>
15
- </div>
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="pwp--strap">
18
+ <div class="hero__strap">
18
19
  <h1>
19
- <span class="pwp--strap-start">
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 data-aos="fade-in" data-aos-anchor-placement="top-bottom" class="pwp__device--img pwp__device--docked">
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
- <div class="pulsating-circle"></div></div>
56
+ </svg>
57
+
58
+ </div>
41
59
 
42
- <div class="pwp__straps pwp__device--strap">
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
- <div class="pwp__grid-col-l">
50
- <div class="pwp__grid__text pwp__straps">
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="pwp__straps pwp__grid_keywords">
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="pwp__grid-col-r">
65
- <div class="pwp__straps pwp__grid_img"></div>
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 data-aos="fade-in" data-aos-anchor-placement="top-bottom" class="pwp__device--img pwp__device--group">
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 width="100vw" height="100%" xmlns="http://www.w3.org/2000/svg">
77
- <circle cx="20%" cy="30%" r="6" fill="white"/>
78
- <line x1="10%" y1="30%" x2="20%" y2="30%" style='stroke:white;stroke-width:2' />
79
- <style>
80
- .text { fill: white; }
81
- </style>
82
- <text data-aos="fade-in" data-aos-anchor-placement="top-center" x="2%" y="31%" class="text" >Controller</text>
83
- </svg></div>
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>
@@ -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
- <p class="feed__card--title">{{ post.title }}</p></a>
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>
@@ -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
@@ -0,0 +1,3 @@
1
+ // Gllobal variables != color or typography
2
+
3
+ $bezier-snap: cubic-bezier(.75, .86, .88, .62)
@@ -149,7 +149,8 @@
149
149
 
150
150
  .info__conceal
151
151
  align-items: flex-end
152
- background-image: linear-gradient(rgba(0,0,0,0), $white, $white)
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
@@ -38,6 +38,8 @@ $light-grey: rgb(220, 220, 220)
38
38
 
39
39
  $grey: rgb(130, 130, 130)
40
40
 
41
+ $led: rgb(255, 70, 0)
42
+
41
43
  $box-shadow-shade: rgba(0, 0, 0, .2)
42
44
 
43
45
  $secondary_navbar_color: rgba(255, 255, 255, .3)
@@ -1,30 +1,39 @@
1
1
 
2
2
  @media screen and ( min-width: 768px )
3
3
 
4
- .pwp__grid-wrap
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
- .pwp__grid-col-l, .pwp__grid-col-r
21
+ .segment__left, .segment__right
12
22
  height: 100vh
13
23
  display: flex
14
24
  flex-direction: column
15
25
 
16
- .pwp__grid-col-l
26
+ .segment__left
17
27
  width: 60vw
18
28
 
19
- .pwp__grid-col-r
29
+ .segment__right
30
+ width: 40vw
31
+
32
+ .augment--gaurentee
20
33
  width: 40vw
21
- svg
22
- display: none
23
- position: absolute
24
- //transform: translateY(-100%)
25
- //-height: 100vh
34
+ height: 100vh
26
35
 
27
- .pwp__grid__text
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
- .pwp__grid_keywords
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
@@ -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
- animation: .8s cubic-bezier(.75,.86,.88,.62) 0s 1 slide-from-left
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
- animation: .8s cubic-bezier(.75,.86,.88,.62) 0s 1 slide-from-right
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
- @keyframes slide-from-left
175
- 0%
176
- transform: translateX(-50vw)
177
- opacity: 0
178
- 100%
179
- transform: translateX(0)
180
- opacity: 1
161
+ @include slide-from-right
162
+
163
+ @include slide-from-left
@@ -1,35 +1,39 @@
1
1
 
2
2
 
3
- .pwp__mast
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( var(--vh, 1vh) * 90 )
10
+ height: calc(var(--vh, 1vh) * 90)
9
11
 
10
- .pwp__bg
11
- position: relative
12
- height: 100%
12
+ .hero__overlay
13
13
  width: 100%
14
- background-image: url($baseurl + 'assets/img/landing__pwp-mobile.jpg')
15
- background-size: cover
16
- opacity: .7
17
- filter: grayscale(1) contrast(.2) brightness(1.6)
14
+ height: 100%
15
+ z-index: -1
18
16
 
19
- .pwp__overlay
20
- position: relative
17
+ .hero__overlay--pwp
18
+ background-color: $opd-orange-confidence
19
+
20
+ .hero__image
21
21
  height: 100%
22
22
  width: 100%
23
- background-color: $env-primary
23
+ object-fit: cover
24
+ object-position: center
24
25
 
25
- .pwp--strap
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
- .pwp__device--img
53
- background-size: cover
54
- background-repeat: no-repeat
55
- width: 100%
56
- height: 0
57
- padding-top: 62.5%
58
- z-index: 99999
59
-
60
- .pwp__device--docked
61
- background-image: url($baseurl + 'assets/img/pwp_device_group_docked.png')
62
- svg
63
- position: absolute
64
- transform: translateY(-100%)
65
-
66
- .pwp__device--group
67
- background-image: url($baseurl + 'assets/img/pwp_device_group.png')
68
- svg
69
- position: absolute
70
- transform: translateY(-100%)
71
- //-height: 100vh
72
-
73
- .pwp__straps
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
- .pwp__device--strap
85
+ .pwp--strap
86
+ color: $env-secondary
80
87
  background-color: $opd-blue-trust
81
- padding: 5rem 2rem
88
+ padding: 5rem 1rem
82
89
  & > h2
83
- padding: 2rem 0
90
+ padding: 1rem 0
84
91
 
85
- .pwp__grid-wrap
92
+ .segment-wrap
86
93
  display: flex
87
94
  flex-direction: column-reverse
88
95
  width: 100vw
89
96
 
90
- .pwp__grid-col-r
91
- svg
92
- display: none
93
- position: absolute
97
+ .augment--gaurentee
98
+ width: 100%
99
+ height: 100%
94
100
 
95
- .pwp__grid__text
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
- .pwp__grid_img
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
- .pwp__grid_keywords
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
- .pulsating-circle
139
- position: absolute
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
- &::after
160
- content: ''
161
- position: absolute
162
- left: 0
163
- top: 0
164
- display: block
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
- transform: scale(.3)
205
+ r: .1
175
206
 
176
- 80%
177
- opacity: 0
207
+ 50%
208
+ opacity: .1
178
209
 
179
210
  100%
180
211
  opacity: 0
181
- transform: scale(1)
212
+ r: 3
@@ -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
- text-align: center
9
+
8
10
 
9
11
  .post__feed
10
12
  display: flex
11
- justify-content: space-between
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: 30vw
22
+ width: 200px
20
23
  max-width: 360px
21
- height: 220px
22
- margin-bottom: 10vh
24
+ //height: 220px
25
+ margin: 20px
23
26
  overflow: hidden
24
- border-radius: 12px
25
- box-shadow: 0 0 6px rgba($env-primary,.8)
26
- transition: .8s ease-in-out
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.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
- font-weight: 400
34
- color: $pure-white
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
- overflow: hidden
43
- transition: .8s ease-in-out
53
+ transition: .6s ease-in-out
44
54
 
45
55
  .feed__card--text
46
- background-color: $env-primary
47
- padding: 2rem 1rem
48
- color: $white
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
- text-transform: uppercase
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 * .7
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
@@ -4,7 +4,7 @@
4
4
  cursor: pointer
5
5
  display: block
6
6
  padding-right: 3vw
7
- z-index: 999
7
+ z-index: 9999
8
8
  & > div
9
9
  height: 2px
10
10
  margin: 7px
@@ -16,12 +16,12 @@
16
16
  top: 0
17
17
  white-space: nowrap
18
18
  width: 100%
19
- z-index: 999
19
+ z-index: 99
20
20
 
21
21
  .nav-brand
22
22
  width: 30vw
23
23
  padding-left: 3vw
24
- z-index: 2
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%)
@@ -3,6 +3,10 @@
3
3
 
4
4
  $baseurl: '{{ site.baseurl }}/'
5
5
 
6
+ @import '_variables'
7
+
8
+ @import '_mixins'
9
+
6
10
  @import 'colors/_variables'
7
11
 
8
12
  @import 'navigation/_variables'
@@ -2,6 +2,10 @@
2
2
  ---
3
3
  $baseurl: '{{ site.baseurl }}/'
4
4
 
5
+ @import '_variables'
6
+
7
+ @import '_mixins'
8
+
5
9
  @import 'colors/_variables'
6
10
 
7
11
  @import 'navigation/_variables'
@@ -3,6 +3,10 @@
3
3
 
4
4
  $baseurl: '{{ site.baseurl }}/'
5
5
 
6
+ @import '_variables'
7
+
8
+ @import '_mixins'
9
+
6
10
  @import 'colors/_variables'
7
11
 
8
12
  @import 'navigation/_variables'
@@ -3,6 +3,10 @@
3
3
 
4
4
  // Site wide styling
5
5
 
6
+ @import '_variables'
7
+
8
+ @import '_mixins'
9
+
6
10
  @import 'typography/_variables'
7
11
 
8
12
  @import 'colors/_variables'
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  ---
3
+ @import '_mixins'
3
4
 
4
5
  @import "typography/_variables"
5
6
 
@@ -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 whole navbar
9
- navBar.addEventListener('touchstart', () => {
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.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-18 00:00:00.000000000 Z
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