Sidenav()

Creates a slide-out side navigation panel. Sidenavs are commonly used for mobile navigation menus triggered from a navbar hamburger button.

Syntax
Result = MaterialSB::Sidenav(Flags = #Sidenav_Default)
Parameters
Flags Optional. Combination of sidenav flags for positioning and behavior.
Flags
FlagDescription
#Sidenav_DefaultStandard sidenav (slides in from left)
#Sidenav_FixedAlways visible on large screens
#Sidenav_RightOpen from the right side
#Sidenav_CloseOnClickClose sidenav when a link is clicked
Return Value

Returns the sidenav element. Use this reference for Init().

Remarks

Important: Sidenav requires Init() to be called before it can be used.

The sidenav is automatically added to the document body. Use SidenavAddLink() to add navigation links with optional icons, SidenavAddDivider() for separators, SidenavAddSubheader() for section headers, and SidenavAddUserView() for a user profile section at the top.

To connect a sidenav to a navbar hamburger button, use NavbarAddSidenavTrigger() with a matching ID.

Example
Procedure Main(Success)
  If Success
    ; Create navbar with sidenav trigger
    MaterialSB::Navbar(MaterialSB::#Navbar_Shadow2)
    MaterialSB::NavbarAddSidenavTrigger("mobile-nav")
    MaterialSB::NavbarAddLogo("My App")
    
    ; Create sidenav
    mySidenav = MaterialSB::Sidenav()
    MaterialSB::SetAttribute(mySidenav, "id", "mobile-nav")
    
    ; Add user profile section
    MaterialSB::SidenavAddUserView("John Doe", "john@example.com", "images/avatar.jpg", "images/bg.jpg")
    
    ; Add navigation links with icons
    MaterialSB::SidenavAddLink("Dashboard", "#dashboard", "dashboard")
    MaterialSB::SidenavAddLink("Profile", "#profile", "person")
    MaterialSB::SidenavAddLink("Settings", "#settings", "settings")
    
    ; Add divider and subheader
    MaterialSB::SidenavAddDivider()
    MaterialSB::SidenavAddSubheader("More")
    
    MaterialSB::SidenavAddLink("Help", "#help", "help")
    MaterialSB::SidenavAddLink("Logout", "#logout", "exit_to_app")
    
    ; Initialize sidenav
    MaterialSB::Init(mySidenav, #Null)
    
    ; Main content
    MaterialSB::Row(MaterialSB::#Grid_Container)
      MaterialSB::Col(12)
        MaterialSB::Append(MaterialSB::Header("Welcome", 3))
        MaterialSB::Append(MaterialSB::Paragraph("Click the hamburger menu to open the sidenav."))
      MaterialSB::CloseCurrentParent()
    MaterialSB::CloseCurrentParent()
  EndIf
EndProcedure

MaterialSB::Download(@Main())
See Also

SidenavAddLink(), SidenavAddDivider(), SidenavAddSubheader(), SidenavAddUserView(), NavbarAddSidenavTrigger(), Init()