Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.1.1

dimensions_theme

Defina as dimensões do aplicativo dentro do tema do Flutter.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
148
Curtidas
24
Pontos Pub
150

Instalar pacote

flutter pub add dimensions_theme

Visão geral do pacote

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

O pacote dimensions_theme permite aos desenvolvedores definir e gerenciar as dimensões do aplicativo diretamente no tema do Flutter, permitindo um design de interface consistente e responsivo em diferentes tamanhos de tela. Integrando constantes de dimensão ao tema, simplifica os ajustes de layout sem depender de configurações externas ou valores codificados. Essa abordagem melhora a manutenibilidade e escalabilidade, especialmente em aplicações grandes com layouts complexos. O pacote suporta todas as principais plataformas, garantindo consistência entre plataformas.

Casos de uso

  • Gerenciamento de layout responsivo
  • Configuração centralizada de dimensão
  • Consistência da interface do usuário multiplataforma
  • Espaçamento e dimensionamento orientados por tema
  • Simplificando a escala da interface do usuário
  • Manter a integridade do sistema de design

Principais recursos

  • Integra dimensões no ThemeData
  • Suporta dimensionamento independente de plataforma
  • Habilita dimensões baseadas em tema dinâmicas
  • Reduz a dependência de valores codificados
  • Facilita a alinhamento do sistema de design
  • Funciona perfeitamente com temas existentes

Indicado para

  • Aplicativos Flutter em grande escala
  • Implementação do sistema de design
  • Desenvolvimento multiplataforma
  • Equipes priorizando consistência da interface
  • Desenvolvedores usando estilização baseada em temas

Considerações

  • Requer conhecimento do sistema de temas do Flutter
  • Pode ser necessário configuração adicional para a lógica de dimensão personalizada
  • Limitado ao tratamento de dimensão baseado em tema
  • Não é um framework de layout completo
  • Melhor usado em conjunto com estratégias de layout responsivo

README original

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

📏 dimensions_theme

dimensions_theme provides a theme extension to easily define and access app dimensions such as blank spaces, padding, border radius, and other dimensions within the Flutter theme.

Define your dimensions

// Uses tokens that best fit your project needs. You can also use multiple enums
enum Dimension {
  xlarge,
  large,
  medium,
  small,
  xsmall,
}

...

MaterialApp(
  theme: ThemeData(
    extensions: const [
      DimensionsTheme({
        Dimension.xlarge: 20,
        Dimension.large: 16,
        Dimension.medium: 12,
        Dimension.small: 8,
        Dimension.xsmall: 4,
      }),
    ],
  ),
);
Uses multiple enum for dimensions

The Dimensions theme extension supports using multiple enums as dimension tokens. This can be useful if you want to give different kinds of dimensions value their own enum.

enum Space {
  xlarge,
  large,
  medium,
  small,
  xsmall,
}

enum Padding {
  xlarge,
  large,
  medium,
  small,
  xsmall,

  screen,
}

...

MaterialApp(
  theme: ThemeData(
    extensions: const [
      DimensionsTheme({
        Space.xlarge: 20,
        Space.large: 16,
        Space.medium: 12,
        Space.small: 8,
        Space.xsmall: 4,

        Padding.xlarge: 20,
        Padding.large: 16,
        Padding.medium: 12,
        Padding.small: 8,
        Padding.xsmall: 4,
        Padding.screen: 20,
      }),
    ],
  ),
);

Consume dimensions values

You can access any dimension value using the get:

Dimensions.of(context).get(Dimension.small);

Additionally, this package provides helpers to make it easier to work with defined dimensions.

Padding

The padding context extension constructs EdgeInsets using the values defined in the dimensions theme for a given dimension token.

Padding(
  padding: context.padding.all(Dimension.small)
  child: ...
)

This extension provides counterparts to all EdgeInsets constructors but uses Dimension tokens instead of raw double values.

context.padding.all(Dimension.small)

context.padding.symmetric(
  horizontal: Dimension.medium,
  vertical: Dimensions.small,
)

context.padding.only(
  left: Dimension.large
  top: Dimension.large,
)
Blank spaces

The Space widget creates a SizedBox with the values defined in the dimensions theme for a given dimension token.

Column(
  children: [
    SomeWidget(),
    Space(Dimensions.small),
    SomeWidget(),
  ]
)

Alternatively, you can use the SpaceDimensionsMixin to construct Space widgets directly from your tokens:

/// Add `SpaceDimensionsMixin` to your dimension token responsible for spaces
enum Spaces with SpaceDimensionsMixin {
  large,
  medium
  small,
}

...

Column(
  children: [
    SomeWidget(),
    Spaces.small(),
    SomeWidget(),
  ]
)

All space widgets come with .w and .h constructors to restrict the blank space in one axis, respectively width and height.

Space.h(Dimensions.small)
Space.w(Dimensions.small)

Spaces.small.h()
Spaces.small.w()
Border radius

The radius context extension constructs Radius using the values defined in the dimensions theme for a given dimension token.

Container(
  decoration: BoxDecoration(
    borderRadius: BorderRadius.all(
      context.radius.circular(Dimensions.large),
    ),
  ),
)

This extension provides counterparts to all Radius constructors but uses Dimension tokens instead of raw double values.

context.radius.elliptical(Dimensions.large);
context.radius.circular(Dimensions.small, Dimensions.large);

The extension also provides a counterpart to BorderRadius.circular().

Container(
  decoration: BoxDecoration(
    borderRadius: borderRadius.circular(Dimensions.large),
  ),
)

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.