Mood Ink Studio brand identity
Strategic. Timeless. Unmistakably You.

Brand identities
that leave a
lasting mood.

We craft one-of-one brand identities and digital goods for visionaries who care about every detail.

One brand. One owner. Sold once.
Mood Ink Studio One-of-One Brands
One-of-One Brands

One brand.
One owner.

Our One-of-One Brands are complete, strategic identities created from scratch and sold only once.

Each one is unique, timeless, and ready to make your mark.

One brand. One owner. Sold once.
(function () { var button = document.getElementById( 'moodBrandsOpenButton' ); var trigger = document.getElementById( 'moodBrandsTrigger' ); if ( !button || !trigger ) { return; } /* ===================================================== OPEN ===================================================== */ button.addEventListener( 'click', function () { var panel = document.getElementById( 'moodBrandPanelWrap' ); if (!panel) { return; } /* OPEN PANEL */ panel.classList.add( 'is-open' ); panel.setAttribute( 'aria-hidden', 'false' ); /* HIDE BUTTON */ button.classList.add( 'is-hidden' ); /* COLLAPSE EMPTY TRIGGER SPACE */ trigger.classList.add( 'is-open' ); setTimeout( function () { window.dispatchEvent( new Event('resize') ); }, 700 ); } ); /* ===================================================== WATCH CLOSE BRANDS BUTTON EMBED 3 CLOSES THE PANEL. THIS ONLY RESTORES THIS TRIGGER. ===================================================== */ document.addEventListener( 'click', function (event) { var closeButton = event.target.closest( '#moodCloseBrands' ); if (!closeButton) { return; } button.classList.remove( 'is-hidden' ); trigger.classList.remove( 'is-open' ); } ); })();
(function () { var panel = document.getElementById( 'moodBrandPanelWrap' ); if (!panel) { return; } /* ===================================================== BRAND DATA ===================================================== */ var brands = { beauty: [ ['NOIRÉ','Skincare Brand'], ['VELORA','Wellness Brand'], ['LUMA','Beauty Studio'], ['ÉLAN','Self Care Brand'], ['SOLÉA','Skincare Brand'], ['MIRA','Beauty Brand'], ['AURA','Wellness Studio'], ['NOVA','Cosmetics Brand'] ], fashion: [ ['VÉRA','Fashion Brand'], ['NOIR','Apparel Brand'], ['ATELIER IX','Fashion Studio'], ['MUSE','Lifestyle Brand'], ['ALBA','Accessories Brand'], ['SOLA','Apparel Brand'], ['FORME','Lifestyle Brand'], ['MAISON N','Boutique Brand'] ], food: [ ['WILD','Coffee Brand'], ['EMBER','Café & Bar'], ['MORA','Restaurant Brand'], ['NO. 8','Coffee House'], ['BRUNA','Bakery Brand'], ['SAGE','Restaurant Brand'], ['ALTO','Bar Concept'], ['FIG','Food Brand'] ], travel: [ ['SOLACE','Boutique Stay'], ['VELA','Villa Brand'], ['NOMA','Airbnb Brand'], ['CASA N','Boutique Hotel'], ['ROAM','Moto Rentals'], ['TERRA','Travel Brand'], ['ÉVASION','Holiday Stay'], ['NIDO','Vacation Rental'] ], tech: [ ['ORBIT','Tech Brand'], ['NEXA','Digital Studio'], ['FRAME','Creative Service'], ['AXIS','Tech Startup'], ['FORMA','Consultancy'], ['VANT','Digital Product'], ['NORTH','Service Brand'], ['ARC','Tech Studio'] ] }; /* ===================================================== ELEMENTS ===================================================== */ var grid = document.getElementById( 'moodBrandGrid' ); var pageNumbers = document.getElementById( 'moodPageNumbers' ); var previousButton = document.getElementById( 'moodPrevPage' ); var nextButton = document.getElementById( 'moodNextPage' ); var bottomPage = document.getElementById( 'moodBottomPage' ); var closeButton = document.getElementById( 'moodCloseBrands' ); var categoryButtons = panel.querySelectorAll( '.mood-category' ); /* ===================================================== STATE ===================================================== */ var activeCategory = 'beauty'; var currentPage = 1; /* ===================================================== CARDS PER PAGE ===================================================== */ function getPerPage() { if ( window.innerWidth <= 700 ) { return 1; } if ( window.innerWidth <= 1000 ) { return 2; } return 4; } /* ===================================================== HELPER ===================================================== */ function make( tag, className, text ) { var element = document.createElement( tag ); if (className) { element.className = className; } if ( text !== undefined ) { element.textContent = text; } return element; } /* ===================================================== CREATE CARD ===================================================== */ function createCard(data) { var name = data[0]; var type = data[1]; var card = make( 'article', 'mood-brand-card' ); var image = make( 'div', 'mood-brand-image' ); var placeholder = make( 'div', 'mood-placeholder placeholder-' + activeCategory ); var logo = make( 'div', 'mood-placeholder-logo', name ); placeholder.appendChild( logo ); image.appendChild( placeholder ); card.appendChild( image ); var info = make( 'div', 'mood-brand-info' ); info.appendChild( make( 'h3', 'mood-brand-title', name ) ); info.appendChild( make( 'div', 'mood-brand-type', type ) ); var meta = make( 'div', 'mood-brand-meta' ); meta.appendChild( make( 'span', 'mood-status', 'Available' ) ); meta.appendChild( make( 'span', 'mood-price', '€1,390' ) ); info.appendChild( meta ); var actions = make( 'div', 'mood-brand-actions' ); var view = make( 'a', 'mood-brand-btn mood-view-brand', 'View Brand →' ); view.href = 'javascript:void(0)'; var etsy = make( 'a', 'mood-brand-btn mood-buy-etsy', 'Buy On Etsy' ); etsy.href = 'javascript:void(0)'; actions.appendChild( view ); actions.appendChild( etsy ); info.appendChild( actions ); card.appendChild( info ); return card; } /* ===================================================== PAGE NUMBERS ===================================================== */ function renderPageNumbers( totalPages ) { pageNumbers.innerHTML = ''; for ( var i = 1; i <= totalPages; i++ ) { var pageButton = document.createElement( 'button' ); pageButton.type = 'button'; pageButton.className = 'mood-page-number'; pageButton.textContent = String(i).padStart( 2, '0' ); pageButton.setAttribute( 'data-page', i ); if ( i === currentPage ) { pageButton.classList.add( 'is-active' ); } pageButton.addEventListener( 'click', function () { currentPage = parseInt( this.getAttribute( 'data-page' ), 10 ); render(); } ); pageNumbers.appendChild( pageButton ); } } /* ===================================================== RENDER ===================================================== */ function render() { var list = brands[ activeCategory ] || []; var perPage = getPerPage(); var totalPages = Math.max( 1, Math.ceil( list.length / perPage ) ); if ( currentPage > totalPages ) { currentPage = totalPages; } var start = ( currentPage - 1 ) * perPage; var visibleBrands = list.slice( start, start + perPage ); grid.innerHTML = ''; visibleBrands.forEach( function (brand) { grid.appendChild( createCard( brand ) ); } ); previousButton.disabled = currentPage === 1; nextButton.disabled = currentPage === totalPages; renderPageNumbers( totalPages ); bottomPage.textContent = 'Page ' + String( currentPage ).padStart( 2, '0' ); } /* ===================================================== CATEGORIES ===================================================== */ categoryButtons.forEach( function (button) { button.addEventListener( 'click', function () { categoryButtons.forEach( function (item) { item.classList.remove( 'is-active' ); } ); this.classList.add( 'is-active' ); activeCategory = this.getAttribute( 'data-category' ); currentPage = 1; render(); } ); } ); /* ===================================================== PREVIOUS ===================================================== */ previousButton.addEventListener( 'click', function () { if ( currentPage > 1 ) { currentPage--; render(); } } ); /* ===================================================== NEXT ===================================================== */ nextButton.addEventListener( 'click', function () { var totalPages = Math.max( 1, Math.ceil( brands[ activeCategory ].length / getPerPage() ) ); if ( currentPage < totalPages ) { currentPage++; render(); } } ); /* ===================================================== CLOSE PANEL ===================================================== */ closeButton.addEventListener( 'click', function () { panel.classList.remove( 'is-open' ); panel.setAttribute( 'aria-hidden', 'true' ); var openButton = document.getElementById( 'moodBrandsOpenButton' ); if (openButton) { openButton.classList.remove( 'is-hidden' ); } setTimeout( function () { window.dispatchEvent( new Event('resize') ); }, 700 ); } ); /* ===================================================== RESPONSIVE ===================================================== */ var resizeTimer; window.addEventListener( 'resize', function () { clearTimeout( resizeTimer ); resizeTimer = setTimeout( function () { currentPage = 1; render(); }, 180 ); } ); /* ===================================================== START ===================================================== */ render(); })();
(function () { var root = document.getElementById( 'moodBrandPanelWrap' ); if (!root) { return; } /* ===================================================== CATEGORY ICON LINKS ===================================================== */ var iconMap = { 'beauty & wellness': 'https://i.ibb.co/HpqqFnFt/Chat-GPT-Image-24-2026-04-47-20-1.png', 'fashion & lifestyle': 'https://i.ibb.co/Xr0Db4Qw/Chat-GPT-Image-24-2026-04-47-22-2.png', 'food & hospitality': 'https://i.ibb.co/wrYQP6nR/Chat-GPT-Image-24-2026-04-47-23-3.png', 'travel & stays': 'https://i.ibb.co/sp9C6zhF/Chat-GPT-Image-24-2026-04-56-42-1.png', 'tech & services': 'https://i.ibb.co/bMg5n7dh/Chat-GPT-Image-24-2026-04-56-43-2.png' }; /* ===================================================== REPLACE CATEGORY ICONS ===================================================== */ function replaceCategoryIcons() { var candidates = root.querySelectorAll( 'button, a' ); candidates.forEach( function (item) { var fullText = item.textContent .replace(/\s+/g, ' ') .trim() .toLowerCase(); var categoryName = null; Object.keys( iconMap ).forEach( function (name) { if ( fullText.indexOf(name) !== -1 ) { categoryName = name; } } ); if (!categoryName) { return; } /* ================================================= DON'T ADD TWICE ================================================= */ if ( item.querySelector( '.mood-category-custom-icon' ) ) { return; } /* ================================================= CREATE NEW ICON ================================================= */ var image = document.createElement( 'img' ); image.className = 'mood-category-custom-icon'; image.src = iconMap[ categoryName ]; image.alt = ''; image.setAttribute( 'aria-hidden', 'true' ); /* ================================================= MARK CATEGORY AS REPLACED ================================================= */ item.classList.add( 'mood-category-icon-replaced' ); /* ================================================= ADD ICON FIRST ================================================= */ item.insertBefore( image, item.firstChild ); } ); } /* ===================================================== INITIAL LOAD ===================================================== */ replaceCategoryIcons(); /* ===================================================== SMALL DELAYED PASSES IN CASE CARRD RENDERS JUST AFTER LOAD ===================================================== */ setTimeout( replaceCategoryIcons, 100 ); setTimeout( replaceCategoryIcons, 400 ); })();
(function () { /* ===================================================== BRAND-SPECIFIC TEST DETAILS LATER WE PUT THE REAL DATA HERE. ===================================================== */ var brandData = { 'NOIRÉ': { status: 'available', price: '€1,390', description: 'A refined skincare identity with a sophisticated, editorial direction designed for a modern beauty brand.' }, 'VELORA': { status: 'reserved', price: '€1,390', description: 'A soft yet distinctive wellness identity combining elevated typography, personality and a premium visual language.' }, 'WILD': { status: 'available', price: '€1,390', description: 'A bold hospitality identity made for a coffee, café or food concept that wants to feel memorable and unmistakable.' }, 'ROAM': { status: 'sold', price: '€1,390', description: 'A confident travel-led identity designed for modern rentals, experiences and hospitality businesses.' } }; /* ===================================================== CATEGORY LABELS ===================================================== */ var categoryNames = { beauty: 'Beauty & Wellness', fashion: 'Fashion & Lifestyle', food: 'Food & Hospitality', travel: 'Travel & Stays', tech: 'Tech & Services' }; /* ===================================================== INCLUDED ===================================================== */ var defaultIncluded = [ 'Primary Logo', 'Secondary Logo', 'Submark / Monogram', 'Colour Palette', 'Typography System', 'Brand Graphics', 'Social Media Kit', 'Mini Brand Guide' ]; /* ===================================================== ELEMENTS ===================================================== */ var panel = document.getElementById( 'moodInlineDetails' ); var brandsArea = document.getElementById( 'moodBrandPanelWrap' ); if ( !panel || !brandsArea ) { return; } var title = document.getElementById( 'moodInlineTitle' ); var type = document.getElementById( 'moodInlineType' ); var category = document.getElementById( 'moodInlineCategory' ); var status = document.getElementById( 'moodInlineStatus' ); var price = document.getElementById( 'moodInlinePrice' ); var description = document.getElementById( 'moodInlineDescription' ); var included = document.getElementById( 'moodInlineIncluded' ); var buy = document.getElementById( 'moodInlineBuy' ); var close = document.getElementById( 'moodInlineClose' ); var slides = document.getElementById( 'moodInlineSlides' ); var dots = document.getElementById( 'moodInlineDots' ); var counter = document.getElementById( 'moodInlineCounter' ); var previous = document.getElementById( 'moodInlinePrev' ); var next = document.getElementById( 'moodInlineNext' ); var currentSlide = 0; var totalSlides = 3; /* ===================================================== CATEGORY FROM CARD ===================================================== */ function getCategoryKey(card) { var visual = card.querySelector( '.mood-placeholder' ); if (!visual) { return 'beauty'; } var keys = [ 'beauty', 'fashion', 'food', 'travel', 'tech' ]; for ( var i = 0; i < keys.length; i++ ) { if ( visual.classList.contains( 'placeholder-' + keys[i] ) ) { return keys[i]; } } return 'beauty'; } /* ===================================================== STATUS ===================================================== */ function renderStatus(value) { var clean = String( value || 'available' ).toLowerCase(); status.className = 'mood-inline-status ' + clean; if ( clean === 'reserved' ) { status.textContent = 'Reserved'; } else if ( clean === 'sold' ) { status.textContent = 'Sold'; } else { status.textContent = 'Available'; } } /* ===================================================== INCLUDED ===================================================== */ function renderIncluded() { included.innerHTML = ''; defaultIncluded.forEach( function (item) { var li = document.createElement( 'li' ); li.textContent = item; included.appendChild( li ); } ); } /* ===================================================== GALLERY ===================================================== */ function renderGallery( brandName, categoryKey ) { slides.innerHTML = ''; dots.innerHTML = ''; currentSlide = 0; totalSlides = 3; for ( var i = 0; i < totalSlides; i++ ) { var slide = document.createElement( 'div' ); slide.className = 'mood-inline-slide'; if (i === 0) { slide.classList.add( 'is-active' ); } var visual = document.createElement( 'div' ); visual.className = 'mood-test-visual ' + categoryKey; var brand = document.createElement( 'div' ); brand.className = 'mood-test-name'; brand.textContent = brandName; var number = document.createElement( 'div' ); number.className = 'mood-test-number'; number.textContent = String( i + 1 ).padStart( 2, '0' ); visual.appendChild( brand ); visual.appendChild( number ); slide.appendChild( visual ); slides.appendChild( slide ); /* DOT */ var dot = document.createElement( 'button' ); dot.type = 'button'; dot.className = 'mood-inline-dot'; if (i === 0) { dot.classList.add( 'is-active' ); } dot.setAttribute( 'data-slide', i ); dot.addEventListener( 'click', function () { currentSlide = parseInt( this.getAttribute( 'data-slide' ), 10 ); showSlide(); } ); dots.appendChild( dot ); } showSlide(); } /* ===================================================== SHOW SLIDE ===================================================== */ function showSlide() { var allSlides = slides.children; var allDots = dots.children; if ( currentSlide < 0 ) { currentSlide = totalSlides - 1; } if ( currentSlide >= totalSlides ) { currentSlide = 0; } for ( var i = 0; i < allSlides.length; i++ ) { allSlides[i].classList.toggle( 'is-active', i === currentSlide ); } for ( var x = 0; x < allDots.length; x++ ) { allDots[x].classList.toggle( 'is-active', x === currentSlide ); } counter.textContent = String( currentSlide + 1 ).padStart( 2, '0' ) + ' / ' + String( totalSlides ).padStart( 2, '0' ); } /* ===================================================== OPEN DETAILS ===================================================== */ function openDetails(card) { var titleElement = card.querySelector( '.mood-brand-title' ); var typeElement = card.querySelector( '.mood-brand-type' ); if (!titleElement) { return; } var brandName = titleElement.textContent.trim(); var brandType = typeElement ? typeElement.textContent.trim() : 'One-of-One Brand'; var categoryKey = getCategoryKey( card ); var data = brandData[ brandName ] || {}; /* TEXT */ title.textContent = brandName; type.textContent = brandType; category.textContent = categoryNames[ categoryKey ]; price.textContent = data.price || '€1,390'; description.textContent = data.description || ( brandName + ' is a complete one-of-one brand identity created from scratch and sold to one owner only.' ); renderStatus( data.status || 'available' ); renderIncluded(); renderGallery( brandName, categoryKey ); /* BUY BUTTON */ if ( data.status === 'sold' ) { buy.textContent = 'Sold'; buy.href = 'javascript:void(0)'; buy.classList.add( 'is-disabled' ); } else { buy.textContent = 'Buy On Etsy →'; buy.href = 'javascript:void(0)'; buy.classList.remove( 'is-disabled' ); } /* OPEN */ panel.classList.add( 'is-open' ); panel.setAttribute( 'aria-hidden', 'false' ); } /* ===================================================== CLOSE ===================================================== */ function closeDetails() { panel.classList.remove( 'is-open' ); panel.setAttribute( 'aria-hidden', 'true' ); } /* ===================================================== BRAND AREA CLICKS SCOPED — NOT DOCUMENT ===================================================== */ brandsArea.addEventListener( 'click', function (event) { /* VIEW DETAILS */ var detailsButton = event.target.closest( '.mood-view-brand' ); if (detailsButton) { var card = detailsButton.closest( '.mood-brand-card' ); if (card) { event.preventDefault(); openDetails( card ); } return; } /* CLOSE WHOLE BRANDS AREA */ var closeBrands = event.target.closest( '#moodCloseBrands' ); if (closeBrands) { closeDetails(); } /* After category/page click the existing Embed 3 rebuilds the cards. Rename the buttons after that render. */ setTimeout( renameViewButtons, 30 ); } ); /* ===================================================== CLOSE DETAILS BUTTON ===================================================== */ close.addEventListener( 'click', closeDetails ); /* ===================================================== GALLERY ===================================================== */ previous.addEventListener( 'click', function () { currentSlide--; showSlide(); } ); next.addEventListener( 'click', function () { currentSlide++; showSlide(); } ); /* ===================================================== CHANGE VIEW BRAND → VIEW DETAILS WITHOUT MUTATION OBSERVER ===================================================== */ function renameViewButtons() { brandsArea .querySelectorAll( '.mood-view-brand' ) .forEach( function (button) { button.textContent = 'View Details →'; } ); } renameViewButtons(); })();
(function () { var brands = document.getElementById( 'moodBrandPanelWrap' ); var details = document.getElementById( 'moodInlineDetails' ); var working = false; /* ===================================================== FIX CARDS ===================================================== */ function fixCards() { if ( !brands || working ) { return; } working = true; var cards = brands.querySelectorAll( '.mood-brand-card' ); cards.forEach( function (card) { var elements = card.querySelectorAll( '*' ); elements.forEach( function (element) { /* Only inspect simple text elements. */ if ( element.children.length ) { return; } var text = element.textContent .trim(); /* ================================================= PRICE → HIDE ================================================= */ if ( /^€\s*[\d.,]+(?:\s*[A-Z]*)?$/i.test( text ) ) { element.style.setProperty( 'display', 'none', 'important' ); return; } /* ================================================= AVAILABLE / RESERVED / SOLD → COMING SOON ================================================= */ if ( /^(available|reserved|sold)$/i.test( text ) ) { if ( element.textContent .trim() !== 'COMING SOON' ) { element.textContent = 'COMING SOON'; } element.classList.add( 'mood-force-coming-soon' ); element.style.setProperty( 'color', '#C49B2C', 'important' ); } } ); } ); working = false; } /* ===================================================== FIX DETAILS ===================================================== */ function fixDetails() { if (!details) { return; } var detailPrice = document.getElementById( 'moodInlinePrice' ); var detailBuy = document.getElementById( 'moodInlineBuy' ); if (detailPrice) { detailPrice.style.setProperty( 'display', 'none', 'important' ); } if (detailBuy) { detailBuy.href = 'javascript:void(0)'; } } /* ===================================================== FIRST RUN ===================================================== */ fixCards(); fixDetails(); /* ===================================================== WATCH BRAND CARDS ONLY Needed because Embed 3 rebuilds cards when category / pagination changes. ===================================================== */ if ( brands && 'MutationObserver' in window ) { var scheduled = false; var observer = new MutationObserver( function () { if (scheduled) { return; } scheduled = true; requestAnimationFrame( function () { scheduled = false; fixCards(); } ); } ); observer.observe( brands, { childList: true, subtree: true } ); } /* ===================================================== DETAILS CAN CHANGE AFTER VIEW DETAILS CLICK ===================================================== */ if ( details && 'MutationObserver' in window ) { var detailScheduled = false; var detailObserver = new MutationObserver( function () { if (detailScheduled) { return; } detailScheduled = true; requestAnimationFrame( function () { detailScheduled = false; fixDetails(); } ); } ); detailObserver.observe( details, { childList: true, subtree: true, characterData: true } ); } })();
(function () { var why = document.getElementById( 'moodWhyOne' ); var brandsPanel = document.getElementById( 'moodBrandPanelWrap' ); var openButton = document.getElementById( 'moodBrandsOpenButton' ); var closeButton = document.getElementById( 'moodCloseBrands' ); if (!why) { return; } /* ===================================================== SHOW ===================================================== */ function showWhy() { why.classList.add( 'is-visible' ); why.setAttribute( 'aria-hidden', 'false' ); } /* ===================================================== HIDE ===================================================== */ function hideWhy() { why.classList.remove( 'is-visible' ); why.setAttribute( 'aria-hidden', 'true' ); } /* ===================================================== INITIAL STATE ===================================================== */ if ( brandsPanel && brandsPanel.classList.contains( 'is-open' ) ) { showWhy(); } else { hideWhy(); } /* ===================================================== EXPLORE THE BRANDS OPEN ===================================================== */ if (openButton) { openButton.addEventListener( 'click', function () { showWhy(); } ); } /* ===================================================== CLOSE BRANDS ===================================================== */ if (closeButton) { closeButton.addEventListener( 'click', function () { hideWhy(); } ); } })();
Mood Ink Studio Digital Goods
Digital Goods

Create more.
Start faster.

Thoughtfully designed digital products created to make building your brand easier.

Download, customize and use them again and again — whenever you need them.

Download. Customize. Use again.
(function () { var button = document.getElementById( 'moodDigitalOpenButton' ); var trigger = document.getElementById( 'moodDigitalTrigger' ); if ( !button || !trigger ) { return; } /* ===================================================== OPEN ===================================================== */ button.addEventListener( 'click', function () { var panel = document.getElementById( 'moodDigitalPanelWrap' ); if (!panel) { return; } panel.classList.add( 'is-open' ); panel.setAttribute( 'aria-hidden', 'false' ); button.classList.add( 'is-hidden' ); trigger.classList.add( 'is-open' ); setTimeout( function () { window.dispatchEvent( new Event('resize') ); }, 700 ); } ); /* ===================================================== CLOSE ===================================================== */ document.addEventListener( 'click', function (event) { var closeButton = event.target.closest( '#moodCloseDigitalGoods' ); if (!closeButton) { return; } button.classList.remove( 'is-hidden' ); trigger.classList.remove( 'is-open' ); } ); })();
(function () { var panel = document.getElementById( 'moodDigitalPanelWrap' ); if (!panel) { return; } /* ===================================================== PRODUCTS ===================================================== */ var digitalGoods = [ { name: 'Social Media Kit', type: 'Canva Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Instagram Post Templates', type: 'Canva Template Pack', price: 'Coming Soon', etsy: '#' }, { name: 'Story Template Pack', type: 'Social Media Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Highlight Icon Set', type: 'Instagram Assets', price: 'Coming Soon', etsy: '#' }, { name: 'Brand Strategy Workbook', type: 'Digital Workbook', price: 'Coming Soon', etsy: '#' }, { name: 'Launch Checklist', type: 'Digital Guide', price: 'Coming Soon', etsy: '#' }, { name: 'Presentation Template', type: 'Canva Presentation', price: 'Coming Soon', etsy: '#' }, { name: 'Content Planner', type: 'Digital Planner', price: 'Coming Soon', etsy: '#' }, { name: 'Pinterest Template Pack', type: 'Canva Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Media Kit Template', type: 'Canva Media Kit', price: 'Coming Soon', etsy: '#' }, { name: 'Email Launch Pack', type: 'Marketing Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Pricing Guide Template', type: 'Canva Business Template', price: 'Coming Soon', etsy: '#' }, { name: 'Client Welcome Pack', type: 'Business Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Instagram Carousel Kit', type: 'Social Media Templates', price: 'Coming Soon', etsy: '#' }, { name: 'Digital Brand Board', type: 'Canva Brand Template', price: 'Coming Soon', etsy: '#' }, { name: 'Promo Graphics Pack', type: 'Digital Graphics', price: 'Coming Soon', etsy: '#' } ]; var grid = document.getElementById( 'moodDigitalGrid' ); var pageNumbers = document.getElementById( 'moodDigitalPageNumbers' ); var previousButton = document.getElementById( 'moodDigitalPrev' ); var nextButton = document.getElementById( 'moodDigitalNext' ); var bottomPage = document.getElementById( 'moodDigitalBottomPage' ); var closeButton = document.getElementById( 'moodCloseDigitalGoods' ); var currentPage = 1; var perPage = 8; /* ===================================================== HELPER ===================================================== */ function make( tag, className, text ) { var element = document.createElement( tag ); if (className) { element.className = className; } if ( text !== undefined ) { element.textContent = text; } return element; } /* ===================================================== PRODUCT CARD ===================================================== */ function createCard( data, globalIndex ) { var card = make( 'article', 'mood-digital-card' ); var image = make( 'div', 'mood-digital-image' ); var placeholder = make( 'div', 'mood-digital-placeholder' ); var number = make( 'div', 'mood-digital-placeholder-number', String( globalIndex + 1 ).padStart( 2, '0' ) ); var center = make( 'div', 'mood-digital-placeholder-center' ); center.appendChild( make( 'div', 'mood-digital-placeholder-label', 'Coming Soon' ) ); center.appendChild( make( 'div', 'mood-digital-placeholder-line' ) ); placeholder.appendChild( number ); placeholder.appendChild( center ); image.appendChild( placeholder ); card.appendChild( image ); var info = make( 'div', 'mood-digital-info' ); info.appendChild( make( 'h3', 'mood-digital-title', data.name ) ); info.appendChild( make( 'div', 'mood-digital-type', data.type ) ); var meta = make( 'div', 'mood-digital-meta' ); meta.appendChild( make( 'span', 'mood-digital-download', 'Digital Download' ) ); meta.appendChild( make( 'span', 'mood-digital-price', data.price ) ); info.appendChild( meta ); var actions = make( 'div', 'mood-digital-actions' ); var view = make( 'a', 'mood-digital-btn mood-view-digital', 'View Details →' ); view.href = 'javascript:void(0)'; view.setAttribute( 'data-digital-index', globalIndex ); var etsy = make( 'a', 'mood-digital-btn mood-digital-etsy', 'Buy On Etsy' ); if ( data.etsy && data.etsy !== '#' ) { etsy.href = data.etsy; etsy.target = '_blank'; etsy.rel = 'noopener'; } else { etsy.href = 'javascript:void(0)'; } actions.appendChild( view ); actions.appendChild( etsy ); info.appendChild( actions ); card.appendChild( info ); return card; } /* ===================================================== PAGE NUMBERS ===================================================== */ function renderPageNumbers( totalPages ) { pageNumbers.innerHTML = ''; for ( var i = 1; i <= totalPages; i++ ) { var pageButton = document.createElement( 'button' ); pageButton.type = 'button'; pageButton.className = 'mood-digital-page-number'; pageButton.textContent = String(i).padStart( 2, '0' ); pageButton.setAttribute( 'data-page', i ); if ( i === currentPage ) { pageButton.classList.add( 'is-active' ); } pageButton.addEventListener( 'click', function () { currentPage = parseInt( this.getAttribute( 'data-page' ), 10 ); render(); } ); pageNumbers.appendChild( pageButton ); } } /* ===================================================== RENDER ===================================================== */ function render() { var totalPages = Math.max( 1, Math.ceil( digitalGoods.length / perPage ) ); if ( currentPage > totalPages ) { currentPage = totalPages; } var start = ( currentPage - 1 ) * perPage; var visibleProducts = digitalGoods.slice( start, start + perPage ); grid.innerHTML = ''; visibleProducts.forEach( function ( product, localIndex ) { grid.appendChild( createCard( product, start + localIndex ) ); } ); previousButton.disabled = currentPage === 1; nextButton.disabled = currentPage === totalPages; renderPageNumbers( totalPages ); bottomPage.textContent = 'Page ' + String( currentPage ).padStart( 2, '0' ); } /* ===================================================== PREVIOUS ===================================================== */ previousButton.addEventListener( 'click', function () { if ( currentPage > 1 ) { currentPage--; render(); } } ); /* ===================================================== NEXT ===================================================== */ nextButton.addEventListener( 'click', function () { var totalPages = Math.max( 1, Math.ceil( digitalGoods.length / perPage ) ); if ( currentPage < totalPages ) { currentPage++; render(); } } ); /* ===================================================== CLOSE ===================================================== */ closeButton.addEventListener( 'click', function () { panel.classList.remove( 'is-open' ); panel.setAttribute( 'aria-hidden', 'true' ); var openButton = document.getElementById( 'moodDigitalOpenButton' ); if (openButton) { openButton.classList.remove( 'is-hidden' ); } setTimeout( function () { window.dispatchEvent( new Event('resize') ); }, 700 ); } ); render(); })();
(function () { var products = document.getElementById( 'moodDigitalPanelWrap' ); var details = document.getElementById( 'moodDigitalDetails' ); var title = document.getElementById( 'moodDGTitle' ); var type = document.getElementById( 'moodDGType' ); var description = document.getElementById( 'moodDGDescription' ); var close = document.getElementById( 'moodDGClose' ); if ( !products || !details || !title || !type || !description || !close ) { return; } function closeDetails() { details.classList.remove( 'is-open' ); details.setAttribute( 'aria-hidden', 'true' ); } /* ===================================================== PRODUCT CLICKS ===================================================== */ products.addEventListener( 'click', function (event) { var viewButton = event.target.closest( '.mood-view-digital' ); if (viewButton) { event.preventDefault(); var card = viewButton.closest( '.mood-digital-card' ); if (!card) { return; } var titleElement = card.querySelector( '.mood-digital-title' ); var typeElement = card.querySelector( '.mood-digital-type' ); if (!titleElement) { return; } var productName = titleElement .textContent .trim(); var productType = typeElement ? typeElement .textContent .trim() : 'Digital Product'; title.textContent = productName; type.textContent = productType; description.textContent = productName + ' is a premium downloadable MOO:D digital product designed to make creating, planning and building your brand easier. Full product details will be available soon.'; details.classList.add( 'is-open' ); details.setAttribute( 'aria-hidden', 'false' ); return; } /* CLOSE DETAILS IF PAGE CHANGES */ if ( event.target.closest( '.mood-digital-page-number' ) || event.target.closest( '.mood-digital-page-arrow' ) || event.target.closest( '#moodCloseDigitalGoods' ) ) { closeDetails(); } } ); close.addEventListener( 'click', closeDetails ); })();
(function () { /* ===================================================== FINAL ORDER: PRODUCT GRID ↓ DIGITAL PRODUCTS / PAGE ↓ DETAILS ↓ WHY DIGITAL GOODS ===================================================== */ function placeDigitalDetails() { var panel = document.getElementById( 'moodDigitalPanelWrap' ); var details = document.getElementById( 'moodDigitalDetails' ); if ( !panel || !details ) { return false; } var bottom = panel.querySelector( '.mood-digital-bottom' ); if (!bottom) { return false; } /* MOVE EXISTING DETAILS DIRECTLY AFTER: Digital products. Unlimited possibilities. Page 01 / Page 02 */ if ( details.previousElementSibling !== bottom ) { bottom.insertAdjacentElement( 'afterend', details ); } return true; } /* ===================================================== FIRST TRY ===================================================== */ if (!placeDigitalDetails()) { var tries = 0; var timer = setInterval( function () { tries++; if ( placeDigitalDetails() || tries >= 15 ) { clearInterval( timer ); } }, 150 ); } /* ===================================================== WHEN VIEW DETAILS IS CLICKED ===================================================== */ document.addEventListener( 'click', function (event) { if ( event.target.closest( '#moodDigitalPanelWrap .mood-view-digital' ) ) { placeDigitalDetails(); } }, true ); /* ===================================================== CARRD SECTION SAFETY ===================================================== */ window.addEventListener( 'hashchange', function () { setTimeout( placeDigitalDetails, 80 ); } ); })();
(function () { var attempts = 0; function installDigitalPanels() { attempts++; var panel = document.getElementById('moodDigitalPanelWrap'); var extras = document.getElementById('moodDigitalExtraPanels'); if (!panel || !extras) { if (attempts < 20) { setTimeout(installDigitalPanels, 100); } return; } if (extras.getAttribute('data-installed') === 'true') { return; } var shell = panel.querySelector('.mood-digital-shell'); if (!shell) { if (attempts < 20) { setTimeout(installDigitalPanels, 100); } return; } shell.appendChild(extras); extras.style.display = 'block'; extras.setAttribute('data-installed', 'true'); } installDigitalPanels(); })();
FAQ

Questions?
We’ve got you.

Everything you need to know about One-of-One Brands, Digital Goods, licensing and working with MOO:D.

Still curious?
Ask us anything.
If you can’t find the answer here, we’re only a message away.
Contact Us →
(function () { /* ===================================================== MOO:D — FAQ ENGINE CARRD SAFE VERSION NO HTML BUTTONS FOR QUESTIONS ===================================================== */ var box = document.getElementById( 'moodFAQAccordion' ); var tabs = document.getElementById( 'moodFAQTabs' ); if ( !box || !tabs ) { return; } /* ===================================================== FAQ DATA ===================================================== */ var data = [ [ '01', 'one', 'What exactly is a One-of-One Brand?', 'A One-of-One Brand is a complete strategic brand identity created once and sold to one owner only. Once purchased, that identity is retired from MOO:D and will never be sold again.' ], [ '02', 'one', 'What’s included in a One-of-One Brand?', 'Each One-of-One Brand includes its own carefully designed set of brand assets. The exact deliverables are listed in the individual brand details before purchase.' ], [ '03', 'one', 'What happens after I purchase a One-of-One Brand?', 'Once the purchase is complete, the brand is removed from availability and reserved exclusively for you. You’ll then receive the files and information included with that identity.' ], [ '04', 'one', 'Can a sold One-of-One Brand ever be sold again?', 'No. Once a One-of-One Brand has an owner, it is permanently retired from MOO:D and will not be offered to another customer.' ], [ '05', 'one', 'Can I make changes after purchasing the brand?', 'Yes. You can continue developing your brand after purchase. If you want MOO:D to adapt or expand the identity, contact us about custom design work.' ], [ '06', 'digital', 'What are MOO:D Digital Goods?', 'Digital Goods are ready-to-use creative resources designed to help you create faster. They may include Canva templates, social kits, graphics, planners, mockups and other downloadable assets.' ], [ '07', 'digital', 'What’s included with a Digital Good?', 'Every product is different. The product description explains exactly what you receive, including any templates, graphics, planning tools, mockups or downloadable files.' ], [ '08', 'digital', 'How do I receive my digital files?', 'Digital Goods are delivered electronically after purchase. Any instructions needed to access or edit the files will be included with your order.' ], [ '09', 'license', 'Can I use Digital Goods for commercial projects?', 'Permitted use depends on the license attached to the product. Please review the MOO:D License & Usage terms before using an asset for client, business or commercial work.', 'license' ], [ '10', 'license', 'Can I resell, share or redistribute the files?', 'No. MOO:D files may not be resold, redistributed or shared as standalone assets unless a specific product license explicitly states otherwise.' ], [ '11', 'license', 'Can I get a refund on a Digital Good?', 'Because digital products are delivered electronically, refund eligibility depends on the product, marketplace and circumstances. Please review the applicable Terms & Conditions before purchasing.', 'terms' ], [ '12', 'custom', 'Can MOO:D create something custom for me?', 'Yes. If a ready-made option isn’t quite what you need, MOO:D also offers custom creative work tailored to your project.' ], [ '13', 'custom', 'What if my question isn’t answered here?', 'Send us a message through the Contact page and tell us what you’re looking for. We’ll point you in the right direction.', 'contact' ] ]; var active = 'one'; /* ===================================================== FIND EXISTING FOOTER CONTROL ===================================================== */ function existing( labels, source ) { var found = null; document .querySelectorAll( 'a, button' ) .forEach( function (element) { if ( found || element === source ) { return; } var text = ( element.textContent || '' ) .replace( /\s+/g, ' ' ) .trim() .toLowerCase(); if ( labels.indexOf( text ) > -1 ) { found = element; } } ); if (found) { found.click(); return true; } return false; } /* ===================================================== CLOSE ITEM ===================================================== */ function closeItem( item ) { item.classList.remove( 'is-open' ); var question = item.querySelector( '.mood-faq-question' ); var symbol = item.querySelector( '.mood-faq-symbol' ); if (question) { question.setAttribute( 'aria-expanded', 'false' ); } if (symbol) { symbol.textContent = '+'; } } /* ===================================================== OPEN ITEM ===================================================== */ function openItem( item ) { item.classList.add( 'is-open' ); var question = item.querySelector( '.mood-faq-question' ); var symbol = item.querySelector( '.mood-faq-symbol' ); if (question) { question.setAttribute( 'aria-expanded', 'true' ); } if (symbol) { symbol.textContent = '−'; } } /* ===================================================== CREATE QUESTION IMPORTANT: DIV INSTEAD OF BUTTON ===================================================== */ function createQuestion( row, isOpen ) { var question = document.createElement( 'div' ); question.className = 'mood-faq-question'; question.setAttribute( 'role', 'button' ); question.setAttribute( 'tabindex', '0' ); question.setAttribute( 'aria-expanded', isOpen ? 'true' : 'false' ); /* FORCE LAYOUT INLINE SO CARRD CANNOT COMPRESS IT */ question.style.setProperty( 'display', 'flex', 'important' ); question.style.setProperty( 'width', '100%', 'important' ); question.style.setProperty( 'max-width', 'none', 'important' ); question.style.setProperty( 'min-width', '0', 'important' ); question.style.setProperty( 'align-items', 'center', 'important' ); question.style.setProperty( 'gap', '16px', 'important' ); question.style.setProperty( 'padding', '0 20px', 'important' ); question.style.setProperty( 'cursor', 'pointer', 'important' ); /* NUMBER */ var number = document.createElement( 'span' ); number.className = 'mood-faq-number'; number.textContent = row[0]; number.style.setProperty( 'display', 'block', 'important' ); number.style.setProperty( 'flex', '0 0 34px', 'important' ); number.style.setProperty( 'width', '34px', 'important' ); number.style.setProperty( 'white-space', 'nowrap', 'important' ); /* QUESTION TEXT */ var text = document.createElement( 'span' ); text.className = 'mood-faq-question-text'; text.textContent = row[2]; text.style.setProperty( 'display', 'block', 'important' ); text.style.setProperty( 'flex', '1 1 auto', 'important' ); text.style.setProperty( 'width', 'auto', 'important' ); text.style.setProperty( 'min-width', '0', 'important' ); text.style.setProperty( 'max-width', 'none', 'important' ); text.style.setProperty( 'white-space', 'normal', 'important' ); text.style.setProperty( 'word-break', 'normal', 'important' ); text.style.setProperty( 'overflow-wrap', 'normal', 'important' ); text.style.setProperty( 'text-align', 'left', 'important' ); /* SYMBOL */ var symbol = document.createElement( 'span' ); symbol.className = 'mood-faq-symbol'; symbol.textContent = isOpen ? '−' : '+'; symbol.style.setProperty( 'display', 'block', 'important' ); symbol.style.setProperty( 'flex', '0 0 26px', 'important' ); symbol.style.setProperty( 'width', '26px', 'important' ); symbol.style.setProperty( 'white-space', 'nowrap', 'important' ); question.appendChild( number ); question.appendChild( text ); question.appendChild( symbol ); return question; } /* ===================================================== CREATE ITEM ===================================================== */ function createItem( row, index ) { var isOpen = index === 0; var item = document.createElement( 'article' ); item.className = 'mood-faq-item' + ( isOpen ? ' is-open' : '' ); item.setAttribute( 'data-number', row[0] ); var question = createQuestion( row, isOpen ); /* ANSWER */ var wrap = document.createElement( 'div' ); wrap.className = 'mood-faq-answer-wrap'; var inner = document.createElement( 'div' ); inner.className = 'mood-faq-answer-inner'; var answer = document.createElement( 'div' ); answer.className = 'mood-faq-answer'; answer.style.setProperty( 'width', 'auto', 'important' ); answer.style.setProperty( 'max-width', '650px', 'important' ); var copy = document.createElement( 'div' ); copy.textContent = row[3]; answer.appendChild( copy ); /* OPTIONAL ACTION */ if (row[4]) { var action = document.createElement( 'button' ); action.type = 'button'; action.className = 'mood-faq-inline-action'; action.dataset.action = row[4]; if ( row[4] === 'license' ) { action.textContent = 'Open License & Usage →'; } else if ( row[4] === 'terms' ) { action.textContent = 'View Terms & Conditions →'; } else { action.textContent = 'Contact Us →'; } answer.appendChild( action ); } inner.appendChild( answer ); wrap.appendChild( inner ); item.appendChild( question ); item.appendChild( wrap ); return item; } /* ===================================================== RENDER CATEGORY ===================================================== */ function render() { box.innerHTML = ''; var visible = data.filter( function (row) { return ( row[1] === active ); } ); visible.forEach( function ( row, index ) { box.appendChild( createItem( row, index ) ); } ); } /* ===================================================== TABS ===================================================== */ tabs.addEventListener( 'click', function (event) { var tab = event.target.closest( '.mood-faq-tab' ); if (!tab) { return; } tabs .querySelectorAll( '.mood-faq-tab' ) .forEach( function (item) { item.classList.remove( 'is-active' ); } ); tab.classList.add( 'is-active' ); active = tab.getAttribute( 'data-faq-category' ); render(); } ); /* ===================================================== QUESTION + ACTION CLICK ===================================================== */ box.addEventListener( 'click', function (event) { /* ACTION */ var action = event.target.closest( '.mood-faq-inline-action' ); if (action) { event.preventDefault(); var type = action.dataset.action; if ( type === 'license' ) { existing( [ 'license & usage', 'licence & usage', 'license and usage', 'licence and usage' ], action ); } else if ( type === 'terms' ) { existing( [ 'terms & conditions', 'terms and conditions' ], action ); } else { window.location.hash = 'contact'; } return; } /* QUESTION */ var question = event.target.closest( '.mood-faq-question' ); if (!question) { return; } var item = question.closest( '.mood-faq-item' ); var wasOpen = item.classList.contains( 'is-open' ); box .querySelectorAll( '.mood-faq-item' ) .forEach( function (other) { closeItem( other ); } ); if (!wasOpen) { openItem( item ); } } ); /* ===================================================== KEYBOARD ACCESSIBILITY ===================================================== */ box.addEventListener( 'keydown', function (event) { if ( event.key !== 'Enter' && event.key !== ' ' ) { return; } var question = event.target.closest( '.mood-faq-question' ); if (!question) { return; } event.preventDefault(); question.click(); } ); /* ===================================================== START ===================================================== */ render(); })();