dimensions_theme
Flutter 테마 내에서 앱 차원을 정의합니다.
앱의 치수를 더 쉽게 깔끔하게 다룰 수 있도록 도와주는 플러터 패키지
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
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.
// 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,
}),
],
),
);
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,
}),
],
),
);
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.
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,
)
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()
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),
),
)
의존성 목록 3 개
{"sdk":"flutter"}^3.0.2^1.16.0사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗