@runwell/shopify-toolkit 0.17.3 → 0.18.0
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.
- package/bin/runwell-shopify +4 -1
- package/lib/list.js +120 -0
- package/modules/INDEX.md +52 -19
- package/modules/_shared/css-tokens/assets/runwell-tokens.css +24 -4
- package/modules/_shared/css-tokens/module.json +2 -2
- package/modules/_shared/css-typography/assets/runwell-typography.css +14 -6
- package/modules/_shared/css-typography/module.json +2 -2
- package/modules/care-coaching-medvi/README.md +46 -0
- package/modules/care-coaching-medvi/assets/runwell-care-coaching-medvi.css +241 -0
- package/modules/care-coaching-medvi/module.json +80 -0
- package/modules/care-coaching-medvi/sections/runwell-care-coaching-medvi.liquid +274 -0
- package/modules/care-coaching-medvi/snippets/runwell-care-coaching-medvi-circular-text.liquid +25 -0
- package/modules/collection-block-medvi/README.md +50 -0
- package/modules/collection-block-medvi/assets/runwell-collection-block-medvi.css +242 -0
- package/modules/collection-block-medvi/module.json +83 -0
- package/modules/collection-block-medvi/sections/runwell-collection-block-medvi.liquid +355 -0
- package/modules/product-trio-medvi/README.md +35 -0
- package/modules/product-trio-medvi/assets/runwell-product-trio-medvi.css +119 -0
- package/modules/product-trio-medvi/module.json +48 -0
- package/modules/product-trio-medvi/sections/runwell-product-trio-medvi.liquid +188 -0
- package/modules/recently-viewed/module.json +2 -1
- package/modules/testimonials-medvi/README.md +44 -0
- package/modules/testimonials-medvi/assets/runwell-testimonials-medvi.css +239 -0
- package/modules/testimonials-medvi/module.json +68 -0
- package/modules/testimonials-medvi/sections/runwell-testimonials-medvi.liquid +355 -0
- package/package.json +2 -2
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/* Runwell care-coaching-medvi.
|
|
2
|
+
|
|
3
|
+
Brand-promise section. Centered eyebrow + 2-color headline at top;
|
|
4
|
+
large portrait card on one side; block (heading + body) on the
|
|
5
|
+
other; circular rotating text mark in a corner; footer line below.
|
|
6
|
+
|
|
7
|
+
Tokens: --runwell-tertiary, --runwell-oat, --runwell-radius-xl.
|
|
8
|
+
Typography: --runwell-eyebrow-size, --runwell-h2-size, --runwell-h3-size,
|
|
9
|
+
--runwell-body-size, --runwell-meta-size.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.runwell-care-coaching-medvi {
|
|
13
|
+
padding: clamp(3rem, 8vw, 7rem) clamp(1.5rem, 4vw, 4rem);
|
|
14
|
+
font-family: var(--font-body-family, inherit);
|
|
15
|
+
color: var(--runwell-tertiary, #0B3D38);
|
|
16
|
+
position: relative;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.runwell-care-coaching-medvi--bg-white {
|
|
20
|
+
background: #ffffff;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.runwell-care-coaching-medvi--bg-oat {
|
|
24
|
+
background: var(--runwell-oat, #F5F0EE);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.runwell-care-coaching-medvi--bg-celadon-tint {
|
|
28
|
+
background: color-mix(in srgb, var(--runwell-celadon, #ADDDBD) 18%, white);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.runwell-care-coaching-medvi__section-eyebrow {
|
|
32
|
+
font-size: var(--runwell-eyebrow-size, 0.78rem);
|
|
33
|
+
letter-spacing: 0.16em;
|
|
34
|
+
text-transform: uppercase;
|
|
35
|
+
font-weight: 600;
|
|
36
|
+
margin: 0 0 1rem;
|
|
37
|
+
text-align: center;
|
|
38
|
+
opacity: 0.85;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.runwell-care-coaching-medvi__headline {
|
|
42
|
+
font-family: var(--font-heading-family, inherit);
|
|
43
|
+
font-size: var(--runwell-h2-size, clamp(3rem, 5vw, 4.8rem));
|
|
44
|
+
font-weight: 700;
|
|
45
|
+
line-height: 1.1;
|
|
46
|
+
margin: 0 0 clamp(2rem, 5vw, 4rem);
|
|
47
|
+
text-align: center;
|
|
48
|
+
letter-spacing: -0.01em;
|
|
49
|
+
max-width: 18ch;
|
|
50
|
+
margin-left: auto;
|
|
51
|
+
margin-right: auto;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.runwell-care-coaching-medvi__headline-pre,
|
|
55
|
+
.runwell-care-coaching-medvi__headline-post {
|
|
56
|
+
display: block;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.runwell-care-coaching-medvi__inner {
|
|
60
|
+
position: relative;
|
|
61
|
+
display: grid;
|
|
62
|
+
grid-template-columns: 1fr;
|
|
63
|
+
gap: clamp(1.5rem, 3vw, 2.5rem);
|
|
64
|
+
max-width: 1200px;
|
|
65
|
+
margin: 0 auto;
|
|
66
|
+
align-items: stretch;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@media (min-width: 768px) {
|
|
70
|
+
.runwell-care-coaching-medvi__inner {
|
|
71
|
+
grid-template-columns: 1fr 1fr;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.runwell-care-coaching-medvi--portrait-right .runwell-care-coaching-medvi__inner {
|
|
75
|
+
direction: rtl;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.runwell-care-coaching-medvi--portrait-right .runwell-care-coaching-medvi__inner > * {
|
|
79
|
+
direction: ltr;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.runwell-care-coaching-medvi__portrait-card {
|
|
84
|
+
border-radius: var(--runwell-radius-xl, 32px);
|
|
85
|
+
overflow: hidden;
|
|
86
|
+
aspect-ratio: 4 / 5;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.runwell-care-coaching-medvi__portrait-card img {
|
|
90
|
+
display: block;
|
|
91
|
+
width: 100%;
|
|
92
|
+
height: 100%;
|
|
93
|
+
object-fit: cover;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.runwell-care-coaching-medvi__block {
|
|
97
|
+
display: flex;
|
|
98
|
+
flex-direction: column;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
gap: clamp(0.75rem, 2vw, 1.25rem);
|
|
101
|
+
padding: clamp(1.5rem, 4vw, 3rem) clamp(0.5rem, 2vw, 2rem);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.runwell-care-coaching-medvi__block--bg-transparent {
|
|
105
|
+
background: transparent;
|
|
106
|
+
padding-left: clamp(1rem, 2vw, 2rem);
|
|
107
|
+
padding-right: clamp(1rem, 2vw, 2rem);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Theme-driven default: tenant's design system decides the surface color
|
|
111
|
+
via --runwell-surface-card. Falls back to oat if the token is missing. */
|
|
112
|
+
.runwell-care-coaching-medvi__block--bg-card {
|
|
113
|
+
background: var(--runwell-surface-card, var(--runwell-oat, #F5F0EE));
|
|
114
|
+
border-radius: var(--runwell-radius-xl, 32px);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Explicit named overrides for tenants who want a specific brand color
|
|
118
|
+
regardless of the theme's surface-card token. */
|
|
119
|
+
.runwell-care-coaching-medvi__block--bg-oat-card {
|
|
120
|
+
background: var(--runwell-oat, #F5F0EE);
|
|
121
|
+
border-radius: var(--runwell-radius-xl, 32px);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.runwell-care-coaching-medvi__block--bg-celadon-card {
|
|
125
|
+
background: color-mix(in srgb, var(--runwell-celadon, #ADDDBD) 18%, white);
|
|
126
|
+
border-radius: var(--runwell-radius-xl, 32px);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.runwell-care-coaching-medvi__block-eyebrow {
|
|
130
|
+
font-size: var(--runwell-eyebrow-size, 0.78rem);
|
|
131
|
+
letter-spacing: 0.12em;
|
|
132
|
+
text-transform: uppercase;
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
margin: 0;
|
|
135
|
+
opacity: 0.7;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.runwell-care-coaching-medvi__block-heading {
|
|
139
|
+
font-family: var(--font-heading-family, inherit);
|
|
140
|
+
font-size: var(--runwell-h3-size, clamp(2rem, 3vw, 2.8rem));
|
|
141
|
+
font-weight: 700;
|
|
142
|
+
line-height: 1.2;
|
|
143
|
+
margin: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.runwell-care-coaching-medvi__block-body {
|
|
147
|
+
font-size: var(--runwell-body-size, 1.6rem);
|
|
148
|
+
line-height: 1.6;
|
|
149
|
+
opacity: 0.85;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.runwell-care-coaching-medvi__block-body p {
|
|
153
|
+
margin: 0 0 0.5em;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.runwell-care-coaching-medvi__block-body p:last-child {
|
|
157
|
+
margin-bottom: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* ----- Circular rotating text mark ----- */
|
|
161
|
+
|
|
162
|
+
.runwell-care-coaching-medvi__circular {
|
|
163
|
+
position: absolute;
|
|
164
|
+
width: clamp(110px, 14vw, 200px);
|
|
165
|
+
height: clamp(110px, 14vw, 200px);
|
|
166
|
+
z-index: 3;
|
|
167
|
+
pointer-events: none;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.runwell-care-coaching-medvi__circular--top-right { top: -8%; right: -4%; }
|
|
171
|
+
.runwell-care-coaching-medvi__circular--top-left { top: -8%; left: -4%; }
|
|
172
|
+
.runwell-care-coaching-medvi__circular--bottom-right { bottom: -8%; right: -4%; }
|
|
173
|
+
.runwell-care-coaching-medvi__circular--bottom-left { bottom: -8%; left: -4%; }
|
|
174
|
+
|
|
175
|
+
@media (max-width: 767px) {
|
|
176
|
+
.runwell-care-coaching-medvi__circular {
|
|
177
|
+
width: clamp(80px, 22vw, 130px);
|
|
178
|
+
height: clamp(80px, 22vw, 130px);
|
|
179
|
+
}
|
|
180
|
+
.runwell-care-coaching-medvi__circular--top-right,
|
|
181
|
+
.runwell-care-coaching-medvi__circular--bottom-right { right: 0; }
|
|
182
|
+
.runwell-care-coaching-medvi__circular--top-left,
|
|
183
|
+
.runwell-care-coaching-medvi__circular--bottom-left { left: 0; }
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.runwell-care-coaching-medvi__circular-svg {
|
|
187
|
+
width: 100%;
|
|
188
|
+
height: 100%;
|
|
189
|
+
animation: runwell-care-coaching-medvi__rotate 30s linear infinite;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.runwell-care-coaching-medvi__circular-text {
|
|
193
|
+
font-size: 18px;
|
|
194
|
+
font-weight: 600;
|
|
195
|
+
letter-spacing: 0.16em;
|
|
196
|
+
font-family: var(--font-body-family, inherit);
|
|
197
|
+
text-transform: uppercase;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@keyframes runwell-care-coaching-medvi__rotate {
|
|
201
|
+
from { transform: rotate(0deg); }
|
|
202
|
+
to { transform: rotate(360deg); }
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@media (prefers-reduced-motion: reduce) {
|
|
206
|
+
.runwell-care-coaching-medvi__circular-svg {
|
|
207
|
+
animation: none;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* ----- Footer ----- */
|
|
212
|
+
|
|
213
|
+
.runwell-care-coaching-medvi__footer {
|
|
214
|
+
margin-top: clamp(2rem, 4vw, 3rem);
|
|
215
|
+
text-align: center;
|
|
216
|
+
display: flex;
|
|
217
|
+
flex-direction: column;
|
|
218
|
+
gap: 0.5rem;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.runwell-care-coaching-medvi__footer-eyebrow {
|
|
222
|
+
font-size: var(--runwell-meta-size, 0.92rem);
|
|
223
|
+
font-weight: 600;
|
|
224
|
+
margin: 0;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.runwell-care-coaching-medvi__footer-link {
|
|
228
|
+
display: inline-block;
|
|
229
|
+
font-size: var(--runwell-meta-size, 0.92rem);
|
|
230
|
+
font-weight: 600;
|
|
231
|
+
color: var(--runwell-primary, #0B3D38);
|
|
232
|
+
text-decoration: underline;
|
|
233
|
+
text-underline-offset: 4px;
|
|
234
|
+
text-decoration-color: var(--runwell-blue, #8AD3CC);
|
|
235
|
+
text-decoration-thickness: 2px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.runwell-care-coaching-medvi__footer-link:hover,
|
|
239
|
+
.runwell-care-coaching-medvi__footer-link:focus {
|
|
240
|
+
text-decoration-color: var(--runwell-primary, #0B3D38);
|
|
241
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "care-coaching-medvi",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"category": "branding",
|
|
5
|
+
"source": "medvi",
|
|
6
|
+
"base": "care-coaching",
|
|
7
|
+
"qualifier": null,
|
|
8
|
+
"description": "Brand-promise section: portrait card + circular rotating text mark + 2-color headline + body + footer CTA line. Distinctive flourish for editorial-led brands.",
|
|
9
|
+
"replaces": null,
|
|
10
|
+
"files": {
|
|
11
|
+
"sections": [
|
|
12
|
+
"sections/runwell-care-coaching-medvi.liquid"
|
|
13
|
+
],
|
|
14
|
+
"snippets": [
|
|
15
|
+
"snippets/runwell-care-coaching-medvi-circular-text.liquid"
|
|
16
|
+
],
|
|
17
|
+
"assets": [
|
|
18
|
+
"assets/runwell-care-coaching-medvi.css"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"config": {
|
|
22
|
+
"schema": {
|
|
23
|
+
"section_eyebrow": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"default": "BETTER IS POSSIBLE, AND WE BUILT FOR IT.",
|
|
26
|
+
"label": "Section eyebrow"
|
|
27
|
+
},
|
|
28
|
+
"headline_pre": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"default": "Modern healthcare,",
|
|
31
|
+
"label": "Headline first part"
|
|
32
|
+
},
|
|
33
|
+
"headline_post": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"default": "built around you",
|
|
36
|
+
"label": "Headline accent part"
|
|
37
|
+
},
|
|
38
|
+
"headline_accent_color": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"default": "{{brand.primary}}",
|
|
41
|
+
"label": "Accent color for headline post"
|
|
42
|
+
},
|
|
43
|
+
"block_heading": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"default": "Care coaching and nutrition support",
|
|
46
|
+
"label": "Block heading"
|
|
47
|
+
},
|
|
48
|
+
"circular_text": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"default": "WITH YOU FROM START TO SUCCESS",
|
|
51
|
+
"label": "Circular text"
|
|
52
|
+
},
|
|
53
|
+
"circular_text_position": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"default": "top-right",
|
|
56
|
+
"label": "Circular text position: top-right, top-left, bottom-right, bottom-left"
|
|
57
|
+
},
|
|
58
|
+
"footer_link_label": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"default": "We're here for those details",
|
|
61
|
+
"label": "Footer link label"
|
|
62
|
+
},
|
|
63
|
+
"layout": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"default": "portrait-left",
|
|
66
|
+
"label": "Layout: portrait-left or portrait-right"
|
|
67
|
+
},
|
|
68
|
+
"bg_band": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"default": "white",
|
|
71
|
+
"label": "Background band: white, oat, celadon-tint"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"lineage": {
|
|
76
|
+
"extracted_from": "https://home.medvi.org/",
|
|
77
|
+
"scrape_path": "_clients/capital-v/lushi/research/medvi-reference/site-scrape/",
|
|
78
|
+
"framer_label": "Care Coaching"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Runwell care-coaching-medvi.
|
|
3
|
+
|
|
4
|
+
Brand-promise section: section eyebrow + 2-color headline at top;
|
|
5
|
+
large portrait card on one side; block (heading + body) on the other;
|
|
6
|
+
circular rotating text mark anchored to a corner of the section;
|
|
7
|
+
footer eyebrow + link below.
|
|
8
|
+
|
|
9
|
+
Lineage: extracted from home.medvi.org (Framer label "Care Coaching"),
|
|
10
|
+
generalised to Runwell brand tokens.
|
|
11
|
+
{%- endcomment -%}
|
|
12
|
+
|
|
13
|
+
{{ 'runwell-care-coaching-medvi.css' | asset_url | stylesheet_tag }}
|
|
14
|
+
|
|
15
|
+
{%- liquid
|
|
16
|
+
assign layout = section.settings.layout | default: 'portrait-left'
|
|
17
|
+
assign bg_band = section.settings.bg_band | default: 'white'
|
|
18
|
+
assign accent_color = section.settings.headline_accent_color | default: 'var(--runwell-primary)'
|
|
19
|
+
assign portrait_card_bg = section.settings.portrait_card_bg | default: 'var(--runwell-oat)'
|
|
20
|
+
assign block_bg = section.settings.block_bg | default: 'transparent'
|
|
21
|
+
assign circular_position = section.settings.circular_text_position | default: 'top-right'
|
|
22
|
+
assign circular_color = section.settings.circular_text_accent | default: 'var(--runwell-tertiary)'
|
|
23
|
+
-%}
|
|
24
|
+
|
|
25
|
+
<section
|
|
26
|
+
class="runwell-care-coaching-medvi runwell-care-coaching-medvi--{{ layout }} runwell-care-coaching-medvi--bg-{{ bg_band }}"
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
{%- if section.settings.section_eyebrow != blank -%}
|
|
30
|
+
<p class="runwell-care-coaching-medvi__section-eyebrow">{{ section.settings.section_eyebrow }}</p>
|
|
31
|
+
{%- endif -%}
|
|
32
|
+
|
|
33
|
+
{%- if section.settings.headline_pre != blank or section.settings.headline_post != blank -%}
|
|
34
|
+
<h2 class="runwell-care-coaching-medvi__headline">
|
|
35
|
+
{%- if section.settings.headline_pre != blank -%}
|
|
36
|
+
<span class="runwell-care-coaching-medvi__headline-pre">{{ section.settings.headline_pre }}</span>
|
|
37
|
+
{%- endif -%}
|
|
38
|
+
{%- if section.settings.headline_post != blank -%}
|
|
39
|
+
<span class="runwell-care-coaching-medvi__headline-post" style="color: {{ accent_color }};">{{ section.settings.headline_post }}</span>
|
|
40
|
+
{%- endif -%}
|
|
41
|
+
</h2>
|
|
42
|
+
{%- endif -%}
|
|
43
|
+
|
|
44
|
+
<div class="runwell-care-coaching-medvi__inner">
|
|
45
|
+
|
|
46
|
+
<div class="runwell-care-coaching-medvi__portrait-card" style="background: {{ portrait_card_bg }};">
|
|
47
|
+
{%- if section.settings.portrait_image != blank -%}
|
|
48
|
+
<img
|
|
49
|
+
src="{{ section.settings.portrait_image | image_url: width: 1000 }}"
|
|
50
|
+
alt="{{ section.settings.portrait_image.alt | default: section.settings.block_heading | escape }}"
|
|
51
|
+
width="{{ section.settings.portrait_image.width }}"
|
|
52
|
+
height="{{ section.settings.portrait_image.height }}"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
>
|
|
55
|
+
{%- elsif section.settings.portrait_image_asset != blank -%}
|
|
56
|
+
<img
|
|
57
|
+
src="{{ section.settings.portrait_image_asset | asset_url }}"
|
|
58
|
+
alt="{{ section.settings.block_heading | escape }}"
|
|
59
|
+
width="800"
|
|
60
|
+
height="1000"
|
|
61
|
+
loading="lazy"
|
|
62
|
+
>
|
|
63
|
+
{%- endif -%}
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div class="runwell-care-coaching-medvi__block runwell-care-coaching-medvi__block--bg-{{ block_bg }}">
|
|
67
|
+
{%- if section.settings.block_eyebrow != blank -%}
|
|
68
|
+
<p class="runwell-care-coaching-medvi__block-eyebrow">{{ section.settings.block_eyebrow }}</p>
|
|
69
|
+
{%- endif -%}
|
|
70
|
+
{%- if section.settings.block_heading != blank -%}
|
|
71
|
+
<h3 class="runwell-care-coaching-medvi__block-heading">{{ section.settings.block_heading }}</h3>
|
|
72
|
+
{%- endif -%}
|
|
73
|
+
{%- if section.settings.block_body != blank -%}
|
|
74
|
+
<div class="runwell-care-coaching-medvi__block-body">{{ section.settings.block_body }}</div>
|
|
75
|
+
{%- endif -%}
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
{%- if section.settings.circular_text != blank -%}
|
|
79
|
+
<div class="runwell-care-coaching-medvi__circular runwell-care-coaching-medvi__circular--{{ circular_position }}">
|
|
80
|
+
{%- render 'runwell-care-coaching-medvi-circular-text',
|
|
81
|
+
text: section.settings.circular_text,
|
|
82
|
+
color: circular_color,
|
|
83
|
+
id_suffix: section.id
|
|
84
|
+
-%}
|
|
85
|
+
</div>
|
|
86
|
+
{%- endif -%}
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
{%- if section.settings.footer_eyebrow != blank or section.settings.footer_link_label != blank -%}
|
|
91
|
+
<div class="runwell-care-coaching-medvi__footer">
|
|
92
|
+
{%- if section.settings.footer_eyebrow != blank -%}
|
|
93
|
+
<p class="runwell-care-coaching-medvi__footer-eyebrow">{{ section.settings.footer_eyebrow }}</p>
|
|
94
|
+
{%- endif -%}
|
|
95
|
+
{%- if section.settings.footer_link_label != blank -%}
|
|
96
|
+
<a href="{{ section.settings.footer_link_href | default: '#' }}" class="runwell-care-coaching-medvi__footer-link">
|
|
97
|
+
{{ section.settings.footer_link_label }}
|
|
98
|
+
</a>
|
|
99
|
+
{%- endif -%}
|
|
100
|
+
</div>
|
|
101
|
+
{%- endif -%}
|
|
102
|
+
|
|
103
|
+
</section>
|
|
104
|
+
|
|
105
|
+
{% schema %}
|
|
106
|
+
{
|
|
107
|
+
"name": "Care coaching (medvi)",
|
|
108
|
+
"tag": "section",
|
|
109
|
+
"class": "section-runwell-care-coaching-medvi",
|
|
110
|
+
"settings": [
|
|
111
|
+
{
|
|
112
|
+
"type": "header",
|
|
113
|
+
"content": "Headline"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "text",
|
|
117
|
+
"id": "section_eyebrow",
|
|
118
|
+
"label": "Section eyebrow (centered, tracked caps)",
|
|
119
|
+
"default": "BETTER IS POSSIBLE, AND WE BUILT FOR IT."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"type": "text",
|
|
123
|
+
"id": "headline_pre",
|
|
124
|
+
"label": "Headline (first part)",
|
|
125
|
+
"default": "Modern healthcare,"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "text",
|
|
129
|
+
"id": "headline_post",
|
|
130
|
+
"label": "Headline (accent part)",
|
|
131
|
+
"default": "built around you"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"type": "color",
|
|
135
|
+
"id": "headline_accent_color",
|
|
136
|
+
"label": "Headline accent color",
|
|
137
|
+
"default": "#0B3D38"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"type": "header",
|
|
141
|
+
"content": "Portrait card"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "image_picker",
|
|
145
|
+
"id": "portrait_image",
|
|
146
|
+
"label": "Portrait image (4:5 portrait crop)"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"type": "text",
|
|
150
|
+
"id": "portrait_image_asset",
|
|
151
|
+
"label": "Portrait (asset filename fallback)"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"type": "color",
|
|
155
|
+
"id": "portrait_card_bg",
|
|
156
|
+
"label": "Card background tint",
|
|
157
|
+
"default": "#F5F0EE"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": "header",
|
|
161
|
+
"content": "Block copy"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"type": "select",
|
|
165
|
+
"id": "block_bg",
|
|
166
|
+
"label": "Block background",
|
|
167
|
+
"info": "Card: theme-driven surface color (uses --runwell-surface-card token; defaults to oat). Oat / Celadon: explicit named brand colors. Transparent: no card background.",
|
|
168
|
+
"options": [
|
|
169
|
+
{ "value": "card", "label": "Card (theme default)" },
|
|
170
|
+
{ "value": "oat-card", "label": "Oat card" },
|
|
171
|
+
{ "value": "celadon-card", "label": "Celadon card" },
|
|
172
|
+
{ "value": "transparent", "label": "Transparent (no card)" }
|
|
173
|
+
],
|
|
174
|
+
"default": "card"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"type": "text",
|
|
178
|
+
"id": "block_eyebrow",
|
|
179
|
+
"label": "Block eyebrow (optional)"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "text",
|
|
183
|
+
"id": "block_heading",
|
|
184
|
+
"label": "Block heading",
|
|
185
|
+
"default": "Care coaching and nutrition support"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"type": "richtext",
|
|
189
|
+
"id": "block_body",
|
|
190
|
+
"label": "Block body",
|
|
191
|
+
"default": "<p>Our care coaching team, led by certified medical assistants and registered dietitians, helps answer questions about your medication, program, and day-to-day lifestyle changes, so you have the guidance you need to stay on track and see results.</p>"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "header",
|
|
195
|
+
"content": "Circular text mark"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"type": "text",
|
|
199
|
+
"id": "circular_text",
|
|
200
|
+
"label": "Circular text",
|
|
201
|
+
"default": "WITH YOU FROM START TO SUCCESS"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"type": "color",
|
|
205
|
+
"id": "circular_text_accent",
|
|
206
|
+
"label": "Circular text color",
|
|
207
|
+
"default": "#0B3D38"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "select",
|
|
211
|
+
"id": "circular_text_position",
|
|
212
|
+
"label": "Circular text position",
|
|
213
|
+
"options": [
|
|
214
|
+
{ "value": "top-right", "label": "Top right" },
|
|
215
|
+
{ "value": "top-left", "label": "Top left" },
|
|
216
|
+
{ "value": "bottom-right", "label": "Bottom right" },
|
|
217
|
+
{ "value": "bottom-left", "label": "Bottom left" }
|
|
218
|
+
],
|
|
219
|
+
"default": "top-right"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"type": "header",
|
|
223
|
+
"content": "Footer line"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"type": "text",
|
|
227
|
+
"id": "footer_eyebrow",
|
|
228
|
+
"label": "Footer eyebrow (centered, small)",
|
|
229
|
+
"default": "We're creating a better experience, and the details matter"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"type": "text",
|
|
233
|
+
"id": "footer_link_label",
|
|
234
|
+
"label": "Footer link label",
|
|
235
|
+
"default": "We're here for those details"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"type": "url",
|
|
239
|
+
"id": "footer_link_href",
|
|
240
|
+
"label": "Footer link href"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"type": "header",
|
|
244
|
+
"content": "Layout"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"type": "select",
|
|
248
|
+
"id": "layout",
|
|
249
|
+
"label": "Layout",
|
|
250
|
+
"options": [
|
|
251
|
+
{ "value": "portrait-left", "label": "Portrait on left" },
|
|
252
|
+
{ "value": "portrait-right", "label": "Portrait on right" }
|
|
253
|
+
],
|
|
254
|
+
"default": "portrait-left"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"type": "select",
|
|
258
|
+
"id": "bg_band",
|
|
259
|
+
"label": "Background band",
|
|
260
|
+
"options": [
|
|
261
|
+
{ "value": "white", "label": "White" },
|
|
262
|
+
{ "value": "oat", "label": "Oat" },
|
|
263
|
+
{ "value": "celadon-tint", "label": "Celadon tint" }
|
|
264
|
+
],
|
|
265
|
+
"default": "white"
|
|
266
|
+
}
|
|
267
|
+
],
|
|
268
|
+
"presets": [
|
|
269
|
+
{
|
|
270
|
+
"name": "Care coaching (medvi)"
|
|
271
|
+
}
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
{% endschema %}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Renders text-on-path along a closed circle as inline SVG. Used by the
|
|
3
|
+
care-coaching-medvi section as a slow-rotating decorative mark.
|
|
4
|
+
|
|
5
|
+
Inputs:
|
|
6
|
+
- text: the string to render around the circle
|
|
7
|
+
- color: CSS color value
|
|
8
|
+
- id_suffix: unique suffix (avoids id collisions when section appears
|
|
9
|
+
multiple times on a page)
|
|
10
|
+
{%- endcomment -%}
|
|
11
|
+
|
|
12
|
+
{%- assign uid = id_suffix | default: section.id -%}
|
|
13
|
+
|
|
14
|
+
<svg viewBox="0 0 200 200" class="runwell-care-coaching-medvi__circular-svg" aria-hidden="true">
|
|
15
|
+
<defs>
|
|
16
|
+
<path
|
|
17
|
+
id="runwell-care-coaching-medvi-path-{{ uid }}"
|
|
18
|
+
d="M 100, 100 m -75, 0 a 75,75 0 1,1 150,0 a 75,75 0 1,1 -150,0"
|
|
19
|
+
fill="none"
|
|
20
|
+
/>
|
|
21
|
+
</defs>
|
|
22
|
+
<text fill="{{ color | default: 'currentColor' }}" class="runwell-care-coaching-medvi__circular-text">
|
|
23
|
+
<textPath href="#runwell-care-coaching-medvi-path-{{ uid }}" startOffset="0%">{{ text | escape }}</textPath>
|
|
24
|
+
</text>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# collection-block-medvi
|
|
2
|
+
|
|
3
|
+
Duplex category section. Product hero card on one side; eyebrow + split-color headline + 2 lifestyle photos + benefits checklist + CTA on the other. Sides flip per instance via the `layout` setting. The most-reused pattern from medvi.org's homepage.
|
|
4
|
+
|
|
5
|
+
Category: `storefront`
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
- `sections/runwell-collection-block-medvi.liquid`
|
|
10
|
+
- `assets/runwell-collection-block-medvi.css`
|
|
11
|
+
|
|
12
|
+
## Layout options
|
|
13
|
+
|
|
14
|
+
- `image-left` (default): product side first.
|
|
15
|
+
- `image-right`: copy side first. Use for visual rhythm; alternate per instance for an A-B-A flow.
|
|
16
|
+
- `show_product_card: false`: hides the product card; the benefits list fills the product side.
|
|
17
|
+
|
|
18
|
+
## Tokens consumed
|
|
19
|
+
|
|
20
|
+
Brand: `--runwell-primary`, `--runwell-tertiary`, `--runwell-oat`, `--runwell-celadon`. Design system: `--runwell-radius-lg`, `--runwell-radius-xl`, `--runwell-shadow-card`. Typography: `--runwell-eyebrow-size`, `--runwell-h2-size`, `--runwell-h4-size`, `--runwell-body-size`, `--runwell-cta-size`.
|
|
21
|
+
|
|
22
|
+
## Blocks
|
|
23
|
+
|
|
24
|
+
The section schema accepts `benefit` blocks (1 to 5). Each benefit renders a brand-colored circle-check icon plus text. Defaults shipped via the section preset cover the medvi pattern (5 benefits).
|
|
25
|
+
|
|
26
|
+
## Headline two-color split
|
|
27
|
+
|
|
28
|
+
Headline is composed of `headline_pre` (default color) and `headline_post` (accent color via `headline_accent_color`). Both pieces render inline so they flow naturally on the same line; line wraps fall where the browser places them.
|
|
29
|
+
|
|
30
|
+
## Lineage
|
|
31
|
+
|
|
32
|
+
Extracted from `https://home.medvi.org/` on 2026-05-06.
|
|
33
|
+
|
|
34
|
+
- Framer label: `Cards & Copy`.
|
|
35
|
+
- Scrape path: `_clients/capital-v/lushi/research/medvi-reference/site-scrape/` (in claude-PM repo, gitignored, local only).
|
|
36
|
+
- Generalisation: ships with Lushi-tinted defaults (Rain Forrest primary, Celadon product card background, "Supplements with the power to boost real results" headline). Tenants override per-instance via Theme Editor or globally via `runwell.config.json` brand block.
|
|
37
|
+
|
|
38
|
+
## Tenant overrides
|
|
39
|
+
|
|
40
|
+
Per-tenant overrides flow through two channels:
|
|
41
|
+
|
|
42
|
+
1. `runwell.config.json` brand block: rewires the global tokens (`brand.primary`, `brand.celadon`, etc.) so every instance picks up the new color palette.
|
|
43
|
+
2. Per-instance section settings in the Theme Editor: override eyebrow, headline copy, accent color, layout, background band on a single use of the section.
|
|
44
|
+
|
|
45
|
+
## Notes
|
|
46
|
+
|
|
47
|
+
- Mobile: stacks vertically below 768px, side-by-side above.
|
|
48
|
+
- Photos use a 3:4 aspect ratio; product card is 4:3.
|
|
49
|
+
- Benefits checkmark icon is rendered as inline SVG (no extra asset).
|
|
50
|
+
- CTA button is a pill with brand-primary background; hover lifts the button by 1px (respects `prefers-reduced-motion`).
|