Minimize the use of modality. Generally, people prefer to interact with apps in nonlinear ways. Consider creating a modal context only when it’s critical to get someone’s attention, when a task must be completed or abandoned to continue using the app, or to save important data. — Apple
In Oscar’s earlier component libraries, we used a building-block approach by nesting well-defined and relatively simple components many times over. This approach allowed for a high degree of flexibility, and was easy to implement with React. Over time, however, this approach became verbose and lacked modularity. Larger components’ functionality depended on the correct usage and ordering of many components, as well as strict configuration for data being passed on properly. While this design didn’t directly affect users, it made development more tedious and slowed engineers unnecessarily.
Not having labels is not a good practice for accessibility. Yet, in certain situations, it seems like it is best to not display labels in UI (but continue to declare labels in implementation to ensure accessibility and hide them out of viewport using huge margins). These scenarios are:
Further, we’ve always believed in following the same pattern car manufactures follow. Major model updates every few years, and mid-cycle refreshes about half way into a model cycle. Basecamp Classic (February 2004), Basecamp 2 (March 2012), and Basecamp 3 (November 2015) are our major model updates (entirely new code under the hood, entirely new designs, etc), and the Basecamp 3 refresh like the one we’re about to launch in early 2018 is equivalent to a mid-cycle refresh in the car world.
…he design system to determine if a pattern was the result of the combination of Atoms or Molecules. We found it more user friendly to remove the Organisms level and distribute its content into the two adjoining levels. Design patterns that dealt more with layout (header, footers) went into Templates, while patterns that deliver more complex interactions (data visualizations) remain in the Molecules level despite the fact that they may contain Molecules themselves.
In some ways Features are akin to Pages in Atomic Design. In fact the transition from Pages to Features was the last change we enacted. The reason behind this change was the realization that in enterprise software a single interface very rarely completes one user story. Focusing on a feature instead of a singular page allows us to provide more context as to how and why a user of an application navigates from screen to screen to accomplish a task.