"Classic Row (v2)"... can't implement Flex into current Pro Rows?

Team

So the current Pro Rows are going to be moved to a ‘Classic V2’ setting again (like the large Pro update a few years back where there was Classic Rows and then you added Pro Rows)…??

So we’re going to have:

  1. Classic V1 Rows/Sections/Columns (from pre-Pro days)
  2. Classic V2 Rows/Sections/Columns (current Pro)
  3. New Flex Rows/Sections/Columns (ver 2.6 onwards… until another future update potentially makes these Classic V3 Sections…)

The new Flex integration can’t be implemented into the current Pro Row functionality?
Ie. enabling an option to turn on/off the Flex functionality in the current Rows or something along those lines (yes this is probably overly simplistic, but I’m gathering you’ll see my point).

Sizeable change management / dev work required to create whole new sections again to implement Flex functionality for Sections/Rows - rather than just ‘updating’ current Rows/Sections of Pro sites.

It’s like going around the Pro changes from a year or so ago all over again… I’d be expecting some feedback on this.

Thanks
Sam

V2 Section accepts a new Row added under the Classic one. So it is a matter of adding new Row below the old one and drag&drop content from the old one to the new one.

I don’t see why most users would have to redo everything? Most of content that is already done looks just right. I may upgrade just few sections which will take less than 15 minutes per site. I imagine this will be a scenario for most users, and “sizable change management” would be a rare situation. Perhaps if the new layout options are vital for the website.

I support this way as it ensures that there is no need to drag around unneeded compatibility code in active rows on new sites, or whatever. I am sure there are good (often for performance) reasons behind Themeco’s decisions. :slight_smile:

Right Sam, those are the three Row elements now. It feels a bit messy I know. Out of the available options, I still feel like this is the way forward. I can fill you in on how we landed on the current solution.

The primary objective was having no breaking changes for existing users. We also wanted to find a way (secondarily) to make the new flex powered option the default for new sites. You’re pretty much on point with the implementation - it would have to be a on/off toggle. To avoid breaking changes, this was the only alternative to a new element and we did explore what that would entail. Here are the challenges that brings up

  • Turning the new features ON results in entirely different HTML and CSS. It would potentially break custom styles added to the element
  • Turning it on needs to hide many controls and reveal many more. e.g. the new Row doesn’t have a “Marginless Columns” option because you get that look my reducing gaps to zero.
  • The Column child elements have the same issue where different controls were needed. This adds a layer of complexity where the columns would need to inherit the ON/OFF state from the parent in the Inspector.

There were more technical considerations as well. It’s definitely painful to have all these versions. It was one of those conversations where nobody was all that excited about the outcome, but we felt it made the most sense. It’s like we had this outstanding complexity that we had to put somewhere, and the best we could discern was multiple elements. The advantages are that new users are not exposed to the complexity since things just work as intended out of the gate, and existing users don’t have to worry about anything breaking.

That being said, (and as Misho pointed out) you don’t need to rebuild anything. Even if it was a toggle that you turned on or off, you probably wouldn’t go back to every site and turn it on since that could lead to more issues when layouts don’t align properly. We did include a preference you can adjust to continue using the previous Row paradigm for consistency on existing sites.

1 Like

Hi Alexander

Firstly, thanks for the very detailed response. Some comments from a full-time user at this end:

  • Totally understandable.
  • However, wouldn’t allowing the ON/OFF option (and defaulting to OFF of course) would theoretically ensure no breakages? Wouldn’t that be the point of an ON/OFF option?
  • OFF = No changes. ON = New Functionality
  • Understood. However if there is an option to turn on/off then remaining off would mean the custom styles aren’t broken.
  • If developers are using custom styles then they have to expect potential issues into the future. Allowing for an option to remain OFF means their custom work won’t break. If they want the Flex options, then they have to sort their custom styling out to ensure it works imo.
  • It comes across here as though there has been more consideration placed on users who Custom Style the Pro framework, rather than users who stick to the functionality and requirements of Pro, and avoid Custom Styling as much as possible…
  • Theoretically, this should be okay as well (I notice there are controls that are hidden/shown quite easily even in the current Beta.
  • The ON/OFF option also allows for this change. Defaulting to OFF = no controls changing. ON = New controls (hiddent/shown)
  • I’m sure there were. It’s definitely a tricky situation… I just think you’re going to have a decent amount of users doing the whole “ohhh not again!” thing with this approach… :confounded: I certainly did as you can probably tell… haha
  • Regarding this, I do think there was a potential to have the current Row/Column elements allow for the new functionality (via ON/OFF option), and NEW rows/columns also render automatically with the new functionality (thus ‘working as intended out of the gate’ for new users). Possibly thinking too simplistically here without knowing the technical issues you faced…
  • The impact isn’t on the new users, it’s on the current users with multiple websites/clients that have to create whole new Rows/Sections to implement Flex functionality, then drag/drop, adjust/tweak etc etc. Yes, this isn’t the end of the world, but having a V1, V2 & “V3” situation now is a tough pill to swallow…

Ie. I’ve currently got about 10+ client sites that have a mixture of V1/Classic (from pre-Pro days) and V2 elements/sections (upgraded to Pro), and over time as we move through changes I have to spend time to “upgrade” the Classic sections into V2, as this was the way forward (and Classic elements were breaking using V2 Sections). Now I’ll have to factor in V1, V2, and V3 sections… :fearful:

I know I’m beating around the bush a little with this one, and you’re probably too far gone to change this, but I just wanted to provide some insight from an agency user with multiple X/Pro websites, some being 4+ years old.

It might be worthwhile having the discussion about necessary communication with current users about this, and it’s going likely be a surprise to see V1, V2, and now new “V3” Sections/Rows etc…

Cheers,
Sam

However, wouldn’t allowing the ON/OFF option (and defaulting to OFF of course) would theoretically ensure no breakages? Wouldn’t that be the point of an ON/OFF option?
True, but only if it stays OFF forever. Think about inspecting an existing Row and turning it ON only to see your layout break. This leaves a bad first impression of the new feature.
It comes across here as though there has been more consideration placed on users who Custom Style the Pro framework, rather than users who stick to the functionality and requirements of Pro, and avoid Custom Styling as much as possible.

I led off with custom styling, but there are still other subtle differences that would creep in. The spacing/alignment could shift, and think about starting with a Marginless Columns Row - when you turn this feature ON the gaps appear and you’d need to reduce them to zero.

Theoretically, this should be okay as well (I notice there are controls that are hidden/shown quite easily even in the current Beta.

It’s technically possible yes. I feel like it would confusing to have very fundamental controls come and go. Usually turning something on reveals a new feature set you are opting into. Under this situation it would alternate between two sets of base controls, including how columns are managed. Like I was saying before, Columns are where it gets really messy. The new Row allows unlimited Column children that continuously wrap and fill out the Column Layout. The previous generations had a max of 6 children. They also use different controls that would need to swap out based on the hypothetical ON/OFF toggle.

TL;DR; It’s a combination of these small things that add up and make it feel broken when you enable a new feature. I’d much rather give people a new first impression of a brand new element without having old paradigms in the way.

Ie. I’ve currently got about 10+ client sites that have a mixture of V1/Classic (from pre-Pro days) and V2 elements/sections (upgraded to Pro), and over time as we move through changes I have to spend time to “upgrade” the Classic sections into V2, as this was the way forward (and Classic elements were breaking using V2 Sections). Now I’ll have to factor in V1, V2, and V3 sections…

Even if it was an ON/OFF switch, would you go through every row on your sites, turning it ON and fixing the little discrepancies? If that was true, then either way there’s going to be some maintenance work involved. Our recommendation would be just leaving it alone because the site works and the old elements are always going to be supported.

Our intention is that nobody would need to make any changes. This is how we evolve a tool like Pro while keeping things backwards compatible. As new features come out, the previous generation is more or less “unaware” of the changes, but the new features are placed more prominently. There are still sites out there that use Visual Composer, or even handcoded shortcodes from the early days. Another example is Classic Elements. As of this release they are turned off by default in the Element Library (enable again via settings) because we have feature parity now and they’re less useful.

All that being said, I definitely agree with you that the naming of these elements is painful to think about and understand. We were definitely anticipating some confusion and more dialog about this. Regardless of which direction we went, there would be some level of disconnect. This direction is what we felt was the best solution long term, mainly because there is minimal confusion if any for new users, and nothing breaks for existing users.