The UXD Research team recently conducted a study to explore differences between light and dark visual themes for PatternFly’s navigation component. Previous research on this topic yielded inconclusive results, so the PatternFly team wanted to follow-up on that study to determine if meaningful differences in performance, perception, or preference existed or not between the two themes.
The test approach
For this study, a mixed methods approach was used in which data collection was conducted through unmoderated and moderated techniques. All data was collected through the Loop11 platform, an online user testing platform. Fifty-six participants performed task scenarios in the unmoderated protocol, while eight participants performed the same tasks in moderated testing.
Participants were presented with one of four variations of the interface (shown below).
Participants were asked to complete five tasks as part of the study. The first four tasks were designed to measure participants performance (i.e. task completion time) and perception (i.e. how readable is this interface?). The fifth task was designed to measure the participant’s preference for dark theme or light theme.
Following each question, participants were given a chance to explain why they responded the way they did. This method allowed us to gather quantitative and qualitative data to build a complete picture.
Data analysis on the quantitative data revealed that there were no statistical differences between light and dark navigation themes in terms of performance or perception. There was, however, a statistically significant difference in preference between the themes. Participants significantly preferred the dark theme more than the light theme and indicated this preference was due to the reduced strain on the eyes and the increased contrast between the navigation bar and the content area. For more details, check out the PatternFly Visual Theme Results PDF.
The PatternFly team has decided to move forward with a dark theme for navigation, as opposed to the light version given the research results. From a visual design perspective, the intent of the light navigation theme was to use dark imagery and backgrounds in the content area of the applications. The heavy dark content required a lighter navigation style to balance it. As PatternFly has been adopted, we realized that not all the applications and pages have data visualizations that use the dark imagery. For this reason, it made sense to adjust the approach to the dark theme for navigation.
Development will begin immediately to introduce the dark navigation theme to PatternFly. To ensure applications have adequate time to adopt and migrate, the dark navigation will be added to PatternFly as an opt-in solution. The plan is to deprecate the light navigation at a later date, after adequate time for adoption has passed.
After careful research and consideration, the latest version of PatternFly is introducing a new standard for buttons, recommending left-alignment for button groups in forms, with primary buttons always appearing as the first button in the button group. This approach is being applied across components like form, wizard, and modal, and the updates will be rolled out to the community in the coming weeks.
Members of the PatternFly community have questioned this decision for a few different reasons, but most commonly it’s because this alignment isn’t the convention users are most familiar with. So, why is PatternFly challenging designers and developers to move away from a familiar standard? Very simply, it’s not compatible with universal design, and it doesn’t align with our PatternFly principles.
The PatternFly principles ensure that, even as we evolve, we’re always staying true to the original goals we set out for the design system.
By following the principles of modularity, accessibility, and responsive design, we made several key decisions:
To maintain consistency, the order and position of form submit buttons shouldn’t change based on context. Alignment should be the same whether we present a form on a page, a form in a modal, or a form in a wizard.
To prioritize the user’s primary task, the primary action button should be presented first.
This approach reinforces a natural, conversational style where affirmative choices are generally presented first.
Accessibility standards require that actions be presented visually to users in the same order they are defined in the DOM. As a result of responsive design, interfaces can be laid out differently depending on screen size, meaning actions could be displayed to users horizontally or vertically. If the first action in a vertical stack of actions should be the primary action, then the first action in a row of actions should also be the primary action.
An observation made by a low vision student who participated in a UX design and research workshop confirmed that it would be beneficial to have primary actions presented first. 
To make it easier for users to complete a form, submit buttons should be presented in the same scan line as the form inputs.
This approach benefits users displaying the webpage in full screen mode on a large monitor. Based on previous feedback, we realized a large spatial gap between form content, like input fields, and buttons caused users to miss critical parts of their workflow.
This approach also benefits low vision users who use screen magnification devices to view the contents of a web page and rely on related information, like form inputs and form submit buttons, being in close proximity. The straw test is a great way to test the accessibility of a layout for these users.
Finally, this approach is consistent with a finding provided by Luke Wroblewski in his book Web Form Design. 
If you’re interested in learning more about how the PatternFly principles helped guide this decision, we go into further detail in the following sections.
Modularity and flexibility
Modular design systems enable you to take very isolated interaction patterns and combine them to build complex designs that can support different user tasks. Modularity helps ensure consistency, since isolated patterns shouldn’t change much between different contexts. With this in mind, we felt it critical for PatternFly that form submit buttons remain consistent in order and position as they are moved between various contexts.
When deciding on button placement, we considered every possible context: forms on pages, in wizards, in small modals, in large modals, forms with a single input, forms with numerous inputs. Because considering all possible scenarios—and not just your basic use case—is important when creating a design system.
After reviewing every possible variation, one approach—to align form submit buttons to the left with the primary action appearing first— emerged as the pattern that could be successfully applied to any context with consistency and without concern of creating any pain points for users.
Accessibility adds a new level of challenges and forces you to consider all the possible ways that a user can experience a web page. Are users sighted? Are they using magnification? Is the page full screen on a huge monitor, or on a screen the size of a phone? Are they using a keyboard to interact with the form? Are they using a screen reader?
When you start to consider all the ways that a user can interact with a web page, you realize that small things like alignment, proximity, and order can have a huge impact on their experience. Using spatial concepts to reinforce the progression of a workflow aren’t applicable to all users, specifically low vision, no vision, and also mobile users. Low vision users benefit from having the form submit buttons in the same scan line as the form fields. No vision users benefit from having the order of form submit buttons be consistent across any context. As designers, we should be willing to recognize that the spatial concepts we applied in the past to the placement and order of buttons were optimized to the needs of sighted users with good vision. Sometimes being inclusive means letting go of the standards we have been following for so long when we realize they no longer satisfy the needs of all users.
Standards that exist for desktop applications aren’t always applicable to the design of web applications. Designers of desktop applications have a lot control over the presentation and layout of UI elements, whereas users of web applications access the interface on a variety of devices and screens. Web designers have to consider every possible viewport size. This means the order of elements have to be considered sequentially, where the most important elements come first and least important elements come last. This way, when elements need to be stacked vertically, the most important things are encountered first. This also means that when elements are presented in a row, the most important items (e.g. the Next button) should be presented on the left.
We hope the research and rationale outlined in this post helps shine some light on the updated approach we’re taking to button alignment on forms. As always, we welcome and encourage feedback from the community. For additional questions or concerns, feel free to reach out to us on the PatternFly forum.
Presenting the primary task first was something noted by one of the low vision students in a user research workshop we had with students at Governor Morehead School in Raleigh. When presented with a card that stated “Previous & Next Page” she stated, “Next should be first because it’s the action I most likely want.”
Luke Wroblewski makes the following statements in his book Web Form Design:
In chapter 3, Path to Completion, he provides two examples and states: “One has a clear scan line that starts at the first information point, ends at the primary action, and allows people to take in all the information they need to review quickly. The other has a number of different visual treatments that break up the path to completion into a series of zigzagging eye movements. A single path makes it easier to process the questions a form is asking through a consistent layout.”
In chapter 6, Actions, when talking about the style and placement of form submit buttons, he states: “According to the data we collected, the most effective designs of the six we tested all shared a common characteristic: they presented their Submit and Cancel options left-aligned with the input fields and labels above them.”
A peek into the research being done around the dark or light visual theme for PatternFly 4 navigation
A major goal with PatternFly 4 was to create an updated, modern look and feel with our visual design language. To meet that goal, we revamped every component to provide something that looks great and is flexible enough to be applied across the system.
One of the most obvious differences between the new visual language and previous versions of PatternFly is the direction to proceed with a light versus a dark visual theme for the navigation.
So far, the new light theme has been met with mixed reactions from the PatternFly community, so we leaned on research to help us make an informed decision on the best direction forward. To proceed with the light theme, or adjust to a dark theme?
Light theme vs. dark theme
Here’s a recap of what’s been done and what’s still to come..
At Red Hat Summit 2019, we conducted a study to gather both objective and subjective feedback on two visual design variations for PatternFly’s navigation system. The light theme was designed for PatternFly 4, and the dark theme came from a previous version of PatternFly (see image above). In addition to the navigation color, the themes also differed in font, overall spacing, and layout.
During the study, we gathered 68 survey responses and worked with 6 participants in a moderated research setting. We also worked remotely with 61 Mechanical Turk users from IT domains to reach higher confidence in reporting the results. In total, we had 135 respondents who were primarily Engineers, SysAdmins, and Developers.
We looked at the designs from three different user perspectives: performance, perception, and preference. Participants were asked to complete two first-click tasks and two general tasks within the mock-ups to gather performance data. Then we asked participants to provide feedback on their perception and preferences.
Performance: There were no statistically significant differences between the two variations
Perception: There were no statistically significant differences between the two variations when users evaluated each theme individually
Preference: Users generally preferred the dark variation when they evaluated the two themes side-by-side
A good number of respondents suggested that the light theme seemed higher quality and they liked the simplicity of it. However, most respondents also stated that the light version appeared “too white/plain and need[ed] more contrast”. They also mentioned that they liked the clear separation of space in the dark variation.
Results showed that the dark variation is generally preferred mostly due to the higher contrast between different sections of the page. However, respondents suggested that the light theme looked more modern and high quality compared to the dark theme.
Also, while performance data suggested that the light theme resulted in a slightly higher success rate (though not statistically significant), we can’t be confident this result is due to the color of the navigation. We suspect that the bigger font and better spacing in the light theme may have made the text more legible and easier to read, but we can not be sure at this point.
Since the two variations were different in terms of font, spacing and layout, and navigation color, we can’t say which UI factor played a more prominent role in the results, especially when it comes to the legibility of the designs.
We utilized a survey as the main method of data collection at the Summit because that seemed to be the most feasible method for that context. But that resulted in presenting design variations in a non-realistic format.
The mockups of PF3 that were used in the survey missed a vertical visual pointer on the left side of a category in the navigation bar. We suspect that mistake could have impacted the success rate of a task in the dark variation.
Additionally, according to our previous research we suspect the content areas may also affect user preference and perception and requires further investigation.
Given the constraints, in the next round of study we’ll:
Have consistent font, spacing, and layout across variations to investigate the effect of color more precisely.
Use an unmoderated platform that will allow participants to see the designs in their real states.
Make sure the test materials are identical and that the only difference is the color theme.
Include two different variations of the content area (list view vs. dashboard).
Our goal is to address the following questions in the upcoming follow-up research to help the team to make an informed decision about the color theme:
Which color theme results in a better performance?
Does the content within the content area affect performance?
Do color and content interact to affect performance?
Do users prefer one color over the other?
We expect to complete this study and have a summary of the results in the coming weeks. Once we have this, we will post another update sharing the findings and explaining PatternFly’s next steps. Feel free to reach out in the meantime with any questions or comments.
We’ve added a bunch of features and improvements with our latest release. Check out what’s new and changed:
– Refined and improved charting in React now available on the website
– Improved TypeScript support – updated 23 components that were using handcrafted d.ts files to natively written TypeScript
– Updates and fixes to documentation for tables, charts, alerts, about modal, and grid props
– Added support for groups in dropdown, compact wizard nav width, alerts in about modal, nodes in Alert title, and dropping columns in a table
Breaking changes – PatternFly 4 React charts
Due to improvements and updates made to charting, this release includes breaking changes that could impact any products that have adopted the React charting package in PatternFly 4.
In order to help resolve these breaking changes in products quickly, we added detailed information about what’s changed and instructions on how to resolve issues in release notes for charting.
PatternFly was built to drive product consistency and unify teams. With its guidelines, standards, and code, PatternFly has made it possible to scale usable and consistent design across the entire company.
We’re excited to announce the official launch of PatternFly 4!
An updated look
We’ve completely revamped the look and feel of the system to provide something modern, clean, and flexible enough to work for all of our products, personas, and use cases.
A fresh website
The new PatternFly 4 website focuses on helping you make the most of the design system, with updated styling, overarching improvements to search and information architecture, and a new approach to design guidelines that help you use the right components and patterns to solve common design challenges.
A completely new PatternFly
PatternFly 4 is built to be accessible, responsive, and modular, so it’s easier to adopt and maintain. It’s also decoupled from Bootstrap, meaning we have full control and are no longer tied to another team’s product decisions or release cycles. And our streamlined focus on the React framework helps ensure consistent design, development, and community support.
What’s been added since beta?
Since the release of the PatternFly 4 beta, we introduced 41 modular, accessible, and responsive components and demos.
We’ve also onboarded several teams, like Red Hat Managed Integration, OpenShift, and Red Hat Insights and cloud services, who have begun successfully developing using PatternFly 4.
We want to extend a thank you to those teams for all of their help and collaboration throughout the beta!
We’re excited to announce a new beta release of PatternFly 4!
PatternFly 4 introduces updates to our visual language along with improvements to modularity, accessibility, and responsiveness. This beta milestone represents the hard work of our Red Hat UXD team combined with fantastic support and feedback from our product teams.
This release includes breaking changes that will potentially impact products that have adopted PatternFly 4. The reason for these changes include absorbing recent brand changes as well as refinements to the architecture. For specifics, you can check out the GitHub Milestones, React release Milestone and Core release Milestone.
In order to help resolve these breaking changes in products as quickly and easily as possible, we have provided information about what has changed as well as direction on how to resolve it in our Core release notes and our React release notes.
We’re excited to announce the beta release of PatternFly 4!
PatternFly 4 introduces updates to our visual language along with improvements to modularity, accessibility, and responsiveness. The beta milestone represents the hard work of our PatternFly team combined with fantastic support and feedback from our product teams.
With this beta, we delivered a prioritized set of HTML/CSS components and also took on a number of infrastructure issues to improve stability across the system.
Interested in getting your hands on the latest and greatest? Check out the PatternFly HTML/CSS workspace to get started. For everyone who has already started using an earlier alpha release of PatternFly 4, heads up: the npm package has changed for beta and you’ll need to change your package.json to point at @patternfly/patternfly.
If you’re kicking the tires on the beta release and have feedback or questions, head over to the PatternFly forum. We always welcome new ideas, so don’t be shy!
The team will continue to develop and deliver new components. Take advantage of GitHub to stay on top of everything we’re working on.
The PatternFly team is always looking for new ways to improve communication with the PatternFly community. A while back, we sent out a survey to get a better understanding of how you want to receive information and share feedback.
We got responses from 22 people, a mix of designers and developers, and discovered that 70% of participants liked the idea of a forum for all things PatternFly.
Why a forum?
It allows you to easily search for information.
It gives you access to old conversations.
It provides the ability to categorize information and organize conversations, making it easier to find what you’re looking for.
Well, you spoke and we delivered! Today, we’re happy to announce the PatternFly forum!
After lengthy discussion, the PatternFly team has chosen React as the JS implementation for PatternFly 4. We want to stress that we will continue to maintain our current PatternFly 3 Angular repos (angular-patternfly and patternfly-ng).
The JS framework question has gotten a lot of attention, so we wanted to talk a bit about how we made our decision and why we think it’s the best way forward for the project.
We chose React based on its popularity within the PatternFly community as well as the broader industry.
We elected to focus on one JS framework because this approach will enable our team to ensure quality design, development, and community support.
The React strategy was discussed at length and we took many factors into consideration. If you’re interested in understanding more of the history and reasoning behind our decision, read on!
We started the patternfly-ng and patternfly-react repos over a year ago in response to rising requests to provide PatternFly implementations for the newer JS frameworks.
At the time, we didn’t have any metrics to help us prioritize one framework over another, and so we made the best choice that we could and decided to add both. Since then, we have evaluated the activity and contributions around the various repos and observed that patternfly-react had become significantly more popular in recent months. We also took a look at observations from the broader industry and factored that research into our decision-making process.
Given all of this, we made the informed decision to take a more focused approach, enabling our team to improve PatternFly 4 and ensure quality design, development, and community support.
A big thanks to the PatternFly community for all of the engagement and interest we’ve been getting around PatternFly 4. Stay tuned for more updates.
As development on our shiny new design system continues to push forward, we wanted to share a quick update about migration for existing users of PatternFly 3. Let’s dive in.
What’s the plan?
This is the question we get most frequently, and we’re still working to fully flesh out tooling and best practices. Here’s what we know:
PatternFly 4 component documentation will provide information about the PatternFly 3 component it replaces so you can easily map one design system to the other
We’ll provide examples of the PatternFly 3 HTML structure alongside the updated PatternFly 4 code so you see exactly what’s changed
PatternFly-React users will be provided with codemods (scripts) to migrate components from PatternFly 3 to 4
PatternFly 3 and PatternFly 4 will be able to work side-by-side so you can migrate at your own pace
How are we going to address inconsistencies between PatternFly 3 and 4 as different project teams start to adopt the new system?
The UXD and PatternFly teams are exploring avenues to address inconsistencies introduced to applications and the Red Hat portfolio. Investigations are ongoing and we’re making POC’s a priority. Stay tuned.