Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


After a research and evaluation period (see: CSS Framework Research Notes), Foundation and Bootstrap have emerged to be the front runners. This attempts to document in detail the requirements of the framework to be used.


  • It will be difficult to use a framework for styling purposes in an Infusion component because of the lack of name spacing. Without a good way to namespace Infusion's use of a framework, there is a significant chance that Infusion framework styles will collide with integrator's existing styling.
  • Assuming we can name space Infusion's use of a CSS framework:
    • (question) The integrator may wish to override our default styling. In this case, would it be better to not have an Infusion CSS framework and use some default styles instead? This would make it easier for an integrator who desires to customize heavily.
    • (question)The integrator may wish to use our default styling. In this case the integrator is looking for the quickest and easiest way to use an Infusion component. Would using a CSS framework bring added value in this case?

Criteria Evaluation


Feature / Desired applicationBootstrapFoundation
Responsive layouts
  • Bootstrap uses fixed width containers that "snap" across breakpoints
  • Grid layout needs to follow a container-row-column hierarchy. Otherwise 15px paddings / margins don't align properly.
  • Foundation uses fluid width containers that stretch and shrink depending on the size of the client, with relevant breakpoints.
  • Foundation has a row-column hierarchy with paddings on the columns only. Row is only for containment.
Style reset
  • normalize.css is included in default package, but optional whether or not it is used in your markup.
Units in EMs

Current release (v3) uses pixels and not EMs. However, v4 (unreleased) will support EMs. See Mark Otto's January 9th response in this thread on Github.

  • Note: EMs will be supported. Unclear if REMs will be used.
  • UIO works well with Bootstrap's pixel units, although EMs are more desirable.
Foundation 5 uses REM units throughout. The exception being media queries which use EM units.
  • REMs are desirable and easier to use for CSS styling than EM because REMs always refer to the root EM and not the parent EM as with EM units.
  • REM units currently do not scale properly in UI Options. See
    serverFluid Project Issue Tracker
Ease of using default styles in a heavily customized application
  • +/-15px margin and padding on container, rows, and columns dictate a hierarchy and usage pattern. Customizing this or deviating from this pattern causes unintentional and unwanted alignment issues which can be hard to correct (involves overriding).
  • This hierarchy is required to ensure good scalable layouts.
  • Working with Foundation within a heavily customized application seemed very straight forward. Some styles needed to be overridden, but that was expected.
  • Foundation button has !important for font weight
Use of !important
  • important used for print media styling, visibility of collapsing navbar, and visible and hidden elements.
  • no use of !important on html elements
  • Important primarily used to position starting and ending Foundation classes such as offsets, start and end of navigation containers, hide/show elements (i.e. "hide-for-large"), and custom components (like Joyride widget).
  • Uses of !important on html elements
    • button: font-weight: normal !important;
    • select: webkit - appearance: none !important;

Namespacing framework classnames
  • Bootstrap uses generic classnames which may cause classname collisions.
  • A work-around is to use LESS or Sass to add a named container. See this as a possible solution:

UIO Theme generation

  • Themes can be created using the online tool but it is not a quick process and error prone:
  • Themes can also be created by modifying the variables.less file
  • There are a lot of variables to configure, experimentation will be needed to determine the effect of each variable and which variables should be modified for a theme.
  • Background colour can not be changed using the online customization tool:
  • Themes can be created by modifying the _settings.scss file
  • There are a lot of variables to configure, experimentation will be needed to determine the effect of each variable and which variables should be modified for a theme.
Effects of custom Foundation build with another framework 
  • REM sizing may be an issue (see below)
  • Namespace collisions make integrating another framework difficult
Possible Learner Prefs with CSS Framework
  • Bootstrap components can be turned into a Learner Preference.
  • For example:
    • Linearize / stack content by changing the grid layout
    • Navigation bar preferences: make tabs look like pills, make navigation pills stack
    • Pager: size, appearance, spacing
    • Alerts: change the way alerts are positioned or styled (i.e. make them bigger, put them in a floating panel etc.)
    • Hide / show screenreader-only content (elements with "sr-only" class).

  • Like Bootstrap, Foundation features can be turned into Learner Preferences
  • For example:
    • Linearize / stack content by changing grid layout
    • Reposition side navigation
    • Turn sub-nav (frequently used for filtering lists) from horizontal list into a drop-down menu.
    • Change the way link-buttons (links that look like buttons) appear
    • Make progress bars bigger and appear in different colours.
Example implementation of design


Use Case Exploration