Before you begin
themes/alpha/config/) to your site’s root directory before editing anything.This ensures that your changes are preserved and won’t be overwritten by future Alpha updates.
Overview
The config/_default/menus.toml file defines and populates all menu entries used in Alpha.
Alpha supports six specific menu identifiers:
- [[main]],- [[main_secondary]],- [[main_social]]— used in the hamburger menu
- [[footer]],- [[footer_social]]— used in the footer
- [[sc_social]]— used in the social shortcode.
Usage
Menu Entry Format
# Menus
[[main]]          # Menu identifier        
  name = "Home"   # Menu entry
  url = "/"       # URL for the menu entry
  weight = 100    # Priority weight
# Social Menus
[[main_social]]                # Menu identifier
  name = "Github"              # Social name
  url = "https://github.com/"  # URL for the social entry
  pre = "#github"              # Icon for the social network
  weight = 100                 # Priority weight
Note: Menu identifiers are hardcoded, do not rename or alter them.
To disable a menu entry, either delete it or comment out the entire block:
# This entry will not render  
# [[main]]               
#  name = "Home"   
#  url = "/"       
#  weight = 100    
Social Menus
The pre key determines the icon shown for a social network.
If pre is omitted or contains an invalid value, the name key value is used instead.
Valid values:
# Social icon values
  pre = "#instagram"
  pre = "#tiktok"
  pre = "#twitter"
  pre = "#youtube"
  pre = "#facebook"
  pre = "#twitch"
  pre = "#reddit"
  pre = "#pinterest"
  pre = "#linkedin"
  pre = "#discord"
  pre = "#snapchat"
  pre = "#telegram"
  pre = "#bluesky"
  pre = "#mastodon"
  pre = "#github"
  pre = "#gitlab"
  pre = "#bitbucket"
Multilingual Menus
If your site is multilingual or your main language is not English, you’ll need to:
- Add translated versions of the menus.tomlfile, or
- Translate the default one for each language.
Otherwise, menus.toml will be used as a fallback.
To localize menus:
- Copy menus.toml
- Rename it to menus.[language_code].toml
- Translate the values only, do not change the keys.
Note: The [language_code] must match the
section language code defined in languages.toml.
Example:
# languages.toml
[fr]
  weight = 2
  languageName = "French"
  languageCode = "fr-CA"
# menus.fr.toml 
[[main]]              
  name = "Accueil"  
  url = "/"       
  weight = 100
Best Practices
- The original intent behind the menu design is to use [[main_secondary]]and[[footer]]for “utility pages” such as Policy, About, Contact, and similar entries.
- All menus are optional. Use only as many as your project requires.
- There is no hardcoded limit to the number of entries, but too many entries or long name values may visually break the layout.
Keys Reference
- name
- name = "Blog"— (string, optional)
- Display name of the menu entry.
- url
- url = "/blog/"— (string, optional)
- URL for the menu entry. Both relative and absolute URLs are supported.
- weight
- weight = 100— (integer, optional)
- Sets the order of the menus entries. Lower values appear first.
- pre
- pre = "#github"— (string, optional)
- Displays a social network icon. Must use a predefined value from the list above.
- Used only in [[main_social]],[[footer_social]]and[[sc_social]]