AI Art and Comics:
Full Sets:
SubscribeStar
DeviantArt
Next post will be released on:
Thursday
(UTC)
UTC time: --:--:--
?
(function () { function updateUTCClock() { const clock = document.getElementById("utc-clock"); if (!clock) return; const now = new Date(); const utcDay = now.toLocaleDateString("en-US", { timeZone: "UTC", weekday: "short" }); const utcTime = now.toLocaleTimeString("en-GB", { timeZone: "UTC", hour: "2-digit", minute: "2-digit", second: "2-digit" }); clock.textContent = "UTC time: " + utcTime + " " + utcDay; } updateUTCClock(); setInterval(updateUTCClock, 1000); })();
News
Back
Next
#About_me
i
#SFW_Art
i
(function () { var WEB_APP_URL = "https://script.google.com/macros/s/AKfycbyEYewI_aDHPrpVc9ufwRLKetyhA0sxtQmRGKMzQoLh-0GMThUhKWBHELQP0UWSlEdc/exec"; var PER_PAGE = 3; var news = []; var page = 0; var loaded = false; var loading = false; var slowLoadingTimer = null; var infoButtons = document.querySelectorAll('.cw4-info-pulse'); var panel = document.getElementById('cw4-news-panel'); var list = document.getElementById('cw4-news-list'); var status = document.getElementById('cw4-news-status'); var prev = document.getElementById('cw4-news-prev'); var next = document.getElementById('cw4-news-next'); var pageLabel = document.getElementById('cw4-news-page'); var buttons = document.querySelector('.cw4-news-buttons'); if (!infoButtons.length || !panel || !list || !status || !prev || !next || !pageLabel || !buttons) { return; } function setStatus(text) { status.textContent = text || ''; } function setInfoOpenState(isOpen) { infoButtons.forEach(function (button) { if (isOpen) { button.classList.add('cw4-info-open'); } else { button.classList.remove('cw4-info-open'); } button.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); }); } function openNews() { panel.classList.add('cw4-news-open'); panel.setAttribute('aria-hidden', 'false'); setInfoOpenState(true); if (loaded) { renderNews(); return; } if (!loading) { loadNews(); return; } clearTimeout(slowLoadingTimer); slowLoadingTimer = setTimeout(function () { if (loading && panel.classList.contains('cw4-news-open')) { setStatus('Loading news...'); } }, 900); } function closeNews() { panel.classList.remove('cw4-news-open'); panel.setAttribute('aria-hidden', 'true'); setInfoOpenState(false); setStatus(''); } function toggleNews() { if (panel.classList.contains('cw4-news-open')) { closeNews(); } else { openNews(); } } function renderNews() { list.innerHTML = ''; if (!news.length) { setStatus("If you're seeing this, something broke. Don't worry, I'll fix it soon. For now, try opening the site in another browser. Love you, cutie <3"); buttons.style.display = 'none'; return; } setStatus(''); if (news.length > PER_PAGE) { buttons.style.display = 'flex'; } else { buttons.style.display = 'none'; } var totalPages = Math.max(1, Math.ceil(news.length / PER_PAGE)); var start = page * PER_PAGE; var items = news.slice(start, start + PER_PAGE); items.forEach(function (item) { var card = document.createElement('div'); card.className = 'cw4-news-item'; var date = document.createElement('div'); date.className = 'cw4-news-date'; date.textContent = item.date || ''; var title = document.createElement('div'); title.className = 'cw4-news-heading'; title.textContent = item.title || 'Untitled'; var text = document.createElement('div'); text.className = 'cw4-news-text'; text.textContent = item.text || ''; card.appendChild(date); card.appendChild(title); card.appendChild(text); list.appendChild(card); }); prev.disabled = page === 0; next.disabled = page >= totalPages - 1; pageLabel.textContent = (page + 1) + ' / ' + totalPages; } function loadNews() { loading = true; setStatus(''); window.cw4NewsLoaded = function (payload) { loading = false; loaded = true; clearTimeout(slowLoadingTimer); if (!payload || !payload.ok) { if (panel.classList.contains('cw4-news-open')) { setStatus('News could not be loaded.'); } buttons.style.display = 'none'; return; } news = Array.isArray(payload.items) ? payload.items : []; page = 0; if (panel.classList.contains('cw4-news-open')) { renderNews(); } }; var oldScript = document.getElementById('cw4-news-loader-script'); if (oldScript) { oldScript.remove(); } var script = document.createElement('script'); script.id = 'cw4-news-loader-script'; script.async = true; script.src = WEB_APP_URL + '?callback=cw4NewsLoaded&v=' + Date.now(); script.onerror = function () { loading = false; loaded = true; clearTimeout(slowLoadingTimer); if (panel.classList.contains('cw4-news-open')) { setStatus('News could not be loaded.'); } buttons.style.display = 'none'; }; document.body.appendChild(script); } function resetWaves(button) { var waves = button.querySelectorAll('.cw4-wave'); waves.forEach(function (wave) { wave.classList.remove('cw4-wave-done'); }); } function activateWaves(button) { var timer = button._cw4WaveTimer || null; resetWaves(button); button._cw4StopRequested = false; button.classList.add('cw4-waves-active'); clearTimeout(timer); button._cw4WaveTimer = setTimeout(function () { button._cw4StopRequested = true; }, 500); } function activateAllWaves() { infoButtons.forEach(function (button) { activateWaves(button); }); } infoButtons.forEach(function (button) { var waves = button.querySelectorAll('.cw4-wave'); waves.forEach(function (wave) { wave.addEventListener('animationiteration', function () { if (!button._cw4StopRequested) return; wave.classList.add('cw4-wave-done'); var doneWaves = button.querySelectorAll('.cw4-wave-done').length; if (doneWaves === waves.length) { button.classList.remove('cw4-waves-active'); resetWaves(button); button._cw4StopRequested = false; } }); }); button.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); activateWaves(button); toggleNews(); }); button.addEventListener('keydown', function (event) { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); activateWaves(button); toggleNews(); } }); }); prev.addEventListener('click', function () { if (page > 0) { page--; renderNews(); } }); next.addEventListener('click', function () { var totalPages = Math.ceil(news.length / PER_PAGE); if (page < totalPages - 1) { page++; renderNews(); } }); window.addEventListener('mousemove', activateAllWaves); window.addEventListener('scroll', activateAllWaves, { passive: true }); window.addEventListener('wheel', activateAllWaves, { passive: true }); window.addEventListener('touchstart', activateAllWaves, { passive: true }); window.addEventListener('touchmove', activateAllWaves, { passive: true }); window.addEventListener('click', activateAllWaves); window.addEventListener('keydown', activateAllWaves); loadNews(); })();
SFW Gallery
Please return me back!!!
#HowIMadeThis
#DiscordOrders
Please return me back!!!
Please return me back!!!