User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:style_guide

This is an old revision of the document!


HTML

  • NO Inline Javascript. None. At all. Ever. In any HTML body output.
    • NO onclick/onmouseover/etc attributes
    • NO inline <script..>something();</script> blocks
    • NO use of javascript:something() in hyperlink hrefs.
  • No Inline CSS styling should appear in any HTML output.
    • No style attributes
    • No inline <style>..</style> blocks
  • I strongly suggest looking at PHPTAL over any other templating engine I've come across. This will assist us with security (automatically escaping strings to prevent XSS attacks), internationalisation and ease of template maintenance. The templates are valid XML documents and can be rendered directly in a web browser without needing to be parsed through the templating engine.
  • Do not use tables for layout unless the content is actually table data.

CSS

  • The only method allowed for including CSS styling is via including an external CSS stylesheetin the <head> of the document.
  • Use multiple stylesheets for different screen resolutions so that the page will appear differently on a smartphone (small horizontal width) and widescreen monitor (large horizontal width).
  • Support for a print stylesheet which emphasizes legibility, clarity and efficient printing.
  • Support for mobile devices screen sizes (iPhone/Android/Windows Phone 7).
    • Must be optional
    • Must support screen rotation
    • Must not require a separate url
  • Split layout and colour/text into different stylesheets. The layout stylesheet would control the layout of components on the screen (positions, widths, heights, etc) whereas the colour/text stylesheet would control the branding of MantisBT. This could make it easier for people to rebrand MantisBT as they won't need to worry about breaking layout CSS to change colours and text effects on their MantisBT install.
    • Investigate media queries to determine width
  • Use a fluid layout

Javascript

  • The only method allowed for including Javascript is via including an external script file in the <head> of the document.
  • The pages should be able to function without Javascript enabled. If Javascript is available then it can be used to replace parts of the DOM with more advanced functionality (in the same way jQuery UI operates).
  • jQuery should be used exclusively for any Javascript-based features so that we don't have a huge mismatch of various frameworks and libraries to maintain in the future. jQuery plugins are OK to use (there are plenty of them) but we should at least try to opt for plugins that have high rates of usage and are under active and healthy development.

Accessibility

  • Look at supporting right-to-left (RLT) in the redesign for languages that require this functionality.
  • Investigate accessibility concerns in depth to determine how the pages will work in screen readers, on browsers with extra large font sizes, for colour blind users, etc.

User Interface

  • Avoid dumbing down the interface to cater for computer illiterate users (and making the interface look pretty) at the expense of making life hard for “power users”. Power users are those who are attached to MantisBT for many hours of the day triaging issues, scheduling work, creating reports, etc and they desire the most efficient workflow possible. Having to find functionality that has been hidden away behind multiple mouse clicks is going to frustrate them.

Questions for discussion

  1. App Mode – several browsers are now supporting App Mode, do we have any requirements for that? Are there standards around this?
  2. Any requirements to have MantisBT grease monkey friendly to allow users to easily customize the page? Not sure what that means, does it mean naming fields? divs, etc?
  3. Supported browsers / versions? What is the cut off?
  4. Come to some sort of arrangement on how plugins will manipulate the HTML to insert their own buttons, widgets, etc as required.
mantisbt/style_guide.1287108169.txt.gz · Last modified: 2010/10/14 23:00 (external edit)

Driven by DokuWiki