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 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