Every fins theme has a grid.css with 3 mandatory areas. Except the home page only includes the first.
- Horizontal section menu.
- Vertical navigation sidebar.
- Markdown content block.
The grid layout surrounds these other blocks with any other styling
And then there is the rest of the content, which can be any kind of HMTL content.
The content below attempts to document the three areas, but it might be easier to scan the grid-thumbs page to get a color coded mental picture.
Central to any rocket theme is the interaction of these 3 rocket specific grid areas.
Meaning these grid areas coordinate closely with rocket code, all other areas belong solely to the theme itself.
"Area" here denotes those grid-areas within the
Repeating for emphasis, your theme is entirely fresh and original. Nothing to do with rocket, specifically. Except those 3 rocket grid areas.
Grey in the blocking view
Separation of responsibilities:
Rocket specifically furnishes the following links for the header:
- Content section links
- Rocket managed search link
- Rocket managed light/dark theme link
You or the theme may also put whatever you wish in the header
- The theme doesn't provide the rocket links, but it does tell the header how to display the rocket links
- Anything else that the header needs such as how to display non-rocket links
Salmon in the blocking view
In rocket, automagically provided links are split between the header and the sidebar. How this split works is not documented here.
Most of the above descriptions of the header also describe how the sidebar works in a theme.
- Rocket manages the rocket provided links in a sidebar, just as the header
- Theme manages everything else in the sidebar, just as the header.
Benny Powers has teased how a little customization to the sidebar can make a differnce in making it look nifty, but so far I've just taken the implementation straight from rocket in the themes on this site.
White in the blocking view
The rocket implementation itself shows how you can mix your own HTML/CSS content in with the markdown content section, in very creative ways.
So far I've mostly tried to just blast through this and make sure at least the markdown copy is showing. But you can add HTML/CSS to that.
Blue in the blocking view
Anything goes in this area - go wild! Or be conservative. It's yours.
- your own html/css and even js, in
- your own content in
- _assets/_static ...
- _data ...
Everything discussed on this page assumes a very careful and agreed upon deliniation of what files are in themes, and what files are not in themes by default.
This is a [so far] a fantasy. It really hasn't happened yet.
So far, it looks like it would be like this, if it happened:
- [something footer here]
includes/partials/*except as noted above
_assets/layout.css can be like "You break it, you buy it"
You, as a consumer, can always take the nuclear option, even if the theme author should never resort to this. [Per section above.]
Since your theme is always a fork anyway, you can simply fork anything that is normally off-limits to theme developers, such as
Why is it OK for you and not OK for a theme developer? For the same reason that you might not want to do that, yourself. As soon as you fork it, you own it, and you have to keep up with the changes on your own.
For example, if rocket improves it's search or dark mode after you fork, you won't be able to get those improvements except through line by line manual code imports. So, just know what you're getting into if you take this approach.
Yeah, some cross cutting concerns there. Speaking for myself only here's what I wouldn't want in any theme I had on a site that I maintain:
- Having to maintain my own light/dark theming just because I have my own theme
- Having to give up on a light/dark theming just because I have my own theme
- Having to wrangle with difficult light/dark theme interaction just because I have my own theme
At the time of this writing it still wasn't worked out how a theme and the light/dark theme integrate with each other.
If any terminology on this page is perceived as an expression of taking charge of, or making decisions for, rocket - then that is an error and strictly my fault.
In every instance with no exception these themes exist in subjugation to the rocket codebase, and it's maintainers. Rocket leads, themes follow. End of story.