WEBLEB
Início
Editor
Entrar
Pro
Português
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Trecho HTML de animação de carregamento CSS
52
ByBy.inc
Abrir no Editor
Publique Seu Código
Recomendado
29 August 2025
Trecho de animação de memória CSS
27 May 2025
Página de contato futurista
5 July 2025
Painel de login e registro Glassy do TheDoc
HTML
Copy
CSS
Copy
/* CSS Foundation */ body { background-color: #272822; display: flex; align-items: center; justify-content: center; height: 100vh; overflow: hidden; } .codigo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: #272822; color: #F8F8F2; font-family: 'Consolas', 'Monaco', monospace; font-size: 18px; padding: 20px; border-radius: 8px; white-space: pre-line; text-align: left; line-height: 1.6; max-height: 25%; min-width: 100%; width: 100%; overflow-y: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .selector { color: #F92672; } .property { color: #66D9EF; } .value-number { color: #AE81FF; } .value-string { color: #E6DB74; } .value-color { color: #A6E22E; } .brace { color: #F8F8F2; } .comment { color: #75715E; } .function { color: #A6E22E; } .animation-container { position: absolute; top: 75%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 100%; height: 50%; overflow: hidden; background: transparent; } /* Animação: Phantom Loading */ .animation-container { animation: spin 2s linear infinite; } @keyframes spin { 0% { /* Comentário: A primeira iteração é uma representação da ansiedade, com elementos dispersos e sem sentido. */ transform: translate(-50%, -50%) scale(1); } 50% { /* Comentário: No meio da animação, os elementos começam a se organizar e formar uma falsa sensação de ordem. */ transform: translate(-50%, -50%) scale(1.1); } 100% { /* Comentário: Na última iteração, a ansiedade retorna e os elementos se dispersam novamente. */ transform: translate(-50%, -50%) scale(0.9); } } /* Elementos de Loading animados */ .animation-container::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100px; height: 100px; border-radius: 50%; border: 2px solid #F8F8F2; box-shadow: 0 0 20px rgba(255, 255, 255, 0.5); animation: loading 2s ease-in-out infinite; } @keyframes loading { 0% { transform: translate(-50%, -50%) scale(1); border-width: 2px; } 50% { transform: translate(-50%, -50%) scale(1.2); border-width: 1px; } 100% { transform: translate(-50%, -50%) scale(1); border-width: 2px; } } .animation-container::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; border-radius: 50%; background-color: #A6E22E; box-shadow: 0 0 10px rgba(255, 255, 255, 0.2); animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0% { transform: translate(-50%, -50%) scale(1); transform-origin: center; } 50% { transform: translate(-50%, -50%) scale(1.1); transform-origin: center; } 100% { transform: translate(-50%, -50%) scale(1); transform-origin: center; } } /* CSS para a barra de código */ .codigo::before { content: ''; font-size: 14px; color: #75715E; } /* CSS para a barra de código que irá renderizar a animação */ .codigo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: #272822; color: #F8F8F2; font-family: 'Consolas', 'Monaco', monospace; font-size: 18px; padding: 20px; border-radius: 8px; white-space: pre-line; text-align: left; line-height: 1.6; max-height: 25%; min-width: 100%; width: 100%; overflow-y: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .selector { color: #F92672; } .property { color: #66D9EF; } .value-number { color: #AE81FF; } .value-string { color: #E6DB74; } .value-color { color: #A6E22E; } .brace { color: #F8F8F2; } .comment { color: #75715E; } .function { color: #A6E22E; } .codigo { color: #F8F8F2; } .codigo .selector { color: #F92672; } .codigo .property { color: #66D9EF; } .codigo .value-number { color: #AE81FF; } .codigo .value-string { color: #E6DB74; } .codigo .value-color { color: #A6E22E; } .codigo .brace { color: #F8F8F2; } .codigo .comment { color: #75715E; } .codigo .function { color: #A6E22E; }
JS
Copy
const canvas = document.getElementById('matrixCanvas'); const ctx = canvas.getContext('2d'); function resizeCanvas() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; } resizeCanvas(); window.addEventListener('resize', resizeCanvas); const matrixChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()'; const fontSize = 16; const columns = canvas.width / fontSize; const drops = Array.from({ length: columns }).fill(1); function draw() { ctx.fillStyle = 'rgba(0, 0, 0, 0.05)'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#0f0'; ctx.font = `${fontSize}px monospace`; drops.forEach((y, i) => { const text = matrixChars[Math.floor(Math.random() * matrixChars.length)]; const x = i * fontSize; ctx.fillText(text, x, y * fontSize); if (y * fontSize > canvas.height && Math.random() > 0.975) { drops[i] = 0; } drops[i]++; }); } setInterval(draw, 50);