Skip to content

[NODEBB] Help for my custom CSS

Solved Customisation
257 5 135.0k 3
  • This post is deleted!
  • I just upgraded to the latest version to see if I could replicate this, which I can’t. Do you perhaps have overriding CSS?

  • resolve with :

    li[component=post] a[href*=“/groups/administrators”] {
    position: absolute !important;
    left: 2px;
    z-index: 2;
    margin-top: 1px;
    border-radius: 999px !important;
    line-height: 14px;
    display: block;
    margin-left: 6px !important;
    background: var(–bs-user-level-bg) !important;
    color: var(–bs-body-color-primary) !important;
    width: auto;
    }

  • resolve with :

    li[component=post] a[href*=“/groups/administrators”] {
    position: absolute !important;
    left: 2px;
    z-index: 2;
    margin-top: 1px;
    border-radius: 999px !important;
    line-height: 14px;
    display: block;
    margin-left: 6px !important;
    background: var(–bs-user-level-bg) !important;
    color: var(–bs-body-color-primary) !important;
    width: auto;
    }

    @DownPW great, but use position: absolute; carefully and sparingly

  • Hi,

    I’d like to enlarge the div so that the logo is fully displayed. Right now, for example, it’s cut off on the right at the glasses.

    8d7fea95-a138-42be-9ffd-12448b0b6fcd-image.jpeg

    an idea ?

  • if I set :

    • {
      overflow: visible !important;
      }
      it’s OK.

    I have not overflow: hidden in my custom css on acp…

    Maybe because Fancybox add an <a> no ?

    9780086b-1ca2-4b61-bf56-b4eb9e1c8871-image.jpeg

  • if I set :

    • {
      overflow: visible !important;
      }
      it’s OK.

    I have not overflow: hidden in my custom css on acp…

    Maybe because Fancybox add an <a> no ?

    9780086b-1ca2-4b61-bf56-b4eb9e1c8871-image.jpeg

    @DownPW strange. Fancybox doesn’t actually alter the image as far as I recall.

    Does it make a difference if you change the class name (in developer mode) from fancybox to say, fancybox1?

    If it works, then the class may have that defined already.

  • @baris said:

    You should change your selectors so it doesn’t look at the entire document. You probably only want to apply fancybox to stuff inside the #content element which is what changes when the user navigates around the page. So use $('#content a').... for your selectors then the forum logo in the header won’t be selected.

    I modified the JS Fancybox code now and this code and it seem better 🙂

    // ---------------------------------------------
    // Fancybox Media Reader (Without Website Logo)
    // ---------------------------------------------
    
    if (top.location.pathname !== '/login') {
        $(window).on('action:posts.loaded', function(data) {
            console.log("Polling DOM for lazyLoaded images to apply Fancybox");
            $(document).ready(function() {
                $('#content a').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() {
                    $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate");
                });
            });
        });
    }
    
    if (top.location.pathname !== '/login') {
        $(document).ready(function() {
            $(window).on('action:ajaxify.end', function(data) {
                $('#content a').not('.logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() {
                    $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate");
                    data.preventDefault()
                    // Strip out the images contained inside blockquotes as this looks nasty :)
                    $('#content blockquote img').remove();
                });
                Fancybox.bind(
                    '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]',
                    {
                        groupAll: true,
                    }
                );
            });
        });
    }
    
    // Chat fancybox - fires when chat module loaded and AJAX calls new chat
    $(document).ready(function() {
        $(window).on('action:chat.loaded', function(data) {
            // >>> Se limiter au contenu principal uniquement <<<
            $('#content img').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() {
                var newHref = $(this).attr("src");
                $(this).wrap("<a class='fancybox' href='" + newHref + "'/>");
                $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate");
                data.preventDefault();
                // Strip out the images contained inside blockquotes as this looks nasty :)
                $('#content blockquote img').remove();
            });
            Fancybox.bind(
                '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]',
                {
                    groupAll: true,
                }
            );
        });
    });
    

    For the logo, I must use overflow: visible !important; on [component="brand/logo"]

    /* --- Logo --- */
    [component="brand/logo"] {
      max-height: 50px;
      width: auto;
      height: auto;
      max-width: 100%;     
      display: block;
      object-fit: contain;  
      object-position: left center;
      overflow: visible !important;
    }
    

    Better result !!

  • 23121622-50c4-4820-9df3-2c0f1673e070-image.jpeg

    Since the latest update, all my icons have disappeared. Could you please advise how to restore them?

  • You use custom version of Font Awesome ?

  • yes @downpw

  • @cagatay said:

    yes @downpw

    So is taht the problem.
    The core migrated to FA6 and no longer automatically includes the compatibility layers. The all.css alone is no longer enough because it only loads icons in native FA6 syntax (fa-solid, fa-regular, etc.). Your old icons using FA4 syntax (fa fa-something) are no longer recognized without the shims.

    Hence the need for the three files:

    • all.css: the FA6 icons themselves
    • v4-shims.css: the mapping table that remaps the old FA4 names to their FA6 equivalents (many icons were renamed between FA4 and FA6)
    • v4-font-face.css: redeclares the FontAwesome @font-face with the old family names (FontAwesome instead of "Font Awesome 6 Pro"), so CSS selectors targeting the old font-family keep resolving

    So if your customs still use FA4 syntax, all three are required.

    I load my Custom FA like this in my ACP/Headers :

    <link href="/assets/customfonts/FontAwesome.Pro.6.x.x/css/all.css" rel="stylesheet" />
    <link href="/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-shims.css" rel="stylesheet" />
    <link href="/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-font-face.css" rel="stylesheet" />
    
  • how i create those folders. i added ACP/HEADERS the codes but not working.

  • how i create those folders. i added ACP/HEADERS the codes but not working.

    @cagatay said:

    how i create those folders. i added ACP/HEADERS the codes but not working.

    Adapt path to your custom installation. I don’t know where is your custom FA Folder nor how you use it

  • You need to load your Font Awesome CSS files by adjusting this code to the path where you saved them.

    But honestly, I don’t know how you’ve configured your site in this regard.

  • <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” />
    <link href=“/assets/fonts/fonts.min.css?version=1” rel=“stylesheet”>
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/all.css” rel=“stylesheet” />
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-shims.css” rel=“stylesheet” />
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-font-face.css” rel=“stylesheet” />
    <script src=“https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js”></script>
    <link rel=“stylesheet” href=“https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css”/>
    <a id=“pageUp” class=“”><i class=“fas fa-chevron-up”></i></a>
    <div id=“readingposition” class=“reading-meter” style=“bottom: 0px;”>
    <div class=“reading-meter-background rounded-1 border border-gray-300 ready”>
    <div class=“reading-meter-progress-bar rounded-1” id=“progress-bar”>
    </div>
    </div>
    </div>

    what i have now

  • <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” />
    <link href=“/assets/fonts/fonts.min.css?version=1” rel=“stylesheet”>
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/all.css” rel=“stylesheet” />
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-shims.css” rel=“stylesheet” />
    <link href=“/assets/customfonts/FontAwesome.Pro.6.x.x/css/v4-font-face.css” rel=“stylesheet” />
    <script src=“https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js”></script>
    <link rel=“stylesheet” href=“https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css”/>
    <a id=“pageUp” class=“”><i class=“fas fa-chevron-up”></i></a>
    <div id=“readingposition” class=“reading-meter” style=“bottom: 0px;”>
    <div class=“reading-meter-background rounded-1 border border-gray-300 ready”>
    <div class=“reading-meter-progress-bar rounded-1” id=“progress-bar”>
    </div>
    </div>
    </div>

    what i have now

    @cagatay if you look in the console (developers console in browser) do you see any error messages being returned?

    Linux is case sensitive, and it’s possible to have the same filename and folder name in upper and lower case.

    I suspect this might be the issue, but I could be wrong.

  • Mark, the situation is that since I used your CSS files, I don’t even have the Frontawese folder. Because of that, I really need your direct help. I’d really appreciate it if you could take a look whenever you have some free time.

  • Hi Mark, hope you’re doing well. Are you going to be able to help me with this?

  • Hi Mark, hope you’re doing well. Are you going to be able to help me with this?

    @cagatay Just looking at this now. Do you have a FA Pro 6 license, or are you trying to use the free version? It’s not immediately clear, and the directory structure on your server is a mess to be honest. Not sure what has happened here.

    EDIT - I have it working. DM me.


Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • nodebb-plugin-custom-pages

    Solved Customisation plugin custom-pages
    5
    2
    3 Votes
    5 Posts
    4k Views
    @DownPW it’s possible, yes, but you may inadvertently end up targeting other elements using the same class which of course isn’t desired. Can you provide a link in DM for me to review?
  • SEO and Nodebb

    Performance nodebb seo
    2
    2 Votes
    2 Posts
    1k Views
    @Panda It’s the best it’s ever been to be honest. I’ve used a myriad of systems in the past - most notably, WordPress, and then Flarum (which for SEO, was absolutely dire - they never even had SEO out of the box, and relied on a third party extension to do it), and NodeBB easily fares the best - see below example https://www.google.com/search?q=site%3Asudonix.org&oq=site%3Asudonix.org&aqs=chrome..69i57j69i60j69i58j69i60l2.9039j0j3&sourceid=chrome&ie=UTF-8#ip=1 However, this was not without significant effort on my part once I’d migrated from COM to ORG - see below posts https://community.nodebb.org/topic/17286/google-crawl-error-after-site-migration/17?_=1688461250365 And also https://support.google.com/webmasters/thread/221027803?hl=en&msgid=221464164 It was painful to say the least - as it turns out, there was an issue in NodeBB core that prevented spiders from getting to content, which as far as I understand, is now fixed. SEO in itself is a dark art - a black box that nobody really fully understands, and it’s essentially going to boil down to one thing - “content”. Google’s algorithm for indexing has also changed dramatically over the years. They only now crawl content that has value, so if it believes that your site has nothing to offer, it will simply skip it.
  • Fixing YouTube videos css

    Solved WordPress css
    8
    2 Votes
    8 Posts
    2k Views
    @phenomlab It looks good, but not anymore. I’ve already lost so much time. Now it’s time to move on
  • 36 Votes
    55 Posts
    23k Views
    @DownPW I see why. The code relies on the existence of [component="topic/quickreply/container"] However, this by definition means that the below has to be enabled [image: 1679077966615-aeef638f-4188-489d-a9f2-f3a26dbca9d8-image.png] It will then work [image: 1679077992245-7fb38631-e0f3-46ef-b652-00929d927b13-image.png] For some unknown reason, this is hidden in Harmony, and only shows if you select it. In v2, it seems that the <section> is deleted altogether in Persona if “Quick Reply” is disabled, meaning it won’t fire as it can’t locate that specific component. The downside is that you might not want the quick reply function, but I think it’s a PITA to scroll up to the top of the post just to reply, so I have it on
  • Bootstrap Version

    Solved Customisation nodebb bootstrap
    8
    5 Votes
    8 Posts
    2k Views
    @phenomlab That will be nice once they have completed that. It will be interesting to see how long that takes. So for now I will use custom css to make it look the way I want. Frameworks just make things a little faster. Thanks @phenomlab
  • [NodeBB] Import custom Font

    Solved Customisation custom fonts nodebb css
    12
    3 Votes
    12 Posts
    4k Views
    @cagatay you’ll need to define this in the body tag (or another element if you want greater or more granular targets) - for example body { font-family: "Poppins"; font-size: 16px; } Essentially, you use the font-size CSS directive.
  • CSS Help on my Flarum

    Solved Customisation
    5
    2
    2 Votes
    5 Posts
    2k Views
    @mike-jones Yes, you’ll typically see this type of behaviour if there is another style that has higher priority in the sense that yours will be overridden. Using !important will override the higher preference, but should be used sparingly rather than everywhere.
  • NodeBB customisation

    Locked Customisation
    332
    27 Votes
    332 Posts
    214k Views
    @jac Given your departure away from your previous project, I’m going to close this thread…