StrategicCreativeStrategicAuthentic

Creative design that makes brands stand out

Let's create together

Who We Are

A creative space without boundaries

Jawa Creations is a creative agency focused on building brands, ideas, and experiences that connect with people.We combine strategy, creativity, and different creative disciplines to bring each project to life.

Jawa Creations For Carrd logo

What We Do

Creative solutions for brands that want to stand out

We look beyond how a brand looks. We analyze where it stands, identify opportunities, and create strategies and solutions that help it communicate better and stand out.


Services

Strategy & Marketing

Marketing audits, strategy, campaign planning, and brand positioning.

Advertising

Creative campaigns, ad concepts, digital advertising, and promotional materials.

Film & Video

Filming, video editing, reels, promotional content, and visual storytelling.

Web Design

Landing pages, websites, and digital experiences designed for your brand.

Branding & Design

Brand identity, graphic design, and visual communication.

Social Media

Content creation, community management, social media strategy, and campaigns.


Our Approach

Don't just look professional. Stand out.

Every project starts by understanding your brand, your audience, and what makes you different.We then combine strategy and creativity to create work that is purposeful, memorable, and uniquely yours.

(function(){ var root = document.getElementById('mcGallery'); if (!root || root.getAttribute('data-init')) return; root.setAttribute('data-init','1'); var stage = root.querySelector('.mg-stage'); var backdrop = root.querySelector('.mg-backdrop'); var bar = root.querySelector('.mg-progress span'); var items = Array.prototype.slice.call(root.querySelectorAll('.mg-item')); var n = items.length; var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches; var v = {}; function resolveSize(str, fallback){ str = (str || '').trim(); if (!str) return fallback; var probe = document.createElement('div'); probe.style.cssText = 'position:absolute;visibility:hidden;left:-9999px;width:' + str + ';height:0;pointer-events:none;'; document.body.appendChild(probe); var px = probe.offsetWidth; document.body.removeChild(probe); return px || fallback; } function readVars(){ var cs = getComputedStyle(root); v.cw = parseFloat(cs.getPropertyValue('--collapsed-w')) || 96; v.hw = parseFloat(cs.getPropertyValue('--hover-w')) || 190; v.ch = parseFloat(cs.getPropertyValue('--collapsed-h')) || 340; v.hh = parseFloat(cs.getPropertyValue('--hover-h')) || 400; v.os = resolveSize(cs.getPropertyValue('--open-size'), 460); v.gap = parseFloat(cs.getPropertyValue('--gap')) || 14; v.inf = parseFloat(cs.getPropertyValue('--influence')) || 200; } readVars(); function setBar(p){ p = Math.min(1, Math.max(0, p)); bar.style.width = (p * 100) + '%'; } var openIndex = null; var target = items.map(function(){ return 0; }); var cur = items.map(function(){ return 0; }); var raf = 0, closeTimer = 0; function smooth(t){ return t * t * (3 - 2 * t); } function applyInline(){ if (stage.classList.contains('open')) return; for (var i = 0; i < n; i++){ var f = cur[i]; items[i].style.width = (v.cw + (v.hw - v.cw) * f) + 'px'; items[i].style.height = (v.ch + (v.hh - v.ch) * f) + 'px'; } } function loop(){ raf = 0; var moving = false; for (var i = 0; i < n; i++){ var d = target[i] - cur[i]; if (Math.abs(d) > 0.001){ cur[i] += d * 0.2; moving = true; } else { cur[i] = target[i]; } } applyInline(); if (moving) raf = requestAnimationFrame(loop); } function kick(){ if (!raf) raf = requestAnimationFrame(loop); } stage.addEventListener('pointermove', function(e){ if (stage.classList.contains('open') || reduce) return; if (e.pointerType && e.pointerType !== 'mouse') return; var r = stage.getBoundingClientRect(); var cx = e.clientX - r.left; setBar(cx / r.width); for (var i = 0; i < n; i++){ var center = items[i].offsetLeft + items[i].offsetWidth / 2; var f = Math.max(0, 1 - Math.abs(cx - center) / v.inf); target[i] = smooth(f); } kick(); }); stage.addEventListener('pointerleave', function(){ if (stage.classList.contains('open')) return; for (var i = 0; i < n; i++) target[i] = 0; kick(); }); stage.addEventListener('scroll', function(){ var max = stage.scrollWidth - stage.clientWidth; if (max > 4) setBar(stage.scrollLeft / max); }); function open(i){ openIndex = i; clearTimeout(closeTimer); cancelAnimationFrame(raf); raf = 0; stage.classList.add('anim'); void stage.offsetWidth; stage.classList.add('open'); for (var j = 0; j < n; j++){ items[j].classList.toggle('active', j === i); items[j].classList.toggle('dimmed', j !== i); items[j].style.width = (j === i ? v.os : v.cw) + 'px'; items[j].style.height = (j === i ? v.os : v.ch) + 'px'; } setBar((items[i].offsetLeft + items[i].offsetWidth / 2) / stage.scrollWidth); backdrop.style.pointerEvents = 'auto'; } function close(){ if (openIndex === null) return; openIndex = null; for (var i = 0; i < n; i++){ cur[i] = 0; target[i] = 0; items[i].classList.remove('active','dimmed'); items[i].style.width = v.cw + 'px'; items[i].style.height = v.ch + 'px'; } backdrop.style.pointerEvents = 'none'; clearTimeout(closeTimer); closeTimer = setTimeout(function(){ stage.classList.remove('open','anim'); }, 320); } items.forEach(function(it, i){ it.addEventListener('click', function(e){ e.stopPropagation(); if (openIndex === i) close(); else open(i); }); }); backdrop.addEventListener('click', close); root.addEventListener('keydown', function(e){ if (e.key === 'Escape') close(); }); window.addEventListener('resize', function(){ readVars(); }); applyInline(); setTimeout(readVars, 500); })();
Coverflow Gallery — Film Projects
(function() { const SLIDES = [ { image: "https://images.unsplash.com/photo-1485846234645-a62644f84728?w=800&q=80", title: "1" }, { image: "https://images.unsplash.com/photo-1536440136628-849c177e76a1?w=800&q=80", title: "2" }, { image: "https://images.unsplash.com/photo-1478720568477-152d9b164e26?w=800&q=80", title: "3" }, { image: "https://images.unsplash.com/photo-1440404653325-ab127d49abc1?w=800&q=80", title: "4" }, { image: "https://images.unsplash.com/photo-1517604931442-7e0c8ed2963c?w=800&q=80", title: "5" } ]; const CONFIG = { cardWidth: 480, cardHeight: 270, radius: 3, tilt: 10, sideTilt: 2, gap: 6, opacity: 65, autoplay: true, autoplayDirection: "rightToLeft", transition: { duration: 0.7, delay: 3, ease: [0.22, 1, 0.36, 1] }, showTitle: true, titleColor: "#ffffff", titlePosition: { position: "bottomLeft", paddingLeft: 24, paddingRight: 24, paddingTop: 24, paddingBottom: 22 } }; const SCALE_STEP = 0.14; const MAX_VISIBLE = 2; const DEPTH = 220; let active = 0; let lock = false; let autoplayInterval = null; const n = SLIDES.length; const loop = true; const root = document.getElementById('coverflowRoot'); const stage = document.getElementById('coverflowStage'); const dotsWrap = document.getElementById('dotsWrap'); function cssTransition(t) { const dur = t && typeof t.duration === 'number' ? t.duration : 0.7; let ease = 'cubic-bezier(0.22, 1, 0.36, 1)'; const e = t && t.ease; if (Array.isArray(e) && e.length === 4) { ease = 'cubic-bezier(' + e.join(', ') + ')'; } else if (typeof e === 'string') { const map = { linear: 'linear', easeIn: 'ease-in', easeOut: 'ease-out', easeInOut: 'ease-in-out' }; ease = map[e] || 'ease'; } return { dur, ease }; } const { dur, ease } = cssTransition(CONFIG.transition); const transitionCss = 'transform ' + dur + 's ' + ease + ', opacity ' + dur + 's ' + ease; const dim = 1 - Math.max(0, Math.min(100, CONFIG.opacity)) / 100; const tp = CONFIG.titlePosition || {}; const corner = tp.position || 'bottomLeft'; const isTop = corner === 'topLeft' || corner === 'topRight'; const isRight = corner === 'topRight' || corner === 'bottomRight'; const padLeft = tp.paddingLeft !== undefined ? tp.paddingLeft : 24; const padRight = tp.paddingRight !== undefined ? tp.paddingRight : 24; const padTop = tp.paddingTop !== undefined ? tp.paddingTop : 24; const padBottom = tp.paddingBottom !== undefined ? tp.paddingBottom : 22; const cards = []; SLIDES.forEach((slide, i) => { const card = document.createElement('div'); card.className = 'coverflow-card'; card.setAttribute('role', 'group'); card.setAttribute('aria-roledescription', 'slide'); card.setAttribute('aria-label', slide.title); if (slide.image) { const img = document.createElement('img'); img.src = slide.image; img.alt = slide.title || ''; img.draggable = false; card.appendChild(img); } if (CONFIG.showTitle) { const gradient = document.createElement('div'); gradient.className = 'gradient-overlay'; gradient.style.background = isTop ? 'linear-gradient(0deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.55) 100%)' : 'linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.55) 100%)'; card.appendChild(gradient); const titleWrap = document.createElement('div'); titleWrap.className = 'title-wrap'; titleWrap.style.left = padLeft + 'px'; titleWrap.style.right = padRight + 'px'; titleWrap.style[isTop ? 'top' : 'bottom'] = (isTop ? padTop : padBottom) + 'px'; titleWrap.style.textAlign = isRight ? 'right' : 'left'; const span = document.createElement('span'); span.textContent = slide.title; span.style.color = CONFIG.titleColor; titleWrap.appendChild(span); card.appendChild(titleWrap); } const dimOverlay = document.createElement('div'); dimOverlay.className = 'dim-overlay'; dimOverlay.style.transition = 'opacity ' + dur + 's ' + ease; card.appendChild(dimOverlay); card.addEventListener('click', function() { if (lock) return; goTo(i); }); stage.appendChild(card); cards.push({ el: card, dimOverlay: dimOverlay }); }); const dots = []; SLIDES.forEach((_, i) => { const dot = document.createElement('div'); dot.className = 'dot' + (i === 0 ? ' active' : ''); dot.setAttribute('role', 'button'); dot.setAttribute('aria-label', 'Ir a ' + SLIDES[i].title); dot.addEventListener('click', function() { if (lock) return; goTo(i); }); dotsWrap.appendChild(dot); dots.push(dot); }); function update() { cards.forEach((item, i) => { let rel = i - active; if (loop) { if (rel > n / 2) rel -= n; if (rel < -n / 2) rel += n; } const ax = Math.abs(rel); const visible = ax <= MAX_VISIBLE; const isActive = rel === 0; const sc = Math.max(0.4, 1 - ax * SCALE_STEP); const tx = rel * (CONFIG.gap * 30); const tz = -ax * DEPTH; const ry = -rel * CONFIG.tilt; const rz = rel * CONFIG.sideTilt; item.el.style.transform = 'translate(-50%, -50%) translateX(' + tx + 'px) translateZ(' + tz + 'px)' + ' rotateY(' + ry + 'deg) rotateZ(' + rz + 'deg) scale(' + sc + ')'; item.el.style.transition = transitionCss; item.el.style.opacity = visible ? 1 : 0; item.el.style.pointerEvents = visible ? 'auto' : 'none'; item.el.style.cursor = isActive ? 'default' : 'pointer'; item.el.setAttribute('aria-hidden', visible ? 'false' : 'true'); item.el.classList.toggle('is-active', isActive); item.dimOverlay.style.opacity = isActive ? 0 : dim; }); dots.forEach((dot, i) => { dot.classList.toggle('active', i === active); }); } function lockInput() { lock = true; setTimeout(function() { lock = false; }, Math.max(50, dur * 1000)); } function step(dir) { if (lock) return; lockInput(); active = (((active + dir) % n) + n) % n; update(); } function goTo(index) { if (lock) return; lockInput(); active = index === active ? (active + 1) % n : index; update(); startAutoplay(); } root.addEventListener('keydown', function(e) { if (e.key === 'ArrowRight') { e.preventDefault(); step(1); } else if (e.key === 'ArrowLeft') { e.preventDefault(); step(-1); } }); function startAutoplay() { if (autoplayInterval) clearInterval(autoplayInterval); if (!CONFIG.autoplay || n < 2) return; const ms = Math.max(0.3, CONFIG.transition.delay || 2.5) * 1000; const dir = CONFIG.autoplayDirection === 'leftToRight' ? -1 : 1; autoplayInterval = setInterval(function() { step(dir); }, ms); } function stopAutoplay() { if (autoplayInterval) { clearInterval(autoplayInterval); autoplayInterval = null; } } root.addEventListener('mousemove', stopAutoplay); root.addEventListener('mouseleave', startAutoplay); update(); startAutoplay(); let touchStartX = 0; root.addEventListener('touchstart', function(e) { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); root.addEventListener('touchend', function(e) { const diff = touchStartX - e.changedTouches[0].screenX; if (Math.abs(diff) > 50) { diff > 0 ? step(1) : step(-1); } }, { passive: true }); })();

Clients

Trusted by8 partners
NvNova
VxVertex
HcHalcyon
PlPulse
MrMeridian
AtAtlas
BnBeacon
LmLumen
// spotlight follows the cursor within each cell document.querySelectorAll('#logoGrid .logo-cell').forEach(function (cell) { cell.addEventListener('mousemove', function (e) { var r = cell.getBoundingClientRect(); cell.style.setProperty('--mx', (e.clientX - r.left) + 'px'); cell.style.setProperty('--my', (e.clientY - r.top) + 'px'); }); });

Aliquam nulla

Sed ipsum dolor

Quis viverra nibh cras pulvinar mattis nunc sed fermentum et orci purus in mollis.

Aliquam nulla

Sed ipsum dolor

Quis viverra nibh cras pulvinar mattis nunc sed fermentum et orci purus in mollis.

Aliquam nulla

Sed ipsum dolor

Quis viverra nibh cras pulvinar mattis nunc sed fermentum et orci purus in mollis.

Aliquam nulla

Sed ipsum dolor

Quis viverra nibh cras pulvinar mattis nunc sed fermentum et orci purus in mollis.

Aliquam nulla

Sed ipsum dolor

Quis viverra nibh cras pulvinar mattis nunc sed fermentum et orci purus in mollis.

Jawa Creations For Carrd logo