Versions Compared


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

What is the Fluid Project?

Fluid is an open, collaborative project to improve the user experience of community -source software .

Our goal is to help improve the user experience of community source web applications including Sakai, uPortal, Kuali Student and Moodle. Fluid combines both design and technology to create a living library of sharable user interface components that can be reused across projects. These components are built specifically to support flexibility and customization while maintaining a high standard of usability, accessibility, internationalization, and security.

In order to encourage user-centered design within community source software, Fluid is also creating a designer's toolkit that offers useful design, accessibility, and usability strategies and documentation.

Fluid includes members of the Sakai, uPortal, Moodle, and Kuali Student communities who are working together to address the precarious values of usability, accessibility, internationalization, and more within academic software projects.



Why Use Fluid?

Fluid components differ from other javascript library components in that they are built fromt the ground up with several core requirements:

  • Accessibility (a11y), usability, and internationalization (i18n) are key
  • Must strive to be DOM-agnostic
  • Must provide a good user experience in any situation
  • Must be completely customizable

Core Component Requirements

  • Internationalization (i18n)( Removed)
  • DOM Agnosticism and playing it safe
    • Being DOM agnostic means adding an extra layer of separation in between presentation, behaviour, and markup. This layer further abstracts the behaviour layer to accomodate many different situations (in the markup and behavioural layers) and deal with them all gracefully. Our components cannot make assumptions about the surrounding (x)html markup. They can be placed in situations where normal operation might otherwise break the environment (ie. its not safe to traverse the DOM when it's in flux). While being markup agnostic cannot happen perfectly 100% of the time, it is something Fluid components to strive for.
  • Customization
    • Part of being DOM agnostic is to allow for extensive customization on many levels. Something Fluid components try to achieve is allowinng the implementor to easily change as much about the component as possible, allowing for a simpler and safer integration process.

Fluid Component Architecture

A Fluid component will typically follow this pattern:



community that

  • designs user interfaces
  • builds Web tools
  • teaches inclusive design
  • integrates interface components into open source applications

Our community consists of an international team of partners, individuals, and institutions focused on designing flexible, customizable, user-centered accessible interfaces.


Links in the wiki:

External Links to project websites

User Experience and Design


  • Development: Developer resources and technical information.
  • Daily builds: Links to our Continuum site and Sakai and uPortal demonstration instancesdaily build with in-context demonstrations of Fluid Infusion components.
  • Source Code: Access to the latest Fluid source code.


Other resources