Skip to main content

Navigation and Shell

Main model

The client is built around three primary tab flows:

  • Projects;
  • Ranking / Statistics;
  • Information.

Detail screens, filters, dialogs, and nested settings/profile flows open on top of the tab shell.

Root shell responsibilities

MainScreen owns:

  • current tab selection;
  • bottom tab bar visibility;
  • overlay navigation for nested screens;
  • guest-mode restrictions.

Custom tab bar

The bottom bar is a custom Compose component with its own active indicator, icons, and transitions. The important contract is behavioral:

  • the active tab must stay visually obvious;
  • switching tabs must not destroy internal screen state unnecessarily;
  • overlay flows must not reset the selected tab.