(function() { var nav = document.getElementById('gstaik-nav'); var burger = document.getElementById('gstaik-burger'); var menu = document.getElementById('gstaik-mobile-menu'); if (!nav || !burger || !menu) return; var isOpen = false, menuScrollY = 0, lastScrollY = 0, ticking = false; function openMenu() { isOpen = true; menuScrollY = window.scrollY; burger.classList.add('open'); menu.classList.add('open'); menu.querySelectorAll('a').forEach(function(a) { a.style.animation = 'none'; a.offsetHeight; a.style.animation = ''; }); } function closeMenu() { isOpen = false; burger.classList.remove('open'); menu.classList.remove('open'); } burger.addEventListener('click', function() { isOpen ? closeMenu() : openMenu(); }); menu.querySelectorAll('a').forEach(function(link) { link.addEventListener('click', closeMenu); }); window.addEventListener('scroll', function() { if (!ticking) { window.requestAnimationFrame(function() { var current = window.scrollY; if (isOpen && Math.abs(current - menuScrollY) > 60) closeMenu(); if (current <= 10) { nav.classList.remove('hidden'); } else if (current > lastScrollY + 8) { nav.classList.add('hidden'); closeMenu(); } else if (current < lastScrollY - 8) { nav.classList.remove('hidden'); } lastScrollY = current; ticking = false; }); ticking = true; } }, { passive: true }); })(); (function () { /* Easing function — cubic ease-out feels natural */ function easeOutCubic(t) { return 1 - Math.pow(1 - t, 3); } /* Animate scroll on any container */ function smoothScrollTo(container, targetY, duration) { var startY = container.scrollTop || window.scrollY; var distance = targetY - startY; var startTime = null; function step(timestamp) { if (!startTime) startTime = timestamp; var elapsed = timestamp - startTime; var progress = Math.min(elapsed / duration, 1); var ease = easeOutCubic(progress); var currentY = startY + distance * ease; if (container === window) { window.scrollTo(0, currentY); } else { container.scrollTop = currentY; } if (progress < 1) requestAnimationFrame(step); } requestAnimationFrame(step); } /* Find Carrd's real scroll container (it's not always window) */ function getScrollContainer() { var candidates = [ document.getElementById('wrapper'), document.querySelector('.wrapper'), document.querySelector('[id*="wrapper"]'), document.querySelector('[class*="scroll"]'), document.documentElement, document.body ]; for (var i = 0; i < candidates.length; i++) { var el = candidates[i]; if (el && el.scrollHeight > el.clientHeight) return el; } return window; } /* Intercept wheel events and apply custom smooth scroll */ var isScrolling = false; var scrollQueue = 0; window.addEventListener('wheel', function (e) { e.preventDefault(); scrollQueue += e.deltaY; if (isScrolling) return; isScrolling = true; var container = getScrollContainer(); (function loop() { if (Math.abs(scrollQueue) < 1) { isScrolling = false; scrollQueue = 0; return; } var step = scrollQueue * 0.18; scrollQueue -= step; var currentTop = container === window ? window.scrollY : container.scrollTop; var newTop = currentTop + step; if (container === window) { window.scrollTo(0, newTop); } else { container.scrollTop = newTop; } requestAnimationFrame(loop); })(); }, { passive: false }); /* Smooth anchor link scrolling */ document.addEventListener('click', function (e) { var anchor = e.target.closest('a[href^="#"]'); if (!anchor) return; var target = document.querySelector(anchor.getAttribute('href')); if (!target) return; e.preventDefault(); var container = getScrollContainer(); var targetY = target.getBoundingClientRect().top + (container === window ? window.scrollY : container.scrollTop); smoothScrollTo(container === window ? window : container, targetY, 700); }); })();
/* Right-click block */ document.addEventListener('contextmenu', function(e) { e.preventDefault(); }); /* Keyboard shortcut block (Ctrl+S, Ctrl+U, F12, etc.) */ document.addEventListener('keydown', function(e) { if ( e.key === 'F12' || (e.ctrlKey && ['s','u','p','a'].includes(e.key.toLowerCase())) || (e.ctrlKey && e.shiftKey && ['i','j','c'].includes(e.key.toLowerCase())) ) { e.preventDefault(); } }); /* Drag block on all images */ document.addEventListener('dragstart', function(e) { if (e.target.tagName === 'IMG') e.preventDefault(); }); /* Apply protection to all current and future images */ function protectImages() { document.querySelectorAll('img').forEach(function(img) { img.setAttribute('draggable', 'false'); img.addEventListener('dragstart', function(e) { e.preventDefault(); }); img.addEventListener('contextmenu', function(e) { e.preventDefault(); }); img.style.pointerEvents = 'none'; img.style.webkitUserDrag = 'none'; }); } /* Run on load and watch for dynamically added images */ protectImages(); var observer = new MutationObserver(protectImages); observer.observe(document.body || document.documentElement, { childList: true, subtree: true });
(function() { if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) return; var dot = document.getElementById('gs-cursor'); var ring = document.getElementById('gs-cursor-ring'); var mx = window.innerWidth / 2, my = window.innerHeight / 2; var rx = mx, ry = my; var trails = []; for (var i = 0; i < 8; i++) { var t = document.createElement('div'); t.className = 'gs-trail'; t.style.opacity = ((1 - i / 8) * 0.35).toFixed(2); document.body.appendChild(t); trails.push({ el: t, x: mx, y: my }); } window.addEventListener('mousemove', function(e) { mx = e.clientX; my = e.clientY; }, { passive: true }); /* grow on hover over links and buttons */ document.addEventListener('mouseover', function(e) { var el = e.target.closest('a, button, [role="button"]'); if (el) { dot.style.width = '40px'; dot.style.height = '40px'; dot.style.opacity = '0.12'; ring.style.width = '40px'; ring.style.height = '40px'; ring.style.borderColor = 'rgba(247,247,247,0.6)'; } }); document.addEventListener('mouseout', function(e) { var el = e.target.closest('a, button, [role="button"]'); if (el) { dot.style.width = '8px'; dot.style.height = '8px'; dot.style.opacity = '1'; ring.style.width = '32px'; ring.style.height = '32px'; ring.style.borderColor = 'rgba(247,247,247,0.3)'; } }); function loop() { dot.style.left = mx + 'px'; dot.style.top = my + 'px'; rx += (mx - rx) * 0.12; ry += (my - ry) * 0.12; ring.style.left = rx + 'px'; ring.style.top = ry + 'px'; var px = mx, py = my; trails.forEach(function(tr) { tr.x += (px - tr.x) * 0.45; tr.y += (py - tr.y) * 0.45; tr.el.style.left = tr.x + 'px'; tr.el.style.top = tr.y + 'px'; px = tr.x; py = tr.y; }); requestAnimationFrame(loop); } requestAnimationFrame(loop); })(); (function() { /* ── CONFIG ── */ var STRENGTH = 0.10; /* how far buttons move (0 = none, 1 = full pull) */ var EASE = 0.12; /* how snappy the follow is (lower = heavier/slower) */ var RADIUS_MUL = 0.6; /* detection radius multiplier relative to button size */ /* skip on touch devices */ if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) return; var btns = []; var mouse = { x: -9999, y: -9999 }; /* ── SELECTORS — tweak if Carrd uses different classes ── */ var SELECTOR = 'a, button, [role="button"], input[type="submit"], input[type="button"]'; /* ── EXCLUDED CONTAINERS — elements inside these are skipped ── */ var EXCLUDE = '.gstaik-portfolio-split, .gstaik-portfolio-split-card, .gstaik-faq, .gstaik-faq-item'; function register() { document.querySelectorAll(SELECTOR).forEach(function(el) { if (el._magnet) return; /* skip if inside an excluded container */ if (el.closest && el.closest(EXCLUDE)) return; /* skip large elements (cards, images, full-width links) */ var r = el.getBoundingClientRect(); if (r.width > 400 || r.height > 120) return; el._magnet = true; el.style.transition = 'transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94)'; btns.push({ el: el, cx: 0, cy: 0, tx: 0, ty: 0 }); }); } /* re-scan DOM for Carrd's lazy-loaded sections */ register(); var observer = new MutationObserver(register); observer.observe(document.body, { childList: true, subtree: true }); window.addEventListener('mousemove', function(e) { mouse.x = e.clientX; mouse.y = e.clientY; }, { passive: true }); window.addEventListener('mouseleave', function() { mouse.x = -9999; mouse.y = -9999; }, { passive: true }); function loop() { btns.forEach(function(b) { var r = b.el.getBoundingClientRect(); var cx = r.left + r.width / 2; var cy = r.top + r.height / 2; var dx = mouse.x - cx; var dy = mouse.y - cy; /* detection radius scales with button size */ var radius = Math.max(r.width, r.height) * RADIUS_MUL; var dist = Math.sqrt(dx * dx + dy * dy); var tx = 0, ty = 0; if (dist < radius) { var pull = (1 - dist / radius) * STRENGTH; tx = dx * pull; ty = dy * pull; } /* smooth interpolation */ b.cx += (tx - b.cx) * EASE; b.cy += (ty - b.cy) * EASE; b.el.style.transform = 'translate(' + b.cx.toFixed(2) + 'px,' + b.cy.toFixed(2) + 'px)'; }); requestAnimationFrame(loop); } requestAnimationFrame(loop); })();
Popup var _closing=!1;function closePopup(){if(!_closing){_closing=!0;var overlay=document.getElementById(`popup-overlay`);if(overlay){overlay.classList.add(`is-closing`),setTimeout(function(){overlay.style.display=`none`},380);try{sessionStorage.setItem(`srPopupSeen`,`1`)}catch{}}}}function init(){var overlay=document.getElementById(`popup-overlay`),closeBtn=document.getElementById(`closeBtn`),dismissBtn=document.getElementById(`dismissBtn`);if(!overlay||!closeBtn||!dismissBtn){setTimeout(init,100);return}try{if(sessionStorage.getItem(`srPopupSeen`)){return}}catch{}closeBtn.addEventListener(`click`,closePopup),dismissBtn.addEventListener(`click`,closePopup),overlay.addEventListener(`click`,function(e){e.target===overlay&&closePopup()}),window.PointerEvent&&(closeBtn.addEventListener(`pointerup`,closePopup),dismissBtn.addEventListener(`pointerup`,closePopup));setTimeout(function(){overlay.classList.add(`is-visible`)},5000)}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,init):init(); GstaikDesigns | Social Media Designer
Stream Design
Banner & Logo
GFX Packs
Cover Art
Unlock Your Channel's Channel's Channel's True Potential. Putting in the work but getting no results? No need to worry. You came to the right place.
(function(){var isTouchDevice=`ontouchstart`in window||navigator.maxTouchPoints>0,niches=[`Channel's`,`Brand's`,`Stream's`,`Content's`,`Identity's`,`Vision's`],ni=0,nicheEl=document.getElementById(`niche-word`),glitchWrap=document.getElementById(`gs-glitch-wrap`),glitchR=document.getElementById(`gs-glitch-r`),glitchB=document.getElementById(`gs-glitch-b`);function triggerGlitch(text){glitchWrap&&(glitchR.textContent=text,glitchB.textContent=text,glitchWrap.classList.add(`glitching`),setTimeout(function(){glitchWrap.classList.remove(`glitching`)},180))}function swapNiche(){nicheEl&&(nicheEl.classList.add(`exit`),setTimeout(function(){ni=(ni+1)%niches.length;var next=niches[ni];nicheEl.textContent=next,glitchR&&(glitchR.textContent=next),glitchB&&(glitchB.textContent=next),nicheEl.classList.remove(`exit`),nicheEl.classList.add(`enter`),triggerGlitch(next),setTimeout(function(){nicheEl.classList.remove(`enter`)},50)},260))}setInterval(swapNiche,3e3); /* ── FLOATING TAGS ── */ var tags=[],MAGNET_RADIUS=260,MAGNET_STRENGTH=.18,FLOAT_RADIUS=18,mouse={x:-9999,y:-9999};function rand(a,b){return a+Math.random()*(b-a)}function initTags(){var els=document.querySelectorAll(`.tag-float`);if(!els.length){setTimeout(initTags,100);return}els.forEach(function(el,i){tags.push({el,fx:0,fy:0,mx:0,my:0,sa:rand(.12,.22),sb:rand(.07,.15),sc:rand(.1,.2),sd:rand(.06,.13),po:rand(0,Math.PI*2),bf:rand(.06,.12),bp:i%2==0?Math.PI*1.5:Math.PI*.5}),el.style.transition=`none`})}window.addEventListener(`mousemove`,function(e){mouse.x=e.clientX,mouse.y=e.clientY},{passive:!0}),window.addEventListener(`mouseleave`,function(){mouse.x=-9999,mouse.y=-9999},{passive:!0}),window.addEventListener(`touchmove`,function(e){e.touches.length>0&&(mouse.x=e.touches[0].clientX,mouse.y=e.touches[0].clientY)},{passive:!0}),window.addEventListener(`touchend`,function(){mouse.x=-9999,mouse.y=-9999},{passive:!0}),window.addEventListener(`touchcancel`,function(){mouse.x=-9999,mouse.y=-9999},{passive:!0});function loop(now){var t=now/1e3;tags.forEach(function(tag){var tx=Math.sin(t*tag.sa+tag.po)*FLOAT_RADIUS+Math.sin(t*tag.sb+tag.po*1.3)*FLOAT_RADIUS*.5,ty=Math.cos(t*tag.sc+tag.po*.7)*FLOAT_RADIUS+Math.cos(t*tag.sd+tag.po*1.7)*FLOAT_RADIUS*.4;tag.fx+=(tx-tag.fx)*.025,tag.fy+=(ty-tag.fy)*.025;var blurAmt=Math.max(0,Math.sin(t*tag.bf+tag.bp))**3*2.8,tmx=0,tmy=0,r=tag.el.getBoundingClientRect(),dx=mouse.x-(r.left+r.width/2),dy=mouse.y-(r.top+r.height/2),dist=Math.sqrt(dx*dx+dy*dy);if(dist GstaikDesigns — Portfolio Explore Graphics Packs. 50+ original graphics packs to improve your creative workflow.
VIEW More →
Frequently AskedQuestions. Learn more about the process.
01 Do you specialize exclusively in gaming designs?
While I do have an expertise in gaming designs that's not the only thing I do. My work covers everything from ads to stream packs and much more, across all styles.
02 Am I able to change something on the design?
Absolutely! You can request revisions based on the tier you've selected - at no additional cost.
03 Are profile designs as important as thumbnails?
Thumbnails grab attention, but once they're interested, the next step is checking out your profile - where your design becomes the deciding factor.
04 How do I know I'm getting high-quality work?
With over 8 years of experience and more than 1,000 five-star reviews on Fiverr, my work has consistently met high standards.
FAQ_Section.psd
RGB/8#
Doc: 2.4M/4.8M
X: — Y: —
4 Layers
Pricing — GstaikDesigns Book before availability closes.
01
Tier 01
Basic
$ 10
2D Custom Banner 1 Platform Size Mobile & Desktop Friendly 1-Day Delivery Unlimited Revisions 3D Design Profile Picture Editable Source Files Get Started → 02
Most Popular Tier 02
Standard
$ 20
3D Custom Banner 3 Platform Sizes 2-Day Delivery Unlimited Revisions Profile Picture Editable Source Files After-Purchase Support Order Now → 03
Tier 03
Premium
$ 30
3D Custom Banner Profile Picture Included 4 Platform Sizes Editable Source Files 2-Day Delivery Unlimited Revisions After-Purchase Support Go Premium → (function(){var ptWrap=document.getElementById(`pt-glitch`),ptMain=ptWrap?ptWrap.querySelector(`:scope > em`):null,ptWords=[`Pricing.`,`Process.`,`Packages.`],ptIdx=0;function cyclePtWord(){if(!(!ptWrap||!ptMain)){ptIdx=(ptIdx+1)%ptWords.length;var word=ptWords[ptIdx];ptWrap.classList.add(`glitching`),ptMain.classList.add(`pt-exit`),setTimeout(function(){ptWrap.classList.remove(`glitching`),ptMain.textContent=word,ptWrap.querySelectorAll(`.glitch-r em, .glitch-b em`).forEach(function(el){el.textContent=word}),ptMain.classList.remove(`pt-exit`),ptMain.classList.add(`pt-enter`),ptMain.offsetWidth,ptMain.classList.remove(`pt-enter`),ptMain.classList.add(`pt-visible`),setTimeout(function(){ptMain.classList.remove(`pt-visible`)},280)},150),setTimeout(cyclePtWord,4e3)}}setTimeout(cyclePtWord,4e3)})(); (function(){var grid=document.getElementById(`pricingGrid`),hint=document.getElementById(`swipeHint`),dots=hint?hint.querySelectorAll(`.swipe-hint-dot`):[],cards=grid?grid.querySelectorAll(`.pricing-card`):[];if(!grid)return;function isMobile(){return window.innerWidth<=768}var lastActiveIndex=-1,hasUserInteracted=!1,isNudging=!1,nudgeTimer=null;function getActiveIndex(){for(var center=grid.scrollLeft+grid.offsetWidth/2,closest=0,minDist=1/0,i=0;i Reviews — GstaikDesigns ★ ★ ★ ★ ★
"Honestly one of the best purchases for my workflow. Quality is insane."
★ ★ ★ ★ ★
"The texture pack alone is worth it. Clients always ask what I used."
★ ★ ★ ★ ★
"Everything you need to start a clothing brand from scratch. Super impressed."
★ ★ ★ ★ ★
"The mockups are incredibly detailed. Straight fire — highly recommend."
★ ★ ★ ★ ★
"So many assets and all of them are actually good. Rare to find this quality."
★ ★ ★ ★ ★
"Already bought 3 packs and coming back for more. Genuinely useful stuff."
★ ★ ★ ★ ★
"Honestly one of the best purchases for my workflow. Quality is insane."
★ ★ ★ ★ ★
"The texture pack alone is worth it. Clients always ask what I used."
★ ★ ★ ★ ★
"Everything you need to start a clothing brand from scratch. Super impressed."
★ ★ ★ ★ ★
"The mockups are incredibly detailed. Straight fire — highly recommend."
★ ★ ★ ★ ★
"So many assets and all of them are actually good. Rare to find this quality."
★ ★ ★ ★ ★
"Already bought 3 packs and coming back for more. Genuinely useful stuff."
★ ★ ★ ★ ★
"Saved me so much time. Everything is plug and play — no fluff."
★ ★ ★ ★ ★
"The LUTs transformed my editing style completely. Worth every penny."
★ ★ ★ ★ ★
"Huge variety, high quality. You can tell real effort went into these."
★ ★ ★ ★ ★
"Bought the Y2K icon pack and it elevated every project I touched."
★ ★ ★ ★ ★
"Fast delivery and exactly as described. Will definitely be back."
★ ★ ★ ★ ★
"These are the type of assets that make your work stand out immediately."
★ ★ ★ ★ ★
"Saved me so much time. Everything is plug and play — no fluff."
★ ★ ★ ★ ★
"The LUTs transformed my editing style completely. Worth every penny."
★ ★ ★ ★ ★
"Huge variety, high quality. You can tell real effort went into these."
★ ★ ★ ★ ★
"Bought the Y2K icon pack and it elevated every project I touched."
★ ★ ★ ★ ★
"Fast delivery and exactly as described. Will definitely be back."
★ ★ ★ ★ ★
"These are the type of assets that make your work stand out immediately."
GstaikDesigns_YouTube_Video.aep 0:00:00:00 2:59
Layer
Banner CompS
Logo RevealS
MusicM
var vsTOTAL=179,vsW=860,vsPlaying=!1,vsCurSec=0,vsAnimStart=null,vsDragging=!1;function vsPlayVideo(){var p=document.getElementById(`vsPreview`);if(!(!p||p.dataset.playing)){p.dataset.playing=`1`;var f=document.createElement(`iframe`);f.src=`https://www.youtube.com/embed/296F1cnU7AE?autoplay=1`,f.allow=`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,f.allowFullscreen=!0,f.style.cssText=`position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:20;`,p.innerHTML=``,p.appendChild(f),vsPlaying=!0,vsAnimStart=null,requestAnimationFrame(vsTick)}}function vsTick(ts){!vsPlaying||vsDragging||(vsAnimStart===null&&(vsAnimStart=ts-vsCurSec*2e3),vsCurSec=(ts-vsAnimStart)/2e3%vsTOTAL,vsRender(),requestAnimationFrame(vsTick))}function vsRender(){var ph=document.getElementById(`vsPh`),tc=document.getElementById(`vsTimecode`),scroll=document.getElementById(`vsScroll`);if(!(!ph||!tc||!scroll)){var px=vsCurSec/vsTOTAL*vsW;ph.style.left=px+`px`;var tlW=scroll.offsetWidth-155;(pxscroll.scrollLeft+tlW-40)&&(scroll.scrollLeft=Math.max(0,px-tlW/2));var m=Math.floor(vsCurSec/60),ss=Math.floor(vsCurSec%60),f=Math.floor(vsCurSec%1*24);tc.textContent=`0:`+String(m).padStart(2,`0`)+`:`+String(ss).padStart(2,`0`)+`:`+String(f).padStart(2,`0`)}}function vsSeekRuler(e){var r=document.getElementById(`vsRuler`).getBoundingClientRect(),x=e.clientX-r.left;vsCurSec=Math.max(0,Math.min(vsTOTAL,x/vsW*vsTOTAL)),vsAnimStart=null,vsRender()}function vsDragStart(e){e.preventDefault(),e.stopPropagation(),vsDragging=!0;var ph=document.getElementById(`vsPh`);ph&&ph.classList.add(`dragging`),document.addEventListener(`pointermove`,vsDragMove),document.addEventListener(`pointerup`,vsDragEnd),document.addEventListener(`pointercancel`,vsDragEnd)}function vsDragMove(e){if(vsDragging){var inner=document.getElementById(`vsTlInner`);if(inner){var r=inner.getBoundingClientRect(),x=e.clientX-r.left;vsCurSec=Math.max(0,Math.min(vsTOTAL,x/vsW*vsTOTAL)),vsAnimStart=null,vsRender()}}}function vsDragEnd(){vsDragging=!1;var ph=document.getElementById(`vsPh`);ph&&ph.classList.remove(`dragging`),document.removeEventListener(`pointermove`,vsDragMove),document.removeEventListener(`pointerup`,vsDragEnd),document.removeEventListener(`pointercancel`,vsDragEnd),vsPlaying&&(vsAnimStart=null,requestAnimationFrame(vsTick))}function vsAddDiamond(e){var row=e.target.closest(`.vs-trow`);if(!(!row||!row.dataset.color)){var color=row.dataset.color,r=row.getBoundingClientRect(),x=e.clientX-r.left,kf=document.createElement(`div`);kf.className=`vs-kf`,kf.style.left=x+`px`,kf.style.background=color+`55`,kf.style.borderColor=color,kf.style.transform=`translate(-50%,-50%) rotate(45deg) scale(0)`,kf.style.transition=`transform 0.2s cubic-bezier(.34,1.56,.64,1)`,row.appendChild(kf),requestAnimationFrame(function(){requestAnimationFrame(function(){kf.style.transform=`translate(-50%,-50%) rotate(45deg) scale(1)`})})}}
Ready to order?
Simple Pricing. No Surprises. Pick your plan.
Portfolio — GstaikDesigns Selected Work
Before & After. See The Difference. Every design is built from scratch - no templates, no AI, no shortcuts. Drag the slider to compare, then tap a thumbnail to switch projects.
★ ★ ★ ★ ★
1,000+ Five-Star ReviewsBefore & After Watch ideas come to life. Browse before & after breakdowns from real projects in the design process.
Before After
← Drag To Compare →
Tap a thumbnail to switch project
Ready To Order?
Want A Design Like This? Custom designs delivered fast. No hassle, just results.
(function init() { var slider = document.getElementById('slider'); var imgBefore = document.getElementById('img-before'); var imgAfter = document.getElementById('img-after'); var line = document.getElementById('line'); var knob = document.getElementById('knob'); var thumbs = document.querySelectorAll('.ba-thumb'); /* If elements aren't in the DOM yet, retry in 100ms */ if (!slider || !imgAfter) { setTimeout(init, 100); return; } function setPos(p) { p = Math.min(98, Math.max(2, p)); imgAfter.style.clipPath = 'inset(0 ' + (100 - p).toFixed(1) + '% 0 0)'; line.style.left = p + '%'; knob.style.left = p + '%'; } function getPct(clientX) { var r = slider.getBoundingClientRect(); return ((clientX - r.left) / r.width) * 100; } /* Pointer Events — handles mouse + touch in one */ slider.addEventListener('pointerdown', function(e) { slider.setPointerCapture(e.pointerId); setPos(getPct(e.clientX)); e.preventDefault(); }); slider.addEventListener('pointermove', function(e) { if (e.buttons === 0 && e.pressure === 0) return; setPos(getPct(e.clientX)); e.preventDefault(); }); /* Thumbnails */ thumbs.forEach(function(t) { t.addEventListener('click', function() { thumbs.forEach(function(x) { x.classList.remove('active'); }); t.classList.add('active'); imgBefore.src = t.getAttribute('data-before'); imgAfter.src = t.getAttribute('data-after'); setPos(50); }); }); setPos(50); })(); Where to find me?
Connect with me Unlock Your Channel's True Potential. Putting in the work but getting no results? I got you!
Need ideas?
My Porfolios Browse My Best Work.
Portfolio Cards — GstaikDesigns Are you a creative?
Graphics Packs Stop wasting hours on low quality graphics, and pick these unique assets ranging from backgrounds to icons!
(function init() { var vp = document.getElementById('gp-vp'); var track = document.getElementById('gp-track'); var dotsEl = document.getElementById('gp-dots'); if (!vp || !track || !dotsEl) { setTimeout(init, 100); return; } var hasStarted = false; /* ── Scrolling titles ── */ document.querySelectorAll('.gstaik-pack-card').forEach(function(card) { card.addEventListener('mouseenter', function() { var wrap = card.querySelector('.gstaik-pack-title-wrap'); var title = card.querySelector('.gstaik-pack-title'); if (!wrap || !title) return; var overflow = title.scrollWidth - wrap.offsetWidth; if (overflow <= 0) return; var duration = Math.max(2, overflow / 40); title.style.setProperty('--scroll-dist', '-' + overflow + 'px'); title.style.setProperty('--scroll-duration', duration + 's'); title.classList.add('scrolling'); }); card.addEventListener('mouseleave', function() { var title = card.querySelector('.gstaik-pack-title'); if (!title) return; title.classList.remove('scrolling'); title.style.transform = 'translateX(0)'; }); }); /* ── Carousel ── */ var slots = Array.prototype.slice.call(track.querySelectorAll('.gstaik-pack-slot')); var dots = Array.prototype.slice.call(dotsEl.querySelectorAll('span')); var total = slots.length; var cur = 0; var GAP = 12; var startX = 0, startY = 0, lockAxis = null, autoTimer = null; function isMobile() { return window.innerWidth <= 768; } function slotW() { return slots[0] ? slots[0].offsetWidth : 0; } function vpW() { return vp.offsetWidth; } function offsetFor(i) { var sw = slotW(), vw = vpW(); return i * (sw + GAP) - (vw - sw) / 2; } function startAuto() { clearTimeout(autoTimer); if (isMobile()) { autoTimer = setTimeout(function() { if (cur === total - 1) goTo(0, true); }, 5000); } else { autoTimer = setTimeout(function() { goTo(cur === total - 1 ? 0 : cur + 1, true); }, hasStarted ? 1200 : 6000); } } function goTo(index, animate) { if (animate) hasStarted = true; cur = ((index % total) + total) % total; track.style.transition = animate ? 'transform 0.38s cubic-bezier(0.25,0.46,0.45,0.94)' : 'none'; track.style.transform = 'translateX(' + (-offsetFor(cur)) + 'px)'; slots.forEach(function(s, i) { s.classList.toggle('is-active', i === cur); }); dots.forEach(function(d, i) { d.classList.toggle('active', i === cur); }); startAuto(); } vp.addEventListener('mouseenter', function() { clearTimeout(autoTimer); }); vp.addEventListener('mouseleave', function() { if (!isMobile()) startAuto(); }); vp.addEventListener('touchstart', function(e) { startX = e.touches[0].clientX; startY = e.touches[0].clientY; lockAxis = null; track.style.transition = 'none'; clearTimeout(autoTimer); }, { passive: true }); vp.addEventListener('touchmove', function(e) { var dx = e.touches[0].clientX - startX; var dy = e.touches[0].clientY - startY; if (!lockAxis) lockAxis = Math.abs(dx) > Math.abs(dy) ? 'h' : 'v'; if (lockAxis === 'h') { e.preventDefault(); track.style.transform = 'translateX(' + (-offsetFor(cur) + dx) + 'px)'; } }, { passive: false }); vp.addEventListener('touchend', function(e) { if (lockAxis !== 'h') { startAuto(); return; } var dx = e.changedTouches[0].clientX - startX; goTo(Math.abs(dx) > 40 ? (dx < 0 ? cur + 1 : cur - 1) : cur, true); lockAxis = null; }, { passive: true }); dots.forEach(function(d, i) { d.addEventListener('click', function() { goTo(i, true); }); }); goTo(0, false); window.addEventListener('resize', function() { goTo(cur, false); }); })(); (function () { /* ── Config ── */ var DELAY_MS = 5000; /* how long before popup appears (ms) */ var SNOOZE_KEY = 'gstaik_popup_dismissed'; /* localStorage key */ var SNOOZE_DAYS = 7; /* days before showing again after dismiss */ /* ── Helpers ── */ function $(id) { return document.getElementById(id); } function isValidEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v.trim()); } function shouldShow() { try { var ts = localStorage.getItem(SNOOZE_KEY); if (!ts) return true; var diff = Date.now() - parseInt(ts, 10); return diff > SNOOZE_DAYS * 86400000; } catch(e) { return true; } } function dismiss() { try { localStorage.setItem(SNOOZE_KEY, Date.now().toString()); } catch(e) {} var overlay = $('gstaik-popup-overlay'); overlay.classList.remove('visible'); } /* ── Show popup ── */ function showPopup() { if (!shouldShow()) return; $('gstaik-popup-overlay').classList.add('visible'); } /* ── Close on overlay click ── */ $('gstaik-popup-overlay').addEventListener('click', function(e) { if (e.target === this) dismiss(); }); $('gstaik-popup-close').addEventListener('click', dismiss); $('gstaik-popup-skip').addEventListener('click', dismiss); /* ── Close on Escape ── */ document.addEventListener('keydown', function(e) { if (e.key === 'Escape') dismiss(); }); /* ── Submit ── */ $('gstaik-popup-submit').addEventListener('click', function() { var emailInput = $('gstaik-email-input'); var errorEl = $('gstaik-popup-error'); var email = emailInput.value.trim(); errorEl.classList.remove('show'); if (!isValidEmail(email)) { errorEl.classList.add('show'); emailInput.focus(); return; } this.disabled = true; this.textContent = 'Sending…'; /* ============================================================ SWAP THIS OUT when you have an email platform. MAILCHIMP example: fetch('https://YOUR_MAILCHIMP_FORM_ACTION', { method: 'POST', body: new URLSearchParams({ EMAIL: email }), }); CONVERTKIT example: fetch('https://api.convertkit.com/v3/forms/YOUR_FORM_ID/subscribe', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ api_key: 'YOUR_API_KEY', email: email }), }); For now, emails are saved to localStorage so you don't lose them. ============================================================ */ try { var existing = JSON.parse(localStorage.getItem('gstaik_emails') || '[]'); if (!existing.includes(email)) existing.push(email); localStorage.setItem('gstaik_emails', JSON.stringify(existing)); } catch(e) {} /* Show success */ $('gstaik-popup-form').classList.add('hide'); $('gstaik-popup-success').classList.add('show'); /* Auto-close after 3s */ setTimeout(function() { try { localStorage.setItem(SNOOZE_KEY, Date.now().toString()); } catch(e) {} $('gstaik-popup-overlay').classList.remove('visible'); }, 3000); }); /* ── Also submit on Enter key ── */ $('gstaik-email-input').addEventListener('keydown', function(e) { if (e.key === 'Enter') $('gstaik-popup-submit').click(); }); /* ── Trigger after delay ── */ setTimeout(showPopup, DELAY_MS); })();
© 2026 All rights reserved.
Who wants free assets?
Latest Freebies Nothing better than free assets for your library! Don't miss any of them!
1500+ Photoshop Assets | Ultimate PSD for Creators & Creatives
Free Download → Most Downloaded 400+ Grudge Textures | Paper ,Plastic ,Metal and More
Free Download → 30+ Free Font Pack | Fonts Bundle, Creative Fonts
Free Download → Most Downloaded 400+ Grudge Textures | Paper ,Plastic ,Metal and More
Free Download → 1500+ Photoshop Assets | Ultimate PSD
Free Download → 30+ Free Font Pack | Fonts Bundle, Creative Fonts
Free Download → 200+ Design Icons & Symbols | Perfect Y2K Assets for Designs
Free Download → 180+ Text Styles Pack | Trendy Letters for Thumbnails & More
Free Download →
(function() { /* ── SCROLLING TITLE LOGIC ── */ function initScrollTitles() { document.querySelectorAll('.gstaik-freebie-card').forEach(function(card) { card.addEventListener('mouseenter', function() { var wrap = card.querySelector('.gstaik-freebie-title-wrap'); var title = card.querySelector('.gstaik-freebie-title'); if (!wrap || !title) return; var overflow = title.scrollWidth - wrap.offsetWidth; if (overflow <= 0) return; var duration = Math.max(2, overflow / 40); title.style.setProperty('--scroll-dist', '-' + overflow + 'px'); title.style.setProperty('--scroll-duration', duration + 's'); title.classList.add('scrolling'); }); card.addEventListener('mouseleave', function() { var title = card.querySelector('.gstaik-freebie-title'); if (!title) return; title.classList.remove('scrolling'); title.style.transform = 'translateX(0)'; }); }); } /* ── CAROUSEL LOGIC ── */ function initCarousel(vpId, trackId, dotsId) { var vp = document.getElementById(vpId); var track = document.getElementById(trackId); var dotsEl = document.getElementById(dotsId); if (!vp || !track || !dotsEl) return; var slots = Array.prototype.slice.call(track.querySelectorAll('.gstaik-freebie-slot')); var dots = Array.prototype.slice.call(dotsEl.querySelectorAll('span')); var total = slots.length, cur = 0, GAP = 12; var startX = 0, startY = 0, lockAxis = null, autoTimer = null; function slotW() { return slots[0] ? slots[0].offsetWidth : 0; } function vpW() { return vp.offsetWidth; } function offsetFor(i) { var sw = slotW(), vw = vpW(); return i * (sw + GAP) - (vw - sw) / 2; } function resetTimer() { clearTimeout(autoTimer); autoTimer = setTimeout(function() { if (cur === total - 1) goTo(0, true); }, 5000); } function goTo(index, animate) { cur = ((index % total) + total) % total; track.style.transition = animate ? 'transform 0.38s cubic-bezier(0.25,0.46,0.45,0.94)' : 'none'; track.style.transform = 'translateX(' + (-offsetFor(cur)) + 'px)'; slots.forEach(function(s, i) { s.classList.toggle('is-active', i === cur); }); dots.forEach(function(d, i) { d.classList.toggle('active', i === cur); }); } vp.addEventListener('touchstart', function(e) { startX = e.touches[0].clientX; startY = e.touches[0].clientY; lockAxis = null; track.style.transition = 'none'; clearTimeout(autoTimer); }, { passive: true }); vp.addEventListener('touchmove', function(e) { var dx = e.touches[0].clientX - startX, dy = e.touches[0].clientY - startY; if (!lockAxis) lockAxis = Math.abs(dx) > Math.abs(dy) ? 'h' : 'v'; if (lockAxis === 'h') { e.preventDefault(); track.style.transform = 'translateX(' + (-offsetFor(cur) + dx) + 'px)'; } }, { passive: false }); vp.addEventListener('touchend', function(e) { if (lockAxis !== 'h') { resetTimer(); return; } var dx = e.changedTouches[0].clientX - startX; goTo(Math.abs(dx) > 40 ? (dx < 0 ? cur + 1 : cur - 1) : cur, true); lockAxis = null; resetTimer(); }, { passive: true }); dots.forEach(function(d, i) { d.addEventListener('click', function() { goTo(i, true); resetTimer(); }); }); goTo(0, false); resetTimer(); window.addEventListener('resize', function() { goTo(cur, false); }); } initScrollTitles(); initCarousel('gf-vp-1', 'gf-track-1', 'gf-dots-1'); })(); Where to find me?
Connect with me Why choose me?
High Impact Unique Designs
With over 8 years of experience you know that your designs will be 1 of 1 and completely AI free!
Top Quality Designed to be viewed on everything by everyone.
Super Fast Delivery No waiting around. Get your designs done fast!
Flexible Plans Multiple options available based on budget, trend and style.
Super Easy Process Custom designed process that makes ordering seamless.
Unique & All Yours Every design is custom made and AI free.
Dedicated Support Amazing before and after support to resolve any issues.
Are you a creative?
Graphics Packs Stop wasting hours on low quality graphics, and pick these unique assets and ranging from backgrounds to icons!
Who wants free assets?
Latest Freebies Nothing better than free assets for your library! Don't miss any of them!