一键导入
button-system
Button widgets in iOS Design System - CupertinoButtonWidget and ButtonWidget with all variants
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Button widgets in iOS Design System - CupertinoButtonWidget and ButtonWidget with all variants
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | button-system |
| description | Button widgets in iOS Design System - CupertinoButtonWidget and ButtonWidget with all variants |
Two-layer system:
Low-level widget providing:
CupertinoButtonWidget(
onPressed: () {},
color: theme.defaultColors.systemBlue,
borderRadius: BorderRadius.circular(12),
padding: EdgeInsets.all(16),
child: Text('Button'),
)
CupertinoButtonWidget(
onPressed: isLoading ? null : () {},
displayCupertinoActivityIndicator: isLoading,
color: theme.defaultColors.systemBlue,
child: Text('Submit'),
)
CupertinoButtonWidget(
onPressed: () {},
backgroundGradient: LinearGradient(
colors: [
theme.defaultColors.systemPurple,
theme.defaultColors.systemPink,
],
),
child: Text('Premium'),
)
High-level button with automatic theming.
ButtonWidget.label(
size: const LargeButtonSize(),
color: const BlueButtonColor(),
label: 'Continue',
leftIcon: CupertinoIcons.checkmark,
onPressed: () {},
)
ButtonWidget.icon(
size: const MediumButtonSize(),
color: const GreyTransparentButtonColor(),
leftIcon: CupertinoIcons.add,
onPressed: () {},
)
Define your own dimensions:
const CustomButtonSize(
borderRadius: BorderRadius.all(Radius.circular(16)),
padding: EdgeInsets.symmetric(horizontal: 24, vertical: 18),
iconSize: 22,
boxConstraints: BoxConstraints(minHeight: 56, minWidth: 56),
)
class RedButtonColor extends ButtonColor {
const RedButtonColor();
@override
Color? backgroundEnabled({required BuildContext context}) {
final theme = IosTheme.of(context);
return theme.defaultColors.systemRed;
}
@override
Color labelEnabled({required BuildContext context}) {
final theme = IosTheme.of(context);
return theme.defaultColors.systemWhite;
}
}
ButtonWidget.label(
size: const LargeButtonSize(),
color: const BlueButtonColor(),
label: 'Continue',
onPressed: () {},
)
ButtonWidget.label(
size: const MediumButtonSize(),
color: const GreyTransparentButtonColor(),
label: 'Share',
leftIcon: CupertinoIcons.share,
onPressed: () {},
)
ButtonWidget.icon(
size: const MediumButtonSize(),
color: const GreyTransparentButtonColor(),
leftIcon: CupertinoIcons.add,
onPressed: () {},
)
ButtonWidget.label(
size: const LargeButtonSize(),
color: const BlueButtonColor(),
label: 'Processing',
displayCupertinoActivityIndicator: isLoading,
onPressed: isLoading ? null : () {},
)
ButtonWidget.label(
size: const MediumButtonSize(),
color: const CustomButtonColor(
backgroundEnabled: theme.defaultColors.systemRed,
labelEnabled: theme.defaultColors.systemWhite,
),
label: 'Delete',
leftIcon: CupertinoIcons.trash,
onPressed: () {},
)
kAnimationInDuration // 180ms
kAnimationOutDuration // 120ms
kCupertinoButtonPressedOpacity // 0.8
/lib/src/widgets/cupertino_button_widget.dart/lib/src/widgets/button_widget.dartSpecialized widgets and themes for Music, Stocks, Weather, App Store, and Books apps
Guide to creating new widgets following iOS Design System patterns and conventions
Icons, tags, titles, descriptions, dividers, and markdown rendering for iOS Design System
Using flutter_hooks for cleaner state management in iOS Design System widgets
Text fields, switches, pickers, date pickers, and form validation for iOS Design System
ScaffoldWidget, GroupedTableWidget, RowWidget, NavigationBar, and ToolBar for iOS Design System