Buscar categorias, pacotes e repositórios

Capa de shimmer
Detalhes do pacotev4.0.0

shimmer

Um pacote fornece uma maneira fácil de adicionar efeito de brilho em projeto Flutter

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1,8 mi
Curtidas
5,5 mil
Pontos Pub
160

Instalar pacote

flutter pub add shimmer

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Shimmer é um pacote Flutter que simplifica a adição de efeitos de carregamento em brilho aos componentes da interface, criando uma aparência suave e animada de espaço reservado. É ideal para simular estados de carregamento de conteúdo em listas, cartões ou imagens, melhorando a experiência do usuário durante a busca de dados. O pacote oferece suporte a todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo comportamento consistente entre dispositivos. Com configuração mínima, os desenvolvedores podem implementar rapidamente indicadores de carregamento visualmente atraentes sem escrever animações complexas.

Casos de uso

  • Espaços reservados de carregamento em listas
  • Espaços reservados de cartão animado
  • Esqueletos de carregamento de imagem
  • Melhorando a UX durante a busca de dados
  • Pré-visualizações de conteúdo dinâmico

Principais recursos

  • Integração de API simples
  • Suporte multiplataforma
  • Cor de brilho personalizável
  • Efeito de animação suave
  • Leve e eficiente

Indicado para

  • Designers de interface buscando acabamento visual
  • Desenvolvedores construindo telas de conteúdo dinâmico
  • Aplicativos com carregamento frequente de dados
  • Prototipagem de interfaces interativas
  • Melhorar o desempenho percebido

Considerações

  • Não adequado para conteúdo estático
  • Requer posicionamento adequado dentro da árvore de widget
  • Pode afetar o desempenho se usado em excesso
  • Personalização limitada além da estilização básica
  • Melhor usado com fundos transparentes

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Shimmer

pub package unit test codecov

A lightweight Flutter widget that paints a moving highlight over placeholder UI. Typical uses are skeleton screens while data loads, and a sliding highlight on a call to action.

Install

dependencies:
  shimmer: ^4.0.0
  material_ui: ^1.0.1

shimmer 4.0 uses Flutter's standalone material_ui package (Flutter 3.44+). Apps that still import package:flutter/material.dart can wrap those subtrees in MaterialUiCompatibilityBridge.

import 'package:material_ui/material_ui.dart';
import 'package:shimmer/shimmer.dart';

Usage

Skeleton placeholder

Shimmer.fromColors is the usual constructor. Build the child from solid shapes (Container, Row, Column). The gradient replaces those colors; transparent pixels stay transparent.

Shimmer.fromColors(
  baseColor: Colors.grey.shade300,
  highlightColor: Colors.grey.shade100,
  child: Column(
    children: [
      Container(height: 200, color: Colors.white),
      const SizedBox(height: 16),
      Container(height: 12, color: Colors.white),
      const SizedBox(height: 8),
      Container(height: 12, width: 200, color: Colors.white),
    ],
  ),
);

Dark theme:

Shimmer.fromColors(
  baseColor: Colors.grey.shade800,
  highlightColor: Colors.grey.shade600,
  child: placeholder,
);
Custom gradient

Use the default constructor when you need a RadialGradient, SweepGradient, or a LinearGradient that follows Theme.

Shimmer(
  gradient: LinearGradient(
    colors: [
      Theme.of(context).colorScheme.surfaceContainerHighest,
      Theme.of(context).colorScheme.surface,
      Theme.of(context).colorScheme.surfaceContainerHighest,
    ],
    stops: const [0.35, 0.5, 0.65],
  ),
  child: placeholder,
);
Direction, speed, and loops
Shimmer.fromColors(
  direction: ShimmerDirection.rtl,
  period: const Duration(milliseconds: 1200),
  loop: 0, // 0 = forever
  enabled: isLoading,
  baseColor: Colors.grey.shade300,
  highlightColor: Colors.grey.shade100,
  child: placeholder,
);
Parameter Default Role
child required Opaque area the highlight is blended onto
gradient required* Highlight colors (fromColors builds this for you)
direction ltr ltr, rtl, ttb, btt
period 1500ms Duration of one pass
loop 0 Passes before stopping; 0 repeats forever
enabled true false pauses the animation

*Required on Shimmer(...). Shimmer.fromColors takes baseColor and highlightColor instead.

Performance

  • Wrap a list of placeholders in one Shimmer, not one Shimmer per row.
  • Keep child simple and static. Fancy widgets (images, text with decoration, elevation) often look wrong because the shader replaces their colors.
  • Toggle enabled to false when loading finishes so the ticker stops.

Example

The example/ app shows a loading list and a “slide to unlock” highlight. From the repository root:

cd example && flutter run

How it works

Shimmer drives an AnimationController and paints a ShaderMaskLayer over the child (BlendMode.srcIn). The highlight rectangle is three times the child size so the band can travel fully across the widget.

Project internals, tests, and further optimization notes live in docs/overview.md and docs/optimization.md.

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Rankings