Interface checklist
Making new interfaces and improving existing ones
Setup
- Mybring is spelled correctly.
- Frontend setup is minimal for users and developers, and custom to the app. Smaller Webpack or Vite based configs are preferred.
- Browser tab title follow this pattern:
Regional name (if present) - Global name - Mybring
- URL is indicative of the app name.
- The global menu dropdown has the current area’s name, not the default "select area".
- All React apps in Mybring have to mount the app by using the provided ID
mybring-app-root
from Mybring Layout. Read up on Layout setup and mounting and ensure that the direct children of the mounted app are:nav id="mybring-nav" class="mybr-layout__sidebar regional-nav"
(if the app has a menu)main id="mybring-main" class="mybr-layout__main"
- Dummy data is realistic.
Tip: There are many JSON data generators out there. Good test and dummy data don’t contain the words test and dummy. - Update readme, Confluence and other documentation, so new people, yourself and other teams are able to run the application six months from now.
Interface
- Navigation titles give value by reflecting the content or action available on the page, not the type of interface.
Examples: Economy, environmental report, booking are descriptive; dashboard, table and form are not. - Column sorting should be relevant. It’s rarely any need to sort unordered numbers like telephone numbers, shipment numbers and postal codes.
- Table headers should be clear; as short as possible, but as long as necessary. What is implied by the content? Is the meaning lost if we use screen readers?
- Inputs and labels are connected by nesting or for/id attributes. This gives the input meaning and clicking the label activates the input. Input width also has a balance between reflecting content size, layout harmonisation and responsiveness.
- List of common terms we use.
- Labels, headers, buttons, menu items and so on use sentence case.
- HTML is clean, structured and correct. Use appropriate, meaningful, semantic elements, and CSS is CSS. It’s reusable, cascading and long-lasting.
- Texts are written from the users’ perspective, clear and short enough. There are no internal or temporary names in the interface. Is it clear who "Customer" is referring to?
Tip: Explaining how something works to another person is an excellent way to start writing good texts. - Time and date, as well as units and decimals, are in Norwegian standard.
- Consider icon usage and placement, especially in buttons and similar elements.
Testing
- Plan for testing. Internal testing. User testing. Test small changes along the way, texts and the complete solution, and set aside time to fix. Cross-team testing increases the total expertise and domain knowledge.
- Check that keyboard interaction works and that tab order is logical.
- Follow the accessibility guidelines and do testing.
- Norwegian is the main language, translate to English, Danish and Swedish.
- All links and requests work, especially important after updating, converting or moving.