This document is a work in progress |
This document captures reported challenges with using comprehensive theming in the Eucalyptus release, along with some initial recommendations as to how matters might be improved.
Quote from Florian Haas (Unlicensed):
How do we change the default sans-serif font from the default `"Open Sans" ,Verdana, Geneva, sans-serif`? ... My goal is being able to select my preferred sans-serif font myself, rather than being locked into Open Sans. That, quite frankly, seemed like a trivial goal but it now seems like a Herculean task. I'm still hoping that the actual difficulty is somewhere *between* trivial and Herculean.
Having the Ability to change fonts, as a user setting, particularly for paragraph text, would be beneficial to some learners who have reading difficulties. Ideally changes would be persistent across courses.
Ability to override text display characteristics (line height, space following paragraphs, letter spacing, word spacing) is a WCAG 2.1 AA requirement. I assume this could be accomplished through custom user stylesheets but a user settings UI would be much more likely to be used.
Quote from J'aime Ohm:
I’m theming an iOS application based on a themed web application and our front-end web developer is out today. I’m interested in quickly gleaning the color palette and fonts used in this application. Can someone tell me if there is a central/primary “colors” or “fonts” or similar file in edx-platform?
WCAG 2.1 AA color luminance contrast requirements are a crude heuristic that probably makes a site usable to a the vast majority of people who have print reading ability. However, enabling learner customization could take us a step closer to universal usability. For example, some learners would prefer light blue or yellow text on a black background. Some learners may have difficulty seeing any yellows or reds (not necessarily related to to red/green anomaly.)
High Contrast Mode in Windows and in Chrome (through Google's supported High Contrast extension) is frequently useful but not necessarily optimal. A brand-optimized High Contrast mode theme may be a step up for usability.
WCAG 2.1 has color luminance contrast requirements for infographics that may prove to be difficult to implement just because they constrain the available design space too much. A learner-selectable line pattern/color scheme system might allow more freedom for designers by supporting learner flexibility in the presentation. Example: WCAG 2.1 constrains the designer to (I'm guessing) 4 line colors for a line chart. With use of 3 or 4 line styles in addition to colors, the designer could still have as many as 16 colors available to use. Learners who have color contrast perception issues could switch to the High Contrast chart/infographics palette.
Quote from jjmirandad:
Talking about frustration. Its possible to use .underscore templates in theme folder??? How its this possible, because in all my test this files its loading from lms/templates!
Quotes from MIke Bifulco:
the underscore template thing really is a surprise. That means that several pages on thegymnasium.com will have a significant regression in theme functionality when we move from Birch→Dogwood/Eucalyptus
and:
I'm surprised [logistration] made it through to production without considering theming
It has been reported that comprehensive theming does not work for the wiki. This appears to be because the wiki uses Django Templates, while comprehensive theming works with Mako.
lms-main-v1.scss
but that won't affect the RTL versionNote that you can use the --themes options with paver update_assets to specify only the themes you would like to compile to speed up the development cycle.
|
Update the example theme to demonstrate all the use cases
Make extensive use of variables in Sass, rather than hard-coding colors, fonts etc into every file
This means that the variable can be overridden once, rather than having to override every file.
These variables would themselves be documented so that their purpose is clear for theme authors
Convert major pre-existing pages to the pattern library
Use the pattern library for all new front end features
Determine an approach for overriding JavaScript templates
A long term solution is to use HTTP/2 and then stop bundling JavaScript files