cre8magic – Oqtane Theme System
services, components, and utilities for Oqtane Themes
Warning
These parts of cre8magic ♾️ are not ready yet.
We're writing docs as we develop, but you should not use it as of now.
Introduction
Creating awesome themes for any platform is a lot of work, and needs a lot of skill. There's Bootstrap to master, as well as HTML, CSS and JavaScript to conjure up. And then there's the platform-specific stuff to learn, such as Blazor and the intricacies of Oqtane itself.
The cre8magic library is a collection of services, components, utilities and documentations that help you create themes for Oqtane with less effort and more fun.
2sic, the inventors of cre8magic, have been creating themes for more than 1'000 websites since 1999. That's a lot of experience packed together. Our goal was to ensure that every theme we create is as good as it can be, and that we can create it as fast as possible.
Let's take a simple example: System-Menus.
They usually show a bunch of links, some within the normal structure of the site,
and some taken out of the normal navigation structure just for the footer.
Typically these pages are officially "hidden" in the navigation, since we don't want them in the main menu,
but still need to be accessible.
This is how we would do it in cre8magic using the MagicMenu Oqtane Bootstrap5 component:
@using ToSic.Cre8magic.OqtaneBs5
<!--
In this case:
- 1 is home
- 5 is a hidden page in the navigation (hence the !), of which want to show the children
-->
<MagicMenu Settings='new() { Pick = "1, 5!/" }' />
Now let's assume you need to Tailor the menu a bit more using a Blueprint.
We need to add 'sys-nav' to the class of the <ul>:
<MagicMenu Settings='new() { Pick = "1, 5!/" }' Blueprint='new() { Parts = new() { { "ul", new() { Classes = "sys-nav" }}}}' />
Then again, let's place all these settings in a central location called the Settings Book and just name this menu part "System-Menu":
<MagicMenu Name="System-Menu" />
- By just having a name, and no parts...
- Maybe rename the theme parts a
PartMaporNameMaporRenamefor the special cases - in this case we could always use name - for anything
- and if there is a part-map, it would redirect, but normally you wouldn't do this.
- would also simplify API to
Nameand possiblyBlueprintName- but TBH that could be done with theRenamesection...- which could then just have
spellandblueprintas properties
- which could then just have
explain
Planned structure
Introduction (maybe inside overview? or before)
Overview, explaining what's in the box - basically what things it can solve
Get Started - step-by-step guide to get started and simple use case
Acts
Common Setup
Razor Components
Magic Themes
Magic "Buttons" - needs better name
Magic OqtaneBs5 Razor Components
Foundation
Magic Act
Magic Blueprints
Magic Tailors
Magic Settings
Magic Book
History
- Added in v0.0.1 2022-10 with 80% coverage of what DDR Menu had in DNN