@runwell/shopify-toolkit 0.15.4 → 0.16.1
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/modules/comparison-table/variants/feature-columns/sections/runwell-comparison-table.liquid +1 -1
- package/modules/comparison-table/variants/feature-rows/sections/runwell-comparison-table.liquid +1 -1
- package/modules/editorial-hero/module.json +6 -4
- package/modules/editorial-hero/variants/video-bg/assets/runwell-video-hero.css +138 -0
- package/modules/editorial-hero/variants/video-bg/sections/runwell-video-hero.liquid +21 -5
- package/package.json +1 -1
package/modules/comparison-table/variants/feature-columns/sections/runwell-comparison-table.liquid
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{%- endif -%}
|
|
19
19
|
|
|
20
20
|
{%- if section.settings.heading != blank -%}
|
|
21
|
-
<h2 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; line-height: 1.05; margin: 0 0 1rem 0; max-width: 22ch;">
|
|
21
|
+
<h2 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-h2-size); line-height: 1.05; margin: 0 0 1rem 0; max-width: 22ch;">
|
|
22
22
|
{{ section.settings.heading }}
|
|
23
23
|
</h2>
|
|
24
24
|
{%- endif -%}
|
package/modules/comparison-table/variants/feature-rows/sections/runwell-comparison-table.liquid
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{%- endif -%}
|
|
18
18
|
|
|
19
19
|
{%- if section.settings.heading != blank -%}
|
|
20
|
-
<h2 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; line-height: 1.05; margin: 0 auto 1rem; max-width: 24ch; text-align: center;">
|
|
20
|
+
<h2 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-h2-size); line-height: 1.05; margin: 0 auto 1rem; max-width: 24ch; text-align: center;">
|
|
21
21
|
{{ section.settings.heading }}
|
|
22
22
|
</h2>
|
|
23
23
|
{%- endif -%}
|
|
@@ -13,15 +13,17 @@
|
|
|
13
13
|
},
|
|
14
14
|
"variants": {
|
|
15
15
|
"video-bg": {
|
|
16
|
-
"description": "Full-bleed background video (mp4) with poster fallback, eyebrow + heading + subhead + primary/secondary CTAs. Section type: runwell-video-hero.",
|
|
16
|
+
"description": "Full-bleed background video (mp4) with poster fallback, eyebrow + heading + subhead + primary/secondary CTAs. Section type: runwell-video-hero. Ships its own CSS so tenants don't have to re-implement layout. Content position is configurable via Theme Editor (default: middle-left, keeps the primary CTA above the fold).",
|
|
17
17
|
"files": {
|
|
18
|
-
"sections": ["variants/video-bg/sections/runwell-video-hero.liquid"]
|
|
18
|
+
"sections": ["variants/video-bg/sections/runwell-video-hero.liquid"],
|
|
19
|
+
"assets": ["variants/video-bg/assets/runwell-video-hero.css"]
|
|
19
20
|
},
|
|
20
21
|
"config_extra": {
|
|
21
22
|
"video_url": { "type": "string", "label": "Background video URL (mp4)" },
|
|
22
23
|
"poster_image": { "type": "string", "label": "Poster image (and fallback)" },
|
|
23
|
-
"fallback_asset": { "type": "string", "label": "Bundled fallback asset filename
|
|
24
|
-
"min_height": { "type": "number", "default":
|
|
24
|
+
"fallback_asset": { "type": "string", "label": "Bundled fallback asset filename" },
|
|
25
|
+
"min_height": { "type": "number", "default": 90, "label": "Hero min-height (vh)" },
|
|
26
|
+
"content_position": { "type": "string", "default": "middle-left", "label": "Content position (top-left | middle-left | bottom-left | center | bottom-center)" },
|
|
25
27
|
"button_label_primary": { "type": "string", "default": "Shop now", "label": "Primary button label" },
|
|
26
28
|
"button_link_primary": { "type": "string", "label": "Primary button link" },
|
|
27
29
|
"button_label_secondary": { "type": "string", "default": "Learn more", "label": "Secondary button label" },
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/* Runwell editorial-hero video-bg variant.
|
|
2
|
+
Ships baseline layout so tenants don't have to re-implement.
|
|
3
|
+
Content position is controlled via [data-position] section setting:
|
|
4
|
+
middle-left (default), top-left, bottom-left, center, bottom-center.
|
|
5
|
+
Tenants can override colors/typography in their brand stylesheet. */
|
|
6
|
+
|
|
7
|
+
.runwell-video-hero {
|
|
8
|
+
position: relative;
|
|
9
|
+
width: 100%;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
background: var(--runwell-primary, #1A1A1A);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.runwell-video-hero__video {
|
|
15
|
+
position: absolute;
|
|
16
|
+
top: 0;
|
|
17
|
+
left: 0;
|
|
18
|
+
width: 100%;
|
|
19
|
+
height: 100%;
|
|
20
|
+
object-fit: cover;
|
|
21
|
+
z-index: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.runwell-video-hero__overlay {
|
|
25
|
+
position: absolute;
|
|
26
|
+
inset: 0;
|
|
27
|
+
background: linear-gradient(180deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.55) 100%);
|
|
28
|
+
z-index: 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Content layer. Default content-position = middle-left.
|
|
32
|
+
Padding leaves comfortable breathing room without pushing CTAs below fold
|
|
33
|
+
even on 90vh hero, because flex centers content vertically. */
|
|
34
|
+
.runwell-video-hero__content {
|
|
35
|
+
position: relative;
|
|
36
|
+
z-index: 2;
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
height: 100%;
|
|
40
|
+
min-height: inherit;
|
|
41
|
+
padding: 6rem 6vw;
|
|
42
|
+
color: #FFFFFF;
|
|
43
|
+
max-width: 1400px;
|
|
44
|
+
margin: 0 auto;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
align-items: flex-start;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Position variants set via section setting */
|
|
50
|
+
.runwell-video-hero[data-position="top-left"] .runwell-video-hero__content {
|
|
51
|
+
justify-content: flex-start;
|
|
52
|
+
align-items: flex-start;
|
|
53
|
+
}
|
|
54
|
+
.runwell-video-hero[data-position="middle-left"] .runwell-video-hero__content {
|
|
55
|
+
justify-content: center;
|
|
56
|
+
align-items: flex-start;
|
|
57
|
+
}
|
|
58
|
+
.runwell-video-hero[data-position="bottom-left"] .runwell-video-hero__content {
|
|
59
|
+
justify-content: flex-end;
|
|
60
|
+
align-items: flex-start;
|
|
61
|
+
}
|
|
62
|
+
.runwell-video-hero[data-position="center"] .runwell-video-hero__content {
|
|
63
|
+
justify-content: center;
|
|
64
|
+
align-items: center;
|
|
65
|
+
text-align: center;
|
|
66
|
+
}
|
|
67
|
+
.runwell-video-hero[data-position="bottom-center"] .runwell-video-hero__content {
|
|
68
|
+
justify-content: flex-end;
|
|
69
|
+
align-items: center;
|
|
70
|
+
text-align: center;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.runwell-video-hero__title {
|
|
74
|
+
font-family: var(--font-heading-family, serif);
|
|
75
|
+
font-size: calc(var(--font-heading-scale) * clamp(2.6rem, 6vw, 5.8rem));
|
|
76
|
+
font-weight: 400;
|
|
77
|
+
font-style: normal;
|
|
78
|
+
line-height: 1.02;
|
|
79
|
+
margin: 0 0 1.2rem 0;
|
|
80
|
+
max-width: 14ch;
|
|
81
|
+
color: #FFFFFF;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.runwell-video-hero__subtitle {
|
|
85
|
+
font-family: var(--font-body-family, sans-serif);
|
|
86
|
+
font-size: var(--runwell-lede-size);
|
|
87
|
+
line-height: 1.5;
|
|
88
|
+
margin: 0 0 2rem 0;
|
|
89
|
+
max-width: 42ch;
|
|
90
|
+
opacity: 0.95;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.runwell-video-hero__cta-row {
|
|
94
|
+
display: flex;
|
|
95
|
+
gap: 0.9rem;
|
|
96
|
+
flex-wrap: wrap;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.runwell-video-hero__cta {
|
|
100
|
+
display: inline-block;
|
|
101
|
+
padding: 1.1rem 1.8rem;
|
|
102
|
+
border-radius: 4px;
|
|
103
|
+
font-weight: 700;
|
|
104
|
+
font-size: var(--runwell-body-size);
|
|
105
|
+
letter-spacing: 0.01em;
|
|
106
|
+
text-decoration: none;
|
|
107
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.runwell-video-hero__cta--primary {
|
|
111
|
+
background: #FFFFFF;
|
|
112
|
+
color: var(--runwell-primary, #1A1A1A);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.runwell-video-hero__cta--primary:hover {
|
|
116
|
+
opacity: 0.9;
|
|
117
|
+
transform: translateY(-1px);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.runwell-video-hero__cta--secondary {
|
|
121
|
+
background: transparent;
|
|
122
|
+
color: #FFFFFF;
|
|
123
|
+
border: 1px solid rgba(255, 255, 255, 0.45);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.runwell-video-hero__cta--secondary:hover {
|
|
127
|
+
background: rgba(255, 255, 255, 0.10);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@media (max-width: 749px) {
|
|
131
|
+
.runwell-video-hero__content {
|
|
132
|
+
padding: 4rem 6vw;
|
|
133
|
+
}
|
|
134
|
+
.runwell-video-hero__cta {
|
|
135
|
+
padding: 0.9rem 1.4rem;
|
|
136
|
+
font-size: var(--runwell-cta-size);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
Runwell video hero. Full-bleed background video with editorial copy
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
Runwell video hero. Full-bleed background video with editorial copy.
|
|
3
|
+
Default content position is middle-left so the primary CTA stays above
|
|
4
|
+
the fold. Tenants can change via Theme Editor (top-left, middle-left,
|
|
5
|
+
bottom-left, center, bottom-center).
|
|
5
6
|
{%- endcomment -%}
|
|
7
|
+
{{ 'runwell-video-hero.css' | asset_url | stylesheet_tag }}
|
|
6
8
|
|
|
7
|
-
<section class="runwell-video-hero" style="min-height: {{ section.settings.min_height | default:
|
|
9
|
+
<section class="runwell-video-hero" data-position="{{ section.settings.content_position | default: 'middle-left' }}" style="min-height: {{ section.settings.min_height | default: 90 }}vh;">
|
|
8
10
|
{%- if section.settings.video_url != blank -%}
|
|
9
11
|
<video
|
|
10
12
|
class="runwell-video-hero__video"
|
|
@@ -122,9 +124,23 @@
|
|
|
122
124
|
"min": 60,
|
|
123
125
|
"max": 100,
|
|
124
126
|
"step": 5,
|
|
125
|
-
"default":
|
|
127
|
+
"default": 90,
|
|
126
128
|
"unit": "vh"
|
|
127
129
|
},
|
|
130
|
+
{
|
|
131
|
+
"type": "select",
|
|
132
|
+
"id": "content_position",
|
|
133
|
+
"label": "Content position",
|
|
134
|
+
"default": "middle-left",
|
|
135
|
+
"options": [
|
|
136
|
+
{ "value": "top-left", "label": "Top left" },
|
|
137
|
+
{ "value": "middle-left", "label": "Middle left" },
|
|
138
|
+
{ "value": "bottom-left", "label": "Bottom left" },
|
|
139
|
+
{ "value": "center", "label": "Center" },
|
|
140
|
+
{ "value": "bottom-center", "label": "Bottom center" }
|
|
141
|
+
],
|
|
142
|
+
"info": "Default middle-left keeps the primary CTA above the fold on most viewports."
|
|
143
|
+
},
|
|
128
144
|
{
|
|
129
145
|
"type": "text",
|
|
130
146
|
"id": "button_label_primary",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runwell/shopify-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Reusable Shopify theme modules from Runwell. Replaces typically app-driven features (reviews, wishlist, urgency, FAQ, post-purchase upsell, exit popups, free-ship progress, sticky ATC, testimonials, badges, bundles) with native Liquid + JS + CSS that ship across multiple client themes via a config-driven sync CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|