@gemboss/website-ui 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/AGENTS.md +25 -2
- package/CHANGELOG.md +130 -0
- package/README.md +8 -8
- package/bin/lib/check.mjs +70 -1
- package/css/base.css +12 -0
- package/css/footer.css +178 -0
- package/css/header.css +176 -0
- package/css/tokens.css +1 -0
- package/demo/footer.html +339 -0
- package/demo/header.html +356 -0
- package/demo/index.html +2 -0
- package/docs/components.md +125 -8
- package/docs/markup-contract.md +158 -6
- package/docs/theming.md +9 -2
- package/js/website.js +136 -5
- package/js/website.mjs +170 -5
- package/package.json +1 -1
- package/skill/SKILL.md +7 -0
- package/system.json +2 -0
- package/templates/footer.html +108 -20
- package/templates/header.html +34 -6
- package/templates/page.html +16 -11
- package/website.css +368 -1
- package/website.min.css +1 -1
package/css/header.css
CHANGED
|
@@ -261,3 +261,179 @@ html.is-menu-open .gw-header { position: fixed; top: 0; left: 0; right: 0; }
|
|
|
261
261
|
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
262
262
|
.gw-header--float { background: var(--gw-surface); }
|
|
263
263
|
}
|
|
264
|
+
|
|
265
|
+
/* ---- 0.8.0: the drill-down mobile menu (gap #41) and the language switcher (gap #29) --------------------------------
|
|
266
|
+
Every rule below selects a part 0.7.0 does not have (data-gw-menu="drill", the script's .is-drill, the menu's
|
|
267
|
+
__head, __back, __title, __heading and __icon, .gw-lang), so a 0.7.0 header looks and works exactly as before. */
|
|
268
|
+
|
|
269
|
+
/* The drill-down menu, as gemboss.ai's phone menu (v4, approved 15/10/2026), opt-in on the sheet:
|
|
270
|
+
<div class="gw-mobile-menu" data-gw-menu="drill">. Its look needs only the attribute: top-level rows of 64px with
|
|
271
|
+
24px words and one hairline each, a level's links with an optional icon and line, and the actions in a bar that
|
|
272
|
+
stays at the bottom of the sheet while the list scrolls (the sheet has no bottom padding, so nothing peeks out under
|
|
273
|
+
the bar; nor sideways while a level slides in). Without the script the groups are the 0.7.0 <details> that open in
|
|
274
|
+
place, their chevron pointing down. */
|
|
275
|
+
.gw-mobile-menu[data-gw-menu="drill"] { display: flex; flex-direction: column; overflow-x: hidden; padding-bottom: 0; }
|
|
276
|
+
.gw-mobile-menu[data-gw-menu="drill"] > nav { display: flex; flex: 1 0 auto; flex-direction: column; }
|
|
277
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary,
|
|
278
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__top { min-height: 64px; font-size: 24px; letter-spacing: -0.01em; }
|
|
279
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary::after { width: 20px; height: 20px; -webkit-mask-size: 20px; mask-size: 20px; }
|
|
280
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list { padding: 0; }
|
|
281
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link {
|
|
282
|
+
gap: 12px;
|
|
283
|
+
min-height: 56px;
|
|
284
|
+
padding-block: 12px;
|
|
285
|
+
border-bottom: 1px solid var(--gw-line);
|
|
286
|
+
color: var(--gw-ink);
|
|
287
|
+
font-weight: 500;
|
|
288
|
+
}
|
|
289
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link b { display: block; font-size: 16px; font-weight: 500; line-height: 20px; }
|
|
290
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link i { display: block; margin-top: 2px; color: var(--gw-muted); font-size: 13px; font-style: normal; line-height: 18px; }
|
|
291
|
+
/* a level's optional parts: a muted heading over a run of links, a 32px icon tile before a link's words */
|
|
292
|
+
.gw-mobile-menu__heading { padding: 16px 0 8px; color: var(--gw-muted); font-size: 12px; font-weight: 500; line-height: 1.5; }
|
|
293
|
+
.gw-mobile-menu__icon {
|
|
294
|
+
display: grid;
|
|
295
|
+
place-items: center;
|
|
296
|
+
flex: none;
|
|
297
|
+
width: 32px;
|
|
298
|
+
height: 32px;
|
|
299
|
+
border: 1px solid var(--gw-line);
|
|
300
|
+
border-radius: var(--gw-radius-action);
|
|
301
|
+
color: var(--gw-muted);
|
|
302
|
+
}
|
|
303
|
+
.gw-mobile-menu__icon svg { width: 16px; height: 16px; }
|
|
304
|
+
/* a level's last link, to the section's own page: its row opens the level instead of going there */
|
|
305
|
+
.gw-mobile-menu__all { display: flex; align-items: center; gap: 6px; min-height: 56px; color: var(--gw-accent-strong); font-size: 16px; font-weight: 500; }
|
|
306
|
+
.gw-mobile-menu__all::after { content: "\2192"; }
|
|
307
|
+
/* the action bar: what is not a button (Sign in, the language) on the first line, the last one on the right; the
|
|
308
|
+
buttons side by side under it (gw-btn--lg: 48px, as gemboss.ai) */
|
|
309
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions {
|
|
310
|
+
position: sticky;
|
|
311
|
+
bottom: 0;
|
|
312
|
+
z-index: 1;
|
|
313
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
314
|
+
align-items: center;
|
|
315
|
+
gap: 8px 16px;
|
|
316
|
+
margin-top: auto;
|
|
317
|
+
padding-block: 12px calc(12px + env(safe-area-inset-bottom));
|
|
318
|
+
border-top: 1px solid var(--gw-line);
|
|
319
|
+
background: var(--gw-bg);
|
|
320
|
+
}
|
|
321
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-btn { grid-row: 2; }
|
|
322
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn) { grid-row: 1; }
|
|
323
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn):last-child { grid-column: 2; justify-self: end; }
|
|
324
|
+
.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-mobile-menu__link { color: var(--gw-ink); font-weight: 500; }
|
|
325
|
+
|
|
326
|
+
/* Wired (.is-drill, set by website.js): a group's row points right and opens its level, which shows alone
|
|
327
|
+
(.is-drilled) under its head: Back on the left, the level's title in the middle. The sheet starts where the header
|
|
328
|
+
ends (--gw-menu-top, measured by the script) and the header stays in place, so an announcement bar above it does not
|
|
329
|
+
jump away. */
|
|
330
|
+
.gw-mobile-menu.is-drill { top: var(--gw-menu-top, calc(var(--gw-header-height) + 1px)); }
|
|
331
|
+
html.is-menu-open .gw-header:has(> .gw-mobile-menu.is-drill) { position: sticky; }
|
|
332
|
+
.gw-mobile-menu.is-drill .gw-mobile-menu__group > summary::after { transform: rotate(-90deg); transition: none; }
|
|
333
|
+
.gw-mobile-menu.is-drilled > nav > :not([open], .gw-mobile-menu__actions),
|
|
334
|
+
.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > summary { display: none; }
|
|
335
|
+
.gw-mobile-menu__head { display: none; }
|
|
336
|
+
.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > .gw-mobile-menu__head {
|
|
337
|
+
display: grid;
|
|
338
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
339
|
+
align-items: center;
|
|
340
|
+
gap: 8px;
|
|
341
|
+
min-height: 56px;
|
|
342
|
+
margin-bottom: 8px;
|
|
343
|
+
border-bottom: 1px solid var(--gw-line);
|
|
344
|
+
}
|
|
345
|
+
.gw-mobile-menu__back {
|
|
346
|
+
display: inline-flex;
|
|
347
|
+
align-items: center;
|
|
348
|
+
justify-self: start;
|
|
349
|
+
gap: 4px;
|
|
350
|
+
min-height: var(--gw-tap-min);
|
|
351
|
+
padding: 0 8px 0 0;
|
|
352
|
+
border: 0;
|
|
353
|
+
background: transparent;
|
|
354
|
+
color: var(--gw-muted);
|
|
355
|
+
font-size: 16px;
|
|
356
|
+
line-height: 1.5;
|
|
357
|
+
}
|
|
358
|
+
.gw-mobile-menu__back:hover { color: var(--gw-ink); }
|
|
359
|
+
.gw-mobile-menu__back::before {
|
|
360
|
+
content: "";
|
|
361
|
+
flex: none;
|
|
362
|
+
width: 16px;
|
|
363
|
+
height: 16px;
|
|
364
|
+
background: currentColor;
|
|
365
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
|
|
366
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
|
|
367
|
+
}
|
|
368
|
+
.gw-mobile-menu__title { color: var(--gw-ink); font-size: 16px; font-weight: 600; letter-spacing: 0; line-height: 1.5; text-align: center; }
|
|
369
|
+
/* a level slides in from the right, the top level back in from the left; under reduced motion they just switch */
|
|
370
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
371
|
+
.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] { animation: gw-drill-in 0.24s var(--gw-ease); }
|
|
372
|
+
.gw-mobile-menu.is-back > nav > :not(.gw-mobile-menu__actions) { animation: gw-drill-back 0.24s var(--gw-ease); }
|
|
373
|
+
}
|
|
374
|
+
@keyframes gw-drill-in { from { opacity: 0; transform: translateX(32px); } }
|
|
375
|
+
@keyframes gw-drill-back { from { opacity: 0; transform: translateX(-32px); } }
|
|
376
|
+
|
|
377
|
+
/* The language switcher: <div class="gw-lang" data-gw-lang hidden>, a ghost button with the globe and the current
|
|
378
|
+
language's short code, and its list of the other languages, a small popover card (the card radius of the site's
|
|
379
|
+
profile, one hairline, the raised shadow). website.js fills the list from the page's <link rel="alternate" hreflang>
|
|
380
|
+
and takes `hidden` away when there is another language. In the header's actions it shows from 1080px, where the nav
|
|
381
|
+
is; below that a second one sits in the mobile menu's action bar, and its list opens upward. */
|
|
382
|
+
.gw-lang { position: relative; flex: none; }
|
|
383
|
+
.gw-header__actions > .gw-lang { display: none; }
|
|
384
|
+
.gw-lang__btn {
|
|
385
|
+
display: inline-flex;
|
|
386
|
+
align-items: center;
|
|
387
|
+
gap: 6px;
|
|
388
|
+
height: 40px;
|
|
389
|
+
padding: 0 12px;
|
|
390
|
+
border: 0;
|
|
391
|
+
border-radius: var(--gw-radius-action);
|
|
392
|
+
background: transparent;
|
|
393
|
+
color: var(--gw-ink-2);
|
|
394
|
+
font-size: 14px;
|
|
395
|
+
font-weight: 500;
|
|
396
|
+
line-height: 1.4;
|
|
397
|
+
white-space: nowrap;
|
|
398
|
+
}
|
|
399
|
+
.gw-lang__btn:hover,
|
|
400
|
+
.gw-lang__btn[aria-expanded="true"] { background: var(--gw-bg-soft); color: var(--gw-ink); }
|
|
401
|
+
.gw-lang__btn svg { flex: none; width: 18px; height: 18px; }
|
|
402
|
+
.gw-lang__menu {
|
|
403
|
+
position: absolute;
|
|
404
|
+
top: calc(100% + 8px);
|
|
405
|
+
right: 0;
|
|
406
|
+
z-index: 1;
|
|
407
|
+
display: grid;
|
|
408
|
+
gap: 2px;
|
|
409
|
+
min-width: 200px;
|
|
410
|
+
margin: 0;
|
|
411
|
+
padding: 8px;
|
|
412
|
+
list-style: none;
|
|
413
|
+
border: 1px solid var(--gw-line);
|
|
414
|
+
border-radius: var(--gw-radius-card);
|
|
415
|
+
background: var(--gw-surface);
|
|
416
|
+
box-shadow: var(--gw-shadow-raised);
|
|
417
|
+
}
|
|
418
|
+
.gw-lang__link {
|
|
419
|
+
display: flex;
|
|
420
|
+
align-items: center;
|
|
421
|
+
min-height: 40px;
|
|
422
|
+
padding: 0 12px;
|
|
423
|
+
border-radius: var(--gw-radius-action);
|
|
424
|
+
color: var(--gw-ink);
|
|
425
|
+
font-size: 14px;
|
|
426
|
+
font-weight: 500;
|
|
427
|
+
white-space: nowrap;
|
|
428
|
+
}
|
|
429
|
+
.gw-lang__link:hover { background: var(--gw-bg-soft); }
|
|
430
|
+
.gw-mobile-menu .gw-lang__btn { padding: 0 8px 0 0; color: var(--gw-muted); font-size: 16px; }
|
|
431
|
+
.gw-mobile-menu .gw-lang__btn:hover,
|
|
432
|
+
.gw-mobile-menu .gw-lang__btn[aria-expanded="true"] { background: transparent; color: var(--gw-ink); }
|
|
433
|
+
.gw-mobile-menu .gw-lang__menu { top: auto; right: auto; bottom: calc(100% + 8px); left: 0; }
|
|
434
|
+
@media (max-width: 768px), (pointer: coarse) {
|
|
435
|
+
.gw-lang__btn, .gw-lang__link { min-height: var(--gw-tap-min); }
|
|
436
|
+
}
|
|
437
|
+
@media (min-width: 1080px) {
|
|
438
|
+
.gw-header__actions > .gw-lang { display: block; }
|
|
439
|
+
}
|
package/css/tokens.css
CHANGED
package/demo/footer.html
ADDED
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- Kit demo (0.7.0): the footer of gemboss.ai built from templates/footer.html, every optional part on. The switch on
|
|
3
|
+
the page shows the same footer for a GemPages-style brand: soft corners, the accent button, the GemPages accent of
|
|
4
|
+
docs/theming.md, and its own family row. A real site picks its profiles once, on <html> (docs/theming.md); here a
|
|
5
|
+
small demo script sets them when the switch moves. Sample text from gemboss.ai; "Example brand" is not GemPages. -->
|
|
6
|
+
<html lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<meta charset="utf-8">
|
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
10
|
+
<title>Footer · GemBoss</title>
|
|
11
|
+
<meta name="description" content="The kit's footer as gemboss.ai has it: Ask AI links, five columns that fold on a phone, product-family rows, the theme toggle and the wordmark.">
|
|
12
|
+
<script>try{var t=localStorage.getItem('gw-theme');if(t==='light'||t==='dark')document.documentElement.setAttribute('data-theme',t)}catch(e){}</script>
|
|
13
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
14
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
15
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700&display=swap">
|
|
16
|
+
<link rel="stylesheet" href="../website.css">
|
|
17
|
+
<!-- the GemPages-style brand's whole CSS (docs/theming.md, "A full example"); on only while the switch says so -->
|
|
18
|
+
<style id="demo-gempages" media="not all">
|
|
19
|
+
:root {
|
|
20
|
+
--gw-accent-light: #3c67ff;
|
|
21
|
+
--gw-accent-strong-light: #2f52d6;
|
|
22
|
+
--gw-accent-soft-light: #eaefff;
|
|
23
|
+
--gw-on-accent-light: #ffffff;
|
|
24
|
+
--gw-accent-dark: #7c9bff;
|
|
25
|
+
--gw-accent-strong-dark: #a9beff;
|
|
26
|
+
--gw-accent-soft-dark: #16213d;
|
|
27
|
+
--gw-on-accent-dark: #0d0d12;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
30
|
+
</head>
|
|
31
|
+
<body class="gw-page">
|
|
32
|
+
<a class="gw-skip" href="#main">Skip to content</a>
|
|
33
|
+
|
|
34
|
+
<header class="gw-header" data-gw-header>
|
|
35
|
+
<div class="gw-wrap gw-header__bar">
|
|
36
|
+
<a class="gw-brand" href="https://gemboss.ai/" data-gw-show="brand:gemboss"><svg class="gw-brand__mark" viewBox="0 0 100 116" aria-hidden="true"><polygon points="26,14 74,14 66,50 34,50" style="fill:var(--gw-accent)"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="currentColor" stroke-width="9" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linejoin="round"/></svg><span class="gw-brand__name">GemBoss</span></a><a class="gw-brand" href="footer.html#gempages" data-gw-show="brand:gempages" hidden><svg class="gw-brand__mark" viewBox="0 0 26 26" aria-hidden="true"><rect width="26" height="26" rx="7" style="fill:var(--gw-accent)"/><path d="M8 9h10M8 13h10M8 17h6" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round"/></svg><span class="gw-brand__name">Example brand</span></a>
|
|
37
|
+
<nav class="gw-nav" aria-label="Main">
|
|
38
|
+
<ul class="gw-nav__list">
|
|
39
|
+
<li class="gw-nav__item">
|
|
40
|
+
<button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-product" data-gw-mega="gw-mega-product">Product</button>
|
|
41
|
+
<div class="gw-mega" id="gw-mega-product" hidden>
|
|
42
|
+
<div class="gw-wrap gw-mega__grid">
|
|
43
|
+
<div class="gw-mega__col">
|
|
44
|
+
<p class="gw-mega__heading">Build</p>
|
|
45
|
+
<a class="gw-mega__link" href="https://gemboss.ai/funnel"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h18l-7 8v6l-4 2v-8z"/></svg></span><span><b>Funnel builder</b><i>Angles, advertorials, offers</i></span></a>
|
|
46
|
+
<a class="gw-mega__link" href="https://gemboss.ai/ai-store-builder"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l1.5-5h15L21 9"/><path d="M4 9v11h16V9"/><path d="M9 20v-6h6v6"/></svg></span><span><b>Storefront builder</b><i>Headless, on your Shopify</i></span></a>
|
|
47
|
+
<a class="gw-mega__link" href="https://gemboss.ai/gempages"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 8h8M8 12h8M8 16h5"/></svg></span><span><b>Page builder</b><i>Ask, watch, publish</i></span></a>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="gw-mega__col">
|
|
50
|
+
<p class="gw-mega__heading">Grow</p>
|
|
51
|
+
<a class="gw-mega__link" href="https://gemboss.ai/gemx"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4v16M20 4v16M4 9h16M4 15h16"/></svg></span><span><b>Tests & personalization</b><i>You promote the winner</i></span></a>
|
|
52
|
+
<a class="gw-mega__link" href="https://gemboss.ai/gemoffers"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M20 12l-8 8-9-9V3h8z"/><circle cx="7.5" cy="7.5" r="1.5"/></svg></span><span><b>Offers & upsells</b><i>Bundles, gifts, bumps</i></span></a>
|
|
53
|
+
<a class="gw-mega__link" href="https://gemboss.ai/data"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 15l4-4 3 3 5-6"/></svg></span><span><b>Analytics & data</b><i>First-party, yours</i></span></a>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="gw-mega__col">
|
|
56
|
+
<p class="gw-mega__heading">Connect</p>
|
|
57
|
+
<a class="gw-mega__link" href="https://gemboss.ai/integrations"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3v6M15 3v6M6 9h12v3a6 6 0 0 1-12 0z"/><path d="M12 18v3"/></svg></span><span><b>Integrations</b><i>Klaviyo, Meta, Google</i></span></a>
|
|
58
|
+
<a class="gw-mega__link" href="https://gemboss.ai/mcp"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="m8 9-4 3 4 3"/><path d="m16 9 4 3-4 3"/><path d="m14 5-4 14"/></svg></span><span><b>MCP & agents</b><i>Claude and Codex</i></span></a>
|
|
59
|
+
<a class="gw-mega__link" href="https://gemboss.ai/agent-ready"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="8" width="14" height="11" rx="3"/><path d="M12 4v4"/><circle cx="9.5" cy="13.5" r="1"/><circle cx="14.5" cy="13.5" r="1"/></svg></span><span><b>Agent-ready storefront</b><i>Ready for AI shoppers</i></span></a>
|
|
60
|
+
</div>
|
|
61
|
+
<a class="gw-mega__feature" href="https://gemboss.ai/engine"><b>How the engine works</b><i>Six stages, one loop. Nothing ships without you.</i><span class="gw-link gw-link--arrow">See the engine</span></a>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</li>
|
|
65
|
+
<li class="gw-nav__item">
|
|
66
|
+
<button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-usecases" data-gw-mega="gw-mega-usecases">Use cases</button>
|
|
67
|
+
<div class="gw-mega" id="gw-mega-usecases" hidden>
|
|
68
|
+
<div class="gw-wrap gw-mega__grid">
|
|
69
|
+
<div class="gw-mega__col">
|
|
70
|
+
<p class="gw-mega__heading">Adaptive funnels</p>
|
|
71
|
+
<a class="gw-mega__link" href="https://gemboss.ai/meta-ads"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z"/><path d="M16 9a4 4 0 0 1 0 6"/></svg></span><span><b>Meta, Google & TikTok ads</b><i>A funnel for every ad angle</i></span></a>
|
|
72
|
+
<a class="gw-mega__link" href="https://gemboss.ai/klaviyo-personalized-landing-pages"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><span><b>Klaviyo email <span class="gw-badge gw-badge--warning">Early access</span></b><i>A page per recipient, after the click</i></span></a>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="gw-mega__col">
|
|
75
|
+
<p class="gw-mega__heading">Adaptive storefront</p>
|
|
76
|
+
<a class="gw-mega__link" href="https://gemboss.ai/ai-store-builder"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l1.5-5h15L21 9"/><path d="M4 9v11h16V9"/><path d="M9 20v-6h6v6"/></svg></span><span><b>Headless storefront</b><i>Your whole Shopify store, on GemBoss</i></span></a>
|
|
77
|
+
<a class="gw-mega__link" href="https://gemboss.ai/agent-ready"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="8" width="14" height="11" rx="3"/><path d="M12 4v4"/><circle cx="9.5" cy="13.5" r="1"/><circle cx="14.5" cy="13.5" r="1"/></svg></span><span><b>AI agents & AI search</b><i>Readable by AI, shoppable by agents</i></span></a>
|
|
78
|
+
</div>
|
|
79
|
+
<a class="gw-mega__feature" href="https://gemboss.ai/meta-ads"><b>Every ad gets its own page</b><i>The page keeps the promise the ad made.</i><span class="gw-link gw-link--arrow">See the ad-to-page path</span></a>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</li>
|
|
83
|
+
<li class="gw-nav__item"><a class="gw-nav__link" href="https://gemboss.ai/pricing">Pricing</a></li>
|
|
84
|
+
<li class="gw-nav__item">
|
|
85
|
+
<button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-resources" data-gw-mega="gw-mega-resources">Resources</button>
|
|
86
|
+
<div class="gw-mega" id="gw-mega-resources" hidden>
|
|
87
|
+
<div class="gw-wrap gw-mega__grid">
|
|
88
|
+
<div class="gw-mega__col">
|
|
89
|
+
<p class="gw-mega__heading">Learn</p>
|
|
90
|
+
<a class="gw-mega__link" href="https://gemboss.ai/blog"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h11a2 2 0 0 1 2 2v14H6a2 2 0 0 1-2-2z"/><path d="M8 8h7M8 12h7"/></svg></span><span><b>Blog</b><i>Playbooks and guides</i></span></a>
|
|
91
|
+
<a class="gw-mega__link" href="https://gemboss.ai/docs"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M14 3v6h6"/></svg></span><span><b>Docs</b><i>Guides and MCP tools</i></span></a>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="gw-mega__col">
|
|
94
|
+
<p class="gw-mega__heading">Company</p>
|
|
95
|
+
<a class="gw-mega__link" href="https://gemboss.ai/company"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8h.01"/></svg></span><span><b>About</b><i>Why we build it</i></span></a>
|
|
96
|
+
<a class="gw-mega__link" href="https://gemboss.ai/contact"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg></span><span><b>Contact</b><i>Talk to a human</i></span></a>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</li>
|
|
101
|
+
</ul>
|
|
102
|
+
</nav>
|
|
103
|
+
<div class="gw-header__actions">
|
|
104
|
+
<button class="gw-theme-toggle" type="button" data-gw-theme-toggle aria-label="Switch to dark theme"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor"/></svg></button>
|
|
105
|
+
<a class="gw-nav__link gw-header__signin" href="https://admin.gemboss.ai/login">Sign in</a>
|
|
106
|
+
<a class="gw-btn gw-btn--secondary gw-btn--sm" href="https://gemboss.ai/contact">Book a demo</a>
|
|
107
|
+
<a class="gw-btn gw-btn--sm" href="https://admin.gemboss.ai/signup">Start free</a>
|
|
108
|
+
<button class="gw-menu-toggle" type="button" aria-expanded="false" aria-controls="gw-mobile-menu" data-gw-menu-toggle aria-label="Open menu"><svg class="gw-menu-toggle__open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg><svg class="gw-menu-toggle__close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18"/></svg></button>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="gw-mobile-menu" id="gw-mobile-menu" hidden>
|
|
112
|
+
<nav class="gw-wrap" aria-label="Main, mobile">
|
|
113
|
+
<details class="gw-mobile-menu__group">
|
|
114
|
+
<summary>Product</summary>
|
|
115
|
+
<ul class="gw-mobile-menu__list">
|
|
116
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/funnel">Funnel builder</a></li>
|
|
117
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/ai-store-builder">Storefront builder</a></li>
|
|
118
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/gemx">Tests & personalization</a></li>
|
|
119
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/gemoffers">Offers & upsells</a></li>
|
|
120
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/integrations">Integrations</a></li>
|
|
121
|
+
</ul>
|
|
122
|
+
</details>
|
|
123
|
+
<details class="gw-mobile-menu__group">
|
|
124
|
+
<summary>Use cases</summary>
|
|
125
|
+
<ul class="gw-mobile-menu__list">
|
|
126
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/meta-ads">Meta, Google & TikTok ads</a></li>
|
|
127
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/ai-store-builder">Headless storefront</a></li>
|
|
128
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/agent-ready">AI agents & AI search</a></li>
|
|
129
|
+
</ul>
|
|
130
|
+
</details>
|
|
131
|
+
<a class="gw-mobile-menu__top" href="https://gemboss.ai/pricing">Pricing</a>
|
|
132
|
+
<details class="gw-mobile-menu__group">
|
|
133
|
+
<summary>Resources</summary>
|
|
134
|
+
<ul class="gw-mobile-menu__list">
|
|
135
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/blog">Blog</a></li>
|
|
136
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/docs">Docs</a></li>
|
|
137
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/company">About</a></li>
|
|
138
|
+
<li><a class="gw-mobile-menu__link" href="https://gemboss.ai/contact">Contact</a></li>
|
|
139
|
+
</ul>
|
|
140
|
+
</details>
|
|
141
|
+
<div class="gw-mobile-menu__actions">
|
|
142
|
+
<a class="gw-btn gw-btn--block" href="https://admin.gemboss.ai/signup">Start free</a>
|
|
143
|
+
<a class="gw-btn gw-btn--secondary gw-btn--block" href="https://gemboss.ai/contact">Book a demo</a>
|
|
144
|
+
<a class="gw-mobile-menu__link" href="https://admin.gemboss.ai/login">Sign in</a>
|
|
145
|
+
</div>
|
|
146
|
+
</nav>
|
|
147
|
+
</div>
|
|
148
|
+
</header>
|
|
149
|
+
|
|
150
|
+
<main id="main">
|
|
151
|
+
<section class="gw-section">
|
|
152
|
+
<div class="gw-wrap">
|
|
153
|
+
<div class="gw-section__head">
|
|
154
|
+
<p class="gw-label">Footer, 0.7.0</p>
|
|
155
|
+
<h1><span class="gw-dim">The footer of gemboss.ai.</span> Now one template for every brand.</h1>
|
|
156
|
+
<p class="gw-lead">Ask AI links, five columns that fold into rows on a phone, product-family rows, a theme toggle and the wordmark. Each part is optional. Scroll down, or narrow the window below 768px.</p>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="gw-segmented" role="radiogroup" aria-label="Footer of" data-gw-segmented="brand">
|
|
159
|
+
<button type="button" role="radio" aria-checked="true" value="gemboss">GemBoss</button>
|
|
160
|
+
<button type="button" role="radio" aria-checked="false" value="gempages">GemPages-style</button>
|
|
161
|
+
</div>
|
|
162
|
+
<p class="gw-note demo-mt" data-gw-show="brand:gemboss">GemBoss: tight corners, the ink button, two family rows. The words are gemboss.ai's.</p>
|
|
163
|
+
<p class="gw-note demo-mt" data-gw-show="brand:gempages" hidden>A GemPages-style brand: soft corners, the accent button and GemPages' blue, its own family row (GemBoss, GemX, GemUpsells), the newsletter instead of Ask AI. Example brand, not GemPages' page.</p>
|
|
164
|
+
<div class="gw-actions">
|
|
165
|
+
<a class="gw-btn" href="#footer">See the footer</a>
|
|
166
|
+
<a class="gw-btn gw-btn--secondary" href="https://gemboss.ai/">Compare with gemboss.ai</a>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
</section>
|
|
170
|
+
</main>
|
|
171
|
+
|
|
172
|
+
<footer class="gw-footer" id="footer">
|
|
173
|
+
<div class="gw-wrap">
|
|
174
|
+
<div class="gw-footer__grid">
|
|
175
|
+
<div class="gw-footer__brand">
|
|
176
|
+
<a class="gw-brand" href="https://gemboss.ai/" data-gw-show="brand:gemboss"><svg class="gw-brand__mark" viewBox="0 0 100 116" aria-hidden="true"><polygon points="26,14 74,14 66,50 34,50" style="fill:var(--gw-accent)"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="currentColor" stroke-width="9" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linejoin="round"/></svg><span class="gw-brand__name">GemBoss</span></a>
|
|
177
|
+
<a class="gw-brand" href="footer.html#gempages" data-gw-show="brand:gempages" hidden><svg class="gw-brand__mark" viewBox="0 0 26 26" aria-hidden="true"><rect width="26" height="26" rx="7" style="fill:var(--gw-accent)"/><path d="M8 9h10M8 13h10M8 17h6" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round"/></svg><span class="gw-brand__name">Example brand</span></a>
|
|
178
|
+
<p data-gw-show="brand:gemboss">The AI Conversion Engine for Shopify. Build a brand-true store, ship it blazing fast, and see what to change to sell more.</p>
|
|
179
|
+
<p data-gw-show="brand:gempages" hidden>One sentence on what the brand does for the reader. Sample text for the demo.</p>
|
|
180
|
+
<div class="gw-footer__ask" data-gw-show="brand:gemboss">
|
|
181
|
+
<p class="gw-footer__ask-label" id="footer-ask">Ask AI about GemBoss</p>
|
|
182
|
+
<ul aria-labelledby="footer-ask">
|
|
183
|
+
<li><a href="https://chatgpt.com/?q=What%20is%20GemBoss%20%28gemboss.ai%29%2C%20and%20how%20does%20it%20help%20Shopify%20brands%20turn%20ad%20clicks%20into%20sales%3F" target="_blank" rel="noopener">ChatGPT<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
184
|
+
<li><a href="https://claude.ai/new?q=What%20is%20GemBoss%20%28gemboss.ai%29%2C%20and%20how%20does%20it%20help%20Shopify%20brands%20turn%20ad%20clicks%20into%20sales%3F" target="_blank" rel="noopener">Claude<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
185
|
+
<li><a href="https://www.perplexity.ai/search/new?q=What%20is%20GemBoss%20%28gemboss.ai%29%2C%20and%20how%20does%20it%20help%20Shopify%20brands%20turn%20ad%20clicks%20into%20sales%3F" target="_blank" rel="noopener">Perplexity<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
186
|
+
<li><a href="https://www.google.com/search?udm=50&q=What%20is%20GemBoss%20%28gemboss.ai%29%2C%20and%20how%20does%20it%20help%20Shopify%20brands%20turn%20ad%20clicks%20into%20sales%3F" target="_blank" rel="noopener">Google AI Mode<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
187
|
+
</ul>
|
|
188
|
+
</div>
|
|
189
|
+
<form class="gw-footer__newsletter" action="#footer" method="post" novalidate data-gw-show="brand:gempages" hidden>
|
|
190
|
+
<div class="gw-field">
|
|
191
|
+
<label class="gw-field__label" for="footer-email">Product news by email</label>
|
|
192
|
+
<div class="gw-form-inline">
|
|
193
|
+
<input class="gw-input" id="footer-email" name="email" type="email" autocomplete="email" required aria-describedby="footer-email-error footer-email-note">
|
|
194
|
+
<button class="gw-btn gw-btn--secondary" type="submit">Subscribe</button>
|
|
195
|
+
</div>
|
|
196
|
+
<p class="gw-field__error" id="footer-email-error"></p>
|
|
197
|
+
<p class="gw-field__hint" id="footer-email-note">One email a month. Unsubscribe in one click. <a href="https://gemboss.ai/privacy">Privacy policy</a></p>
|
|
198
|
+
</div>
|
|
199
|
+
</form>
|
|
200
|
+
</div>
|
|
201
|
+
<nav class="gw-footer__col" aria-label="Product">
|
|
202
|
+
<details class="gw-footer__fold">
|
|
203
|
+
<summary><h2 class="gw-footer__heading">Product</h2></summary>
|
|
204
|
+
<ul>
|
|
205
|
+
<li><a href="https://gemboss.ai/funnel">Funnel builder</a></li>
|
|
206
|
+
<li><a href="https://gemboss.ai/ai-store-builder">Storefront builder</a></li>
|
|
207
|
+
<li><a href="https://gemboss.ai/ab-testing">Tests & personalization</a></li>
|
|
208
|
+
<li><a href="https://gemboss.ai/offers">Offers & upsells</a></li>
|
|
209
|
+
<li><a href="https://gemboss.ai/data">Analytics & data</a></li>
|
|
210
|
+
<li><a href="https://gemboss.ai/integrations">Integrations</a></li>
|
|
211
|
+
<li><a href="https://gemboss.ai/pricing">Pricing</a></li>
|
|
212
|
+
</ul>
|
|
213
|
+
</details>
|
|
214
|
+
</nav>
|
|
215
|
+
<nav class="gw-footer__col" aria-label="Use cases">
|
|
216
|
+
<details class="gw-footer__fold">
|
|
217
|
+
<summary><h2 class="gw-footer__heading">Use cases</h2></summary>
|
|
218
|
+
<ul>
|
|
219
|
+
<li><a href="https://gemboss.ai/meta-ads">Meta, Google & TikTok ads</a></li>
|
|
220
|
+
<li><a href="https://gemboss.ai/klaviyo-personalized-landing-pages">Klaviyo landing pages</a></li>
|
|
221
|
+
<li><a href="https://gemboss.ai/affiliate-landing-pages">Affiliate pages</a></li>
|
|
222
|
+
<li><a href="https://gemboss.ai/ai-store-builder">Headless storefront</a></li>
|
|
223
|
+
<li><a href="https://gemboss.ai/agent-ready">AI agents & AI search</a></li>
|
|
224
|
+
</ul>
|
|
225
|
+
</details>
|
|
226
|
+
</nav>
|
|
227
|
+
<nav class="gw-footer__col" aria-label="Solutions">
|
|
228
|
+
<details class="gw-footer__fold">
|
|
229
|
+
<summary><h2 class="gw-footer__heading">Solutions</h2></summary>
|
|
230
|
+
<ul>
|
|
231
|
+
<li><a href="https://gemboss.ai/beauty-skincare">Beauty & skincare</a></li>
|
|
232
|
+
<li><a href="https://gemboss.ai/wellness-supplements">Wellness</a></li>
|
|
233
|
+
<li><a href="https://gemboss.ai/fashion-apparel">Fashion</a></li>
|
|
234
|
+
<li><a href="https://gemboss.ai/home-food">Home & food</a></li>
|
|
235
|
+
<li><a href="https://gemboss.ai/electronics">Consumer electronics</a></li>
|
|
236
|
+
<li><a href="https://gemboss.ai/enterprise">Enterprise</a></li>
|
|
237
|
+
<li><a href="https://gemboss.ai/managed">Managed service</a></li>
|
|
238
|
+
</ul>
|
|
239
|
+
</details>
|
|
240
|
+
</nav>
|
|
241
|
+
<nav class="gw-footer__col" aria-label="Resources">
|
|
242
|
+
<details class="gw-footer__fold">
|
|
243
|
+
<summary><h2 class="gw-footer__heading">Resources</h2></summary>
|
|
244
|
+
<ul>
|
|
245
|
+
<li><a href="https://gemboss.ai/audit">Free store audit</a></li>
|
|
246
|
+
<li><a href="https://gemboss.ai/shopify-store-setup">Shopify store setup</a></li>
|
|
247
|
+
<li><a href="https://gemboss.ai/blog">Blog</a></li>
|
|
248
|
+
<li><a href="https://gemboss.ai/docs">Docs</a></li>
|
|
249
|
+
<li><a href="https://gemboss.ai/mcp">MCP for AI agents</a></li>
|
|
250
|
+
<li><a href="https://feedback.gemboss.ai/changelog" rel="noopener">Changelog<span class="gw-footer__ext" aria-hidden="true"></span></a></li>
|
|
251
|
+
</ul>
|
|
252
|
+
</details>
|
|
253
|
+
</nav>
|
|
254
|
+
<nav class="gw-footer__col" aria-label="Company">
|
|
255
|
+
<details class="gw-footer__fold">
|
|
256
|
+
<summary><h2 class="gw-footer__heading">Company</h2></summary>
|
|
257
|
+
<ul>
|
|
258
|
+
<li><a href="https://gemboss.ai/company">About</a></li>
|
|
259
|
+
<li><a href="https://gemboss.ai/careers">Careers</a></li>
|
|
260
|
+
<li><a href="https://gemboss.ai/company#security">Security</a></li>
|
|
261
|
+
<li><a href="https://gemboss.ai/partners">Partners</a></li>
|
|
262
|
+
<li><a href="https://gemboss.ai/affiliates">Affiliates</a></li>
|
|
263
|
+
<li><a href="https://gemboss.ai/klaviyo-agencies">Klaviyo agencies</a></li>
|
|
264
|
+
<li><a href="https://gemboss.ai/contact">Contact</a></li>
|
|
265
|
+
</ul>
|
|
266
|
+
</details>
|
|
267
|
+
</nav>
|
|
268
|
+
</div>
|
|
269
|
+
<nav class="gw-footer__family" aria-label="More from GemBoss" data-gw-show="brand:gemboss">
|
|
270
|
+
<details class="gw-footer__fold">
|
|
271
|
+
<summary><h2 class="gw-footer__heading">More from GemBoss</h2></summary>
|
|
272
|
+
<ul>
|
|
273
|
+
<li><a href="https://gemboss.ai/custom-theme"><b>GemThemes</b> <i>Custom theme</i></a></li>
|
|
274
|
+
<li><a href="https://gemboss.ai/product#plugins"><b>Plugins</b> <i>Reviews, quiz, popups</i></a></li>
|
|
275
|
+
<li><a href="https://gemboss.ai/download"><b>Desktop app</b> <i>macOS & Windows</i></a></li>
|
|
276
|
+
<li><a href="https://community.gemboss.ai" rel="noopener"><b>Community<span class="gw-footer__ext" aria-hidden="true"></span></b> <i>Brands building with GemBoss</i></a></li>
|
|
277
|
+
<li><a href="https://news.gemboss.ai/ext" rel="noopener"><b>News for Chrome<span class="gw-footer__ext" aria-hidden="true"></span></b> <i>Daily briefing</i></a></li>
|
|
278
|
+
</ul>
|
|
279
|
+
</details>
|
|
280
|
+
</nav>
|
|
281
|
+
<nav class="gw-footer__family" aria-label="From the same team, on the Shopify App Store" data-gw-show="brand:gemboss">
|
|
282
|
+
<details class="gw-footer__fold">
|
|
283
|
+
<summary><h2 class="gw-footer__heading">From the same team, on the Shopify App Store</h2></summary>
|
|
284
|
+
<ul>
|
|
285
|
+
<li><a href="https://gemboss.ai/shopify-apps#gempages"><b>GemPages</b> <i>Landing page builder</i></a></li>
|
|
286
|
+
<li><a href="https://gemboss.ai/shopify-apps#gemx"><b>GemX</b> <i>CRO & A/B testing</i></a></li>
|
|
287
|
+
<li><a href="https://gemboss.ai/shopify-apps#gemupsells"><b>GemUpsells</b> <i>Journey builder</i></a></li>
|
|
288
|
+
<li><a href="https://gemboss.ai/shopify-apps"><b>All three apps</b> <i>And how GemBoss differs</i></a></li>
|
|
289
|
+
</ul>
|
|
290
|
+
</details>
|
|
291
|
+
</nav>
|
|
292
|
+
<nav class="gw-footer__family" aria-label="From the same team" data-gw-show="brand:gempages" hidden>
|
|
293
|
+
<details class="gw-footer__fold">
|
|
294
|
+
<summary><h2 class="gw-footer__heading">From the same team</h2></summary>
|
|
295
|
+
<ul>
|
|
296
|
+
<li><a href="https://gemboss.ai/" target="_blank" rel="noopener"><b>GemBoss<span class="gw-footer__ext" aria-hidden="true"></span></b> <i>The AI Conversion Engine for Shopify</i><span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
297
|
+
<li><a href="https://gemboss.ai/shopify-apps#gemx" rel="noopener"><b>GemX<span class="gw-footer__ext" aria-hidden="true"></span></b> <i>CRO & A/B testing</i></a></li>
|
|
298
|
+
<li><a href="https://gemboss.ai/shopify-apps#gemupsells" rel="noopener"><b>GemUpsells<span class="gw-footer__ext" aria-hidden="true"></span></b> <i>Journey builder</i></a></li>
|
|
299
|
+
</ul>
|
|
300
|
+
</details>
|
|
301
|
+
</nav>
|
|
302
|
+
<div class="gw-footer__bottom">
|
|
303
|
+
<span><span data-gw-show="brand:gemboss">© 2026 GemBoss. All rights reserved.</span><span data-gw-show="brand:gempages" hidden>© 2026 Example brand. Sample text.</span></span>
|
|
304
|
+
<ul aria-label="Legal">
|
|
305
|
+
<li><a href="https://gemboss.ai/privacy">Privacy</a></li>
|
|
306
|
+
<li><a href="https://gemboss.ai/terms">Terms</a></li>
|
|
307
|
+
</ul>
|
|
308
|
+
<button class="gw-theme-toggle gw-footer__toggle" type="button" data-gw-theme-toggle aria-label="Switch to dark theme"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor"/></svg></button>
|
|
309
|
+
<ul aria-label="Social">
|
|
310
|
+
<li><a href="https://www.linkedin.com/company/gempages" target="_blank" rel="noopener">LinkedIn<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
311
|
+
<li><a href="https://x.com/gempages" target="_blank" rel="noopener">X<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
312
|
+
<li><a href="https://www.gempages.net" target="_blank" rel="noopener">GemPages<span class="gw-visually-hidden"> (opens in a new tab)</span></a></li>
|
|
313
|
+
</ul>
|
|
314
|
+
</div>
|
|
315
|
+
<div class="gw-footer__wordmark" aria-hidden="true" data-gw-show="brand:gemboss"><svg viewBox="0 0 100 116"><polygon points="26,14 74,14 66,50 34,50" fill="currentColor"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="currentColor" stroke-width="6" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="currentColor" stroke-width="3.8" stroke-linejoin="round"/></svg><span>GemBoss</span></div>
|
|
316
|
+
<div class="gw-footer__wordmark" aria-hidden="true" data-gw-show="brand:gempages" hidden><svg viewBox="0 0 26 26"><rect x="1" y="1" width="24" height="24" rx="6" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 9h10M8 13h10M8 17h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg><span>Example brand</span></div>
|
|
317
|
+
</div>
|
|
318
|
+
</footer>
|
|
319
|
+
|
|
320
|
+
<script src="../js/website.js" defer></script>
|
|
321
|
+
<script>
|
|
322
|
+
// demo only: the switch above picks a brand. A real site sets its profiles once, in the markup of <html>, and its
|
|
323
|
+
// accent in site.css (docs/theming.md); this page flips them so one file can show both. #gempages opens it so.
|
|
324
|
+
(function () {
|
|
325
|
+
var root = document.documentElement, accent = document.getElementById('demo-gempages');
|
|
326
|
+
function brand(b) {
|
|
327
|
+
var gp = b === 'gempages';
|
|
328
|
+
if (gp) { root.setAttribute('data-gw-radius', 'soft'); root.setAttribute('data-gw-action', 'accent'); }
|
|
329
|
+
else { root.removeAttribute('data-gw-radius'); root.removeAttribute('data-gw-action'); }
|
|
330
|
+
accent.media = gp ? 'all' : 'not all';
|
|
331
|
+
}
|
|
332
|
+
document.addEventListener('gw:segmented', function (e) { if (e.detail.name === 'brand') brand(e.detail.value); });
|
|
333
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
334
|
+
if (location.hash === '#gempages') { var o = document.querySelector('[data-gw-segmented="brand"] [value="gempages"]'); if (o) o.click(); }
|
|
335
|
+
});
|
|
336
|
+
})();
|
|
337
|
+
</script>
|
|
338
|
+
</body>
|
|
339
|
+
</html>
|