cover photo

Sean Tilley

dsh@deadsuperhero.com


 San Francisco, CA (Map) 
!Hubzilla Development Good news! My Hubzilla themes repo is getting updated so that themes properly conform to the Hubzilla 3.x series. I have an issue queue of things to work on, and hope to get everything resolved in a short amount of time.

As many of you know, this repo is part of a long-running playground to explore the different layers of the platform, and experiment with various ways to customize the look and feel of one's hub. I have considered it to be very valuable for myself, as I've gotten to peel through many different parts of Hubzilla's display system and figure out how they work together.

The following themes are basically "complete", save for some minor cosmetic work:
  • Suckerberg
  • Clarity
The following are require in-depth adjustment. The good news is that this is an opportunity to not only fix the themes, but write custom widgets and adjust each one to a specific layout:
  • Bookish
  • Nova
  • Occupant
  • Sporadic
  • Stumble
  • Sunbeam
  
What's the latest doco for how to install and enable them? Is this still accurate?
  
  
Yeah, I primarily use the /util scripts for adding theme repos and updating them.

 San Francisco, CA (Map) 
@Hubzilla Development+

Hey Hubzillans,

As most of you know, I have spent a significant amount of times developing themes for Hubzilla. They've largely been a playground for design ideas, and most of them are little more than a skin for redbasic. Overall, this has been a very good starting point for my theme experiments, and I've learned a lot thanks to Mike, Mario, and Andrew. As of late 2017, I've finally gotten to a point where it's possible for me to develop custom theme widgets, after much trial and error.

However, there are many elements of the interface that cannot be easily overridden - such as button arrangement, placement of UI elements in posts, and custom menus and icons for the navbar. While this doesn't bother me by a huge amount, it is somewhat limiting to the kind of designs my theme can take on.

I've been debating the possibility of writing a new theme engine from scratch for Hubzilla, with the purpose of taking my theme development to the next level. I'm aware of the possibility that independent themes may break over time, and will require a higher degree of maintenance to keep pace with future versions of the platform. There will also be design conventions to consider, such as the menus for remote users visiting from another hub. These are things I'd rather not break.

I was wondering whether anyone had tips or pointers based on their experiences in working with redbasic. How often do you have to update the hooks and templates that go into this base theme?
  
All of this is possible by over-riding the templates; but as you're no doubt aware, this comes with a maintenance cost. If core templates change or add functionality you are sort of required to watch and stay on top of it or the theme will eventually atrophy. I don't know of any way to work around this.

WordPress doesn't provide a lot of guidance here because there are only 3-4 templates which contain most if not all of the content - and the template interfaces change at glacial speeds.

I started work at one time on a button layout so you could order buttons to your liking (or add/remove them easily). I didn't get very far on it before getting distracted by more significant features, but it's certainly desirable in the editor.

The most contentious bits of the interface turn out to be the editor, the conversation templates (posts/comments) and the navbar template. These are also the most-often modified templates. I have in my (very long) to-do list a layout language for the navbar ('Navajo') to be able to design custom navbars with a descriptive tag-based language like Comanche.

Perhaps the editor and conversation templates could also make use of some form of abstraction layer. I'm not sure how this relates to your concept of a 'theme engine' because I'm not certain what you envision for that and how it would work.

The current system isn't really bad - it's just very poorly documented and there are hundreds of templates (290 to be exact) covering a lot of different functionality, so it's bloody hard to abstract. At some point the end result is HTML/CSS/JS and we want to give theme designers complete control over this output. We do this, but it requires a bit more perseverance and a much larger maintenance commitment than a comparable WordPress theme.

What it may be crying out for is some form of template versioning scheme, so your theme could ask for a stable template version; with a known set of variables which remains constant - even if the core project moves on to something new and incompatible.
  
Hey Mike, thanks for your thoughts on this.

WordPress doesn't provide a lot of guidance here because there are only 3-4 templates which contain most if not all of the content - and the template interfaces change at glacial speeds...

The current system isn't really bad - it's just very poorly documented and there are hundreds of templates (290 to be exact) covering a lot of different functionality, so it's bloody hard to abstract.


Yeah, this was something that I was initially looking at, and seems to be the biggest challenge. In theory, it sounds like it's possible to at least write a handful of custom templates from scratch and significantly alter the layout of elements, as long as the proper hooks are used to build an interface.

I'm not sure how this relates to your concept of a 'theme engine' because I'm not certain what you envision for that and how it would work.


At the moment, I think it would just be a drop-in replacement for redbasic, which other themes could build upon. The new base theme could include the most important templates, along with a series of bespoke core widgets, fallback CSS/PHP/TPL/PDL, and custom JS for things like notifications.

Maybe the approach I'm thinking of is overkill, but I think it might be interesting to try to build alternative frontends for Hubzilla through low-level theme development.
  
@Sean Tilley

I simply download the zip and copy with ftp few of your themes and I am testing them. Thank you for the good works you have done.

I think maybe in the future we can imagine a tool to install a theme with one click from admin like we can do with wordpress (I know I am dreaming)

At least information where to find it and how to install it would be more visible. I think I have to test each theme for a few days to really use it.
 San Francisco, CA (Map) 
Image/photo

Aaand we are in business!

Took some tinkering to get the conventions exactly right, but I'm super happy with how this turned out.
The next step will be to actually build in user context for the menu and make proper links for navigation.
  
Nice. :-) An interesting theme would be a Single Activity Theme, i.e. where the channel owner selects either Wiki or Chess and hides other UI elements not belonging to the activity.
  
Yeah, I've definitely thought about that. I think for the moment, I want to focus on multi-feature themes, since I use quite a lot of Hubzilla's system. My current design focus is probably going to center around navigation and visual integration of different elements.

In the future, though, I may apply my current lessons towards a blogging-centric theme.

  last edited: Fri, 22 Sep 2017 14:08:28 -0700  
Image/photo

Clarity is an attempt to get back into Hubzilla theme development. At present, it is the only theme in my repo that will work with the latest versions of Hubzilla. Everything else needs to be updated to work with the latest interface improvements.

The design intent around Clarity is to configure a good basic layout, and polish up Hubzilla's look and feel. Work is ongoing to give the theme some sense of uniqueness.

You can check it out here: https://github.com/deadsuperhero/hubzilla-themes
  
The theme name seems a little out of date for our current era. ;-)
  
On the contrary, our world could use more of it.

bod
 
bod favorited something by dsh:

Clarity is an attempt to get back into Hubzilla theme development. At present, it is the only theme in my repo that will work with the latest versions of Hubzilla. Everything else needs to be updated to work with the latest interface improvements.

The design intent around Clarity is to configure a good basic layout, and polish up Hubzilla's look and feel. Work is ongoing to give the theme some sense of uniqueness.

You can check it out here: https://github.com/deadsuperhero/hubzilla-themes