1. Master Pages: User & Admin
The Ionic app consists of two main pages, each serving as a master layout:
- User Page: Contains a side menu and a navigation bar for intuitive user interaction.
- Admin Page: Includes only a side menu, focusing on administrative tasks without additional navigation clutter.
2. User Page Layout
The user interface aims to provide a seamless experience by incorporating:
- Side Menu: A collapsible menu for quick navigation.
- Navigation Bar: A persistent toolbar at the top for core actions.
- Tabs: A structured format for organizing content.

3. Code sample
3.1 User Page Code (user.page.html)
<ion-menu contentId="main-content">
<ion-header>
<ion-toolbar>
<ion-title>User Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item routerLink="/home">Home</ion-item>
<ion-item routerLink="/profile">Profile</ion-item>
</ion-list>
</ion-content>
</ion-menu>
<ion-page>
<ion-header>
<ion-toolbar>
<ion-title>User Dashboard</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-tabs>
<ion-tab tab="home"></ion-tab>
<ion-tab tab="profile"></ion-tab>
</ion-tabs>
</ion-content>
</ion-page>
3.2 Admin Page Layout
Administrators need a simpler interface focused on key functions. The split-pane layout allows for better content management.
Admin Page Code (admin.page.html)
<ion-split-pane>
<ion-menu contentId="admin-content">
<ion-header>
<ion-toolbar>
<ion-title>Admin Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item routerLink="/dashboard">Dashboard</ion-item>
<ion-item routerLink="/list-users">Users</ion-item>
</ion-list>
</ion-content>
</ion-menu>
<ion-page>
<ion-header>
<ion-toolbar>
<ion-title>Admin Dashboard</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-router-outlet></ion-router-outlet>
</ion-content>
</ion-page>
</ion-split-pane>
3.3 Routing Modules
To ensure proper navigation, routing modules define the paths for each page
User Routing Module (user-routing.module.ts)
const routes: Routes = [
{ path: 'home', loadChildren: () => import('./home/home.module').then(m => m.HomePageModule) },
{ path: 'profile', loadChildren: () => import('./profile/profile.module').then(m => m.ProfilePageModule) }
];
Admin Routing Module (admin-routing.module.ts)
const routes: Routes = [
{ path: 'dashboard', loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardPageModule) },
{ path: 'list-users', loadChildren: () => import('./list-users/list-users.module').then(m => m.ListUsersPageModule) }
];
4. Conclusion
By implementing distinct layouts in an Ionic app, developers can optimize usability for different roles. The user page features a side menu, navigation bar, and tabs for improved interaction, while the admin page provides a structured side menu with a split-pane layout for better content management.
I hope this article helps with your Ionic app development! If you’d like modifications or more details, let me know!