Skip to content

Buttons & Display

MiuixButton

A Miuix-style button with secondary colors by default; tappable with a press overlay.

ParameterTypeDefaultDescription
onPressedVoidCallback?requiredTap callback; null disables the button
childWidgetrequiredButton content
enabledbooltrueWhether the button is enabled
cornerRadiusdouble16Squircle corner radius
minWidthdouble58Minimum width
minHeightdouble40Minimum height
colorsMiuixButtonColors?null (defaults to MiuixButtonDefaults.buttonColors, secondary)Color configuration
insideMarginEdgeInsetsGeometryEdgeInsets.symmetric(horizontal: 16, vertical: 13)Inner padding

Example:

dart
MiuixButton(
  onPressed: () {},
  child: const MiuixText('OK'),
)

MiuixTextButton

A text button that builds a MiuixButton internally with centered text.

ParameterTypeDefaultDescription
textStringrequired (positional)Button text
onPressedVoidCallback?requiredTap callback; null disables the button
enabledbooltrueWhether the button is enabled
cornerRadiusdouble16Squircle corner radius
minWidthdouble58Minimum width
minHeightdouble40Minimum height
colorsMiuixButtonColors?null (defaults to secondary colors)Color configuration
insideMarginEdgeInsetsGeometryEdgeInsets.symmetric(horizontal: 16, vertical: 13)Inner padding
textStyleTextStyle?null (defaults to textStyles.button)Text style

Example:

dart
MiuixTextButton('Cancel', onPressed: () {})

MiuixButtonColors

Button color configuration; all four fields are required.

ParameterTypeDefaultDescription
colorColorrequiredContainer background color
disabledColorColorrequiredContainer background color when disabled
contentColorColorrequiredContent color
disabledContentColorColorrequiredContent color when disabled

Example:

dart
const MiuixButtonColors(
  color: Colors.blue,
  disabledColor: Colors.blueGrey,
  contentColor: Colors.white,
  disabledContentColor: Colors.white70,
)

MiuixButtonDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
minWidth58Minimum width
minHeight40Minimum height
cornerRadius16Squircle corner radius
insideMarginEdgeInsets.symmetric(horizontal: 16, vertical: 13)Inner padding
Static MethodReturnsDescription
buttonColors(BuildContext)MiuixButtonColorsDefault secondary button colors
buttonColorsPrimary(BuildContext)MiuixButtonColorsPrimary button colors

MiuixIconButton

A Miuix-style icon button; circular by default (diameter 40) with a transparent background.

ParameterTypeDefaultDescription
onPressedVoidCallback?requiredTap callback; null disables the button
childWidgetrequiredIcon content
enabledbooltrueWhether the button is enabled
backgroundColorColor?nullBackground color; null means transparent
cornerRadiusdouble40Corner radius (circular by default)
minHeightdouble40Minimum height
minWidthdouble40Minimum width
holdDownStateboolfalseForce the held-down visual state (e.g. while a dropdown is open)

Example:

dart
MiuixIconButton(
  onPressed: () {},
  child: MiuixIcon(vector: MiuixIcons.extended.byName('settings')!),
)

MiuixIconButtonDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
minWidth40Minimum width
minHeight40Minimum height
cornerRadius40Corner radius (circular, diameter 40)

MiuixFloatingActionButton

A Miuix-style floating action button with a circular background and shadow; content color inherits onSurface by default.

ParameterTypeDefaultDescription
onPressedVoidCallback?requiredTap callback; null disables the button
childWidgetrequiredChild widget
enabledbooltrueWhether the button is enabled
shapeShapeBorderStadiumBorder()Shape
containerColorColor?null (defaults to colors.primary)Container background color
shadowElevationdouble4Shadow elevation (logical pixels)
minWidthdouble60Minimum width
minHeightdouble60Minimum height

Example:

dart
MiuixFloatingActionButton(
  onPressed: () {},
  child: MiuixIcon(vector: MiuixIcons.extended.byName('add')!),
)

MiuixFloatingActionButtonDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
minWidth60Default minimum width
minHeight60Default minimum height
shadowElevation4Default shadow elevation
shapeStadiumBorder()Default shape; a circle under square bounds, a capsule under rectangular bounds

MiuixCard

A Miuix-style card with squircle corners; propagates content color downward, with optional tap and press feedback.

ParameterTypeDefaultDescription
cornerRadiusdouble16Corner radius
insideMarginEdgeInsetsGeometryEdgeInsets.zeroInner padding
colorsMiuixCardColors?null (defaults to surfaceContainer / onSurfaceContainer)Color configuration
onPressedVoidCallback?nullTap callback
onLongPressVoidCallback?nullLong-press callback
feedbackTypeMiuixPressFeedbackTypeMiuixPressFeedbackType.nonePress feedback type (none / sink / tilt)
childWidget?nullChild widget

Example:

dart
const MiuixCard(
  insideMargin: EdgeInsets.all(16),
  child: MiuixText('Card content'),
)

MiuixCardColors

Card color configuration; both fields are required.

ParameterTypeDefaultDescription
colorColorrequiredContainer background color
contentColorColorrequiredContent color

Example:

dart
const MiuixCardColors(
  color: Colors.white,
  contentColor: Colors.black,
)

MiuixCardDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
cornerRadius16Default corner radius
insideMarginEdgeInsets.zeroDefault inner padding
Static MethodReturnsDescription
defaultColors(BuildContext)MiuixCardColorsDefault colors: surfaceContainer / onSurfaceContainer

MiuixSurface

A Miuix-style surface providing background color, content color, border, and shadow; propagates content color downward.

ParameterTypeDefaultDescription
colorColor?null (defaults to colors.surface)Background color
contentColorColor?null (defaults to colors.onSurface)Content color
cornerRadiusdouble0Corner radius; 0 means square corners
squircleEnabledbooltrueWhether squircle corners are enabled
borderBorder?nullBorder
shadowElevationdouble0Shadow elevation (logical pixels)
onPressedVoidCallback?nullTap callback; when non-null the surface is tappable
enabledbooltrueWhether tapping is enabled
childWidgetrequiredChild widget

Example:

dart
const MiuixSurface(
  cornerRadius: 12,
  child: MiuixText('Surface content'),
)

MiuixBadge

A Miuix-style badge. When child is null it draws a 6x6 dot; otherwise a capsule of at least 16x16.

ParameterTypeDefaultDescription
containerColorColor?null (defaults to colors.error)Container background color
contentColorColor?null (defaults to colors.onError)Content color
childWidget?nullContent; a dot is shown when null

Example:

dart
const MiuixBadge(child: MiuixText('9'))

MiuixBadgeDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
size6Default size of the dot badge without content
largeSize16Default minimum size of the badge with content
Static MethodReturnsDescription
containerColor(BuildContext)ColorDefault container color; maps to theme error
contentColor(BuildContext)ColorDefault content color; maps to theme onError

MiuixBadgedBox

A container that places a badge at the anchor's top-right corner; the box size is determined by child, and placement mirrors under RTL.

ParameterTypeDefaultDescription
badgeWidgetrequiredThe badge (usually a MiuixBadge)
childWidgetrequiredAnchor child
topBounddouble?nullTop clamp bound; no clamping by default
endBounddouble?nullEnd-direction clamp bound; no clamping by default

Example:

dart
MiuixBadgedBox(
  badge: const MiuixBadge(),
  child: MiuixIcon(vector: MiuixIcons.extended.byName('messages')!),
)

MiuixHorizontalDivider

A horizontal divider that fills the available width; default thickness 0.75.

ParameterTypeDefaultDescription
thicknessdouble0.75Line thickness
colorColor?null (defaults to colors.dividerLine)Line color

Example:

dart
const MiuixHorizontalDivider()

MiuixVerticalDivider

A vertical divider that fills the available height; default thickness 0.75.

ParameterTypeDefaultDescription
thicknessdouble0.75Line thickness
colorColor?null (defaults to colors.dividerLine)Line color

Example:

dart
const SizedBox(height: 24, child: MiuixVerticalDivider())

MiuixDividerDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
thickness0.75Default thickness 0.75dp
Static MethodReturnsDescription
dividerColor(BuildContext)ColorDefault color, taken from MiuixTheme.colors.dividerLine

MiuixSmallTitle

A small title using the subtitle style (14sp bold), default color onBackgroundVariant.

ParameterTypeDefaultDescription
textStringrequired (positional)Title text
textColorColor?null (defaults to colors.onBackgroundVariant)Text color
insideMarginEdgeInsetsGeometryEdgeInsets.symmetric(horizontal: 28, vertical: 8)Inner padding

Example:

dart
const MiuixSmallTitle('Section title')

MiuixBasicComponent

The Miuix basic row, widely used by extension components; an internal RenderBox reproduces the 2:5:3 start/center/end measurement constraints.

ParameterTypeDefaultDescription
titleString?nullTitle text
titleColorMiuixBasicComponentColors?null (defaults to titleColor)Title color configuration
summaryString?nullSummary text
summaryColorMiuixBasicComponentColors?null (defaults to summaryColor)Summary color configuration
startActionWidget?nullStart action
endActionsList<Widget>?nullEnd action list
bottomActionWidget?nullBottom action
insideMarginEdgeInsetsGeometryEdgeInsets.all(16)Inner padding
onClickVoidCallback?nullTap callback
onClickLabelString?nullAccessibility tap label
roleMiuixBasicComponentRole?nullAccessibility role (button / checkbox / radioButton / switchControl / tab / dropdownList)
holdDownStateboolfalseForce the held-down visual state
enabledbooltrueWhether the component is enabled
contentList<Widget>?nullCustom center content; built from title/summary when null

Example:

dart
MiuixBasicComponent(
  title: 'Title',
  summary: 'Summary',
  onClick: () {},
)

MiuixBasicComponentRole

Accessibility role enum for BasicComponent.

ValueDescription
buttonButton
checkboxCheckbox
radioButtonRadio button
switchControlSwitch
tabTab
dropdownListDropdown list

MiuixBasicComponentColors

BasicComponent color configuration; both fields are required.

ParameterTypeDefaultDescription
colorColorrequiredColor when enabled
disabledColorColorrequiredColor when disabled

Example:

dart
const MiuixBasicComponentColors(
  color: Colors.black,
  disabledColor: Colors.grey,
)

MiuixBasicComponentDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
insideMarginEdgeInsets.all(16)Default padding around the component, 16 logical pixels on all sides
Static MethodReturnsDescription
titleColor(BuildContext)MiuixBasicComponentColorsDefault title color
summaryColor(BuildContext)MiuixBasicComponentColorsDefault summary color

MiuixText

Miuix-style text; default style textStyles.main, color taken from MiuixContentColor.

ParameterTypeDefaultDescription
textStringrequired (positional)Text content
colorColor?null (defaults to content color; explicit color has highest priority)Text color
fontSizedouble?nullFont size
fontWeightFontWeight?nullFont weight
fontFamilyString?nullFont family
letterSpacingdouble?nullLetter spacing
fontStyleFontStyle?nullFont style
decorationTextDecoration?nullText decoration
textAlignTextAlign?nullText alignment
heightdouble?nullLine height
maxLinesint?nullMaximum number of lines
overflowTextOverflow?nullOverflow handling
softWrapbooltrueWhether to soft-wrap
styleTextStyle?null (defaults to textStyles.main)Base style

Example:

dart
const MiuixText('Hello, Miuix')

MiuixIcon

Miuix-style icon. Provide exactly one of icon / vector / child; monochrome icons are tinted via tint.

ParameterTypeDefaultDescription
iconIconData?nullMaterial icon data
vectorMiuixVectorIcon?nullBuilt-in Miuix vector icon
childWidget?nullCustom icon widget (e.g. multicolor icons)
tintColor?null (defaults to content color; pass kMiuixTintUnspecified to disable tinting)Tint color
contentDescriptionString?nullAccessibility label; no Semantics wrapper when null
sizedouble?null (the icon path falls back to 24)Icon size

Example:

dart
MiuixIcon(vector: MiuixIcons.extended.byName('favoritesFill')!, size: 24)

MiuixIconDefaults

Private constructor; only static fields/methods.

ConstantValueDescription
defaultSize24Default icon size (logical pixels)

Released under the Apache-2.0 License.