Beta 1: Copy Styles from higher to lower breakpoints

I applaud the mobile-first approach. However, I think most users will still start from the desktop view in many cases. I like to start that way sometimes as well.

Even if I set something like a horizontal flexbox setting on a desktop breakpoint, I still want to be able to apply that down the line. There doesn’t seem to be a way to do it so far? Being forced to repeat the same thing for every breakpoint would be a bad thing.

A solution similar to the one where Grid cells can be applied to all or copy/pasted would be welcome.

In addition, for both Grid cells and responsive styles it would be useful to be able to copy/paste or apply multiple settings at the same time. In this case, the direction, horizontal and vertical adjustments. They are all parts of the Flexbox group.

image

In the same way, it would save a lot of time if we could copy the position of every cell in the grid with the tracks layout to another breakpoint. For instance, XL and L could have the same layout. Or XS and S. They are often the same, yet we have to copy everything over one-by-one.

Thanks!

3 Likes

I’m about to test the Beta version also… but I first came here to read the new threads. I definitely agree on this one , these options would save a lot of time since I’m using grids more and more.

Also as I mentioned some time ago, to have the tracks numbered would save a lot of time, I now often am counting positions of cells manually.

Looking forward to test this new version!

2 Likes

Loving the responsive styling beta, well done guys on this one. We’ve been waiting for this one a while now but it’s just good to know that it’s almost here now.

I agree with @Misho here, could you possibly give us the option to let us decide if we would like mobile-first or desktop first. I think this would be the best way because there are many designers who take the mobile-first approach and many who take the desktop-first approach so giving us the option would suit both camps.

And also on the coping across all, all below or all above breakpoints would be an awesome function and time-saving. But I would go one step further and say maybe give us the option to change the value from this popup itself:

From this popup being able to, not only just reset sizes, but change the values on each breakpoint just from here would mean less going back and forth on the breakpoints. We might not be seeing it on the preview but sometimes an estimated value can help especially when we are in the initial phases of the design.

Like one quick example would be on a headline text-align. In my head I know that on a desktop I want it left-align and on tablet down I want center-align. If I could change it all from this popup it would save me having to go to the tablet size and below breakpoints to change it.

Maybe make it a bit like the “hidden function” if I click on CMD and on the value I can actually change the value of it and not just reset it. Similar to when adding a section on the inspector if I click on CMD and hover over the dotted lines I can add a DIV instead.

1 Like

As mentioned in my other thread, I have missed the fact that if the responsive icons don’t have a blue highlight, the design is going to be applied to all sizes. This makes more sense but I still think that copy/pasting settings from one breakpoint to another would be great.

I’m not sure if this is even possible, but great UX would be if we could drag 'n drop a label to another breakpoint icon, to copy its value over. Probably too much to ask, but just in case. :slight_smile:

Howdy @Misho, @SchoonhovenOntwerpStudio, and @Maratopia_Digital!

So just going very high-level on this for now as we still have some things to figure out, this has sparked some discussions between Alex and myself and I think we have a potential direction to move in, but it will take some time to get in. We still want to approach things from a mobile-first perspective and want to help illustrate that tree in these responsive popups, but this has addressed a personal concern of mine as well, which was working with various “micro-flows” in a responsive design. So in general, we knew that we didn’t want to bake the responsive toggles into each control like some other builders do, because this can introduce hundreds of unnecessary clicks on a page to make simple changes. The approach with the icons in the Toolbar was to address just that, and allow users to click into and focus on a whole breakpoint at a time, making changes as a group to Elements within that view.

However, there are times where you might want to quickly set a particular control’s value across multiple breakpoints in a rapid-fire way, which would make toggling back and forth a little more work this way. Something we’re considering doing is rethinking this responsive modal and the table within. Instead of simply showing the values at every breakpoint, we might be able to actually pipe in the control you’re working on for each breakpoint into that table.

For example, let’s say you’ve setup a Button with all your em based padding values, borders, colors, interactions, et cetera, and now you just want to quickly size it at all breakpoints using font-size. With this method, you could click into the label once, and you’d see a list with the devices on the left like they currently are, but on the right you’d see the actual unit slider control instead. You could quickly set all 5 values from one interface in seconds, allowing you to work up and down the chain as needed.

We still would have our “reset” functionality to work down the chain back to your base value, which would help drive home the mobile-first approach, but for people who are more “desktop oriented,” it allows them to work mobile-first while thinking desktop first, having the ability to easily alter values as needed at any time from within this tailored interface.

Again, this is all very high-level at the moment and we still have some things to explore, but just wanted to share that with you all and get any particular insights you might have about this potential approach. Thanks!

2 Likes

This sounds good, but if I understand you correct then this doesn’t address being able to copy and paste all cells in a grid at once or maybe I don’t fully understand?

This would be a very nice feature to have, fewer clicks less time which is always positive. And I think really adds to the functionality of the pop-up.

Would you guys consider giving us the option to choose between mobile-first or desktop first, is this something that would be doable? But this might not be needed if we could have the functionality of copying values from one breakpoint to another breakpoint or to several breakpoint. Similar to what we’ve had on the Grid element and what @SchoonhovenOntwerpStudio mentioned.

@SchoonhovenOntwerpStudio, because of the realities of this update where every control required its own independent line / label, we had to essentially move away from the pattern of grouping certain styles together. So the previous version of the Cell Placement control which had all 6 inputs lumped into one group (X start, end, and alignment / Y start, end, and alignment) has been broken out. It takes up basically the same space, but it’s not treated as “one control” anymore.

That being said, there are a few things that help here moving forward (some of which we want to bring over from the old way of doing things):

  • Keep in mind that responsively, while there might be 5 breakpoints, often values get shared across a couple breakpoints at a time, meaning that realistically you’re only writing a couple combinations of values. For example, take the grid that I designed for our DC asset Caffeine Collage…it basically only has 2 layouts. I use the exact same Cell placement for all Cells from breakpoints XS-MD and then I use a different placement for all Cells at LG-XL, which is when the Grid layout shifts as well. Done in our responsive world, this would mean that you just need to define your Grid / Cell controls once for “all sizes” (i.e. responsive mode is not selected at all, so you’re applying your styles to the base) and then an overwrite at LG, which would then be inherited by XL automatically since we’re working up.
  • If we can get the pattern working that we mentioned above in this thread it would allow you to quickly hop into each control’s label and assign values within seconds across all breakpoints very easily. So you could hop into your X axis start point and place it across all breakpoints, then do the same for the end point, et cetera. This will help in those “micro-flow” instances I mentioned earlier.
  • The grid editor mode in the live preview is a great tool to use as well. Remember that as you drag cells around in the live preview, it is automatically setting your X start, X end, Y start, and Y end properties for you. This is probably the fastest way to work with cell placement in general in more advanced grids.
  • We would actually like to try and bring in some type of “Copy Cell Placement” function like we used to have in the responsive tabs from previous versions. This would look something like right-clicking on your Cell either in the breadcrumbs or in the live preview, then in the context menu there would be an item like “Copy Cell Placement to…”, which when hovered over would reveal a list of all breakpoints you could move all 6 values to. This would function very much like the old way of doing it, you’d just have to right-click in a slightly different context.

Hopefully that helps to address your concerns there!


@Maratopia_Digital, agreed on the piping in of controls…we really want to see that working!

As for the selection of where your “base” breakpoint is coming from (e.g. mobile-first or desktop-first), it is something that is technically doable, but our concern with that is it would effectively be a destructive action that would wipe out any previous responsive styling done by users previously. In addition to that, we don’t have a great place to manage such a control at this time. It is something we are thinking about potentially looking into for the Theme Options reboot, but there are many moving parts to consider to help make it as seamless as possible, and even then, our concerns of people accidentally nuking their responsive styles gives us pause to say the least.

I think that if you had quick access to change any value of a control at any breakpoint within that popup, it would alleviate some of the concerns here. Keep in mind that what @SchoonhovenOntwerpStudio is referring to is a very specific use-case of the Cell Placement control group, which is a set of controls that work very tightly together. For the most part, controls are very singular in nature (i.e. font-size, background-color, et cetera). Being able to click into any of these singular control labels and see, for example, your font-size at all breakpoints in one spot as 5 separate controls would all you to literally copy and paste with your keyboard the values as you see fit. Again, this is still a pattern we’re looking into at the moment, so I don’t want to say too much at this time, but we definitely want to address these workflow ideas.

Hopefully that helps!

Hey, everybody! I wanted to share some prototypes I threw together of what this proposed idea would look like in a more concrete sense. Remember, this is all still very WIP, but this is more or less the direction we’re thinking of with the idea of being able to responsively alter the values of a control from within the popup.

Additionally, an idea we’re exploring is the concept of always making the label clickable next to any control, even if you haven’t altered it responsively yet using the toggles up in the Toolbar. This would allow you to easily enter into one of these “micro-flows” with a control without having to traverse up to the Toolbar and back again to first enable responsive styling to make an update and have it working on that control. You’d basically be able to click into any control directly and if you perform an overwrite above the base style, that will instantly turn on responsive styling for that control.

Let’s take the example of working with the Font Size of an Element. Say you’ve started with that Element and you haven’t changed anything at all, so its base font-size is set to 1em. If you were to click on the label next to that control which has not been overwritten responsviely, it would look something like this:

You can see that we have our base value of 1em applied to all breakpoint as it’s just inheriting from the cascade. Now, let’s say that you were to overwrite the value of the MD breakpoint to 2.5em within this popup, you would instantly see the following feedback:

Notice that the breakpoint icons on the left now are reflecting the inheritance status of values, in addition to showing our chaining paths to the left to help us visualize the cascade of values. The neat thing in this scenario is that you an instantly click into any input, overwrite a value, and see how it’s affecting the entire tree. If you need to copy and paste values manually, you can easily do that if needed. Also, if you wanted to perform a “hard” reset, you could still do that by clicking the icon of a “current” style like so:

So this would give you an indication that clicking that icon would reset the value back to the base style, just like how it is currently operating.


Below are some other examples of how this might look / function in various contexts. For simplicity, all of these will show a control that has a base value that is overwritten at the MD breakpoint, which will show how the cascade will work from there.

Let’s take the Padding control. If you clicked the label of the Padding Right control, you would see the unit slider for only that side of the Padding control in the popup:

Here is an example of what a picker-based input might feel like. In this example we’re looking at the horizontal alignment of children for a Flexbox control:

Here is an example of what a choose control might feel like. In this situation, we’re looking at how Text Align might feel:

Finally, here is an example of a color control (in this case, Background Color):

Hopefully this helps to give a little more context about the above proposal. Again, a big change to this as well would be the addition of making all labels instantly clickable, even if they’re not already “responsive.” This would allow quick and easy access to these control values at all breakpoints, and would effectively almost bring back a kind of parity from the old “responsive tabs” pattern found on Rows, Grids, and Cells.

7 Likes

Great vision here, Kory! Your padding-right example made me wonder: do you still allow to change all four padding values together? Or will one have to always change them individually?

@striata, as of right now yes, due to the fact that each control requires its own label / line as mentioned previously, responsively adjusting a side would be done one at a time. That being said, I talked with Alex and there could be the possibility of doing something like having a set of “tabs” to the right of the label in the example screenshot above, where you might have clicked on a label for the Right Padding in an Element, but you could tab over to the top, left, bottom, et cetera. This would allow you to open a popup once to adjust a side, and if you need to adjust another side, you could do so without leaving the popup. Just a thought for right now, not entirely sure if it’s possible as this is all very fluid at the moment. Hopefully that helps!

1 Like

This looks great! I will test it on my common scenarios to see how it feels.

I caught myself right-clicking on a button and clicking “Copy styles” and then pasting that into a different breakpoint expecting that they will carry over. That felt natural thing to do. I am not sure if that is doable, but it seems like something that could help a lot.

Or perhaps another Paste option next to “Paste” and “Paste styles”: something like “Paste styles from MD breakpoint”? :slight_smile:

1 Like

@kory that example you showed here is looking really good! I do share @striata “concern” if I may call it like that to be able to change the values at multiple sides at once but what @kory and/or @Misho mentions next sound like a great addition when possible

@Misho, interesting ideas here. @alexander and I will chat through some of these once we’re at a place where we can move to these patterns.


@SchoonhovenOntwerpStudio, thanks! Glad to hear it’s striking many people as a good path forward. Yes, we’d like to try and figure out a way for certain things like padding or margin where it’s more broken out that you’d be able to quickly move to another side without having to click around so much, and I think the tabbed approach I mentioned previously would help with that, we just need to see what is possible once we start to crack things open.

Lots of great discussion here, and I’m loving the idea (kory’s) of the being able to adjust a setting across all breakpoints.

with regards setting up a grid, with this hierarchy in mind, I set up a grid structure and cell positioning for the MD size, and it ‘should’ match those automagically for L & XL, is that right? rather than setting up each the grid and cells for each breakpoint?

1 Like

@kory I think these mockups look really useful and the way it is being proposed will take away quite a lot of frustration of going back and forth. I’ve been using elementor quite a lot recently for smaller budget websites and it can be really frustrating having to go between each breakpoint to be able to change the value, with this proposed idea it will really speed things up. Looking forward to this one.

Seems like a good solution there @kory

Great job on this update by the way guys. Very excited to dig deeper into it all in the coming days!

1 Like

@scotbaston, thanks for chiming in! The example you’ve described is correct, which is something we want to drive home with the mobile-first approach. If you setup a base style, that is automatically inherited to all five breakpoints. Then if you were to apply a different structure on MD, it would mean that LG and XL automagically receive those styles as well, because the new breakpoints are for “MD and up” essentially. This makes overwrites very straightforward if you have a clear idea on what you want to accomplish, because writing it once at the breakpoint you need the change will make it work for everything above that. We know there are times where you might need to make micro-adjustments at all breakpoints, which is why the label pattern I’m exploring here would help, but we also want users to really dig into the idea of inheriting, because it will keep not only your final CSS output down, it will make you have to work a lot less ultimately because there’s no need to write those same values in multiple times over as long as you lean into the cascade structure.


@Maratopia_Digital, great to hear! Yes, I think it’s good to have both the “macro” way to do it with the responsive toggles in the Toolbar so you can really settle into a breakpoint and work on everything in that view, but for the “micro” moments where you just want to get something set all at once, this pattern should hopefully address that, too. Dare I say…best of both worlds? Haha.


Thanks, @JvP! We’re really looking forward to this one and I’m glad that this pattern seems to feel like a solid path forward to everyone so far. We will keep you all posted as we’re able to make progress here.

2 Likes