Skip to content

[NODEBB] Help for my custom CSS

Solved Customisation
237 5 83.8k 3
  • Hi Mark
    My Homepage did not shown on top.

    image.png

    @cagatay That looks like you didn’t define a label for the icon. Have a look at /admin/settings/navigation, and you’ll see what I mean

    185e4cab-d66d-4b28-be84-fcf1293d7d23-{B68462A1-F628-4904-82B1-32CC90A060FD}.png

  • thank you Mark, fixed.

  • how can i add these new year icons to my home page as well?

    image.png

  • @cagatay said in [NODEBB] Help for my custom CSS:

    how can i add these new year icons to my home page as well?

    image.png

    JS:

    $(window).on('action:ajaxify.end', function(ev, data) {
        const snowMan = $('#snow-man');
        if (!snowMan.length && !ajaxify.data.template.chats) {
            $(`<img 
                src="https://www.freeiconspng.com/thumbs/snowman-png/snowman-png-29.png" 
                id="snow-man" 
                class="d-none d-lg-block position-fixed" style="z-index: 1054; bottom: -50px; right: -100px;"/>
            `).appendTo('body');
        } else {
            if (ajaxify.data.template.chats) {
                snowMan.remove();
            }
        }
    });
    

    CSS:

    // ------------------------------------------
    // Christmas styling 
    // ------------------------------------------
    /* Guirlande header */
    
    
    
    body {
      background-image: url("https://community.nodebb.org/assets/uploads/files/xmas-lights.png");
      background-repeat: repeat-x;
      background-position: top -22px left;
    }
    
    .container.px-md-4.brand-container {
        margin-top: 10px;
    }
    
    
    /*
    .skin-noskin #content {
        background: rgba(255, 255, 255, 0.9);
        margin-top: 1rem;
        border-radius: 5px;
    }*/
    
    /* end christmas styling */
    
    img#snow-man {
        width: 280px;
    }
    
    @media all and (max-width: 768px) {
    #snow-man {
        display: none;
      }
      .container.px-md-4.brand-container {
        margin-top: 15px !important;
        }
    }   
    
    div#console-nav-tab {
        z-index: 1000;
    }
    
  • thank you @DownPW

  • Hello @phenomlab

    I’d like to increase the size of the avatar image in the right sidebar without widening it, and center all the icons.

    I can’t find the right code.

    Any ideas?
    image.png

    .sidebar #user_dropdown .avatar {
        margin: 2px 0;
        width: 30px;
        height: 30px;
    }
    

    2f8847fb-7d2b-4794-834f-af459093d543-image.png

  • Hello @phenomlab

    I’d like to increase the size of the avatar image in the right sidebar without widening it, and center all the icons.

    I can’t find the right code.

    Any ideas?
    image.png

    .sidebar #user_dropdown .avatar {
        margin: 2px 0;
        width: 30px;
        height: 30px;
    }
    

    2f8847fb-7d2b-4794-834f-af459093d543-image.png

    @DownPW There isn’t any easy way to achieve this without using position: absolute on the img itself. Even then, you’d need to manually alter the position of the child icons in the same div (the sidebar). Whilst I do see the appeal, it’s not something I’d recommend doing to be honest.

  • @DownPW There isn’t any easy way to achieve this without using position: absolute on the img itself. Even then, you’d need to manually alter the position of the child icons in the same div (the sidebar). Whilst I do see the appeal, it’s not something I’d recommend doing to be honest.

    @phenomlab

    I succeeded in the following way by playing with the margins.

    .sidebar #user_dropdown .avatar {
        margin: 2px -7px;
        width: 35px;
        height: 35px;
    }
    

    Result is good :

  • I’d like to do the same thing with the website logo.

    For example, at Christmas time, I’d like to change my logo to something like a Santa hat, but it’s always cut off.

    I’ve tried adjusting the size and margins, and even modifying the logo’s pixels directly, but it doesn’t seem to work. It’s always cut off in the same way.

  • I’d like to do the same thing with the website logo.

    For example, at Christmas time, I’d like to change my logo to something like a Santa hat, but it’s always cut off.

    I’ve tried adjusting the size and margins, and even modifying the logo’s pixels directly, but it doesn’t seem to work. It’s always cut off in the same way.

    said in [NODEBB] Help for my custom CSS:

    I’d like to do the same thing with the website logo.

    For example, at Christmas time, I’d like to change my logo to something like a Santa hat, but it’s always cut off.

    I’ve tried adjusting the size and margins, and even modifying the logo’s pixels directly, but it doesn’t seem to work. It’s always cut off in the same way.

    @phenomlab ?

  • 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 !!


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
  • Rotating homepage icons, gifs?

    Solved Configure nodebb
    2
    3 Votes
    2 Posts
    749 Views
    @eveh It’s not a GIF, no. It’s actually a webp file so made much smaller, and uses keyframes to control the rotation on hover. You can easily make your own though The CSS for that is as below @keyframes rotate180 { from { transform: rotate(0deg); } to { transform: rotate(180deg); } } @keyframes rotate0 { from { transform: rotate(180deg); } to { transform: rotate(0deg); } } Your milage may vary on the CSS below, as it’s custom for Sudonix, but this is the class that is used to control the rotate .header .forum-logo, img.forum-logo.head { max-height: 50px; width: auto; height: 30px; margin-top: 9px; max-width: 150px; min-width: 32px; display: inline-block; animation-name: rotate180, rotate0; animation-duration: 1000ms; animation-delay: 0s, 1000ms; animation-iteration-count: 1; animation-timing-function: linear; transition: transform 1000ms ease-in-out; }
  • Recent Cards plugin customization

    Solved Customisation nodebb
    21
    1
    13 Votes
    21 Posts
    7k Views
    @pobojmoks that’s easily done by modifying the code provided here so that it targets background rather than border In essence, the below should work $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('.recent-card-container').each(function(i) { var dataId = $(this).attr("data-cid"); var color = $('[role="presentation"]', this).css("background-color"); console.log("data-cid " + dataId + " is " + color); $('[data-cid="' + dataId + '"] .recent-card').attr("style", "background-color: " + color); }); }); });
  • [NodeBB] Custom fields plugin

    Unsolved Customisation nodebb plugins javascript custom
    5
    0 Votes
    5 Posts
    2k Views
    @pwsincd hi. Just following up on this thread (I know it’s old) but was curious to understand if it’s still an issue or not ?
  • 4 Votes
    8 Posts
    4k Views
    @DownPW done
  • [NODEBB] Stats

    Unsolved Customisation plugin stats script
    20
    1
    2 Votes
    20 Posts
    4k Views
    @phenomlab said in [NODEBB] Stats: @jac or I land up fixing it I wouldn’t put it past you
  • Reading Meter Progress bar

    Locked Solved Customisation css
    15
    1
    9 Votes
    15 Posts
    3k Views
    For anyone else following this thread, please see https://sudonix.com/topic/467/issues-with-progress-bar-on-v3
  • nodebb-plugin-customize error

    Solved Customisation
    25
    2 Votes
    25 Posts
    9k Views
    @phenomlab it work, thanks
  • NodeBB Design help

    Solved Customisation
    8
    3
    2 Votes
    8 Posts
    2k Views
    @riekmedia I’ve applied some new CSS to your site. Can you reload the page and try again ? For the record, this is what I added #footer { background: #2d343e; border-top: 4px solid #2d343e; font-size: 0.9em; margin-top: 70px; padding: 80px 0 0; position: relative; clear: both; bottom: 0; left: 0; right: 0; z-index: 1000; margin-left: -15px; margin-right: -338px; } The /categories page seems a bit messed up, so looking at that currently EDIT - issued some override CSS in the CATEGORIES widget <!--- CSS fix for overspill on /categories page - DO NOT DELETE --> <style> #footer { margin-right: -45px; } </style> That should resolve the /categories issue.