Howdy, Beta Group! I hope you all are doing well and that you had a restful weekend. The primary feature of our next release cycle that we are focusing on is the addition of our Layout Builder, which will allow you to build out generalized site layouts (“templates” in WordPress parlance) for your posts, pages, archives, and more. Once this is in, you will effectively be able to build out full site designs from scratch with almost no limitation.
For example, instead of having to use the standard post layout utilized by the Stack you have chosen in the theme, you could create an entirely unique post layout using the Elements you’re already familiar with—Sections, Rows/Columns, Grids/Cells, Buttons, Text, Images, et cetera—and then assign that layout to all posts to be used in place of the standard design. There’s a lot more to get into with this, but we won’t dive into all of that today as there are other matters to discuss that we would like your input on.
Something we’ve discussed implementing for a while now is how to introduce fully responsive styles natively within our builders. Currently, if you have a Section outputting a padding
value of 45px 0
, that value is present all the time at all breakpoints. However, there are many times that you may wish to adjust these values as the client’s screen size goes up or down. Having full access to adjust these controls at every breakpoint is what we’re talking about here…and for every control on every Element.
With the inclusion of the Layout Builder now coming into focus, this felt like the appropriate time to finally tackle this feature as well, as having full responsive control over every control at every breakpoint is essential to creating flexible, fluid layouts that work well and look great across all viewports.
This finally leads us to what we would love your feedback on today. What we are discussing below is born out of what has already been mentioned above. The implementation of the Layout Builder necessitates fully responsive controls, which will in turn necessitate some UI changes to accommodate all of these new features. So let’s jump right on in to some of the currently proposed UI changes that we have arrived at after much discussion and deliberation:
The Current State of our UI
Before we begin, let’s take a look at the screenshot below and define some terms so that we can use them throughout this discussion:
- The Bar: The primary hub for all of the tools and navigation used throughout our Builders.
- Workspace: Where all controls for manipulating Elements are found. Shown as “floating” in this screenshot so we can showcase some other pieces of the UI, but this is initially docked and can be moved from this vertical orientation to a horizontal orientation, which can remain floating or be docked along the bottom of the screen.
- Canvas (or Preview): The live preview (or as we call it “The Canvas,” internally) is where all changes made to your content are shown.
- Control Navigation: The control navigation is what allows you to quickly move through the options available for the currently inspected Element.
- Breadcrumbs: Shows you the path from the top of the document down to the currently inspected Element, and gives you a way to quickly move up that tree to select any parent Elements.
- Expanders: The builders currently feature numerous pieces of functionality that are housed in what we call “expanders” internally. This includes the history (currently pictured), CSS editor, and JS editor.
- Settings Modal: A catch-all for certain functionality such as preferences, the Color Manager, Font Manager, page settings, keyboard shortcuts, et cetera.
Responsive Management
The first thing to discuss is how responsive controls will be managed in the next update. One thing we have decided that we don’t want to pursue is trying to cram responsive toggles into the controls themselves. Many builders tend to work these as inline elements into the controls themselves, which leads to a lot of repetition and a cramped workspace. The pattern we are particularly keen on at this point is something like the following:
Note that in this wireframe, The Bar is adjusted a bit from how you know it currently. There is a new “settings” toggle by the hamburger (which we will come to later), but the main difference is the responsive controls seen in the middle. The idea behind this approach is that in a responsive builder we’re trying to surface as many tools as possible that are “mission critical” to the minute-by-minute building process. Having these controls front and center makes previewing changes across breakpoints much more accessible, but there is also a dual-purpose in these buttons. In addition to toggle between breakpoints visually to see changes, the breakpoint that is currently selected will be the breakpoint that the styles you are currently adjusting will be applied to. The main workflow would look something like this:
- The XL breakpoint is the default viewport. While that viewport is selected, any styles added are “global” meaning that they are applied to all screen sizes.
- So if you were designing a Row and setting the
padding
on it, you would start by defining thepadding
on the XL breakpoint to have that apply to everything. - If you then wanted to adjust the
padding
on the MD and XS breakpoints, you would simply select the MD breakpoint while your Row is inspected and make your changes, then select the XS breakpoint and do the same. - As overwrites are made for certain settings at certain breakpoints, there would be styling to indicate that the “original” value set globally has been changed at this breakpoint.
The great benefit to this approach is that it doesn’t change the control layouts at all. There aren’t any new buttons or toggles to learn in that space, you simply select the viewport you want to edit for (which you’re already accustomed to from the responsive toggle we have currently) and make your changes in a familiar interface. In our opinion, this approach will help to both put the responsive controls more front and center and make editing responsively easier, while also adding in true responsive editing of any value in the inspector without having to adjust that Workspace interface at all.
Composability
Currently, the layout of the of the builder “chrome” is fairly malleable in that you can orient the Workspace either vertically or horizontally, have it display as a floating popup, and you can also move the Control Navigation / Breadcrumbs to a few different spots. However, we understand that some users prefer to move various pieces around to fit different workflows across different screens, so one thing we’d like to improve along with the updates above is to make the interface more composable. Below are a few examples of what this might look like in a quick wireframe format:
The examples shown above are by no means exhaustive, but hopefully represent the spirit of what we’re trying to do. Essentially, we’re looking at a few parameters here:
- The Bar will be dockable across any edge of the screen (top, left, right, or bottom). Because of the simplified nature of its content, The Bar should work great both horizontally and vertically.
- The Workspace will be dockable across any edge of the screen, or be able to utilize a floating context similar to what you can do now (where the Workspace is hovering above the Preview area). The Workspace already currently supports vertical and horizontal orientations, what we’re simply allowing for here is more configurability on where you might want to dock this element.
- The secondary bar seen there for navigation will be dockable across the top or bottom edge of the screen. Because of the nature of the content inside (Control Navigation and Breadcrumbs), we need to have a long, horizontal space for this bar to occupy so that you can see as much information as possible here. Moving forward, these will be the two main orientations for showing these navigation controls. We have considered the idea of leaving a legacy option to place these back “inline” with the Workspace, but ultimately we are trying to move away from that setup as it is a holdover from the old days of Cornerstone when we had a much simpler Element tree and control navigation. Now, with complex Elements and layouts that can in theory be infinitely nested, this pattern simply doesn’t hold up as well.
The general idea with moving these around is that you’d be able to grab them anywhere within the tool and simply drag it to a side, and it will orient the way you want it automatically. No more buttons in The Bar, it will just be a matter of moving things where you want them.
Tools
Another primary difference in this direction we are wanting to explore is how how the access and management of various “tools” are handled. Previously, some tools were found directly in The Bar (code editors, history, et cetera) whereas others were found within the Settings Modal (Color Manager, Font Manager, preferences, et cetera). Going forward, we’d like to consolidate that more uniformly under a new “Tools” dropdown that might function like the following (the icon used for this dropdown throughout these wireframes is not final, only for demonstration of the idea):
Notice in the above wireframes that we’ve clicked the new “Tools” icon next to the hamburger for general navigation, which opens a dropdown. From that screen, you will see a selection of all tools available in the builder you’re currently in (this might differ based on context). Keyboard shortcuts will also make these tools directly accessible without needing to go through the tools menu. Clicking on certain options such as the Color Manger (pictured above) will open that tool in a sub-page within the dropdown. There are a few main benefits of doing it this way vs how we’ve done it previously:
- Many of these tools such as the Color Manager or Font Manager are mostly set during the beginning of a build and not used again, or are used infrequently, so tucking them away won’t interfere with workflow (and if things are truly used often, they will be accessible with shortcuts).
- For things like the Color Manager and Font Manager that were previously in the Settings Modal, you were not able to see the changes made to these tools in real time as the Modal was over the entire page. With these tools directly within the dropdown, any changes made will be able to be previewed in realtime.
- The interface is more predictable having everything in one uniform place and with any “deeper” tools managed via a 2nd state.
- In conjunction with the composable ideas mentioned above, many of the icons that were previously in The Bar will now go away entirely (such as the orientation button or the popout button), cleaning up this interface considerably.
Conclusion
I know that’s a fair amount to take in, but we wanted to try and make things as clear as possible before forming and sharing any opinions. The general goal of what we’re trying to do here is to expand the functionality of all these tools without changing things too drastically. I think you’ll see from the screenshots and ideas discussed that things are not wildly different, we’re simply taking a step back to assess where we are currently and how we can better improve the general site-building process within our Builders. We look forward to hearing from you all and seeing what you think as we work on these ideas!