Skip to content

Custom badges

Solved Customisation
103 4 60.2k 2
  • @crazycells yes, the badges by default do not display on less than 1200px I believe (I might be wrong)

    wrote on last edited by phenomlab
    #34

    hi @phenomlab , in this topic where the solution is chosen:

    https://sudonix.org/topic/388/the-best-css-to-customize-our-logo

    verified badge and online status are overlapping. I guess it is not intended?

  • hi @phenomlab , in this topic where the solution is chosen:

    https://sudonix.org/topic/388/the-best-css-to-customize-our-logo

    verified badge and online status are overlapping. I guess it is not intended?

    wrote on last edited by
    #35

    @crazycells hmm, I’m not seeing that. Can you provide a screenshot?

  • @crazycells hmm, I’m not seeing that. Can you provide a screenshot?

    wrote on last edited by
    #36

    @phenomlab sure, here is how I see it:

    Screen Shot 2022-11-21 at 15.49.47.png

  • @phenomlab sure, here is how I see it:

    Screen Shot 2022-11-21 at 15.49.47.png

    wrote on last edited by
    #37

    @crazycells ah, yes, I know why. There’s a class I haven’t committed.

    Thanks. I’ll sort that out tomorrow.

  • @crazycells Let’s try this

    In /forum/admin/manage/groups/verified, remove the highlighted section

    1c9e1406-d641-4e6c-8a03-e452c9462768-image.png

    We are then left with no text, but a clearer looking icon

    149c24c4-c95c-4a6e-8dc4-52340e4d0bed-image.png

    Now remove the previous CSS blocks I provided here

    Add replacement CSS

    .post-header a[href*="/forum/groups/verified"] {
        margin-right: 3px;
        margin-top: 1px;
        border-radius: 50%;
        line-height: 20px;
        display: inline-block;
        vertical-align: middle;
        text-align: center;
        overflow: hidden;
    }
    small.label.group-label.inline-block i {
        margin-top: 1px;
        margin-left: 0px;
        vertical-align: middle;
        justify-content: center;
        display: flex;
    }
    .post-header a[href*="/forum/groups/verified"] .group-label {
        min-width: 20px;
        display: flex;
        justify-content: center;
    }
    .group-label {
        vertical-align: -6px;
    }
    
    

    You should land up with something like this

    16a50d49-f765-46c9-a480-344a592baf13-image.png

    As you can see, this forces the stars out of alignment, but I don’t think this is too much of a sacrifice, and could be remediated with additional targeted CSS if need be.

    Essentially, because NodeBB doesn’t provide an id field (which would be a lot easier), we have to use wildcard CSS such as .post-header a[href*="/forum/groups/verified"] but make it targeted in the sense that it will only fire if it is part of the post stream, hence .post-header at the beginning.

    We then use .post-header a[href*="/forum/groups/verified"] .group-label to target the actual label (but only when we have a wildcard match in the CSS) meaning we can set a minimum width so that the circle doesn’t look quashed (we need to validate this on Firefox though as additional CSS might be required due to how the webkit engine will render this in contrast to mozilla).

    Finally, we use .group-label to force alignment in terms of height to prevent it wandering out of the inline-block.

    This is already active on your forum, so nothing for you to do but (hopefully) admire 🙂

    Let me know.

    wrote on last edited by cagatay
    #38

    @phenomlab said in Custom badges:

    @crazycells @DownPW something of a “fresher” approach. Have a look at the below

    5602e864-6de6-4a09-9dd1-eb33b2807774-image.png

    Using the messenger type view I created, it then becomes possible to place the “verified” group according to the style from the same view.

    This does mean some new CSS

    .self-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
    }
    .topic-response-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    

    And, more importantly, I found a more efficient way of adding classes in the messenger view js. The revised code is below

    // Target those elements already loaded in the DOM
    $(document).ready(function() {
        $(window).on('action:ajaxify.end', function(data) {
            $('li[component="post"]').each(function(i, obj) {
                if (!$(this).hasClass('self-post') || (!$(this).hasClass('self-post'))) {
                    console.log("Adding required classes for messenger type view");
                    $(this).addClass('topic-response-post');
                }
    
            });
        });
    });
    // Target elements dynamically added to the DOM on post load
    $(document).ready(function() {
        $(window).on('action:ajaxify.loaded', function(data) {
            $('li[component="post"]').each(function(i, obj) {
                if (!$(this).hasClass('self-post') || (!$(this).hasClass('self-post'))) {
                    console.log("Adding required classes for messenger type view");
                    $(this).addClass('topic-response-post');
                }
    
            });
        });
    });
    

    My style looks like it with those codes. There isjust seems some blue color of my checked icon 🙂

    ab44fb86-a985-4bbb-b6ab-284c80831859-image.png

  • cagatay cagatay referenced this topic on
  • @phenomlab said in Custom badges:

    @crazycells @DownPW something of a “fresher” approach. Have a look at the below

    5602e864-6de6-4a09-9dd1-eb33b2807774-image.png

    Using the messenger type view I created, it then becomes possible to place the “verified” group according to the style from the same view.

    This does mean some new CSS

    .self-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
    }
    .topic-response-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    

    And, more importantly, I found a more efficient way of adding classes in the messenger view js. The revised code is below

    // Target those elements already loaded in the DOM
    $(document).ready(function() {
        $(window).on('action:ajaxify.end', function(data) {
            $('li[component="post"]').each(function(i, obj) {
                if (!$(this).hasClass('self-post') || (!$(this).hasClass('self-post'))) {
                    console.log("Adding required classes for messenger type view");
                    $(this).addClass('topic-response-post');
                }
    
            });
        });
    });
    // Target elements dynamically added to the DOM on post load
    $(document).ready(function() {
        $(window).on('action:ajaxify.loaded', function(data) {
            $('li[component="post"]').each(function(i, obj) {
                if (!$(this).hasClass('self-post') || (!$(this).hasClass('self-post'))) {
                    console.log("Adding required classes for messenger type view");
                    $(this).addClass('topic-response-post');
                }
    
            });
        });
    });
    

    My style looks like it with those codes. There isjust seems some blue color of my checked icon 🙂

    ab44fb86-a985-4bbb-b6ab-284c80831859-image.png

    wrote on last edited by
    #39

    @cagatay you should remove those two CSS blocks your referenced as that’s what’s causing the odd looking blue circles over the avatar.

  • @cagatay you should remove those two CSS blocks your referenced as that’s what’s causing the odd looking blue circles over the avatar.

    wrote on last edited by
    #40

    @phenomlab which one i should remove?

  • @phenomlab which one i should remove?

    wrote on last edited by
    #41

    @cagatay These

    .self-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
    }
    .topic-response-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    
  • @cagatay These

    .self-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
    }
    .topic-response-post a[href*="/groups/verified"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    
    wrote on last edited by
    #42

    @phenomlab its not work, nothing changed when i deleted those css.

  • @phenomlab its not work, nothing changed when i deleted those css.

    wrote on last edited by
    #43

    @cagatay what isn’t working?

  • @cagatay what isn’t working?

    wrote on last edited by
    #44

    @phenomlab there is no changes after deleted css code;

    60f4bfa0-cc9e-4815-8044-9c38fb58769b-image.png

  • @cagatay what isn’t working?

    wrote on last edited by
    #45

    @phenomlab how can i set blue tick like sudonix to my own? coz codes which you are shared, it not look like yours;

    06a99cc4-2894-4284-84c5-cca50d0119cc-image.png

  • @phenomlab how can i set blue tick like sudonix to my own? coz codes which you are shared, it not look like yours;

    06a99cc4-2894-4284-84c5-cca50d0119cc-image.png

    wrote on last edited by
    #46
  • phenomlab phenomlab referenced this topic on
  • wrote on last edited by
    #47

    @phenomlab i read it and did it what you wrote. but result as below;

    42761f89-4153-4945-967a-10afddf478fc-image.png

    blue icon not seen, it hide by avatar 🙂

  • @phenomlab i read it and did it what you wrote. but result as below;

    42761f89-4153-4945-967a-10afddf478fc-image.png

    blue icon not seen, it hide by avatar 🙂

    wrote on last edited by phenomlab
    #48

    @cagatay Yes, having checked, I see what you mean. I’ve fixed this on your site.

    This is the new applied code

    .post-header a[href*="/groups/onaylı-üyeler"] {
        margin-right: 3px;
        margin-top: 1px;
        border-radius: 50%;
        line-height: 20px;
        display: inline-block;
        vertical-align: middle;
        text-align: center;
        overflow: hidden;
    }
    small.label.group-label.inline-block i {
        margin-top: 1px;
        margin-left: 0px;
        vertical-align: middle;
        justify-content: center;
        display: flex;
    }
    .post-header a[href*="/groups/onaylı-üyeler"] .group-label {
        min-width: 20px;
        display: flex;
        justify-content: center;
    }
    .self-post a[href*="/groups/onaylı-üyeler"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
        z-index: 2;
    }
    .topic-response-post a[href*="/groups/onaylı-üyeler"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
        z-index: 2;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    .group-label {
        vertical-align: -6px;
    }
    

    However, there were some errors on your part. You were correct in renaming the actual group in CSS (good call) because of the language not being English, but the path was incorrect. You used the below, which was customized for @crazycells install 🙂

    /forum/groups/onaylı-üyeler
    

    It should be

    /groups/onaylı-üyeler
    

    You also have some overriding CSS somewhere that defines a lower z-index value which forces the “verified” icon behind the avatar, so I’ve added an adjustment for that

    z-index: 2;
    
  • @cagatay Yes, having checked, I see what you mean. I’ve fixed this on your site.

    This is the new applied code

    .post-header a[href*="/groups/onaylı-üyeler"] {
        margin-right: 3px;
        margin-top: 1px;
        border-radius: 50%;
        line-height: 20px;
        display: inline-block;
        vertical-align: middle;
        text-align: center;
        overflow: hidden;
    }
    small.label.group-label.inline-block i {
        margin-top: 1px;
        margin-left: 0px;
        vertical-align: middle;
        justify-content: center;
        display: flex;
    }
    .post-header a[href*="/groups/onaylı-üyeler"] .group-label {
        min-width: 20px;
        display: flex;
        justify-content: center;
    }
    .self-post a[href*="/groups/onaylı-üyeler"] .group-label {
        position: absolute !important;
        right: 51px;
        top: 44px;
        z-index: 2;
    }
    .topic-response-post a[href*="/groups/onaylı-üyeler"] .group-label {
        position: absolute !important;
        left: 20px;
        top: 44px;
        z-index: 2;
    }
    .topic-response-post i[component="user/status"] {
        position: absolute;
        left: -1px;
    }
    .group-label {
        vertical-align: -6px;
    }
    

    However, there were some errors on your part. You were correct in renaming the actual group in CSS (good call) because of the language not being English, but the path was incorrect. You used the below, which was customized for @crazycells install 🙂

    /forum/groups/onaylı-üyeler
    

    It should be

    /groups/onaylı-üyeler
    

    You also have some overriding CSS somewhere that defines a lower z-index value which forces the “verified” icon behind the avatar, so I’ve added an adjustment for that

    z-index: 2;
    
    wrote on last edited by
    #49

    @phenomlab ah okey Mark 🙂 you as always better then me so there is no word in my side for the explaniton 🙂

    thank you again.

  • @phenomlab ah okey Mark 🙂 you as always better then me so there is no word in my side for the explaniton 🙂

    thank you again.

    wrote on last edited by
    #50

    @cagatay said in Custom badges:

    @phenomlab ah okey Mark 🙂 you as always better then me so there is no word in my side for the explaniton 🙂

    thank you again.

    hi @cagatay , as a first step you have to create a group called “verified” , then everything is as it is written on this thread… but since your group name was different, it gave an error…

    I am writing this explicitly so that others can be aware.

  • @cagatay said in Custom badges:

    @phenomlab ah okey Mark 🙂 you as always better then me so there is no word in my side for the explaniton 🙂

    thank you again.

    hi @cagatay , as a first step you have to create a group called “verified” , then everything is as it is written on this thread… but since your group name was different, it gave an error…

    I am writing this explicitly so that others can be aware.

    wrote on last edited by
    #51

    @crazycells said in Custom badges:

    I am writing this explicitly so that others can be aware.

    Good point. Thanks

  • @crazycells said in Custom badges:

    I am writing this explicitly so that others can be aware.

    Good point. Thanks

    wrote on last edited by cagatay
    #52

    @phenomlab i have problem with my badges for ios and android users.

    i can secret all of from mobile users?

  • @phenomlab i have problem with my badges for ios and android users.

    i can secret all of from mobile users?

    wrote on last edited by
    #53

    @cagatay Are they showing on mobile ? Can you send a screenshot ?


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
  • Custom Page - nodebb

    Solved Customisation custom-pages nodebb
    13
    2
    5 Votes
    13 Posts
    3k Views
    DownPW
    I’m happy to see this
  • CSS code customization for the link preview plugin

    Solved Customisation css nodebb
    6
    2
    3 Votes
    6 Posts
    3k Views
    phenomlab
    @kadir-ay-0 marking as resolved based on https://community.nodebb.org/topic/17109/manual-build-a-night-mode-for-harmony/5 Please do not raise requests in two places - here and the NodeBB forums. All this does is create unnecessary load for both parties.
  • Difficult to move posts now, on mobile.

    Bugs nodebb
    16
    1
    5 Votes
    16 Posts
    5k Views
    phenomlab
    @DownPW Yes, it is. It’s set far too low meaning other elements with a higher preference will sit over the top of it.
  • optional "snow falling" theme

    Solved Customisation nodebb
    6
    6 Votes
    6 Posts
    2k Views
    phenomlab
    @Sala ok, but that’s still the same loop which is going to have an impact on the CPU.
  • The best css to customize our logo?

    Solved Customisation css
    2
    1 Votes
    2 Posts
    3k Views
    phenomlab
    @Sala This should look better .sidenav .navbar-brand { padding-top: 0.5rem; padding-bottom: 0.5rem; } [image: e5cec20e-be36-4ee8-9129-fd11ad4656ac-image.png] You can increase the top and bottom padding by increasing the values above.
  • How to fix size of photos & videos NodeBB

    Solved Customisation nodebb nodebb size
    7
    3 Votes
    7 Posts
    3k Views
    phenomlab
    @crazycells pleasure. Using percentages makes much more sense in this case. It’s the same argument with px vs pt vs em with fonts, margins, padding, etc., in the sense that em is generally preferred over px and pt https://stackoverflow.com/questions/609517/why-em-instead-of-px
  • [NodeBB] Import custom Font

    Solved Customisation custom fonts nodebb css
    12
    3 Votes
    12 Posts
    5k Views
    phenomlab
    @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.
  • NodeBB vs Discourse

    Chitchat nodebb discourse board
    25
    6 Votes
    25 Posts
    14k Views
    RiekMedia
    @phenomlab said in NodeBB vs Discourse: Hetzner eh ? I use them also. In fact, Sudonix is hosted in Nuremberg yes i’m also at hetzner, i have been a customer there for years with a reseller account for domains. My VPS that I host there are also in Nuremberg