Thanks for sharing all this. I agree wholeheartedly with all you’re saying here. We’re in a bit of a chicken/egg situation, at the moment so the sequencing will unfortunately prohibit us from implementing changes to provide some of the relief you’re pointing out is needed. Once we have them, I think Parameters will become a more popular feature, but for now it might be something left in the hands of more advanced users. The docs are definitely WIP (the current draft was primarily written as an internal reference and we added a few notes) and there will be video training as well which may help communicate the concepts more concretely.
I probably should have put some roadmap notes in the announcement thread, but I’ll elaborate here with some loosely formed roadmap thoughts. What we’ve been referring to as the “Theme Options Reboot” is a monster scope of work that represents building several new systems. Pro 6.0 will be the crowning release that ties everything together, but we’re trying to roll out a few cycles like Pro 5.1, 5.2, etc. as we build out these new foundations.
As one of those larger requirements under the hood, we created what’s effectively a mini virtual machine in Cornerstone that can keep track of different stacks and scopes of data. It’s how you can define a parameter on an element and access it on nested elements. This system is actually going to power a new feature called “Globals” as well, which is a key part of our Theme Options Reboot. Those Globals will be like site wide Parameters. Instead of just having colors and fonts, you’ll be able to define the shape and structure of all your Global settings. It’s really like being able to map your own Theme Options. This will all be done in a visual editor. The same visual editor will be reutilized for Parameters, but it will be in addition to JSON parameters (both options will always be available).
On the current trajectory, the heart of the Theme Options reboot will be a new yet to be named featured that we’re calling the “Styler” internally. Where Components and Parameters are a good way to create abstractions for content, the Styler will let you manage abstractions of CSS. We haven’t even started the exploration process here, but our goal is to create some kind of visual building experience that generates CSS. I think “CSS Hero” is the closest product I can think of that is in line with what we want to do. There will be ways to create sets of Global styles, and also use the same tool on individual elements to add one-off styles. We want to allow deep access to CSS properties. We also want it to be possible to in one click say “Add Table Styles” and it adds a large preconfigured set of styles that make tables simply look nice, and you can tweak from there. So it’s one of our more ambitious projects on the horizon.
Creating the visual editor for Globals/Parameters isn’t something we wanted to crack open until we had built out some of the more foundational parts in case they influenced any of the editor mechanics. I can’t say at this time how the following will be broken out into actual releases, but here’s how we’ve prioritized things:
Slider Element
-
Virtual Machine - provides ability to use JSON Parameters. Also lays the foundation for Improved Dynamic Content
Components
- Templating - We’re going to revisit how templates work in Cornerstone and make the experience more consistent.
- Styler - Visually define global and per element styles
- Forms - New Form elements and backend that let you design and create forms directly in the builder.
- Globals - Will include the visual UI for Parameters.
- Improved Dynamic Content - Will allow combining multiple values using math or string formatting functions.
- Rivet - Front end javascript augmentation for elements.
So that’s a birds eye view. Very preliminary and subject to reordering as we keep moving forward and exploring the different ideas, but it shows most of what we’re trying to accomplish with the Theme Options reboot project.
Of all the potential releases we may do on this path, the current one of Components and Parameters does feel the most “lacking” to me, but only in respect to how it’s missing integration with these yet to be created features. I’m really excited for the day when I can jump into the component builder and design a contact form, then just drop that in as an element on whatever pages I need. This cycle admitingly provides lots of raw power without context.
Please keep the feedback coming! Everything you’re sharing with us is invaluable to help polish the current docs and understand what kind of video training will be needed. Thank you!