This one shows you how to render a menu with your own Twig file instead of Solo's default markup — either by adding a template Drupal will discover, or by assigning one from the settings form.
What Solo already ships
Solo's templates/navigation folder holds the menu templates the theme uses, including menu--primary-menu.html.twig, menu--primary-sidebar-menu.html.twig, menu--account.html.twig, menu--sidebar-first.html.twig and menu--sitemap.html.twig. Copying one of these into your sub-theme is the fastest honest start: you inherit working markup, classes and ARIA attributes, then change only the part you care about.
The suggestions Solo adds for you
Drupal core only offers menu--MENU-NAME. Solo extends that in hook_theme_suggestions_menu_alter(), so a menu rendered inside a region also answers to:
menu--REGION.html.twigmenu--REGION--menu-block.html.twigmenu--REGION--MENU-NAME.html.twigmenu--REGION--MENU-NAME--menu-block.html.twig
That is what lets the same menu look one way in the header and another way in a sidebar. Underscores in the suggestion become hyphens in the filename, and a cache rebuild is needed before a new file is picked up. If you are working on the CSS side of this at the same time, the SMACSS categorisation walkthrough pairs well with it.
The no-code route
Under Global Site Settings there is a Menu template assignment tab listing every menu on the site with a template dropdown beside it. Four responsive templates can be chosen: Responsive menu (hover), Responsive menu (click), Sidebar menu (hover) and Sidebar menu (click). A template picked here overrides the region-based suggestion, and it is stored as theme configuration — no file, no deployment.
Solo runs on ^10.1 || ^11 || ^12 with PHP ^8.1, and the suggestion behaviour is the same across all three. Full details are on the Solo theme page.
If you would rather have this set up for you, Drupal theming services covers the work, and recent projects show the result.