Developer Community | Fellowship Technologies | Dynamic Church Conference DESIGN PATTERNS LIBRARY & CODE STANDARDS Design Patterns Code Standards Overview This document contains normative guidelines for web applications built by the Product Development department of Fellowship Technologies, as specified by the UX team. It is to be readily available to anyone who wishes to check the iterative progress of our best practices. Table of Contents Design Patterns Dynamic Interfaces Add Another Confirmation Error Feedback Drawer Navigation Logout Counter Note: Our code standards are free to repurpose for your own use, under a Creative Commons attribution / non-commercial / share-alike license. We simply ask for a link back to the original. Menus & Actions Gear Menu Actions Forms Design Patterns The primary benefit of using design patterns is that we are not constantly re-inventing the wheel when coming up with the general functionality of a site or web application. Another benefit is that these design patters often mirror or mimic other similar functionality found throughout the rest of the Internet. This allows users to feel more comfortable and familiar with a web application, rather than having to learn a foreign system. Design patterns can help applications be understood quicker. They can be thought of in terms of various automobiles. Though they differ, the steering wheel and pedals are readily familiar to any licensed driver. Fieldset vs. Box Simple Form Complex Form Miscellaneous Back Tab Composition Rich Text Editor Enhanced Actions Pill Tabs Advanced Search Match Indicator Dynamic Interfaces Add Another Personalized Data Involvement Graph Modal Window Tables Alpha Bar Delete Links Sortable Rows PROBLEM PATTERN RESULT The user needs to add another piece of data, akin to the information s/he is currently viewing. An add link is placed below the list of data. Delete links accompany each newly added item. This allows the user to add new data, without having to visit a new page for data entry. Confirmation PROBLEM PATTERN RESULT The user needs to be informed when an action was accomplished successfully. A dynamic message overlay appears for a few seconds, then quietly animates out of sight. This gives brief feedback, without being obtrusive to the user as s/he continues to work. Error Feedback PROBLEM PATTERN RESULT The user needs to be made aware of potential problems with a form submission. A message appears, prominently above page content, listing the errors that were found. This allows the user to read the errors, and dismiss with the hide link when finished. Drawer Navigation PROBLEM PATTERN RESULT The user needs to see, at a glance, a listing of hierarchical links in an application. A dynamic drawer menu slides down over the page content, revealing helpful links. This allows the user easier access to sections of the application, no matter where s/he is. Logout Counter PROBLEM PATTERN RESULT In the interest of protecting personal data, an unattended session should be ended. If a user leaves the browser idle for a period of time, s/he is prompted with a countdown. Unless the user dismisses the modal within 5 minutes, the app redirects to the login page. Menus & Actions Gear Menu PROBLEM PATTERN RESULT The user needs actionable items one-click away, without cluttering the interface. A gear menu contains a list of collapsible actions, at the top-right of the interface. This allows quick access to a variety of actions, while still allowing the user to work. Actions PROBLEM PATTERN RESULT The user needs to have actionable items visibly nearby, but not as the page's focal point. An actions sidebar is provided, which is supplementary to the page's primary purpose. The user can focus on the task at hand, but can also take secondary actions, if need be. Forms Fieldset vs. Box PROBLEM PATTERN RESULT Data needs to be grouped into logical sections, for easier visual scanning and reading. Small portions go in a <fieldset> . Larger groupings should be in <div class="box"> . This helps visually distinguish the size of data sets and importance of form elements. Simple Form PROBLEM The user wants to enter a small amount of data, and needs an accommodating interface. PATTERN When a form only requires limited information, labels and inputs belong on their own lines. RESULT CODE This allows the user to quickly fill out the form, because it is easy to scan visually. View example Complex Form PROBLEM PATTERN RESULT CODE The user wants to enter a large amount of data, and needs an accommodating interface. Form labels and inputs are arranged side-by-side to allow more inputs per vertical space. This allows the user to enter more data, without having to scroll the page as much. View example Miscellaneous Back Tab PROBLEM PATTERN RESULT The user needs to return to a previous page, while maintaining the current state of the session. In the top-left of the page, there is a back tab that will take the user to the previous page. This allows the user to go back, without breaking the statefulness of the application. Composition Rich Text Editor PROBLEM PATTERN RESULT The user needs to compose an rich text message, such as an email or church announcement. A rich text editor offers a familiar interface, akin to what might be seen in a word processor. This allows the user to compose a message using an intuitive point-and-click workflow. Enhanced Actions PROBLEM PATTERN RESULT The user needs to insert variables such as {FirstName} and {LastName} into a message. Using one-click actions on the side of a page, the user can easily supplement an email. This allows a user to write messages quickly, which can be sent to multiple recipients. Pill Tabs PROBLEM The user needs to access sub-content that has been obscured within the same page. PATTERN Using stylized links that function as tabs, the user can hide or show relevant material. RESULT CODE This allows the interface to remain uncluttered, while still facilitating heavier content. View example Advanced Search PROBLEM PATTERN RESULT CODE The user needs to perform a search using a specific set of criteria, beyond a basic query. Using a toggle-able set of additional search fields, the user can enter more specific details. By providing additional search criteria, the user can narrow the result set considerably. View example Match Indicator PROBLEM PATTERN RESULT When attempting to compare two or more data sets, the user needs to know if they match. A strength indicator depicts visually (on a scale of 1 to 5) how close of a match is found. This allows a user to easily see how closely related the results are to the search criteria. Personalized Data Involvement Graph PROBLEM PATTERN RESULT The user needs to see how involved an individual has been in an area of ministry. Attendance and involvement in various programs can be plotted chronologically. This allows an administrator to gauge how active people are in their various roles. Modal Window PROBLEM PATTERN RESULT The user needs to be able to view more details about a person, without leaving the page. Using a modal overlay, a person's contact info can be displayed above everything else. This affords a quick synopsis while still maintaining all context of the task at hand. Tables Alpha Bar PROBLEM The user is viewing a great deal of information and needs to navigate through it logically. PATTERN RESULT For extremely large data sets, an alphabetical listing is displayed at the top of the table. This allows the user to drill down via the first letter of a single aspect of data (name, etc). Delete Links PROBLEM When viewing a set of data, the user needs to be able to delete one or more entries. PATTERN Delete links are displayed in the far-right hand of the data set, to prevent mis-clicks. RESULT This allows the user to delete specific items without going to a separate admin page. Sortable Rows PROBLEM The user needs to be able to rearrange the order of rows in a particular data table. PATTERN Up and down arrows facilitate the movement of a row, higher or lower in the table. RESULT This allows the user to have more granular control over how the data is displayed. Status Indicator PROBLEM The user needs to be see the status of a batch of requests that has been processed. PATTERN The status of each unique request is shown, and is color coded by success or failure. RESULT This allows users to easily scan the page for requests that need special attention. Curated by the UX Team at Fellowship Technologies | Color coded via SyntaxHighlighter HTML5 validator | View source
© Copyright 2024