Not for everything, but for implementing any more custom design I do think you’d need to write code. My recommended steps would be:
-
Learn how to use the Theme CLI gem that @Canapin already mentioned. This can be a daunting first step, but if anything will make you fall in love with customising Discourse, it’s that little gem! It’s like a magic wand for designers
Without it, you will likely feel friction every step of the way.
-
Practice implementing styles using CSS custom properties.
I think the guides are not up-to-date in this regard. There’s much left to do for a truly consistent system of design tokens, but Discourse has already come a long way! Figuring out where and how custom properties are used will help you a lot to understand best practices for the front of the front-end of Discourse.
You can find custom properties using your browser inspector, or look at this list for a first impression: Documenting custom properties. And you can style recent templates, like the sidebar, almost entirely with custom properties.
-
As @denvergeeks suggested, you could have a look at the Canvas theme template. What it does is adding a set of custom properties for layout styling that are not available in core.