@runwell/shopify-toolkit 0.6.0 → 0.8.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/modules/INDEX.md +35 -9
- package/modules/comparison-table/variants/feature-columns/sections/runwell-comparison-table.liquid +3 -3
- package/modules/delivery-estimate/snippets/runwell-delivery-estimate.liquid +1 -1
- package/modules/editorial-block/sections/runwell-editorial-block.liquid +3 -3
- package/modules/editorial-hero/module.json +36 -53
- package/modules/editorial-hero/variants/hero-with-card/assets/runwell-editorial-hero.css +108 -0
- package/modules/editorial-hero/variants/hero-with-card/sections/runwell-editorial-hero.liquid +91 -0
- package/modules/editorial-hero/{sections → variants/video-bg/sections}/runwell-video-hero.liquid +3 -3
- package/modules/exit-intent/sections/runwell-exit-intent.liquid +3 -3
- package/modules/faq/sections/runwell-faq.liquid +5 -5
- package/modules/how-it-works/sections/runwell-how-it-works.liquid +5 -5
- package/modules/inventory-urgency/snippets/runwell-inventory-urgency.liquid +1 -1
- package/modules/pdp-ingredients/sections/runwell-ingredients.liquid +14 -6
- package/modules/pdp-journal-link/sections/runwell-pdp-journal.liquid +18 -9
- package/modules/pdp-trust-checks/sections/runwell-pdp-trust.liquid +4 -4
- package/modules/press-bar/sections/runwell-press-bar.liquid +3 -3
- package/modules/recently-viewed/sections/runwell-recently-viewed.liquid +3 -3
- package/modules/reviews/sections/runwell-pdp-reviews.liquid +15 -9
- package/modules/risk-reversal/sections/runwell-risk-reversal.liquid +3 -3
- package/modules/scrolling-ticker/assets/runwell-scrolling-ticker.css +51 -0
- package/modules/scrolling-ticker/module.json +13 -0
- package/modules/scrolling-ticker/sections/runwell-scrolling-ticker.liquid +82 -0
- package/modules/shipping-bar/sections/runwell-shipping-bar.liquid +3 -3
- package/modules/social-proof-banner/assets/runwell-social-proof-banner.css +30 -0
- package/modules/social-proof-banner/module.json +13 -0
- package/modules/social-proof-banner/sections/runwell-social-proof-banner.liquid +66 -0
- package/modules/stats-bar/assets/runwell-stats-bar.css +49 -0
- package/modules/stats-bar/module.json +13 -0
- package/modules/stats-bar/sections/runwell-stats-bar.liquid +87 -0
- package/modules/sticky-atc/sections/runwell-pdp-sticky.liquid +3 -3
- package/modules/testimonials/module.json +24 -26
- package/modules/testimonials/variants/carousel-ugc/assets/runwell-testimonials.css +169 -0
- package/modules/testimonials/variants/carousel-ugc/sections/runwell-testimonials.liquid +148 -0
- package/modules/testimonials/{sections → variants/grid-quotes/sections}/runwell-testimonials.liquid +3 -3
- package/modules/trust-badges/sections/runwell-trust-badges.liquid +4 -4
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
|
|
2
|
+
Runwell sticky add-to-cart for PDP. Slides up from the bottom on scroll
|
|
3
3
|
past the main buy button, hides again when buy area returns to view.
|
|
4
4
|
Mobile-first; on desktop reveals only after a meaningful scroll depth.
|
|
5
5
|
{%- endcomment -%}
|
|
@@ -68,12 +68,12 @@
|
|
|
68
68
|
|
|
69
69
|
{% schema %}
|
|
70
70
|
{
|
|
71
|
-
"name": "
|
|
71
|
+
"name": "Runwell sticky ATC",
|
|
72
72
|
"tag": "section",
|
|
73
73
|
"class": "section-runwell-sticky-atc",
|
|
74
74
|
"settings": [],
|
|
75
75
|
"presets": [
|
|
76
|
-
{ "name": "
|
|
76
|
+
{ "name": "Runwell sticky ATC" }
|
|
77
77
|
]
|
|
78
78
|
}
|
|
79
79
|
{% endschema %}
|
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testimonials",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"category": "social-proof",
|
|
5
|
-
"description": "
|
|
6
|
-
"
|
|
7
|
-
"sections": [
|
|
8
|
-
"sections/runwell-testimonials.liquid"
|
|
9
|
-
]
|
|
10
|
-
},
|
|
5
|
+
"description": "Customer testimonials section. Two visual treatments: grid-quotes (default) renders 3 to 6 quote cards in a responsive grid, ideal for editorial brands; carousel-ugc renders a coverflow-style image carousel of UGC photos with arrows + click-to-jump, ideal for lifestyle/social-led brands. Replaces app-driven review widgets at the social-proof display layer.",
|
|
6
|
+
"default_variant": "grid-quotes",
|
|
11
7
|
"config": {
|
|
12
8
|
"schema": {
|
|
13
|
-
"eyebrow": {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
"eyebrow": { "type": "string", "default": "From the inbox", "label": "Eyebrow" },
|
|
10
|
+
"heading": { "type": "string", "default": "What customers are writing in.", "label": "Heading" },
|
|
11
|
+
"background_color": { "type": "string", "default": "#F5F0EE", "label": "Background" },
|
|
12
|
+
"text_color": { "type": "string", "default": "#0B3D38", "label": "Text" }
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"variants": {
|
|
16
|
+
"grid-quotes": {
|
|
17
|
+
"description": "3 to 6 customer quote cards in a responsive grid. Each block is a quote with author + context + 0-5 star rating. Best for editorial / wellness brands.",
|
|
18
|
+
"files": {
|
|
19
|
+
"sections": ["variants/grid-quotes/sections/runwell-testimonials.liquid"]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"carousel-ugc": {
|
|
23
|
+
"description": "Coverflow-style UGC image carousel with arrows + click-to-jump. Each block is an image (image_picker or asset filename fallback) with alt text. Best for lifestyle / social-led brands. Ported from Lusha bespoke (guabrasha-store/sections/ugc-carousel.liquid).",
|
|
24
|
+
"files": {
|
|
25
|
+
"sections": ["variants/carousel-ugc/sections/runwell-testimonials.liquid"],
|
|
26
|
+
"assets": ["variants/carousel-ugc/assets/runwell-testimonials.css"]
|
|
27
27
|
},
|
|
28
|
-
"
|
|
29
|
-
"type": "string",
|
|
30
|
-
"default": "#0B3D38",
|
|
31
|
-
"label": "Text"
|
|
28
|
+
"config_extra": {
|
|
29
|
+
"subheading": { "type": "string", "default": "See how they sculpt", "label": "Subheading" }
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
|
-
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/* UGC Carousel: Coverflow-style image showcase */
|
|
2
|
+
.runwell-testimonials--carousel {
|
|
3
|
+
padding: 40px 0;
|
|
4
|
+
background: var(--gradient-background);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.runwell-testimonials__heading {
|
|
8
|
+
font-family: var(--font-heading-family);
|
|
9
|
+
font-size: 2.4rem;
|
|
10
|
+
text-align: center;
|
|
11
|
+
margin-bottom: 8px;
|
|
12
|
+
color: rgba(var(--color-foreground), 1);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.runwell-testimonials__subheading {
|
|
16
|
+
font-size: 1.4rem;
|
|
17
|
+
text-align: center;
|
|
18
|
+
color: rgba(var(--color-foreground), 0.65);
|
|
19
|
+
margin-bottom: 32px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.runwell-testimonials__viewport {
|
|
23
|
+
position: relative;
|
|
24
|
+
width: 100%;
|
|
25
|
+
max-width: 900px;
|
|
26
|
+
height: 420px;
|
|
27
|
+
margin: 0 auto;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.runwell-testimonials__track {
|
|
32
|
+
position: relative;
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.runwell-testimonials__item {
|
|
38
|
+
position: absolute;
|
|
39
|
+
top: 50%;
|
|
40
|
+
left: 50%;
|
|
41
|
+
width: 240px;
|
|
42
|
+
height: 340px;
|
|
43
|
+
border-radius: 12px;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
transition: transform 0.5s ease, filter 0.5s ease, opacity 0.5s ease, box-shadow 0.5s ease;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.runwell-testimonials__item img {
|
|
50
|
+
width: 100%;
|
|
51
|
+
height: 100%;
|
|
52
|
+
object-fit: cover;
|
|
53
|
+
display: block;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Position states */
|
|
57
|
+
.runwell-testimonials__item[data-pos="0"] {
|
|
58
|
+
transform: translate(-50%, -50%) scale(1.15);
|
|
59
|
+
filter: blur(0) brightness(1);
|
|
60
|
+
opacity: 1;
|
|
61
|
+
z-index: 5;
|
|
62
|
+
box-shadow: 0 20px 60px rgba(42, 38, 34, 0.25);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.runwell-testimonials__item[data-pos="1"] {
|
|
66
|
+
transform: translate(calc(-50% + 260px), -50%) scale(0.85);
|
|
67
|
+
filter: blur(1.5px) brightness(0.75);
|
|
68
|
+
opacity: 0.8;
|
|
69
|
+
z-index: 3;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.runwell-testimonials__item[data-pos="-1"] {
|
|
73
|
+
transform: translate(calc(-50% - 260px), -50%) scale(0.85);
|
|
74
|
+
filter: blur(1.5px) brightness(0.75);
|
|
75
|
+
opacity: 0.8;
|
|
76
|
+
z-index: 3;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.runwell-testimonials__item[data-pos="2"] {
|
|
80
|
+
transform: translate(calc(-50% + 440px), -50%) scale(0.65);
|
|
81
|
+
filter: blur(3px) brightness(0.6);
|
|
82
|
+
opacity: 0.5;
|
|
83
|
+
z-index: 1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.runwell-testimonials__item[data-pos="-2"] {
|
|
87
|
+
transform: translate(calc(-50% - 440px), -50%) scale(0.65);
|
|
88
|
+
filter: blur(3px) brightness(0.6);
|
|
89
|
+
opacity: 0.5;
|
|
90
|
+
z-index: 1;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.runwell-testimonials__item[data-pos="hidden"] {
|
|
94
|
+
transform: translate(-50%, -50%) scale(0.4);
|
|
95
|
+
filter: blur(6px);
|
|
96
|
+
opacity: 0;
|
|
97
|
+
z-index: 0;
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Navigation arrows */
|
|
102
|
+
.runwell-testimonials__arrow {
|
|
103
|
+
position: absolute;
|
|
104
|
+
top: 50%;
|
|
105
|
+
transform: translateY(-50%);
|
|
106
|
+
z-index: 10;
|
|
107
|
+
width: 44px;
|
|
108
|
+
height: 44px;
|
|
109
|
+
border-radius: 50%;
|
|
110
|
+
border: 2px solid rgba(var(--color-foreground), 0.12);
|
|
111
|
+
background: rgba(var(--color-background), 0.85);
|
|
112
|
+
backdrop-filter: blur(8px);
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
display: flex;
|
|
115
|
+
align-items: center;
|
|
116
|
+
justify-content: center;
|
|
117
|
+
font-size: 20px;
|
|
118
|
+
color: rgba(var(--color-foreground), 0.8);
|
|
119
|
+
transition: border-color 0.2s, background 0.2s;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.runwell-testimonials__arrow:hover {
|
|
123
|
+
border-color: rgba(var(--color-foreground), 0.3);
|
|
124
|
+
background: rgba(var(--color-background), 1);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.runwell-testimonials__arrow--left {
|
|
128
|
+
left: 12px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.runwell-testimonials__arrow--right {
|
|
132
|
+
right: 12px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Mobile responsive */
|
|
136
|
+
@media screen and (max-width: 749px) {
|
|
137
|
+
.runwell-testimonials__viewport {
|
|
138
|
+
height: 300px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.runwell-testimonials__item {
|
|
142
|
+
width: 160px;
|
|
143
|
+
height: 230px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.runwell-testimonials__item[data-pos="1"] {
|
|
147
|
+
transform: translate(calc(-50% + 150px), -50%) scale(0.8);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.runwell-testimonials__item[data-pos="-1"] {
|
|
151
|
+
transform: translate(calc(-50% - 150px), -50%) scale(0.8);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.runwell-testimonials__item[data-pos="2"],
|
|
155
|
+
.runwell-testimonials__item[data-pos="-2"] {
|
|
156
|
+
opacity: 0;
|
|
157
|
+
pointer-events: none;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.runwell-testimonials__arrow {
|
|
161
|
+
width: 36px;
|
|
162
|
+
height: 36px;
|
|
163
|
+
font-size: 16px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.runwell-testimonials__heading {
|
|
167
|
+
font-size: 2rem;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{{ 'runwell-testimonials.css' | asset_url | stylesheet_tag }}
|
|
2
|
+
|
|
3
|
+
<div class="runwell-testimonials runwell-testimonials--carousel color-{{ section.settings.color_scheme }}">
|
|
4
|
+
<div class="page-width">
|
|
5
|
+
{%- if section.settings.heading != blank -%}
|
|
6
|
+
<h2 class="runwell-testimonials__heading">{{ section.settings.heading }}</h2>
|
|
7
|
+
{%- endif -%}
|
|
8
|
+
{%- if section.settings.subheading != blank -%}
|
|
9
|
+
<p class="runwell-testimonials__subheading">{{ section.settings.subheading }}</p>
|
|
10
|
+
{%- endif -%}
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div class="runwell-testimonials__viewport" id="runwell-testimonials-{{ section.id }}">
|
|
14
|
+
<div class="runwell-testimonials__track">
|
|
15
|
+
{%- assign idx = 0 -%}
|
|
16
|
+
{%- for block in section.blocks -%}
|
|
17
|
+
{%- if block.type == 'image' -%}
|
|
18
|
+
<div class="runwell-testimonials__item" data-idx="{{ idx }}" data-pos="{{ idx }}" {{ block.shopify_attributes }}>
|
|
19
|
+
{%- if block.settings.image != blank -%}
|
|
20
|
+
{{ block.settings.image | image_url: width: 600 | image_tag:
|
|
21
|
+
loading: 'lazy',
|
|
22
|
+
widths: '300, 400, 600',
|
|
23
|
+
sizes: '240px',
|
|
24
|
+
alt: block.settings.alt
|
|
25
|
+
}}
|
|
26
|
+
{%- elsif block.settings.asset_filename != blank -%}
|
|
27
|
+
<img src="{{ block.settings.asset_filename | asset_url }}"
|
|
28
|
+
alt="{{ block.settings.alt }}"
|
|
29
|
+
loading="lazy"
|
|
30
|
+
width="240"
|
|
31
|
+
height="340">
|
|
32
|
+
{%- endif -%}
|
|
33
|
+
</div>
|
|
34
|
+
{%- assign idx = idx | plus: 1 -%}
|
|
35
|
+
{%- endif -%}
|
|
36
|
+
{%- endfor -%}
|
|
37
|
+
</div>
|
|
38
|
+
<button class="runwell-testimonials__arrow runwell-testimonials__arrow--left" aria-label="Previous image">‹</button>
|
|
39
|
+
<button class="runwell-testimonials__arrow runwell-testimonials__arrow--right" aria-label="Next image">›</button>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<script>
|
|
44
|
+
(function() {
|
|
45
|
+
var container = document.getElementById('runwell-testimonials-{{ section.id }}');
|
|
46
|
+
if (!container) return;
|
|
47
|
+
var items = container.querySelectorAll('.runwell-testimonials__item');
|
|
48
|
+
var total = items.length;
|
|
49
|
+
if (total === 0) return;
|
|
50
|
+
var active = 0;
|
|
51
|
+
|
|
52
|
+
function setPositions() {
|
|
53
|
+
items.forEach(function(item, i) {
|
|
54
|
+
var offset = i - active;
|
|
55
|
+
if (offset > total / 2) offset -= total;
|
|
56
|
+
if (offset < -total / 2) offset += total;
|
|
57
|
+
if (offset >= -2 && offset <= 2) {
|
|
58
|
+
item.setAttribute('data-pos', String(offset));
|
|
59
|
+
} else {
|
|
60
|
+
item.setAttribute('data-pos', 'hidden');
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function navigate(direction) {
|
|
66
|
+
active = (active + direction + total) % total;
|
|
67
|
+
setPositions();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
container.querySelector('.runwell-testimonials__arrow--right').addEventListener('click', function() { navigate(1); });
|
|
71
|
+
container.querySelector('.runwell-testimonials__arrow--left').addEventListener('click', function() { navigate(-1); });
|
|
72
|
+
|
|
73
|
+
items.forEach(function(item, i) {
|
|
74
|
+
item.addEventListener('click', function() {
|
|
75
|
+
if (i === active) return;
|
|
76
|
+
active = i;
|
|
77
|
+
setPositions();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
setPositions();
|
|
82
|
+
})();
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
{% schema %}
|
|
86
|
+
{
|
|
87
|
+
"name": "Testimonials (UGC)",
|
|
88
|
+
"tag": "section",
|
|
89
|
+
"class": "section",
|
|
90
|
+
"settings": [
|
|
91
|
+
{
|
|
92
|
+
"type": "text",
|
|
93
|
+
"id": "heading",
|
|
94
|
+
"label": "Heading",
|
|
95
|
+
"default": "Real Women, Real Results"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "text",
|
|
99
|
+
"id": "subheading",
|
|
100
|
+
"label": "Subheading",
|
|
101
|
+
"default": "See how they sculpt"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"type": "color_scheme",
|
|
105
|
+
"id": "color_scheme",
|
|
106
|
+
"label": "Color scheme",
|
|
107
|
+
"default": "scheme-1"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"blocks": [
|
|
111
|
+
{
|
|
112
|
+
"type": "image",
|
|
113
|
+
"name": "Image",
|
|
114
|
+
"settings": [
|
|
115
|
+
{
|
|
116
|
+
"type": "image_picker",
|
|
117
|
+
"id": "image",
|
|
118
|
+
"label": "Image"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"type": "text",
|
|
122
|
+
"id": "asset_filename",
|
|
123
|
+
"label": "Asset filename (fallback)",
|
|
124
|
+
"info": "Use if image picker is empty. Enter the filename from assets/ directory."
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"type": "text",
|
|
128
|
+
"id": "alt",
|
|
129
|
+
"label": "Alt text"
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"presets": [
|
|
135
|
+
{
|
|
136
|
+
"name": "Testimonials (UGC)",
|
|
137
|
+
"blocks": [
|
|
138
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-mediterranean-cheekbone.png", "alt": "Woman sculpting cheekbone" } },
|
|
139
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-black-woman-cheek.png", "alt": "Woman using brush on cheek" } },
|
|
140
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-east-asian-jawline.png", "alt": "Jawline sculpting technique" } },
|
|
141
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-latina-presenting.png", "alt": "Presenting brush with case" } },
|
|
142
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-south-asian-playful.png", "alt": "Playful pose with brush" } },
|
|
143
|
+
{ "type": "image", "settings": { "asset_filename": "ugc-blonde-presenting.png", "alt": "Blonde woman presenting Lusha brush" } }
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
{% endschema %}
|
package/modules/testimonials/{sections → variants/grid-quotes/sections}/runwell-testimonials.liquid
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
|
|
2
|
+
Runwell testimonials / UGC strip. Three-up grid of customer quotes with
|
|
3
3
|
source name + product/lifestyle context. CRO tips 6, 8, 9: social proof
|
|
4
4
|
scattered across the site, unique angles, customer voices.
|
|
5
5
|
{%- endcomment -%}
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
{% schema %}
|
|
46
46
|
{
|
|
47
|
-
"name": "
|
|
47
|
+
"name": "Runwell testimonials",
|
|
48
48
|
"tag": "section",
|
|
49
49
|
"class": "section-runwell-testimonials",
|
|
50
50
|
"settings": [
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"max_blocks": 6,
|
|
76
76
|
"presets": [
|
|
77
77
|
{
|
|
78
|
-
"name": "
|
|
78
|
+
"name": "Runwell testimonials",
|
|
79
79
|
"blocks": [
|
|
80
80
|
{ "type": "quote", "settings": { "quote": "First magnesium I have actually felt working. Read the journal post twice before ordering and now I get why they only carry the glycinate form.", "author": "Margaux, Brooklyn", "context": "Daily Magnesium Glycinate", "rating": "5" } },
|
|
81
81
|
{ "type": "quote", "settings": { "quote": "I have tried four collagen brands. This one mixes clean in cold coffee and does not have that fishy aftertaste I gave up trying to mask.", "author": "Priya, Austin", "context": "Marine Collagen Peptides", "rating": "5" } },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
|
|
2
|
+
Runwell trust badges row. Drops on PDP under the buy form (or on cart,
|
|
3
3
|
collection, or homepage). Renders 3 to 6 trust signals: secure
|
|
4
4
|
checkout, returns, shipping, payment logos. Per Blueprint §3.4 and
|
|
5
5
|
CRO §5.3 (foundational trust signals).
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
{% schema %}
|
|
36
36
|
{
|
|
37
|
-
"name": "
|
|
37
|
+
"name": "Runwell trust badges",
|
|
38
38
|
"tag": "section",
|
|
39
39
|
"class": "section-runwell-trust-badges",
|
|
40
40
|
"settings": [
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
"max_blocks": 6,
|
|
81
81
|
"presets": [
|
|
82
82
|
{
|
|
83
|
-
"name": "
|
|
83
|
+
"name": "Runwell trust badges",
|
|
84
84
|
"blocks": [
|
|
85
85
|
{ "type": "badge", "settings": { "icon": "✓", "title": "Free shipping over $75", "body": "On all US orders" } },
|
|
86
86
|
{ "type": "badge", "settings": { "icon": "↺", "title": "30-day returns", "body": "No-hassle satisfaction promise" } },
|
|
87
|
-
{ "type": "badge", "settings": { "icon": "★", "title": "Editorially curated", "body": "Every product
|
|
87
|
+
{ "type": "badge", "settings": { "icon": "★", "title": "Editorially curated", "body": "Every product clears 4 checks" } },
|
|
88
88
|
{ "type": "badge", "settings": { "icon": "⊕", "title": "Secure checkout", "body": "Encrypted at every step" } }
|
|
89
89
|
]
|
|
90
90
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runwell/shopify-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
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",
|