SWCore / Animações / Mobile e rede lenta

Mobile e rede lenta Animações

Decide qual mídia baixar (vídeo HD, vídeo mobile ou pôster estático) antes de gastar os dados do visitante.

O que é

Responsivo de verdade não é baixar um arquivo pesado de 4.6 MB e diminuir seu tamanho visual no CSS. O SWCore analisa três sinais ambientais (Economia de dados, Movimento reduzido e Tamanho da tela) antes de requisitar a mídia na rede, garantindo que o visitante receba a experiência visual exata sem desperdício de dados ou lentidão.

Como funciona

A decisão segue uma ordem de prioridade estrita: 1. Se o visitante ativou economia de dados (saveData) ou movimento reduzido (prefers-reduced-motion), entrega apenas o pôster estático (~65 KB); 2. Se a tela for móvel (< 768px), entrega o vídeo mobile leve (~500 KB); 3. Se for desktop em conexão normal, entrega o vídeo HD completo (~4.64 MB).

Exemplos

00 · A Árvore de Decisão em 4 Passos (Modelo Mental) Ao vivo
01
Ler Sinais

saveData, reducedMotion e largura.

02
Avaliar

Aplica as regras de prioridade antes de qualquer download.

03
Baixar 1 Só

Injeta o src apenas da mídia selecionada.

04
Experiência

Texto e ação continuam 100% presentes em todos os modos.

<!-- 
  Prioridade de Decisão:
  1. saveData OU prefers-reduced-motion -> Imagem Estática (~65 KB)
  2. screen < 768px                    -> Vídeo Mobile (~500 KB)
  3. Desktop normal                    -> Vídeo HD (~4.64 MB)
-->
01 · Laboratório Interativo: Simule os Sinais em Tempo Real Ao vivo
Simulador de Sinais do Visitante

Alterne as condições abaixo para ver como o SWCore decide qual arquivo baixar:

TELA SIMULADA:
ECONOMIA DE DADOS (saveData):
PREFERS-REDUCED-MOTION:
VÍDEO MOBILE 500 KB · 640 × 360 MP4
Motivo: Tela de celular (375px < 768px). Economiza 89% de banda em relação ao HD.
<!-- Teste a decisão do SWCore alterando os sinais do ambiente -->
<div class="demo-video-box">
  <div id="sim-media-stage"></div>
</div>

<script>
  // O SWCore avalia os 3 sinais antes de injetar o src:
  const decisao = SWMotion.resolveMedia({
    desktop: 'video-hd.mp4',
    mobile: 'video-mobile.mp4',
    poster: 'poster.webp',
    screenWidth: window.innerWidth
  });
  console.log('Mídia escolhida:', decisao.type, decisao.reason);
</script>
02 · Tabela Comparativa de Economia de Banda Ao vivo
Vídeo HD Desktop (1280×720)
4.64 MB — fidelidade cinematográfica para monitores e conexões de fibra.
Vídeo Mobile (640×360)
500 KB89% de economia de dados. Perfeito para smartphones em 4G/5G.
Pôster Estático (640×360 WebP)
65 KB98.6% de economia. Atendido instantaneamente mesmo em 3G lento.
<!-- Comparativo do impacto de carregar a mídia certa -->
Desktop HD: 4.64 MB (100%)
Mobile:     500 KB  (11% do peso — 89% economia)
Estático:   65 KB   (1.4% do peso — 98.6% economia)
03 · Uso Declarativo no HTML (data-sw="adaptive-media") Ao vivo
<!-- O SWCore decide qual mídia injetar ANTES de fazer qualquer download -->
<div 
  data-sw="adaptive-media"
  data-sw-desktop="../../assets/images/video/garden-motion.mp4"
  data-sw-mobile="../../assets/images/video/garden-mobile.mp4"
  data-sw-poster="../../assets/images/video/garden-mobile-poster.webp"
  data-sw-breakpoint="768"
  data-sw-autoplay
  style="width: 100%; height: 260px; border-radius: .75rem; overflow: hidden;">
</div>
04 · Consulta Programática via JavaScript (SWMotion.resolveMedia) Referência
// Retorna a melhor estratégia sem injetar tags no DOM:
const decision = SWMotion.resolveMedia({
  desktop: 'garden-hd.mp4',
  mobile: 'garden-mobile.mp4',
  poster: 'garden-poster.webp',
  breakpoint: 768
});

console.log(decision.type);   // 'video-mobile' | 'video-desktop' | 'static'
console.log(decision.src);    // URL escolhida
console.log(decision.reason); // Ex: 'Tela mobile (375px < 768px)'

Atributos

data-sw="adaptive-media"
no container para inicializar a entrega inteligente de mídia
data-sw-desktop="video-hd.mp4"
caminho do vídeo HD completo para telas grandes
data-sw-mobile="video-mobile.mp4"
caminho do vídeo otimizado para celulares
data-sw-poster="poster.webp"
imagem estática leve para economia de dados e acessibilidade
data-sw-breakpoint="768"
largura limite em pixels para alternar entre mobile e desktop (padrão: 768)
data-sw-autoplay
inicia o vídeo automaticamente (com som mudo e loop)
data-sw-mode="scroll"
opcional: conecta a mídia adaptativa ao motor de scroll-driven

Variantes

Vídeo HD Completo (Desktop)
1280×720 H.264 (~4.64 MB) para telas grandes e banda rápida
Vídeo Mobile Otimizado (Celular)
640×360 H.264 (~500 KB — 89% mais leve) para dispositivos móveis
Imagem Estática WebP (Economia/Acessibilidade)
640×360 WebP (~65 KB — 98.6% mais leve) para redes 3G/4G com economia de dados

Eventos

Nenhum.

API (JavaScript)

SWMotion.resolveMedia(options)
Avalia as variáveis ambientais e retorna { type, src, reason } sem disparar downloads.
SWMotion.adaptiveMedia(element)
Inicializa programaticamente o container adaptativo injetando a mídia correta.

Requisitos

  • O navegador suporta window.matchMedia nativamente em 100% dos navegadores modernos.
  • Para celulares com suporte a Network Information API, navigator.connection.saveData é lido automaticamente.

Limitações — o que ele não faz

  • A decisão deve ser executada antes de atribuir qualquer src ao elemento — se o navegador já tiver iniciado o download de um vídeo HD, remover a tag depois não recupera os dados consumidos.
  • Acessibilidade e conteúdo: o texto e botões de chamada para ação (CTA) devem permanecer intactos em todas as 3 entregas.