⌂
›
Reference
›
Controls and Layout
Controls and Layout
Ruflet already exposes a broad Flutter-style control surface. The current generated Ruflet-layer index contains 159 discovered controls, spanning layout, forms, navigation, charts, media, and platform-aware UI.
Core layout
These are the controls you will use in almost every app:
columnrowcontainerstackresponsive_rowgrid_viewlist_viewsafe_areacardcenterviewpagelet
These controls are enough to build:
- dashboards
- settings screens
- forms
- split-view layouts
- mobile-first stacked flows
Text and imagery
Common presentation controls include:
texttext_spaniconimagecircle_avatartooltipmarkdown
Buttons and actions
Ruflet supports several action styles:
buttonelevated_buttonfilled_buttonfilled_tonal_buttonoutlined_buttontext_buttonicon_buttonfloating_action_buttonpopup_menu_buttonmenu_barmenu_item_button
There is also good Cupertino coverage for adaptive interfaces:
cupertino_buttoncupertino_filled_buttoncupertino_tinted_button
Forms and input
Current form-friendly controls include:
text_fieldcupertino_text_fieldcheckboxcupertino_checkboxradioradio_groupswitchcupertino_switchsliderrange_sliderdropdownauto_completesegmented_buttoncupertino_segmented_buttoncupertino_sliding_segmented_buttonsearch_bar
Lists, tiles, and data display
For content-heavy apps you can use:
list_tilecupertino_list_tileexpansion_tiledata_tablebadgechipbannerdividervertical_divider
Adaptive and Cupertino UI
Ruflet is not limited to Material-style components. The current layer also includes:
cupertino_app_barcupertino_navigation_barcupertino_action_sheetcupertino_alert_dialogcupertino_bottom_sheetcupertino_date_pickercupertino_timer_pickercupertino_picker
Practical layout pattern
page.add(
container(
expand: true,
padding: 24,
content: column(
spacing: 16,
children: [
text(TOKPLACEHOLDER0TOKEN, style: { size: 28, weight: TOKPLACEHOLDER1TOKEN }),
text_field(label: TOKPLACEHOLDER2TOKEN),
row(
spacing: 12,
children: [
filled_button(content: text(TOKPLACEHOLDER3TOKEN)),
outlined_button(content: text(TOKPLACEHOLDER4TOKEN))
]
)
]
)
)
)What to keep in mind
- Use builder helpers for normal controls.
- Use
page.update(...)to mutate existing controls. - Reach for
responsive_row,grid_view, ornavigation_railwhen the app needs to scale to larger screens. - When in doubt, study Ruflet Studio and the examples folder for the current preferred calling style.