BookLook Theme Early Preview


The media in this post is not displayed to visitors. To view it, please go to the original post.

I've mentioned to a few people that I've been working on a new theme for Friendica, based on "Vier" but with some features from "Frio" and styling cues from the "Bookface" scheme I made for it, plus some new stuff.

This is a PREVIEW of that theme. It's still very much a work-in-progress! It's not even to a point where I can release the code for others to test. There is still a LOT to do.

I've been doing frontend web design and development professionally for a long time. Over the years I've made dozens of themes, child themes, and plugins for clients running WordPress, so I'm no stranger to PHP and jQuery. Friendica, though, doesn't have a robust theme system like WordPress. So for just about everything I've wanted to do I needed to pick my way through the code and figure it out, because the documentation is outdated, thin, or non-existent.

Friendica also has a million pieces, so I never feel like I'm getting anywhere with this theme because every time I turn around there's something else that needs attention. I hate to say it, but it's been the most frustrating thing I've ever worked on and I've nearly given up a dozen times! I might still. This is what I do for a living so paying jobs would have to take priority over working on this for free.

Which is why I won't try to predict if or even when it will be finished.

As for WHY I started making this? I felt I'd taken the "Bookface" scheme as far as it can go given the limitation of only being able to use CSS. People had asked if I could do this or that with it and I'd have to tell them "No" because what they wanted required changing backend code or the HTML structure and all I had to work with was a stylesheet.

If you're on one of a couple of the larger Friendica instances you've probably experienced first hand how the "Frio" theme can breaks on an overloaded server. That's probably because it loads about a dozen additional plugins/themes/frameworks on top of what the Friendica core loads. If it fails to load some of them the theme breaks. By contrast the older "Vier" theme is pretty simple. It doesn't really load anything new. Which makes it faster loading and more stable, or at least less prone to breaking on a stressed server.

Which is why I decided to use "Vier" as the base for my new theme. It's actually more of a "hybrid" theme because I'm incorporating some of the features from "Frio" that I like. But I needed to figure out how to do that without Bootstrap because I was determined not to add any new plugins, libraries, or frameworks.

Features:

  • Accent Color creates site-wide color scheme
  • Forkawesome icons replaced with Phosphor icons
  • Default font is "Lexend" designed from improved readability.
  • Integrated Coverphoto add-on functionality
  • Integrated Zen Postbox add-on functionality
  • Advanced Theme Settings similar to my Bookface Custom add-on
  • Verified Blue Checkmarks (optional as it only works for local accounts)
  • Post headers now show author @handle
  • Option to hide local server from @handle
  • Options to show navbar icons, text, or both
  • Option for alternative Emoji Picker integrated to theme
  • Accessibility improvements for keyboard navigation
  • Redesigned Hovercards (popover contact info)
  • Three Options for Composing & Editing:
    • In Thread
    • Separate Page
    • Modal Window
  • Location button can use device location services (if you've enabled it in browser for site)
  • Post engagement/responses click for popover list
  • Post Composer available on Community page (Local Server & Global)
  • Character count added to comment editor
  • Photo and Attachments filebrowser has tabbed interface
  • Attachments filebrowser can filter files by type
  • Privacy Settings update padlock icon on editor
  • Easier access to some settings (Widgets, Profile photo, etc.)
  • "Frio" style user Settings and Admin screens
  • Single navigation toolbar with options to make it "fixed" or scroll away.


As for what's still left to to do? I have yet to style most of the sub-pages for each section, I have to complete the mobile UI layout, create options for all of the settings for the theme, make the "dark" and "auto" versions, get some of the features listed above working properly, and probably a ton of other little things I won't know I need to do until I stumble across them.

#Friendica @Friendica Developers

This entry was edited (Monday, December 8, 2025, 4:55 AM)
in reply to Random Penguin

It's looking really great! I would love to see your work incorporated into the official release.

As far as I understand, you need support concerning the handling of git. My hope is that eventually someone will provide help.

Friendica Developers reshared this.

in reply to Nanook

The "Account Types" and "Trending Tags" widgets are visible in a couple of the screencaps I posted. In the Settings it says "Own Contacts" does not appear on all the channels, I don't know which ones it does. I did have all the widgets enabled. They're also collapsed by default in this theme, if you expand one it remembers that (basically it works the opposite of Vier and Frio). Not just for a cleaner look but because having all the widgets enabled and expanded is kind of overwhelming for new users.

Friendica Developers reshared this.

in reply to Random Penguin

The media in this post is not displayed to visitors. To view it, please go to the original post.

Some of the images didn't get included in my original post. Here's the user Settings and server Admin pages, which look and work a lot more like they do in Frio.

Friendica Developers reshared this.

in reply to Random Penguin

The media in this post is not displayed to visitors. To view it, please go to the original post.

Another screencap that got skipped in my original post. The Photo Browser on a narrow screen, like a tablet in portrait orientation, moves the horizontal tabs into a vertical list on the left:
This entry was edited (Monday, December 8, 2025, 7:05 AM)

Friendica Developers reshared this.

in reply to Random Penguin

@Random Penguin Overall looking more polished than Bookface, glad someone is actively working on this. Didn't like Vier and the other stock interface is broken.

Friendica Developers reshared this.

in reply to Random Penguin

Thank you so much @Random Penguin for your hard work!! 🙏🙏 🎉

Booklook looks amazing; can't wait to try it.

I would like to nominate you for a new award: Friendica Front-end Developer of the Year. You would truly deserve it! 💚

reshared this

in reply to Random Penguin

I should mention that those new Hovercards are accessible via keyboard navigation and also should work on touch devices. There's also a JS script that prevents them from popping up partially or completely off-screen or wider than the viewport on narrow screen devices.

Friendica Developers reshared this.

in reply to Random Penguin

By contrast the older "Vier" theme is pretty simple. It doesn't really load anything new. Which makes it faster loading and more stable, or at least less prone to breaking on a stressed server.
Which is why I decided to use "Vier" as the base for my new theme.

Sry if this comes over like repeatedly but all this sounds to me like best could be starting the friendica theme thing from scratch. Even more if the documentation isn't as it should be and we just found our staatl. geprüft und annerkannten Friendica Front-end Developer CEO.

How about creating a inical teared down completely minimalistic friendica core theme and mount on top of it a addon system of themes @Random Penguin?

Is that possible, maybe even reasonable and faster than trying to work thru old not properly documented theme stuff?

Friendica Developers reshared this.

in reply to utopiArte

I thought about just scratch building a theme up from what the Friendica core does. There's definitely something to be said for a modular approach both for development and performance, though it would also introduce a lot of inconsistency to the UX across servers. Consistent of experience is why I'm integrating some of the functionality of three of my add-ons to the theme. But if the coverphoto or postbox add-ons are already loaded it would defer to them.

Ultimately I decided to start with "Vier" as my base because it's already a functional, battle-tested theme, but also because there's no real documentation on ALL of the many "moving parts" in Friendica, most of which I assume have been addressed in "Vier" by this point. In the absence of documentation to build from scratch I opted for a "working model" to learn how themes work in Friendica.

It might be better for me to say "Vier" was my starting point rather than this theme is based on "Vier." By the time I'm done with this, though, I don't know how much of "Vier" will actually be left.

I'm not sure what "and we just found our staatl. geprüft und annerkannten Friendica Front-end Developer CEO" means when Friendica doesn't even have an org behind it?

Friendica Developers reshared this.

in reply to Random Penguin

@Random Penguin @utopiArte

This
I'm not sure what "and we just found our staatl. geprüft und annerkannten Friendica Front-end Developer CEO" means when Friendica doesn't even have an org behind it?

only means, you are VERY welcome, and the friendica-community is thankful for your work on the project 😊😊😊

It's german humor... 😉

Friendica Developers reshared this.

in reply to Nanook

jakob wrote:

It's german humor... 😉

true.
And actually it was written in italic irony, as this profile states:
> [i] wie [italic] => most likely a humorous ironic underlying tone


@Nanook @jakob 🇦🇹 ✅ @Random Penguin

Friendica Developers reshared this.

in reply to utopiArte

@Random Penguin
Porting the following comment to over here so it can be deleted in the other post:

a inical teared down completely minimalistic friendica core theme



I'm going to forget this @Random Penguin, so sorry if I post this idea\request kinda oftopic here, while stumbeling over this post of yours.

Sometimes for some reason, probably bad internet connection, a friendica page doesn't load well and a very basic page is delivered, with hardly any UX additions.

In general that looks quite superclean and actually even neat.
Kinda steno\ticker style.

I guess that's the basic skeleton with quite a fast delivery that even eats very few system resources.

The main ugly issue with that outfit is that avatars and icons are way to big.

Wouldn't that layout be a good starting point to create a base layer for any UX that could build on top and kinda outsource any UX as an addon that builds on top of that, kinda MUTT email style skeleton?


Friendica Developers reshared this.

in reply to Random Penguin

btw @Random Penguin

Friendica, though, doesn't have a robust theme system like WordPress. So for just about everything I've wanted to do I needed to pick my way through the code and figure it out, because the documentation is outdated, thin, or non-existent.

Actually from the get go Mike always stated that he needed some one to take care of themes while he himself would stay with duopuntocero not because it was nice or up to date with the Zeitgeist of themes but that's how he could work best.
Just for your back ground knowledge.

Friendica Developers reshared this.

in reply to utopiArte

@utopiArte @Random Penguin Well, the best advice here is always to duplicate an existing theme and then tinker around in it. Sure it isn't wrong to have knowledge in CSS (Cascading Style-Sheets).

Friendica Developers reshared this.

in reply to Random Penguin

The media in this post is not displayed to visitors. To view it, please go to the original post.

This is what Facebook's Menu looks like on desktop:


Facebook Desktop menu


So this is what I've been working on for BookLook to make the "Help" menu more useful, especially for new users:


Booklook Help Menu


Yes, the icons are intentionally huge. They also do a horizontal flip-spin animation on mouseover and adopt a gradient fill from your accent color. Like the Facebook Menu, the right-hand column just moves below the left on mobile and the menus expand to fill the width.

"Friends" would go to the contact suggestions page.
"Groups" would go to the global directory Groups section.
"News Feed" is the Network tab
"Other Feeds" goes to the Community tab.
"Pages" would go to the global directory Organizations section.

It should be obvious where the "Personal" links go to your profile.

In the "Create" menu I'm not quite sure yet what I'm going to do with the ones for "Page" and "Group" as there really needs to be some kind of explainer for people on HOW they create those since it's not very obvious.

reshared this

in reply to Random Penguin

The media in this post is not displayed to visitors. To view it, please go to the original post.

Yet another thing I've been working on adding is custom branding. There are already Admin settings for the browser and mobile icon settings when the site is bookmarked, but this is for changing what is in the top bar in the site UI itself.

In BookLook I wanted to switch from using the ForkAwesome icon font for the Friendica icon/logo to using the SVGs from my "Share to Fedi" button script. I don't know how much interest there is in custom branding Friendica servers, but this turned out to be relatively easy to implement.

In the server Administrator theme settings there will be branding options for the desktop and mobile layouts:

Default Branding In Admin Settings

Below the text box for each layout there are little buttons for changing or restoring any of the default icons/logos and what it will look like against the top navigation bar.

The idea is you can paste code for any SVG image in there. It can be a full color image, so long as it will look good against both light and dark backgrounds. But if you make an all white or all black image and add fill="currentColor" and/or style="fill:currentColor;" it should also adopt the theme's accent color:

Custom Branding in Admin Options

Ideally the one for the mobile layout should always only be an icon, but the desktop layout one could be an icon or horizontal logo. With SVG images, though, they'll just scale to fit the space allocated for it.

This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.