Creating Pages
Page Structure
All pages in the Dashboard follow this structure:
Following this structure ensures that:
- Your pages look consistent with the rest of the Dashboard
- Your page content is responsive
- Your page can be further extended using the pageBlocks API
Note that the ListPage and DetailPage
components internally use this same structure, so when using those top-level components you don't need to wrap them
in Page etc.
Block Columns
The PageLayout arranges its PageBlock children into columns based on each block's column prop:
main: the wider main content areaside: the narrower sidebarfull: spans the full width of the layout, above the main/side columns
Full-width blocks are always rendered above the main/side columns, regardless of their
order among the PageLayout children. This makes column="full" well-suited to wide content such
as data tables on list pages.
Full-width without a card
A PageBlock wraps its content in a bordered card. If you want a full-width block with no card
chrome — for example, a block that supplies its own container such as a DataTable — use the
FullWidthPageBlock component instead:
Page Routes & Navigation
Once you have defined a page component, you'll need to make it accessible to users with:
- A route (url) by which it can be accessed
- Usually a navigation bar entry in the main side navigation of the Dashboard
Both of these are handled using the DashboardRouteDefinition API:
For a complete guide to the navigation options available, see the Navigation guide