Files
metabuilder/frontends/qt6/MaterialMapping.md

7.3 KiB
Raw Permalink Blame History

Material UI → QML Mapping

This reference ties every Material UI component that the Next.js frontend currently consumes to the closest QML equivalent from frontends/qt6/qmllib/Material or the built-in Qt Quick Controls primitives. Where we havent implemented a dedicated wrapper yet, the “QML counterpart” points at the Qt Quick Control that can be used to achieve the same structure and feel.

Material UI component QML counterpart Notes
Accordion / AccordionSummary / AccordionDetails Material.MaterialAccordion Expandable panel with header/summary and content slot that toggles expansion.
Alert / AlertTitle Material.MaterialAlert Custom Rectangle + Text + optional icon slot.
AppBar / Toolbar Material.MaterialAppBar / Material.MaterialToolbar Fixed Rectangle with RowLayout; exposes elevation, drop shadow, and toolbar slot for navigation actions.
Avatar / AvatarGroup Material.MaterialAvatar Circular Image/Rectangle that surfaces initials when no source is provided; group helpers can stack avatars.
Badge / Chip Material.MaterialBadge / Material.MaterialChip Already wired; badges accept accent/dense/outlined variants (and optional iconSource).
Box / Container Material.MaterialBox / Material.MaterialPaper Material.MaterialBox offers a simple column container, while Material.MaterialPaper wraps MaterialSurface for paper-like elevation/outline.
Breadcrumbs Material.MaterialBreadcrumbs Horizontal RowLayout of text/buttons separated by dividers.
Button / ButtonProps Material.MaterialButton Supports contained, outlined, and icon-enabled styles with ripple and disabled handling.
Card / CardContent / CardHeader / CardActions / CardMedia Material.MaterialCard + Box/ColumnLayout Cards already exist with padding/border/elevation tokens.
Checkbox Material.MaterialCheckbox CheckBox that applies Material colors and renders a custom indicator.
ChipProps Material.MaterialChip Accepts text + optional prefix/utility slots.
CircularProgress Material.MaterialCircularProgress BusyIndicator-based circle, colored via palette.
Collapse Material.MaterialCollapse Generic collapse container animated via height transitions.
Container Material.MaterialContainer Width-constraining Rectangle with column layout and consistent spacing.
CssBaseline Material.MaterialCssBaseline Background/typography reset that sets root window colors.
Dialog / DialogActions / DialogContent / DialogTitle Material.MaterialDialog Wraps QtQuick.Controls.Dialog + slot for actions, sections, icons.
Divider Material.MaterialDivider Simple horizontal line with palette color.
DividerProps Material.MaterialDividerProps Provides thickness/color helpers for divider props.
Drawer Material.MaterialDrawer Drawer from Qt Quick Controls with custom surface look.
FormControl / FormControlLabel / FormHelperText / FormLabel Material.MaterialFormField Label + helper text wrappers around Material.MaterialTextField.
Grid Material.MaterialGrid GridLayout wrapper exposing columns and spacing defaults.
IconButton Material.MaterialIconButton Icon+button with circular touch target and ripple.
InputAdornment Material.MaterialInputAdornment RowLayout that positions adornments next to text fields.
InputBase / TextField / TextFieldProps Material.MaterialTextField Material text field with outlined background, focused border, and caret colors.
InputLabel Material.MaterialInputLabel Styled Text placed above inputs.
LinearProgress Material.MaterialLinearProgress Rectangle with animated gradient track.
Link Material.MaterialLink Text with underline + hover opacity + MouseArea; clicking opens href via Qt.openUrlExternally.
List / ListItem / ListItemButton / ListItemIcon / ListItemText Material.MaterialList set of Repeater + Material.MaterialListItem Compose vertical menus with icons and text.
Menu / MenuItem Material.MaterialMenu / Material.MaterialMenuItem Wraps Qt Quick Menu so you can customize menu labels/icons.
MenuProps Material.MaterialMenuProps Props wrapper that forwards to Qt Quick Menu and exposes action tracking.
Pagination / PaginationItem Material.MaterialPagination Row of buttons that mirror Next.js Pagination styles.
Paper Material.MaterialPaper Surface Rectangle that uses surface palette + outline.
Popover Material.MaterialPopover Popup with arrow and surface coloring.
PopoverProps Material.MaterialPopoverProps Props helper for popover-specific flags like arrow visibility.
Radio / RadioGroup QtQuick.Controls RadioButton plus Material.MaterialRadioGroup RowLayout that keeps buttons themed.
Select / SelectChangeEvent Material.MaterialSelect ComboBox shim with label/input slot.
Skeleton Material.MaterialSkeleton Animated gradient Rectangle for loading placeholders.
Slider / SliderProps Material.MaterialSlider QtQuick.Controls.Slider with palette colors.
Snackbar Material.MaterialSnackbar Bottom-aligned Rectangle that slides in/out.
Stack Material.MaterialStack Chooses ColumnLayout/RowLayout depending on orientation property.
Switch / SwitchProps Material.MaterialSwitch Toggle control built on QtQuick.Controls.Switch with dark background.
Tab / Tabs Material.MaterialTabBar + Material.MaterialTabContent TabView analog with indicator built from Rectangle.
Table / TableHead / TableBody / TableRow / TableCell / TableContainer / TableFooter Material.MaterialTable Basic grid using Repeater + RowLayout + ColumnLayout replicating header/body separation.
TabsProps Material.MaterialTabBar Accepts orientation/scroll props.
Theme / ThemeProvider / useTheme Material.MaterialPalette / Material.MaterialTheme Singleton palette plus helper QtObject for derived colors.
ToggleButton / ToggleButtonGroup Material.MaterialToggleGroup RowLayout of Material.MaterialButton toggles with exclusive property.
Toolbar Material.MaterialToolbar Horizontal container used inside navigation bars.
Tooltip / TooltipProps Material.MaterialTooltip Floating Rectangle with arrow and text, anchored to host.
Typography Material.MaterialTypography Text wrapper providing Material font weights/sizes (h1h4, button, body).
Breadcrumbs (2nd mention) Material.MaterialBreadcrumbs See above for horizontal nav.
useMediaQuery / useScrollTrigger / useTheme Signals exposed via Material.MaterialResponsive helpers Provide screen width bindings and scroll watchers for AppBar.

Additional Qt Quick Controls (Tabs, Dialog, Menu, Drawer, Slider, Switch, RadioButton, ComboBox, TableView, ProgressBar, MenuBar, etc.) can be composed directly when the Material-specific wrapper doesnt exist yet. File a follow-up when you need a dedicated component and well implement it inside qmllib/Material.

This mapping is kept up to date whenever a new Material UI pattern is added to the Next.js surface, so the Qt6 team knows which QML primitives to extend for a faithful replica.