Open Source Design Pattern Library

The Open Source Design Pattern Library has moved to http://osdpl.fluidproject.org

The Fluid wiki was the temporary home of the Open Source Design Pattern Library, and this content is no longer current. It has since been moved to the Drupal content management system which allows for more sophisticated presentation, better organization, improved searchability, and additional features such as workflow, tagging, ratings systems, etc.

What is a pattern?

According to architect Christopher Alexander, the father of the Pattern Language movement in computer science, a pattern is "a proven solution to a common problem in a specified context." Thus, each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.

Patterns serve as tools to communicate ideas, solutions, and knowledge about commonly recurring design problems.

Patterns can be expressed hierarchically, with each level representing a different level of granularity, and there may be many different ways to (physically) implement each pattern.

OSDP Library Goals

  • The primary goal of the Open Source Design Pattern (OSDP) Library will be to collect user interface design patterns and advocate their use as a way to choose the proper user interface in a website or application for a specific context.
  • The library will serve as a place to collect user interface design patterns from the open-source communities involved in the Fluid Project (Sakai, uPortal, Moodle, Kuali Student). It may be expanded to collect patterns from other open-source communities, or even organizations which would like to open-source their patterns.
  • The library will have a practical focus, intended mostly as a tool for junior/new designers as well as developers.

OSDP Library Audiences

  1. Junior designers & new designers to their community - they will likely both want to peruse the library to learn community-specific best practices as well as look for specific design solutions to problems.
  2. Developers who need to design the UIs they build - this group will most likely be looking for specific design solutions to problems, want more concrete solutions, and even code samples or components related to the pattern.
  3. More experienced designers - as most of them will have internalized many of the patterns, they will probably browse the pattern library for inspiration or to come up with innovative solutions to complicated problems.
  4. Creators of patterns, which may fall into any of the 3 categories above.