Name: Logos / Marquee / 16 logos
Options:
Logos - You can add or replace up to 16 logos (you can also hide them).
In Head Tag
<style>
/* CSS Keyframe Animation */
@keyframes translateX {
to {
transform: translateX(-100%);
}
}
[data-css-marquee-list] {
animation: translateX 40s linear;
animation-iteration-count: infinite;
animation-play-state: paused;
}
</style>
In Before Body Tag
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
<!-- GSAP Animation -->
<script>
window.addEventListener('load', () => {
const timeline = gsap.timeline({
defaults: { delay:1, duration: 0.8, ease: "power1.inOut" }
});
// Animate all hero layers with stagger
timeline.fromTo(".food-bev__second-img",
{ y: -20, opacity: 0 },
{ y: 0, opacity: 1, stagger: 2 },
"+=0.1"
);
});
</script>
<!-- Marquee -->
<script>
function initCSSMarquee() {
const pixelsPerSecond = 50; // Set desired scroll speed (pixels per second)
const marquees = document.querySelectorAll('[data-css-marquee]');
marquees.forEach(marquee => {
// Remove any previously duplicated marquee lists (cleanup)
marquee.querySelectorAll('.marquee-duplicate').forEach(el => el.remove());
marquee.querySelectorAll('[data-css-marquee-list]').forEach(list => {
// Duplicate the list for seamless looping
const duplicate = list.cloneNode(true);
duplicate.classList.add('marquee-duplicate');
marquee.appendChild(duplicate);
});
});
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
entry.target.querySelectorAll('[data-css-marquee-list]').forEach(list => {
list.style.animationPlayState = entry.isIntersecting ? 'running' : 'paused';
});
entry.target.querySelectorAll('.marquee-duplicate').forEach(list => {
list.style.animationPlayState = entry.isIntersecting ? 'running' : 'paused';
});
});
}, { threshold: 0 });
marquees.forEach(marquee => {
// Recalculate duration using total width
const totalWidth = Array.from(marquee.querySelectorAll('[data-css-marquee-list], .marquee-duplicate'))
.reduce((sum, el) => sum + el.offsetWidth, 0);
const duration = totalWidth / pixelsPerSecond;
marquee.querySelectorAll('[data-css-marquee-list], .marquee-duplicate').forEach(list => {
list.style.animationDuration = duration + 's';
list.style.animationPlayState = 'paused';
});
observer.observe(marquee);
});
}
// Wait until all resources (images/fonts) are loaded for correct width calculation
window.addEventListener('load', function() {
initCSSMarquee();
});
// Also rerun when window is resized (for responsiveness)
window.addEventListener('resize', function() {
initCSSMarquee();
});
</script>
<!DOCTYPE html><!-- Last Published: Tue Feb 17 2026 19:20:47 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.attentive.com" data-wf-page="6911adc2c265daec65984354" data-wf-site="684306b795a2c402456e92ba" data-wf-intellimize-customer-id="117310846" lang="en"><head><meta charset="utf-8"/><title>Logos</title><meta content="Logos" property="og:title"/><meta content="Logos" property="twitter:title"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/css/attentive-dev-revamp-2025.shared.06feaeb90.min.css" rel="stylesheet" type="text/css" integrity="sha384-Bv6uuQJEI2xsndKtPvJSaiD9IwEA1GPwv18O6EH95cP5CJvJqKFi5rBaAPs3go1h" crossorigin="anonymous"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68ca2e64ae46fe3b4e3e3b6c_Favicon%20Attentive.ico" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68ca2e6c606533d7226b1000_Webclip%20Attentive.png" rel="apple-touch-icon"/><link href="https://www.attentive.com/component-library/logos" rel="canonical"/><style>.anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}</style><style>[data-wf-hidden-variation], [data-wf-hidden-variation] * {
display: none !important;
}</style><script type="text/javascript">if (localStorage.getItem('intellimize_data_tracking_type') !== 'optOut') { localStorage.removeItem('intellimize_opt_out_117310846'); } if (localStorage.getItem('intellimize_data_tracking_type') !== 'optOut') { localStorage.setItem('intellimize_data_tracking_type', 'optOut'); }</script><script type="text/javascript">(function(e){var s={r:[]};e.wf={r:s.r,ready:t=>{s.r.push(t)}}})(window)</script><script type="text/javascript">(function(e,t,p){var n=document.documentElement,s={p:[],r:[]},u={p:s.p,r:s.r,push:function(e){s.p.push(e)},ready:function(e){s.r.push(e)}};e.intellimize=u,n.className+=" "+p,setTimeout(function(){n.className=n.className.replace(RegExp(" ?"+p),"")},t)})(window, 4000, 'anti-flicker')</script><link href="https://cdn.intellimize.co/snippet/117310846.js" rel="preload" as="script"/><script type="text/javascript">var wfClientScript=document.createElement("script");wfClientScript.src="https://cdn.intellimize.co/snippet/117310846.js",wfClientScript.async=!0,wfClientScript.onerror=function(){document.documentElement.className=document.documentElement.className.replace(RegExp(" ?anti-flicker"),"")},document.head.appendChild(wfClientScript);</script><link href="https://api.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://log.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://117310846.intellimizeio.com" rel="preconnect"/><!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TK3VW6S');</script>
<!-- End Google Tag Manager -->
<!-- Mutiny -->
<script defer>
(function(){var a=window.mutiny=window.mutiny||{};if(!window.mutiny.client){a.client={_queue:{}};var b=["identify","trackConversion"];var c=[].concat(b,["defaultOptOut","optOut","optIn"]);var d=function factory(c){return function(){for(var d=arguments.length,e=new Array(d),f=0;f<d;f++){e[f]=arguments[f]}a.client._queue[c]=a.client._queue[c]||[];if(b.includes(c)){return new Promise(function(b,d){a.client._queue[c].push({args:e,resolve:b,reject:d})})}else{a.client._queue[c].push({args:e})}}};c.forEach(function(b){a.client[b]=d(b)})}})();
</script>
<!-- End Mutiny -->
<script>
(function() {
function syncConsent() {
if (!window.Cookiebot || !Cookiebot.consent) return;
const hasDecision = Cookiebot.consent.method !== null;
const consentGiven = Cookiebot.consent.statistics === true;
wf.ready(function() {
const trackingState = wf.getUserTrackingChoice(); // 'allow' | 'deny' | 'none'
if (!hasDecision) return;
if (consentGiven && trackingState === 'deny') {
wf.allowUserTracking({ activate: true });
} else if (!consentGiven && trackingState !== 'deny') {
wf.denyUserTracking();
}
});
}
['CookiebotOnConsentReady', 'CookiebotOnAccept', 'CookiebotOnDecline']
.forEach(ev => window.addEventListener(ev, syncConsent));
if (window.Cookiebot && typeof Cookiebot.consent !== 'undefined') {
syncConsent();
}
})();
</script>
<script defer data-cfasync="false" src="https://client-registry.mutinycdn.com/personalize/client/6308a4e66449798f.js"></script>
<!-- Meta Tags -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="pinterest" content="nopin" />
<meta name="facebook-domain-verification" content="0lqpeuk188jgviib0js1zdochyveul" />
<meta name="theme-color" content="#fff382" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#1a1e22" media="(prefers-color-scheme: dark)">
<style>
.u-custom-classes{
display:none;
}
</style><meta name="robots" content="noindex,nofollow" />
<style>
/* CSS Keyframe Animation */
@keyframes translateX {
to {
transform: translateX(-100%);
}
}
[data-css-marquee-list] {
animation: translateX 40s linear;
animation-iteration-count: infinite;
animation-play-state: paused;
}
</style></head><body><div class="page_wrap"><div class="u-embed-css w-embed"><style>
.logo__one{
aspect-ratio: 120/30;
max-width: 7.5rem;
}
.logo__two{
aspect-ratio: 200/21.8;
max-width: 12.5rem;
}
.logo__three{
aspect-ratio: 270/16.6;
max-width: 16.875rem;
}
.logo__four{
aspect-ratio: 190/19.81;
max-width: 11.875rem;
}
.logo__five{
aspect-ratio: 205/21.086;
max-width: 12.81rem;
}
.logo__six{
aspect-ratio: 190/44;
max-width: 11.875rem;
}
.logo__seven{
aspect-ratio: 190/44;
max-width: 11.875rem;
}
.logo__eight{
aspect-ratio: 190/44;
max-width: 11.875rem;
}
.logo__nine{
aspect-ratio: 190/44;
max-width: 11.875rem;
}
.logo__ten{
aspect-ratio: 190/44;
max-width: 11.875rem;
}
</style></div><div class="u-embed-css w-embed"><style>
/* ===============================
Root Variables
=============================== */
:root {
--pink-bg: #edc6ed;
--blue-bg: #cde5fd;
--light-canteloupe: #ffdfc2;
--surf-turf: #82c8d2;
--green-bg: #e2fa9f;
--light-blue-bg: #e0f1f4;
--orange-bg: #ffd482;
--light-pink-bg: #fbf1fb;
}
/* ===============================
Background Utility Classes
=============================== */
.pink-bg {
background-color: var(--pink-bg);
}
.blue-bg,
.lightblue {
background-color: var(--blue-bg);
}
.bg__half {
background-image: linear-gradient(to bottom, white 50%, var(--blue-bg) 50%);
}
.u-background-blue {
background-color: #ebf3ff;
}
.u-background-ube {
background-color: #fcf2fc;
}
.light-canteloupe {
background-color: var(--light-canteloupe);
}
.surf-turf {
background-color: var(--surf-turf);
}
.bluedark {
background-color: #0075e1;
color: white;
}
.green-bg {
background-color: var(--green-bg);
}
.light-blue-bg {
background-color: var(--light-blue-bg);
}
.orange-bg {
background-color: var(--orange-bg);
}
.light-pink-bg {
background-color: var(--light-pink-bg);
}
</style></div><div class="page_code_wrap"><div class="page_code_base w-embed"><style>
/*
:root {
--grid-breakout: [full-start] minmax(0, 1fr) [content-start] repeat(var(--site--column-count), minmax(0, var(--site--column-width))) [content-end] minmax(0, 1fr) [full-end];
--grid-breakout-single: [full-start] minmax(0, 1fr) [content-start] minmax(0, var(--container--main)) [content-end] minmax(0, 1fr) [full-end];
}*/
/*
* {
vertical-align: bottom;
}
*/
::before, ::after {
box-sizing: border-box;
}
html {
background-color: var(--_theme---background);
}
button {
background-color: unset;
padding: unset;
text-align: inherit;
}
button:not(:disabled) {
cursor: pointer;
}
video {
width: 100%;
object-fit: cover;
}
/* remove padding of empty element */
.wf-empty {
padding: 0;
}
svg {
max-width: 100%;
}
section, header, footer {
position: relative;
}
@media (prefers-color-scheme: light) {
option { color: black; }
}
img::selection {
background: transparent;
}
/* Typography */
body {
/*text-transform: var(--_text-style---text-transform);*/
/*
font-smoothing: antialiased;
-webkit-font-smoothing: antialiased;
text-rendering:optimizeLegibility;*/
}
/* Clear Defaults */
a:not([class]) {
text-decoration: underline;
}
h1,h2,h3,h4,h5,h6,p,blockquote,label {
font-family: inherit;
font-size: inherit;
font-weight: inherit;
line-height: inherit;
letter-spacing: inherit;
text-transform: inherit;
text-wrap: inherit;
margin-top: 0;
margin-bottom: 0;
}
/* Selection Color */
::selection {
background-color: #FFE600;
color: var(--_theme---selection--text);
}
/* Margin Trim */
:is(.u-margin-trim, .u-rich-text) > :not(:not(.w-condition-invisible) ~ :not(.w-condition-invisible)) {
margin-top: 0;
}
:is(.u-margin-trim, .u-rich-text) > :not(:has(~ :not(.w-condition-invisible))) {
margin-bottom: 0;
}
/* Line Height Trim */
:is([class*="u-text-style-"],h1,h2,h3,h4,h5,h6,p):not(.w-richtext,.u-text-trim-off)::before {
content: "";
display: table;
margin-bottom: calc(-0.5lh + var(--_text-style---trim-top));
}
:is([class*="u-text-style-"],h1,h2,h3,h4,h5,h6,p):not(.w-richtext,.u-text-trim-off)::after {
content: "";
display: table;
margin-bottom: calc(-0.5lh + var(--_text-style---trim-bottom));
}
/* Rich Text Links */
.w-richtext a {
position: relative;
z-index: 4;
}
/* Line Clamp */
.u-line-clamp-1, .u-line-clamp-2, .u-line-clamp-3, .u-line-clamp-4 {
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.u-line-clamp-2 { -webkit-line-clamp: 2; }
.u-line-clamp-3 { -webkit-line-clamp: 3; }
.u-line-clamp-4 { -webkit-line-clamp: 4; }
/* Child Contain */
.u-child-contain > * {
width: 100%;
max-width: inherit !important;
margin-inline: 0 !important;
margin-top: 0 !important;
}
/* Hide */
.u-hide-if-empty:empty,
.u-hide-if-empty:not(:has(> :not(.w-condition-invisible))),
.u-hide-if-empty-cms:not(:has(.w-dyn-item)),
.u-embed-js,
.u-embed-css {
display: none !important;
}
/* Focus State */
a, button, :where([tabindex]) {
outline-offset: var(--focus--offset-outer);
}
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
outline-color: var(--_theme---text);
outline-width: var(--focus--width);
outline-style: solid;
}
/* Global / Clickable Component */
.wf-design-mode .g_clickable_wrap {
z-index: 0;
}
.g_clickable_wrap a[href="#"] {
display: none;
}
.g_clickable_wrap a[href="#"] ~ button {
display: block;
}
</style></div><div class="page_code_custom w-embed"><style>
@media (max-width: 991px) {
[data-hidebr="tablet"] br {
display: none;
}
}
@media (max-width: 768px) {
[data-hidebr="landscape"] br {
display: none!important;
}
}
@media (max-width: 551px) {
[data-hidebr="mobile"] br {
display: none!important;
}
}
</style></div></div><main class="u-main"><section><div data-wf--global-background-color--background-color="background-white" class="g_background w-variant-cd5f9287-5b9f-b1bf-cfe9-3449eb06f297 u-cover-absolute u-background-butter"></div><div data-wf--global-section-space--section-space="80" class="g_section_space w-variant-60a7ad7d-02b0-6682-95a5-2218e6fd1490"></div><div class="u-padding-global"><div class="u-container"><div><h1 class="u-ts-ginto-nord_3rem">Logos</h1></div></div></div><div data-wf--global-section-space--section-space="80" class="g_section_space w-variant-60a7ad7d-02b0-6682-95a5-2218e6fd1490"></div></section><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name : Logos / mini / Logo with case study link</div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-18 u-weight-medium">This is a mini component used within the main component to create a system of logos with similar properties.</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div class="u-background-offwhite"><div data-wf--global-section-space--section-space="40" class="g_section_space w-variant-36663714-07c9-66e0-2fce-177459f91cfc"></div><div class="u-display-contents"><div class="display__flex u-align-items-center u-justify-content-center"><div class="u-display-contents"><div class="u-max-width-30ch"><div class="home-hero__logo-box u-zindex-1"><a data-w-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-native-id-path="3619a29d-4bf3-ef96-a05c-b0beeef6754f:6dad5df8-e186-0f38-b196-c2b60ae59820:1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-component-context="%5B%7B%22componentId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae5981f%22%2C%22instanceId%22%3A%223619a29d-4bf3-ef96-a05c-b0beeef6754f%22%7D%2C%7B%22componentId%22%3A%221982c53a-7d4e-36da-44c6-246ee9b027e9%22%2C%22instanceId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae59820%22%7D%5D" href="/case-studies/how-guess-got-creative-with-sms-to-reach-canadian-shoppers" class="soup-link-wrapper w-inline-block u-overflow-hidden"><div class="soup-hover-copy u-style-12">Case study →</div><div class="soup-link-copy u-weight-medium">+</div></a><link rel="prefetch" href="/case-studies/how-guess-got-creative-with-sms-to-reach-canadian-shoppers"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d3_Guess.svg" alt="" class="home-hero__logo_img"/></div></div></div></div></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name: Logos / Group Logos</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="blog__rich-text w-richtext"><h3>Options: <br/></h3><h5><strong>Heading </strong>– You can edit the heading and control its visibility.</h5><h5><strong>Logos</strong> - You can add or replace up to 14 logos (you can also hide them).<br/>Each logo option allows you to add a link and a tag, which can be shown or hidden via properties.</h5></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div><div data-wf--global-section-space--section-space="80" class="g_section_space w-variant-60a7ad7d-02b0-6682-95a5-2218e6fd1490"></div><div class="home-hero__logo-module"><div class="u-alignment-center u-font_mason-neue">Trusted by the world’s most innovative companies</div><div data-wf--global-section-space--section-space="32" class="g_section_space w-variant-41fc0c0a-cac3-53c9-9802-6a916e3fb342"></div><div data-wf--global-section-space--section-space="12" class="g_section_space w-variant-fbcea848-b3b0-8da3-bbf6-15060641906a"></div><div class="w-layout-hflex home-hero__kogo-wrapper u-flex-horizontal-wrap u-justify-content-center u-alignment-center"><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d9_Create%26Barel.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d7_Crocs.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f680ae7feacdcd79001e_UGG.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d5_Dyson.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1 u-hide-landscape u-hide-tablet"><a data-w-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-native-id-path="730e16b8-ff4a-96e2-cff5-3ba867c2c368:312dba90-ece1-149c-3766-f36136f072db:6dad5df8-e186-0f38-b196-c2b60ae59820:1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-component-context="%5B%7B%22componentId%22%3A%22312dba90-ece1-149c-3766-f36136f072cd%22%2C%22instanceId%22%3A%22730e16b8-ff4a-96e2-cff5-3ba867c2c368%22%7D%2C%7B%22componentId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae5981f%22%2C%22instanceId%22%3A%22312dba90-ece1-149c-3766-f36136f072db%22%7D%2C%7B%22componentId%22%3A%221982c53a-7d4e-36da-44c6-246ee9b027e9%22%2C%22instanceId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae59820%22%7D%5D" href="/case-studies/how-guess-got-creative-with-sms-to-reach-canadian-shoppers" class="soup-link-wrapper w-inline-block u-overflow-hidden"><div class="soup-hover-copy u-style-12">Case study →</div><div class="soup-link-copy u-weight-medium">+</div></a><link rel="prefetch" href="/case-studies/how-guess-got-creative-with-sms-to-reach-canadian-shoppers"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d3_Guess.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d8_H%26M.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253dd_NeimanMarcus.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1 u-hide-landscape u-hide-tablet"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253de_SixFlags.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d6_Nespresso.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253df_Reebok.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1 u-hide-landscape u-hide-tablet"><a data-w-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-native-id-path="730e16b8-ff4a-96e2-cff5-3ba867c2c368:7160e8fd-905d-b8bc-af3b-ca324abc30de:6dad5df8-e186-0f38-b196-c2b60ae59820:1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-component-context="%5B%7B%22componentId%22%3A%22312dba90-ece1-149c-3766-f36136f072cd%22%2C%22instanceId%22%3A%22730e16b8-ff4a-96e2-cff5-3ba867c2c368%22%7D%2C%7B%22componentId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae5981f%22%2C%22instanceId%22%3A%227160e8fd-905d-b8bc-af3b-ca324abc30de%22%7D%2C%7B%22componentId%22%3A%221982c53a-7d4e-36da-44c6-246ee9b027e9%22%2C%22instanceId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae59820%22%7D%5D" href="/case-studies/how-marleylilly-wove-success-by-combining-sms-email-and-ai-with-attentive" class="soup-link-wrapper w-inline-block u-overflow-hidden"><div class="soup-hover-copy u-style-12">Case study →</div><div class="soup-link-copy u-weight-medium">+</div></a><link rel="prefetch" href="/case-studies/how-marleylilly-wove-success-by-combining-sms-email-and-ai-with-attentive"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253db_Marleylilly%20logo.svg" alt="marleylilly brand logo" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253d4_Samsung.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1 u-hide-landscape u-hide-tablet"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253da_Wayfair.svg" alt="" class="home-hero__logo_img"/></div><div class="home-hero__logo-box u-zindex-1 u-hide-landscape u-hide-tablet"><a data-w-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-native-id-path="730e16b8-ff4a-96e2-cff5-3ba867c2c368:bd6aa33c-9829-c855-2cc1-d411121008b3:6dad5df8-e186-0f38-b196-c2b60ae59820:1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1982c53a-7d4e-36da-44c6-246ee9b027e9" data-wf-component-context="%5B%7B%22componentId%22%3A%22312dba90-ece1-149c-3766-f36136f072cd%22%2C%22instanceId%22%3A%22730e16b8-ff4a-96e2-cff5-3ba867c2c368%22%7D%2C%7B%22componentId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae5981f%22%2C%22instanceId%22%3A%22bd6aa33c-9829-c855-2cc1-d411121008b3%22%7D%2C%7B%22componentId%22%3A%221982c53a-7d4e-36da-44c6-246ee9b027e9%22%2C%22instanceId%22%3A%226dad5df8-e186-0f38-b196-c2b60ae59820%22%7D%5D" href="/blog/olly-marketing-strategy" class="soup-link-wrapper w-inline-block u-overflow-hidden"><div class="soup-hover-copy u-style-12">Blog post →</div><div class="soup-link-copy u-weight-medium">+</div></a><link rel="prefetch" href="/blog/olly-marketing-strategy"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68a23dddf4c30e4201c253dc_Olly%20logo.svg" alt="olly brand logo" class="home-hero__logo_img"/></div></div></div><div data-wf--global-section-space--section-space="80" class="g_section_space w-variant-60a7ad7d-02b0-6682-95a5-2218e6fd1490"></div></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name: Logos / Heading / Grid</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-18 u-weight-medium">Options: You can add or replace up to 8 logos (you can also hide them).</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="blog__rich-text w-richtext"><h3>Options: <br/></h3><h5><strong>Heading</strong> – You can edit the heading and control its visibility.</h5><p><strong>Background -</strong> Can be updated</p><h5><strong>Logos</strong> - You can add or replace up to 8 logos (you can also hide them).<br/></h5></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div><section class="request-logos g_section-large_86"><div data-wf--global-section-space--section-space="32" class="g_section_space w-variant-41fc0c0a-cac3-53c9-9802-6a916e3fb342 u-hide-desktop u-hide-tablet"></div><div class="u-padding-global"><div class="u-container"><div class="request-logos__wrapper"><div class="u-style-20 is--16-mobile u-text-transform-capitalize u-weight-semibold u-letter-spacing-five u-alignment-center">Trusted by the world’s leading brands</div><div data-wf--global-section-space--section-space="28" class="g_section_space w-variant-fe87ee97-cbe9-045b-e03d-fdf659b40fe1"></div><div class="w-layout-hflex request-logos__module u-align-items-center u-justify-content-center"><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac12fb0ec6cabaa0fec69_Coach.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac13a76f81301aa231e1e_Reformation.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac142a930eaca4ad5b331_H%26M-Logo.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac1494c227b4b05e8a4fc_dolce%20vita.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac151303d81912eb3cd08_Supergoop.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac158f5336029bc2906af_Michaels.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac15e303d81912eb3cfa0_Bombas.svg" alt="" class="request-logo"/></div><div class="request-logo-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/689ac165b0aedca2e1ead4f2_Crate%20%26%20Barrel.svg" alt="" class="request-logo"/></div></div></div></div></div><div data-wf--global-section-space--section-space="32" class="g_section_space w-variant-41fc0c0a-cac3-53c9-9802-6a916e3fb342 u-hide-desktop u-hide-tablet"></div><div data-wf--global-background-color--background-color="background-white" class="g_background w-variant-cd5f9287-5b9f-b1bf-cfe9-3449eb06f297 u-cover-absolute"></div></section></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name: Logos / Single Row</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="blog__rich-text w-richtext"><h3>Options: <br/></h3><h5><strong>Logos</strong> - You can add or replace up to 5 logos (you can also hide them).</h5><p><strong>Background -</strong> Can be updated<br/></p></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div><section class="g_section-large_86"><div class="u-padding-global"><div data-wf--global-section-space--section-space="32" class="g_section_space w-variant-41fc0c0a-cac3-53c9-9802-6a916e3fb342 u-hide-tablet u-hide-desktop"></div><div class="u-container"><div class="w-layout-hflex developers__logos-wrapper"><div class="w-layout-hflex developers__logo u-align-items-center"><img loading="lazy" src="https://cdn.prod.website-files.com/5f8dd331b45e61acc8ac985c/630edc26edd15c4753ef57e3_LoyaltyLion%20logo.png" alt="A company logo for LoyaltyLion" class="developers__logo_img"/></div><div class="developers__logo"><img loading="lazy" src="https://cdn.prod.website-files.com/5f8dd331b45e61acc8ac985c/630edc26edd15c56dbef57dd_malomo_owler%201.png" alt="A company logo for Malomo" class="developers__logo_img is--malamo"/></div><div class="w-layout-hflex developers__logo u-align-items-center"><img loading="lazy" src="https://cdn.prod.website-files.com/5f8dd331b45e61acc8ac985c/630edc26edd15cf3cfef57df_okendo_1a1e22.png" alt="A company logo for Okendo" class="developers__logo_img"/></div><div class="developers__logo"><img loading="lazy" src="https://cdn.prod.website-files.com/5f8dd331b45e61acc8ac985c/630edc26edd15c1eb2ef57db_daasity%20logo.png" alt="A company logo for daasity" class="developers__logo_img"/></div><div class="developers__logo"><img loading="lazy" src="https://cdn.prod.website-files.com/5f8dd331b45e61acc8ac985c/630edc26edd15c97efef57e1_Simon_1a1e22.png" alt="A company logo for Simon" class="developers__logo_img"/></div></div></div><div data-wf--global-section-space--section-space="32" class="g_section_space w-variant-41fc0c0a-cac3-53c9-9802-6a916e3fb342 u-hide-tablet u-hide-desktop"></div></div><div data-wf--global-background-color--background-color="background-offwhite" class="g_background w-variant-92067874-f704-7fbf-e076-788858af4065 u-cover-absolute"></div></section></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name: Logos / Marquee / 16 logos</div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="blog__rich-text w-richtext"><h3>Options: <br/></h3><h5><strong>Logos</strong> - You can add or replace up to 16 logos (you can also hide them).</h5><p></p><p>In Head Tag</p><pre contenteditable="false" class="w-code-block" style="display:block;overflow-x:auto;background:#2b2b2b;color:#f8f8f2;padding:0.5em"><code class="language-javascript" style="white-space:pre"><span><style>
</span><span></span><span style="color:#d4d0ab">/* CSS Keyframe Animation */</span><span>
</span>@keyframes translateX {
to {
<span> </span><span class="hljs-attr">transform</span><span>: translateX(-</span><span style="color:#f5ab35">100</span><span>%);
</span> }
}
[data-css-marquee-list] {
<span> </span><span class="hljs-attr">animation</span><span>: translateX 40s linear;
</span> animation-iteration-count: infinite;
animation-play-state: paused;
}
</style></code></pre><p>In Before Body Tag</p><pre contenteditable="false" class="w-code-block" style="display:block;overflow-x:auto;background:#2b2b2b;color:#f8f8f2;padding:0.5em"><code class="language-javascript" style="white-space:pre"><span><script src=</span><span style="color:#abe338">"https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"</span><span>></script>
</span>
<!-- GSAP Animation -->
<span></span><span class="xml" style="color:#ffa07a"><</span><span class="xml" style="color:#ffa07a">script</span><span class="xml" style="color:#ffa07a">></span><span class="xml javascript">
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#f5ab35">window</span><span class="xml javascript">.addEventListener(</span><span class="xml javascript" style="color:#abe338">'load'</span><span class="xml javascript">, </span><span class="xml javascript hljs-function">() =></span><span class="xml javascript"> {
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> timeline = gsap.timeline({
</span><span class="xml javascript"> </span><span class="xml javascript hljs-attr">defaults</span><span class="xml javascript">: { </span><span class="xml javascript hljs-attr">delay</span><span class="xml javascript">:</span><span class="xml javascript" style="color:#f5ab35">1</span><span class="xml javascript">, </span><span class="xml javascript hljs-attr">duration</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">0.8</span><span class="xml javascript">, </span><span class="xml javascript hljs-attr">ease</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#abe338">"power1.inOut"</span><span class="xml javascript"> }
</span><span class="xml javascript"> });
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#d4d0ab">// Animate all hero layers with stagger</span><span class="xml javascript">
</span><span class="xml javascript"> timeline.fromTo(</span><span class="xml javascript" style="color:#abe338">".food-bev__second-img"</span><span class="xml javascript">,
</span><span class="xml javascript"> { </span><span class="xml javascript hljs-attr">y</span><span class="xml javascript">: -</span><span class="xml javascript" style="color:#f5ab35">20</span><span class="xml javascript">, </span><span class="xml javascript hljs-attr">opacity</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">0</span><span class="xml javascript"> },
</span><span class="xml javascript"> { </span><span class="xml javascript hljs-attr">y</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">0</span><span class="xml javascript">, </span><span class="xml javascript hljs-attr">opacity</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">1</span><span class="xml javascript">, </span><span class="xml javascript hljs-attr">stagger</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">2</span><span class="xml javascript"> },
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#abe338">"+=0.1"</span><span class="xml javascript">
</span><span class="xml javascript"> );
</span><span class="xml javascript"> });
</span><span class="xml javascript"></span><span class="xml" style="color:#ffa07a"></</span><span class="xml" style="color:#ffa07a">script</span><span class="xml" style="color:#ffa07a">></span><span>
</span>
<!-- Marquee -->
<span></span><span class="xml" style="color:#ffa07a"><</span><span class="xml" style="color:#ffa07a">script</span><span class="xml" style="color:#ffa07a">></span><span class="xml javascript">
</span><span class="xml javascript"></span><span class="xml javascript hljs-function" style="color:#dcc6e0">function</span><span class="xml javascript hljs-function"> </span><span class="xml javascript hljs-function" style="color:#00e0e0">initCSSMarquee</span><span class="xml javascript hljs-function">(</span><span class="xml javascript hljs-function">) </span><span class="xml javascript">{
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> pixelsPerSecond = </span><span class="xml javascript" style="color:#f5ab35">50</span><span class="xml javascript">; </span><span class="xml javascript" style="color:#d4d0ab">// Set desired scroll speed (pixels per second)</span><span class="xml javascript">
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> marquees = </span><span class="xml javascript" style="color:#f5ab35">document</span><span class="xml javascript">.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'[data-css-marquee]'</span><span class="xml javascript">);
</span><span class="xml javascript">
</span><span class="xml javascript"> marquees.forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">marquee</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#d4d0ab">// Remove any previously duplicated marquee lists (cleanup)</span><span class="xml javascript">
</span><span class="xml javascript"> marquee.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'.marquee-duplicate'</span><span class="xml javascript">).forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">el</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> el.remove());
</span><span class="xml javascript">
</span><span class="xml javascript"> marquee.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'[data-css-marquee-list]'</span><span class="xml javascript">).forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">list</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#d4d0ab">// Duplicate the list for seamless looping</span><span class="xml javascript">
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> duplicate = list.cloneNode(</span><span class="xml javascript" style="color:#f5ab35">true</span><span class="xml javascript">);
</span><span class="xml javascript"> duplicate.classList.add(</span><span class="xml javascript" style="color:#abe338">'marquee-duplicate'</span><span class="xml javascript">);
</span><span class="xml javascript"> marquee.appendChild(duplicate);
</span><span class="xml javascript"> });
</span><span class="xml javascript"> });
</span><span class="xml javascript">
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> observer = </span><span class="xml javascript" style="color:#dcc6e0">new</span><span class="xml javascript"> IntersectionObserver(</span><span class="xml javascript hljs-function" style="color:#f5ab35">entries</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> entries.forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">entry</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> entry.target.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'[data-css-marquee-list]'</span><span class="xml javascript">).forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">list</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> list.style.animationPlayState = entry.isIntersecting ? </span><span class="xml javascript" style="color:#abe338">'running'</span><span class="xml javascript"> : </span><span class="xml javascript" style="color:#abe338">'paused'</span><span class="xml javascript">;
</span><span class="xml javascript"> });
</span><span class="xml javascript"> entry.target.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'.marquee-duplicate'</span><span class="xml javascript">).forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">list</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> list.style.animationPlayState = entry.isIntersecting ? </span><span class="xml javascript" style="color:#abe338">'running'</span><span class="xml javascript"> : </span><span class="xml javascript" style="color:#abe338">'paused'</span><span class="xml javascript">;
</span><span class="xml javascript"> });
</span><span class="xml javascript"> });
</span><span class="xml javascript"> }, { </span><span class="xml javascript hljs-attr">threshold</span><span class="xml javascript">: </span><span class="xml javascript" style="color:#f5ab35">0</span><span class="xml javascript"> });
</span><span class="xml javascript">
</span><span class="xml javascript"> marquees.forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">marquee</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#d4d0ab">// Recalculate duration using total width</span><span class="xml javascript">
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> totalWidth = </span><span class="xml javascript" style="color:#f5ab35">Array</span><span class="xml javascript">.from(marquee.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'[data-css-marquee-list], .marquee-duplicate'</span><span class="xml javascript">))
</span><span class="xml javascript"> .reduce(</span><span class="xml javascript hljs-function">(</span><span class="xml javascript hljs-function" style="color:#f5ab35">sum, el</span><span class="xml javascript hljs-function">) =></span><span class="xml javascript"> sum + el.offsetWidth, </span><span class="xml javascript" style="color:#f5ab35">0</span><span class="xml javascript">);
</span><span class="xml javascript"> </span><span class="xml javascript" style="color:#dcc6e0">const</span><span class="xml javascript"> duration = totalWidth / pixelsPerSecond;
</span><span class="xml javascript">
</span><span class="xml javascript"> marquee.querySelectorAll(</span><span class="xml javascript" style="color:#abe338">'[data-css-marquee-list], .marquee-duplicate'</span><span class="xml javascript">).forEach(</span><span class="xml javascript hljs-function" style="color:#f5ab35">list</span><span class="xml javascript hljs-function"> =></span><span class="xml javascript"> {
</span><span class="xml javascript"> list.style.animationDuration = duration + </span><span class="xml javascript" style="color:#abe338">'s'</span><span class="xml javascript">;
</span><span class="xml javascript"> list.style.animationPlayState = </span><span class="xml javascript" style="color:#abe338">'paused'</span><span class="xml javascript">;
</span><span class="xml javascript"> });
</span><span class="xml javascript">
</span><span class="xml javascript"> observer.observe(marquee);
</span><span class="xml javascript"> });
</span><span class="xml javascript">}
</span><span class="xml javascript">
</span><span class="xml javascript"></span><span class="xml javascript" style="color:#d4d0ab">// Wait until all resources (images/fonts) are loaded for correct width calculation</span><span class="xml javascript">
</span><span class="xml javascript"></span><span class="xml javascript" style="color:#f5ab35">window</span><span class="xml javascript">.addEventListener(</span><span class="xml javascript" style="color:#abe338">'load'</span><span class="xml javascript">, </span><span class="xml javascript hljs-function" style="color:#dcc6e0">function</span><span class="xml javascript hljs-function">(</span><span class="xml javascript hljs-function">) </span><span class="xml javascript">{
</span><span class="xml javascript"> initCSSMarquee();
</span><span class="xml javascript">});
</span><span class="xml javascript">
</span><span class="xml javascript"></span><span class="xml javascript" style="color:#d4d0ab">// Also rerun when window is resized (for responsiveness)</span><span class="xml javascript">
</span><span class="xml javascript"></span><span class="xml javascript" style="color:#f5ab35">window</span><span class="xml javascript">.addEventListener(</span><span class="xml javascript" style="color:#abe338">'resize'</span><span class="xml javascript">, </span><span class="xml javascript hljs-function" style="color:#dcc6e0">function</span><span class="xml javascript hljs-function">(</span><span class="xml javascript hljs-function">) </span><span class="xml javascript">{
</span><span class="xml javascript"> initCSSMarquee();
</span><span class="xml javascript">});
</span><span class="xml javascript"></span><span class="xml" style="color:#ffa07a"></</span><span class="xml" style="color:#ffa07a">script</span><span class="xml" style="color:#ffa07a">></span></code></pre></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div><div data-css-marquee="" class="w-layout-hflex marquee__logos is--marquee g_section-large_86 u-overflow-hidden"><div data-css-marquee-list="" class="marquee__logos-wrapper is--retail"><div class="w-layout-hflex marquee__logo is--retail u-align-items-center"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f5bb077275e3aac95381_Reformation.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f5cd3c51422868ec84fa_Reebok.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-vflex marquee__logo is--retail u-align-items-center"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f5d94ab4d1cbe2ec784a_Skechers.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f5f69a361c35ed72cfdd_Dicks.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f60363abe9a40fc91210_Neiman%20Marcus.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f62901f46861a3883e94_H%26M.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f6321a26e434341afb45_Crocs.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f64941bd45631f2245df_Wayfair.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f65fce8b7780d5c178c5_Guess.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f671e329dfe54410e729_Uniqlo.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f6781a3168f4cdd67f25_Urban%20Outfitters.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f680ae7feacdcd79001e_UGG.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f68fcee8d5efebb5711e_Crate%26Barrel.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f8f8a9b4aaeed54ba4bd_Lacoste.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f90580dd4ab28ac0e621_Banana%20Republic.svg" alt="" class="marquee__logos-img is--retail"/></div><div class="w-layout-hflex marquee__logo is--retail"><img loading="eager" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6880f90cb209de2c6e2b5f42_Birkenstock.svg" alt="" class="marquee__logos-img is--retail"/></div></div></div></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div><div class="component__box"><div><div class="u-padding-global u-background-black"><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="u-style-24 u-weight-semibold">Name: <strong>Logos / Tile / Button </strong></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div><div class="u-container"><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div><div class="blog__rich-text w-richtext"><p><strong>Options:</strong></p><h5><strong></strong><br/><strong>Logos</strong><strong> </strong>– You can replace logos based on the specific layout: 3 large logos at the top, 5 in the first bottom row, and another 5 in the second bottom row.</h5><h5><br/><strong>Button</strong> – The link and copy can be updated, along with its visibility.</h5></div><div data-wf--global-section-space--section-space="20" class="g_section_space w-variant-28842a38-f4a1-8505-ffdf-a4f814d86557"></div></div></div><div><div class="u-display-contents"><div><section><div class="u-padding-global"><div class="u-container"><div class="integrations__logo-module u-radius-20 u-box__shadow-20"><div class="w-layout-hflex integrations__logo-wrapper is--large u-align-items-center u-justify-content-between"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688230b5a7a30ef59e692c99_Shopify%20Logo.svg" alt="" class="integrations__logo is--big"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688230b93dd80f7dae01e843_Salesforce%20Logo.svg" alt="" class="integrations__logo is--big"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688230bc8cbfd055ae4c8cd2_BigCommerce%20Logo.svg" alt="" class="integrations__logo is--big"/></div><div data-wf--global-section-space--section-space="40" class="g_section_space w-variant-36663714-07c9-66e0-2fce-177459f91cfc"></div><div class="w-layout-hflex integrations__logo-wrapper is--second u-align-items-center u-justify-content-between"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6882315015b1402ef7714d83_Zendesk%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68823156adb21de05a5af98b_MentionMe%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688231c0d1b72322c3217e94_mparticle%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688231c5580c513c23b093f9_Movable%20Ink%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688231ca1be4edf9a67053c8_Aftership%20Logo.svg" alt="" class="integrations__logo is--small"/></div><div data-wf--global-section-space--section-space="40" class="g_section_space w-variant-36663714-07c9-66e0-2fce-177459f91cfc u-hide-landscape"></div><div class="w-layout-hflex integrations__logo-wrapper is--second u-align-items-center u-justify-content-between"><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/688231fd6232b1d7d7ae9be5_Friend%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6882320a92ae45ba9d24f5ca_Recharge%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68823210ce0f53c76044537f_Loop%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/6882321738f652300ecf76f8_Rebuy%20Logo.svg" alt="" class="integrations__logo is--small"/><img loading="lazy" src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/68823220d1b33850140079d1_snowflake.svg" alt="" class="integrations__logo is--small"/></div><div></div><div></div></div><div data-wf--global-section-space--section-space="40" class="g_section_space w-variant-36663714-07c9-66e0-2fce-177459f91cfc"></div><div class="w-layout-vflex u-align-items-center"><div data-wf--btn-main--style="secondary" class="btn__main w-variant-e85564cd-af30-a478-692b-71732aefb3ab is--14"><div class="g_clickable_wrap"><a rel="prefetch" target="_blank" data-wf-native-id-path="45e3bd2d-692f-0f90-310d-12298fccef7d:121a4123-88a5-45ad-7d7b-78ca8ae822bc:e3c8b535-008d-18b4-19d8-a889182de0e1:0254e612-9509-0757-3332-f6be61ca688a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="0254e612-9509-0757-3332-f6be61ca688a" data-wf-component-context="%5B%7B%22componentId%22%3A%22121a4123-88a5-45ad-7d7b-78ca8ae822a2%22%2C%22instanceId%22%3A%2245e3bd2d-692f-0f90-310d-12298fccef7d%22%7D%2C%7B%22componentId%22%3A%22824b76d0-0ddb-5ed5-8ae6-09771aaa568a%22%2C%22instanceId%22%3A%22121a4123-88a5-45ad-7d7b-78ca8ae822bc%22%7D%2C%7B%22componentId%22%3A%220254e612-9509-0757-3332-f6be61ca6889%22%2C%22instanceId%22%3A%22e3c8b535-008d-18b4-19d8-a889182de0e1%22%7D%5D" href="https://attentive.partnerpage.io/tech-partners" class="g_clickable_link w-inline-block"><span class="g_clickable_text u-sr-only">View our partner directory</span></a><link rel="prefetch" href="https://attentive.partnerpage.io/tech-partners"/><button type="button" class="g_clickable_btn"><span class="g_clickable_text u-sr-only">View our partner directory</span></button></div><div aria-hidden="true" class="btn_main_text is--14">View our partner directory</div></div></div></div></div><div data-wf--global-section-space--section-space="80" class="g_section_space w-variant-60a7ad7d-02b0-6682-95a5-2218e6fd1490 u-hide-landscape"></div><div data-wf--global-section-space--section-space="48" class="g_section_space w-variant-6387b944-8a83-1d49-4a6e-80d8f4231d71 u-hide-desktop u-hide-tablet"></div></section></div></div></div></div><div class="u-background-black"><div data-wf--global-section-space--section-space="10" class="g_section_space w-variant-e485566a-25b8-ff31-c97b-02131da1d8de"></div></div></div></main></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=684306b795a2c402456e92ba" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/684306b795a2c402456e92ba/js/attentive-dev-revamp-2025.072bfb1a.47f9dafb88dcc3ba.js" type="text/javascript" integrity="sha384-BK0ie1XgQ6kKE2EELBaIM7BG55N6KaUinNctmqsUKLOEP4NIDShVKqX4Mdj+Wrjt" crossorigin="anonymous"></script><!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TK3VW6S"
height="0" width="0" style="display:none;visibility:hidden">
</iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Global Menu Navigation-->
<script>
$(document).ready(function () {
if (window.innerWidth < 992) {
console.log("Screen width < 992px, navigation script not run");
return;
}
console.log("Document ready event fired for desktop navigation");
const overlay = document.querySelector(".navbar__overlay");
const body = document.body;
const menuIds = ["menu-1", "menu-2", "menu-3", "menu-4", "menu-5"];
const menus = menuIds.map(id => document.getElementById(id));
if (!overlay) {
console.log("nav-overlay not found, script exiting");
return;
}
function anyMenuOpen() {
return menus.some(menu => menu && !menu.classList.contains("hide-menu"));
}
function showOverlay() {
overlay.classList.remove("hide-overlay");
body.style.overflow = "hidden"; // disable scroll
console.log("Overlay shown, body scroll disabled");
}
function hideOverlay() {
overlay.classList.add("hide-overlay");
body.style.overflow = ""; // enable scroll
console.log("Overlay hidden, body scroll enabled");
}
function updateOverlayAndScroll() {
if (anyMenuOpen()) {
showOverlay();
} else {
hideOverlay();
}
console.log("updateOverlayAndScroll called, anyMenuOpen:", anyMenuOpen());
}
function resetMenus() {
$('[id^="menu-"]').addClass('hide-menu');
$('[id^="span-"]').addClass('is-down');
$('[id^="link-"]').removeClass('background');
$('[id^="top-"]').css('opacity', 0);
$('[id^="bottom-"]').css('opacity', 1);
}
function openMenu(number) {
const targetMenu = $('#menu-' + number);
const targetSpan = $('#span-' + number);
const targetLink = $('#link-' + number);
targetMenu.removeClass('hide-menu');
targetSpan.removeClass('is-down');
targetLink.addClass('background');
$('#top-' + number).css('opacity', 1);
$('#bottom-' + number).css('opacity', 0);
console.log("Menu opened:", 'menu-' + number);
}
function onNavLinkClick(e) {
e.preventDefault();
const linkId = $(this).attr('id');
const parts = linkId.split('-');
const number = parts[1];
const targetMenu = $('#menu-' + number);
const isAlreadyOpen = !targetMenu.hasClass('hide-menu');
console.log("Nav link clicked:", linkId, "Is already open?", isAlreadyOpen);
resetMenus();
if (!isAlreadyOpen) {
openMenu(number);
} else {
console.log("Menu was already open, menus closed");
}
updateOverlayAndScroll();
}
function onNavLinkHoverIn() {
const linkId = $(this).attr('id');
const parts = linkId.split('-');
const number = parts[1];
const targetMenu = $('#menu-' + number);
console.log("Nav link hover in:", linkId);
if (targetMenu.hasClass('hide-menu')) {
$(this).addClass('background');
}
$('#top-' + number).css('opacity', 1);
$('#bottom-' + number).css('opacity', 0);
}
function onNavLinkHoverOut() {
const linkId = $(this).attr('id');
const parts = linkId.split('-');
const number = parts[1];
const targetMenu = $('#menu-' + number);
console.log("Nav link hover out:", linkId);
if (targetMenu.hasClass('hide-menu')) {
$('#top-' + number).css('opacity', 0);
$('#bottom-' + number).css('opacity', 1);
$(this).removeClass('background');
}
}
function closeAllMenus() {
console.log("Overlay clicked, closing all menus");
menus.forEach(menu => {
if (menu) menu.classList.add("hide-menu");
});
for (let i = 1; i <= 5; i++) {
$('#link-' + i).removeClass("background");
$('#span-' + i).addClass("is-down");
$('#top-' + i).css('opacity', 0);
$('#bottom-' + i).css('opacity', 1);
}
updateOverlayAndScroll();
}
// Event bindings
$('[id^="link-"]').on('click', onNavLinkClick);
$('[id^="link-"]').hover(onNavLinkHoverIn, onNavLinkHoverOut);
overlay.addEventListener("click", closeAllMenus);
// Initialize overlay & scroll state
updateOverlayAndScroll();
console.log("Script initialized on desktop navigation");
});
</script>
<!-- Newsletter Signup (HubSpot)
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
<script>
hbspt.forms.create({
region: "na1",
portalId: "6110895",
target: ".footer-hb-form",
formId: "e79fe2a2-94ad-415b-af0e-ca2fae3065ee",
formInstanceId: "footer_form",
onFormReady: function($form) {
$form.find('input[name="email"]').attr('placeholder', 'Work email*');
}
});
</script>
-->
<script>
function initHubspotWhenVisible() {
const target = document.querySelector('.footer-hb-form');
if (!target) return;
const observer = new IntersectionObserver(entries => {
if (entries[0].isIntersecting) {
loadHubspotForm();
observer.disconnect();
}
});
observer.observe(target);
}
function loadHubspotForm() {
const script = document.createElement('script');
script.src = "//js.hsforms.net/forms/embed/v2.js";
script.onload = function () {
hbspt.forms.create({
region: "na1",
portalId: "6110895",
target: ".footer-hb-form",
formId: "e79fe2a2-94ad-415b-af0e-ca2fae3065ee"
});
};
document.body.appendChild(script);
}
initHubspotWhenVisible();
</script>
<!-- Qualified -->
<script async src="https://js.qualified.com/qualified.js?token=9HbK7T9cMMrPm51Q"></script>
<script>
(function(w,q){w['QualifiedObject']=q;w[q]=w[q]||function(){
(w[q].q=w[q].q||[]).push(arguments)};})(window,'qualified')
</script>
<!-- End Qualified -->
<script>
wf.ready(function(){
wf.onVariationRecorded(function(result){
if (typeof gtag === 'function') {
gtag('set', 'user_properties', {
'optimize_experience_name': result.experienceName,
'optimize_experience_type': result.experienceType,
'optimize_variation_name': result.variationName
});
}
});
});
</script><script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
<!-- GSAP Animation -->
<script>
window.addEventListener('load', () => {
const timeline = gsap.timeline({
defaults: { delay:1, duration: 0.8, ease: "power1.inOut" }
});
// Animate all hero layers with stagger
timeline.fromTo(".food-bev__second-img",
{ y: -20, opacity: 0 },
{ y: 0, opacity: 1, stagger: 2 },
"+=0.1"
);
});
</script>
<!-- Marquee -->
<script>
function initCSSMarquee() {
const pixelsPerSecond = 50; // Set desired scroll speed (pixels per second)
const marquees = document.querySelectorAll('[data-css-marquee]');
marquees.forEach(marquee => {
// Remove any previously duplicated marquee lists (cleanup)
marquee.querySelectorAll('.marquee-duplicate').forEach(el => el.remove());
marquee.querySelectorAll('[data-css-marquee-list]').forEach(list => {
// Duplicate the list for seamless looping
const duplicate = list.cloneNode(true);
duplicate.classList.add('marquee-duplicate');
marquee.appendChild(duplicate);
});
});
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
entry.target.querySelectorAll('[data-css-marquee-list]').forEach(list => {
list.style.animationPlayState = entry.isIntersecting ? 'running' : 'paused';
});
entry.target.querySelectorAll('.marquee-duplicate').forEach(list => {
list.style.animationPlayState = entry.isIntersecting ? 'running' : 'paused';
});
});
}, { threshold: 0 });
marquees.forEach(marquee => {
// Recalculate duration using total width
const totalWidth = Array.from(marquee.querySelectorAll('[data-css-marquee-list], .marquee-duplicate'))
.reduce((sum, el) => sum + el.offsetWidth, 0);
const duration = totalWidth / pixelsPerSecond;
marquee.querySelectorAll('[data-css-marquee-list], .marquee-duplicate').forEach(list => {
list.style.animationDuration = duration + 's';
list.style.animationPlayState = 'paused';
});
observer.observe(marquee);
});
}
// Wait until all resources (images/fonts) are loaded for correct width calculation
window.addEventListener('load', function() {
initCSSMarquee();
});
// Also rerun when window is resized (for responsiveness)
window.addEventListener('resize', function() {
initCSSMarquee();
});
</script></body></html>