Big Header - Little Header

This theme component will provide a stationary header with a large logo when scrolled at the top of the page. As you scroll down the page, the normal Discourse header bar will appear. This allows a large site logo to be cleanly displayed at the top of the page.

On mobile, the header bar will only display when the phone is in portrait orientation. Vertical space is usually fairly limited when you are in landscape orientation, so this will keep things open. To see the header again, you can either scroll to the top of the page or rotate the phone back to portrait orientation.

The best way to see what this theme component does is to try it out, which you can do by visiting:

Here is my attempt at a small GIF of it in action (highly recommend clicking on the link above for a better illustration :slight_smile:)

demo

Settings:

There are currently three settings that should be pretty self-explanatory:

Installation:

IMPORTANT: You must be running Discourse Version 2.0.0.beta4 or later for this theme to work.

Take a look at this topic for instructions on how to install the theme component:

Import Link:

https://github.com/tshenry/discourse-big-header-little-header.git

About:

The original proposal for this came from @ryanerwin on the marketplace. He asked that I generalize what I created for him and share it with the rest of the community. So this theme is very much inspired and brought to you by him :slightly_smiling_face:

Notes:

Being that users love to customize their headers and the general area near the top of the page, there may need to be some additional adjustments made to handle conflicts with other customizations. I have tested this to work on a clean Discourse theme, but be prepared to tinker with it depending on how many other customizations you’ve done. It would be ideal to do as many of the modifications to this as a separate child theme component so that you do not lose track of your changes if/when the theme is updated.

Known issues:

Since this adds padding to the div#main-outlet, the topic timeline can be affected depending on how large your logo is. There are hard-coded ways to handle it, but that’s not ideal. I will most likely make a post in dev to outline all that I’ve tried and see if anyone has ideas on how to compensate for the extra padding.

Repo:

GitHub - tshenry/discourse-big-header-little-header

As always, please feel free to post if there are any questions, problems, or suggestions! My time is a little tight right now, but I will try address everything as quickly as possible :slight_smile:

24 Likes

Awesome work on this @tshenry.

For anyone who wants to use a BIG LOGO at the top of their Discourse site, particularly if their logo is not rectangular, this is a great theme plugin!

1 Like

Oh dang, that’s a pretty rad component you’ve got there, thanks for sharing back with us! :heart_eyes:

Any chance of an animated sample, just so those interested in something similar can git the gist of how it feels? (Or better yet, link to a live sample you can share on theme creator so they can play with it themselves!)

6 Likes

No problem! :slightly_smiling_face:

I will most definitely add a sample to theme creator. Thanks for the reminder! I need to update my other themes with the links to their demos on there as well. I’ll try to get a GIF in the post as well.

Edit: I’ve added both an animated image and a demo link to the topic post :grin:

9 Likes

I believe that recent logo changes may have broken this component - if you look at the theme creator version it is not working

3 Likes

Yep, very broken! I’ll get that fixed up ASAP.

5 Likes

Ok, it should be fixed now :slightly_smiling_face:

If anyone reading this notices issues after updating the component, please report them!

7 Likes

There’s just a slight dead zone under the little header where you can’t interact with certain things. Highlighting text, entering a topic, interacting with the timeline. I’m sorry, I don’t really know how to describe my problem, but you can reproduce it by just having text or the timeline below the little header. Try to highlight the text, or interact with the timeline.

Does anybody have any suggestions to fix this? It’s not a super huge problem in general, but it does make the Table of Contents theme component wonky to work with. I’m not sure if this is something to tell you or them.

I love this component, by the way @tshenry.

3 Likes

Thanks for reporting! This should be fixed once you update the component. Let me know if you ever find any other issues.

5 Likes

My goodness, that was quick! Works fantastic, thank you so much!

4 Likes

I have installed this theme, but my logo is not showing up. It was before I installed this theme.

Is there a solution for this? Thanks!

1 Like

I’ve been meaning to take a look at this component and make sure everything is still working as expected. I’ll take a look either today or tomorrow and let you know.

Edit: I tested it out and all seems to be working correctly. Make sure you add the large logo image to the theme setting. I have a few improvements in mind for this component, but I’m not sure when I’ll get to them.

2 Likes

@tshenry Why did the background color of my header change from my set color in my theme to white when I activated Big Header - Little Header? Do I need to override it? It feels like the plugin should respect whatever color scheme I have already set in my theme.

1 Like

It looks like I had it set to use the $secondary color variable that’s defined in your site’s color scheme. In hindsight, I should have used $header_background since that would allow a user to swap it out through their color scheme very easily. Changed via:

https://github.com/tshenry/discourse-big-header-little-header/commit/803eaab18e024704f505852431afb515fada4332

3 Likes

@tshenry Works for me on the “Little” logo (thanks!), but not on the “Big” one, it’s still white.

1 Like

Ah yeah, the “Big” header was always intended to blend into the site’s background. If you want to change that, I would try to work out some CSS to add the background. I can look into adding a toggle when I refactor this component, but I expect that’s going to be a while down the road.

Yes I was able to override it with:

.d-header { background-color: #000 !important; }

Another issue I’m running into is that I have used custom CSS to specify a larger height for my header with a larger logo than the Discourse default.

I feel like it would be useful if we could set a big logo height and a small logo height in your plugin settings so that we can achieve the look that we are aiming for.

Otherwise how would I set the height of the “Little” header?

I’ll try to make things a little more flexible through the settings the next time I work on this, but until then you’ll need to tinker with the CSS and such to find the best solution that fits with your other customizations.

1 Like

Thanks! I had to disable your plugin for now because when in /admin I could not click on the navigation links at the top (Dashboard, Settings, Users, etc…). I can’t tell if it’s an interaction with my CSS but I’ll investigate.

UPDATE: It was indeed my CSS, I made a mistake somewhere, had nothing to do with your plugin.

1 Like