Has anyone built a theme using Bedrock yet?

We love the look of new Atomic theme and want to try building our own themes using Bedrock on V9 RC4.

We seem to have got Mix working and can compile scss OK but can’t get Bedrock JS to build.

Does anyone have any idea how to approach this? example webpack.mix.js file, js file include statements etc. would be hugely helpful.

The existing docs for Bedrock feel as if they might now be out of date. It would be great to get them updated so that everyone can give Bedrock a go.

https://documentation.concretecms.org/developers/appendix/concrete-cms-bedrock-foundation-concrete-and-concrete-themes

1 Like

Any help on this would be greatly appreciated. I figured I’d go ahead and update since my site uses Bootstrap5 and Concrete 9 supports it, but now I’m finding it extremely hard to find out to get everything working as there’s basically no documentation for version 9 yet.

We found that Bedrock wasn’t available in the RC versions so we’ve just rebuilt our own site in Bootstrap5 (previously 4) using the same structure we used previously which has worked well.

The settings information contained in the previous page_theme.php, registerAssets() etc., still work with the exception of getThemeAreaLayoutPresets().

We decided to retain jquery for now which solved a lot of issues.

There were a few class changes and data attributes to update but essentially that was it.

We have some custom blocks we are still working on which mainly need work on the forms.

What sort of issues are you having @RLHawk?

I just started a theme package from scratch that uses Bedrock. Everything built for me fine. You can pull my repo and use as you like: https://github.com/davedew/afixia-theme-basic-bedrock

I have started tinkering around with it and built a “Boilerplate” theme for our client work with it. - It works mostyl as intended with one very major caviat:

I truly hate the fact that using Bedrock requires to globally load/include jQuery and vue.js on every page. - Its’ so unnecessary in many cases.

Most of our clients/ projects don’t make use the more complex Blocks (Calendar/ Conversation/ etc.) that would justify the load weight of those libraries. - So i don’t want them to be loaded on most pages.

In my opinion these libraries should be required in the BlockTemplate, where they are really needed, so they are only loaded on pages where they are needed.
Bootstrap5/ native JS should take care of things like collapsing, dropdowns and other JS functionality that might be used globally in the theme and within different simple BlockTypes (Autonav, Hero, Navbar, etc.)

So right now i am focusing on building a Bootstrap5 Theme for v9 without Bedrock. While still trying to support most, if not all Block Types in a minimal manner. Without globally loading jQuery or vue.js

This seems to be impossible though. - jQuery for example is still “required” in some Block Controllers and i don’t want to go as far as overriding Controllers.

We’ve built a basic theme with BS5/Bedrock. But we haven’t managed yet to clear all errors on various tasks. We find it is very ponderous and difficult.

So we are working with a theme for version 9 and use a LESS layer, where we adjust our stylesheets etc. to Bootstrap 5.

Most blocks work fine on PHP 7.4 (we haven’t tested everything) and we haven’t yet figured out how to reduce the overhead load for running a site. As you say, jQuery is needed for many blocks.

I have created a issue on github on the overhead loading: improve support for themes without jQuery/ vue.js/ Bedrock · Issue #10681 · concretecms/concretecms · GitHub

I think the ability to build themes that do not require big libraries could be greatly improved and i have made some suggestions there.