If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.


From MoodleDocs

Warning: This page is no longer in use. The information contained on the page should NOT be seen as relevant or reliable.

Moodle User Interface Guidelines > Link


The user needs to be provided the choice to issue a command. This command may be to submit form data.

Forces: factors that affect selection

  • Links take up less screen real estate than buttons
  • Buttons should be preferred for (at least primary) commands
  • A button is like a promise to the user that something will happen: the state of the application will change when the button is clicked. Buttons should not be used for navigation since that fails user expectations. When there is a link users can expect it to make sense to open it in a new tab, for instance.


The label of a button should be a command verb: "Save Settings".

Actions which can modify the state of Moodle (data files, database, session information) should be performed through buttons.

Buttons should never be used for navigation. Instead, use links.

With buttons, the command is usually mediated to the server in form of a POST parameter. Pressing the back button results the browser asking if the user wants to resubmit the form. To avoid this and keep the back button functional, redirect (using HTTP headers) the resulting page, to a new page after processing the data the browser sent.

Related guidelines

Related issues in the tracker

  • TODO: The course groups management UI uses buttons for navigation within the UI

Further information / Sources