BookLook Theme Early Preview
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.
like this
reshared this


Michael 🇺🇦
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.
Random Penguin
in reply to Michael 🇺🇦 • • •Thanks @Michael 🇺🇦 I can definitely use the encouragement. Working on this has been kind of a slog.
@Marcus offered to help with the Git stuff I don't get (haha).
Marcus likes this.
Friendica Developers reshared this.
Nanook
in reply to Random Penguin • •Friendica Developers reshared this.
Nanook
in reply to Random Penguin • •Roland Häder🇩🇪 likes this.
Friendica Developers reshared this.
Random Penguin
in reply to Nanook • • •Friendica Developers reshared this.
Random Penguin
in reply to Random Penguin • • •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.
Roland Häder🇩🇪 likes this.
Friendica Developers reshared this.
Random Penguin
in reply to Random Penguin • • •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:
Roland Häder🇩🇪 likes this.
Friendica Developers reshared this.
Nanook
in reply to Random Penguin • •like this
Random Penguin and Roland Häder🇩🇪 like this.
Friendica Developers reshared this.
Anomaly
in reply to Random Penguin • • •I like it very much, thanks for your work 🐧, I hope to try it soon
Random Penguin likes this.
Friendica Developers reshared this.
Andy HΞ3
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! 💚
like this
Random Penguin, jakob 🇦🇹 ✅ and Marco R. like this.
reshared this
Friendica Developers and jakob 🇦🇹 ✅ reshared this.
utopiArte
in reply to Random Penguin • • •@Random Penguin
like this
Random Penguin and Roland Häder🇩🇪 like this.
Friendica Developers reshared this.
Random Penguin
in reply to Random Penguin • • •Friendica Developers reshared this.
utopiArte
in reply to Random Penguin • • •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.
Random Penguin
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?
utopiArte likes this.
Friendica Developers reshared this.
jakob 🇦🇹 ✅
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... 😉
like this
utopiArte and Montag like this.
Friendica Developers reshared this.
Nanook
in reply to jakob 🇦🇹 ✅ • •Friendica Developers reshared this.
utopiArte
in reply to Nanook • • •jakob wrote:
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.
utopiArte
in reply to utopiArte • • •@Random Penguin
Porting the following comment to over here so it can be deleted in the other post:
bitpickup
2026-01-07 14:12:23
Friendica Developers reshared this.
utopiArte
in reply to Random Penguin • • •btw @Random Penguin
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.
Roland Häder🇩🇪 likes this.
Friendica Developers reshared this.
Roland Häder🇩🇪
in reply to utopiArte • • •utopiArte likes this.
Friendica Developers reshared this.
Random Penguin
in reply to Random Penguin • • •This is what Facebook's Menu looks like on desktop:
So this is what I've been working on for BookLook to make the "Help" menu more useful, especially for new users:
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.
like this
Anomaly and Marcus like this.
reshared this
Friendica Developers and Anomaly reshared this.
Random Penguin
in reply to Random Penguin • • •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:
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/orstyle="fill:currentColor;"it should also adopt the theme's accent color: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.
like this
Doug Arley, Roland Häder🇩🇪 and Anomaly like this.