Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.1.1

dimensions_theme

Definieren Sie App-Abmessungen innerhalb des Flutter-Themas.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
148
Likes
24
Pub-Punkte
150

Paket installieren

flutter pub add dimensions_theme

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das dimensions_theme-Paket ermöglicht Entwicklern die Definition und Verwaltung von App-Abmessungen direkt im Flutter-Thema, wodurch konsistente und reaktive Benutzeroberflächen-Designs auf verschiedenen Bildschirmgrößen gewährleistet werden. Durch die Integration von Abmessungskonstanten in das Thema wird die Anpassung der Layouts vereinfacht, ohne externe Konfigurationen oder hartcodierte Werte zu benötigen. Dieser Ansatz verbessert die Wartbarkeit und Skalierbarkeit, insbesondere bei großen Anwendungen mit komplexen Layouts. Das Paket unterstützt alle wichtigen Plattformen und sorgt für plattformübergreifende Konsistenz.

Anwendungsfälle

  • Responsive Layout-Management
  • Zentralisierte Dimensionskonfiguration
  • Plattformübergreifende Konsistenz der Benutzeroberfläche
  • Thema-basierte Abstände und Größen
  • Benutzeroberflächen-Skalierung vereinfachen
  • Die Integrität des Design-Systems aufrechterhalten

Hauptmerkmale

  • Integriert Dimensionen in ThemeData
  • Unterstützt plattformunabhängige Größenangaben
  • Aktiviert dynamische themenbasierte Dimensionen
  • Verringert die Abhängigkeit von hartcodierten Werten
  • Unterstützt die Ausrichtung des Design-Systems
  • Läuft nahtlos mit bestehenden Themen zusammen

Geeignet für

  • Großskalige Flutter-Apps
  • Implementierung des Design-Systems
  • Plattformübergreifende Entwicklung
  • Teams, die UI-Konsistenz priorisieren
  • Entwickler, die themenbasierte Stilisierung verwenden

Hinweise

  • Erfordert Verständnis des Flutter-Themensystems
  • Möglicherweise ist zusätzliche Einrichtung für benutzerdefinierte Dimensionenlogik erforderlich
  • Beschränkt auf themenbasierte Dimensionenverwaltung
  • Kein vollständiger Layout-Framework
  • Am besten zusammen mit responsive Layout-Strategien verwendet

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

📏 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),
  ),
)

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.