Skip to content

Custom badges

Solved Customisation
103 4 60.2k 2
  • @phenomlab same problem here 🙂

    972c895e-6e96-480c-9a65-dda57ac1c3d3-image.png

    PS: i’m using chrome

    wrote on last edited by phenomlab
    #59

    @cagatay Already fixed. Thanks.

    This seems to have become an issue in the most recent update from NodeBB.

  • wrote on last edited by
    #60

    hi @phenomlab , I have made some updates to the CSS elements, and right now it looks like a badge with a wavy edge…

    Screen Shot 2023-05-29 at 14.25.21.png

    
    .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;
        overflow: hidden;
        position: relative;
    }
    
    .post-header a[href*="/forum/groups/verified"]::before {
        content: "\f00c";
        position: absolute;
        z-index: 1; /* Added z-index to bring it to the front */
        width: 20px;
        height: 20px;
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke-width='1.5' viewBox='0 0 24 24' fill='%23085EAC'%3E%3Cpath d='M10.5213 2.62368C11.3147 1.75255 12.6853 1.75255 13.4787 2.62368L14.4989 3.74391C14.8998 4.18418 15.4761 4.42288 16.071 4.39508L17.5845 4.32435C18.7614 4.26934 19.7307 5.23857 19.6757 6.41554L19.6049 7.92905C19.5771 8.52388 19.8158 9.10016 20.2561 9.50111L21.3763 10.5213C22.2475 11.3147 22.2475 12.6853 21.3763 13.4787L20.2561 14.4989C19.8158 14.8998 19.5771 15.4761 19.6049 16.071L19.6757 17.5845C19.7307 18.7614 18.7614 19.7307 17.5845 19.6757L16.071 19.6049C15.4761 19.5771 14.8998 19.8158 14.4989 20.2561L13.4787 21.3763C12.6853 22.2475 11.3147 22.2475 10.5213 21.3763L9.50111 20.2561C9.10016 19.8158 8.52388 19.5771 7.92905 19.6049L6.41553 19.6757C5.23857 19.7307 4.26934 18.7614 4.32435 17.5845L4.39508 16.071C4.42288 15.4761 4.18418 14.8998 3.74391 14.4989L2.62368 13.4787C1.75255 12.6853 1.75255 11.3147 2.62368 10.5213L3.74391 9.50111C4.18418 9.10016 4.42288 8.52388 4.39508 7.92905L4.32435 6.41553C4.26934 5.23857 5.23857 4.26934 6.41554 4.32435L7.92905 4.39508C8.52388 4.42288 9.10016 4.18418 9.50111 3.74391L10.5213 2.62368Z' stroke='none'/%3E%3C/svg%3E");
        background-size: cover;
        color: #ffffff; /* Added to set the color of the checkmark */
        font-family: "Font Awesome 5 Free";
        font-weight: 900;
        font-size:8px;
        text-align: center;
        line-height: 20px;
    }
    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;
        background-color: transparent !important;
    }
    .group-label {
        vertical-align: -6px;
    }
    
    

    This is achieved thanks to ChatGPT… the code specifically uses this “#085EAC” color… it can of course be changed…

  • hi @phenomlab , I have made some updates to the CSS elements, and right now it looks like a badge with a wavy edge…

    Screen Shot 2023-05-29 at 14.25.21.png

    
    .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;
        overflow: hidden;
        position: relative;
    }
    
    .post-header a[href*="/forum/groups/verified"]::before {
        content: "\f00c";
        position: absolute;
        z-index: 1; /* Added z-index to bring it to the front */
        width: 20px;
        height: 20px;
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke-width='1.5' viewBox='0 0 24 24' fill='%23085EAC'%3E%3Cpath d='M10.5213 2.62368C11.3147 1.75255 12.6853 1.75255 13.4787 2.62368L14.4989 3.74391C14.8998 4.18418 15.4761 4.42288 16.071 4.39508L17.5845 4.32435C18.7614 4.26934 19.7307 5.23857 19.6757 6.41554L19.6049 7.92905C19.5771 8.52388 19.8158 9.10016 20.2561 9.50111L21.3763 10.5213C22.2475 11.3147 22.2475 12.6853 21.3763 13.4787L20.2561 14.4989C19.8158 14.8998 19.5771 15.4761 19.6049 16.071L19.6757 17.5845C19.7307 18.7614 18.7614 19.7307 17.5845 19.6757L16.071 19.6049C15.4761 19.5771 14.8998 19.8158 14.4989 20.2561L13.4787 21.3763C12.6853 22.2475 11.3147 22.2475 10.5213 21.3763L9.50111 20.2561C9.10016 19.8158 8.52388 19.5771 7.92905 19.6049L6.41553 19.6757C5.23857 19.7307 4.26934 18.7614 4.32435 17.5845L4.39508 16.071C4.42288 15.4761 4.18418 14.8998 3.74391 14.4989L2.62368 13.4787C1.75255 12.6853 1.75255 11.3147 2.62368 10.5213L3.74391 9.50111C4.18418 9.10016 4.42288 8.52388 4.39508 7.92905L4.32435 6.41553C4.26934 5.23857 5.23857 4.26934 6.41554 4.32435L7.92905 4.39508C8.52388 4.42288 9.10016 4.18418 9.50111 3.74391L10.5213 2.62368Z' stroke='none'/%3E%3C/svg%3E");
        background-size: cover;
        color: #ffffff; /* Added to set the color of the checkmark */
        font-family: "Font Awesome 5 Free";
        font-weight: 900;
        font-size:8px;
        text-align: center;
        line-height: 20px;
    }
    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;
        background-color: transparent !important;
    }
    .group-label {
        vertical-align: -6px;
    }
    
    

    This is achieved thanks to ChatGPT… the code specifically uses this “#085EAC” color… it can of course be changed…

    wrote on last edited by
    #61

    @crazycells oooohhhhh - I like!!!

  • @crazycells oooohhhhh - I like!!!

    wrote on last edited by
    #62

    @phenomlab I had to ask ChatGPT 30 times to get this 😄

    the codes will be more clear to you than to me 🙂 but I had to add a “transparent” background color, so that svg can be created with the color you want. otherwise svg is not visible.

    I had to remove “text-align” because it is ruining the position of the badge.

    And lastly, although there is a checkmark, unfortunately, it stays behind the SVG, so it had to add a checkmark using CSS codes to make it visible and changed its position using z-index. (or something like this 😄 )

  • @phenomlab I had to ask ChatGPT 30 times to get this 😄

    the codes will be more clear to you than to me 🙂 but I had to add a “transparent” background color, so that svg can be created with the color you want. otherwise svg is not visible.

    I had to remove “text-align” because it is ruining the position of the badge.

    And lastly, although there is a checkmark, unfortunately, it stays behind the SVG, so it had to add a checkmark using CSS codes to make it visible and changed its position using z-index. (or something like this 😄 )

    wrote on last edited by
    #63

    @crazycells it’s a lot of effort, but I really like the effect. I’m just wondering if it’s easier to use an actual image?

  • @crazycells oooohhhhh - I like!!!

    wrote on last edited by
    #64

    @phenomlab said in Custom badges:

    @crazycells oooohhhhh - I like!!!

    that background URL is universal, right? I mean it will always be available and not be deleted?

    I used this page to get that: https://fontawesomeicons.com/svg/icons/twitter-verified-badge#ex-tab1

  • @phenomlab said in Custom badges:

    @crazycells oooohhhhh - I like!!!

    that background URL is universal, right? I mean it will always be available and not be deleted?

    I used this page to get that: https://fontawesomeicons.com/svg/icons/twitter-verified-badge#ex-tab1

    wrote on last edited by
    #65

    @crazycells said in Custom badges:

    that background URL is universal, right? I mean it will always be available and not be deleted?

    Yes, correct.

  • @crazycells it’s a lot of effort, but I really like the effect. I’m just wondering if it’s easier to use an actual image?

    wrote on last edited by
    #66

    @phenomlab I prefer this way, because I would like to change the color of it depending on profession. In our forum, I am not planning to use it for “email verified” users, it will mainly be used for professional users that we host. I can easily edit this depending on the groups.

  • @phenomlab I prefer this way, because I would like to change the color of it depending on profession. In our forum, I am not planning to use it for “email verified” users, it will mainly be used for professional users that we host. I can easily edit this depending on the groups.

    wrote on last edited by
    #67

    @crazycells That makes sense.

  • wrote on last edited by
    #68

    good job @crazycells

    I wonder if we could do it for each badge without changing the color of course and keep the color of the original badges.

    Curious to see what it would look like 😉

  • good job @crazycells

    I wonder if we could do it for each badge without changing the color of course and keep the color of the original badges.

    Curious to see what it would look like 😉

    wrote on last edited by
    #69

    @DownPW said in Custom badges:

    good job @crazycells

    I wonder if we could do it for each badge without changing the color of course and keep the color of the original badges.

    Curious to see what it would look like 😉

    no, this does not work. the overlap of a wavy edge circle and a circle becomes a circle. so, you cannot detect any flower shape with this method. The way that I achieved this was by removing the background color (making it transparent by CSS although there is an assigned color for it in ACP) and then creating a new flower shape on top of it by CSS.

  • @DownPW said in Custom badges:

    good job @crazycells

    I wonder if we could do it for each badge without changing the color of course and keep the color of the original badges.

    Curious to see what it would look like 😉

    no, this does not work. the overlap of a wavy edge circle and a circle becomes a circle. so, you cannot detect any flower shape with this method. The way that I achieved this was by removing the background color (making it transparent by CSS although there is an assigned color for it in ACP) and then creating a new flower shape on top of it by CSS.

    wrote on last edited by
    #70

    @crazycells just thinking about this. Wouldn’t it be easier to just use font awesome?

    https://fontawesome.com/icons/badge-check?f=classic&s=solid

    Screenshot_2023-05-29-23-46-30-51_e4424258c8b8649f6e67d283a50a2cbc.jpg

  • @crazycells just thinking about this. Wouldn’t it be easier to just use font awesome?

    https://fontawesome.com/icons/badge-check?f=classic&s=solid

    Screenshot_2023-05-29-23-46-30-51_e4424258c8b8649f6e67d283a50a2cbc.jpg

    wrote on last edited by
    #71

    @phenomlab said in Custom badges:

    @crazycells just thinking about this. Wouldn’t it be easier to just use font awesome?

    https://fontawesome.com/icons/badge-check?f=classic&s=solid

    Screenshot_2023-05-29-23-46-30-51_e4424258c8b8649f6e67d283a50a2cbc.jpg

    as far as I remember, we discussed this before and you mentioned that that badge is not in the free tier.

  • @phenomlab said in Custom badges:

    @crazycells just thinking about this. Wouldn’t it be easier to just use font awesome?

    https://fontawesome.com/icons/badge-check?f=classic&s=solid

    Screenshot_2023-05-29-23-46-30-51_e4424258c8b8649f6e67d283a50a2cbc.jpg

    as far as I remember, we discussed this before and you mentioned that that badge is not in the free tier.

    wrote on last edited by
    #72
  • @phenomlab said in Custom badges:

    @crazycells just thinking about this. Wouldn’t it be easier to just use font awesome?

    https://fontawesome.com/icons/badge-check?f=classic&s=solid

    Screenshot_2023-05-29-23-46-30-51_e4424258c8b8649f6e67d283a50a2cbc.jpg

    as far as I remember, we discussed this before and you mentioned that that badge is not in the free tier.

    wrote on last edited by phenomlab
    #73

    @crazycells This intrigued me somewhat, I won’t lie 🙂 I decided to take a stab at this myself.

    HTML

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" integrity="sha512-fD9DI5bZwQxOi7MhYWnnNPlvXdp/2Pj3XSTRrFs5FQa4mizyGLnJcN6tuvUS6LbmgN1ut+XGSABKvjN0H6Aoow==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <div class="base"></div>
      <div class="inner"><i class="check fa-solid fa-check"></i></div>
    </body>
    </html>
    

    CSS

    .base {
      left: 100px;
      top: 100px;
      height: 80px;
      width: 80px;
      background: #067acc;
      position: absolute;
      border-radius: 10px;
    }
    .base:before {
      height: 80px;
      width: 80px;
      background: #067acc;
      content:"";
      position: absolute;
      transform: rotate(-30deg);
      border-radius: 10px;
    }
    .base:after {
      padding-top: 10px;
      text-align: center;
      vertical-align: middle;
      height: 70px;
      width: 80px;
      background: #067acc;
      content: "";
      position: absolute;
      transform: rotate(30deg);
      border-radius: 10px;
    }
    .inner {
      color: #000000;
      left: 95px;
      top: 95px;
      position: absolute;
      text-align:center;
      padding-top: 25px;
      width: 90px;
      height: 65px;
      background: #067acc;
      border-radius: 50px;
      background: #067acc; /* Old browsers */
    }
    .check {
      font-size: 36px;
      color: #ffffff;
    }
    

    Here’s the result

    https://codepen.io/sudonix/pen/qBJGMRL

  • @crazycells This intrigued me somewhat, I won’t lie 🙂 I decided to take a stab at this myself.

    HTML

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" integrity="sha512-fD9DI5bZwQxOi7MhYWnnNPlvXdp/2Pj3XSTRrFs5FQa4mizyGLnJcN6tuvUS6LbmgN1ut+XGSABKvjN0H6Aoow==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <div class="base"></div>
      <div class="inner"><i class="check fa-solid fa-check"></i></div>
    </body>
    </html>
    

    CSS

    .base {
      left: 100px;
      top: 100px;
      height: 80px;
      width: 80px;
      background: #067acc;
      position: absolute;
      border-radius: 10px;
    }
    .base:before {
      height: 80px;
      width: 80px;
      background: #067acc;
      content:"";
      position: absolute;
      transform: rotate(-30deg);
      border-radius: 10px;
    }
    .base:after {
      padding-top: 10px;
      text-align: center;
      vertical-align: middle;
      height: 70px;
      width: 80px;
      background: #067acc;
      content: "";
      position: absolute;
      transform: rotate(30deg);
      border-radius: 10px;
    }
    .inner {
      color: #000000;
      left: 95px;
      top: 95px;
      position: absolute;
      text-align:center;
      padding-top: 25px;
      width: 90px;
      height: 65px;
      background: #067acc;
      border-radius: 50px;
      background: #067acc; /* Old browsers */
    }
    .check {
      font-size: 36px;
      color: #ffffff;
    }
    

    Here’s the result

    https://codepen.io/sudonix/pen/qBJGMRL

    wrote on last edited by
    #74

    @phenomlab is there a problem in the forum?

    Screen Shot 2023-05-30 at 11.30.13.png

    I refreshed several times, nothing changed…

  • @phenomlab is there a problem in the forum?

    Screen Shot 2023-05-30 at 11.30.13.png

    I refreshed several times, nothing changed…

    wrote on last edited by
    #75

    @crazycells Sorry, yes. Fixed that now.

  • @crazycells Sorry, yes. Fixed that now.

    wrote on last edited by
    #76

    @phenomlab it looks very nice 🙂 but I guess one needs a subscription to use this, right?

    I am looking forward to seeing that on the avatars as “verified badge”, please do not forget to share your CSS code for its position 😆 when you implement it.

  • @phenomlab it looks very nice 🙂 but I guess one needs a subscription to use this, right?

    I am looking forward to seeing that on the avatars as “verified badge”, please do not forget to share your CSS code for its position 😆 when you implement it.

    wrote on last edited by
    #77

    @crazycells said in Custom badges:

    it looks very nice but I guess one needs a subscription to use this, right?

    No, there’s no subscription - what do you see ? The CodePen should be public?

  • @crazycells said in Custom badges:

    it looks very nice but I guess one needs a subscription to use this, right?

    No, there’s no subscription - what do you see ? The CodePen should be public?

    wrote on last edited by
    #78

    @phenomlab yes I can see it very well:

    Screen Shot 2023-05-30 at 11.48.30.png

    since your code has “/font-awesome/6.4.0/” in it, I assumed you are using pro version.


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
  • Page control arrows for PWA

    Solved Customisation nodebb
    27
    25 Votes
    27 Posts
    15k Views
    phenomlab
    @crazycells it is, yes - I think I’ll leave it as there is no specific PWA CSS classes I know of. Well, you could use something like the below, but this means multiple CSS files for different operating systems. /** * Determine the mobile operating system. * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'. * * @returns {String} */ function getMobileOperatingSystem() { var userAgent = navigator.userAgent || navigator.vendor || window.opera; // Windows Phone must come first because its UA also contains "Android" if (/windows phone/i.test(userAgent)) { return "Windows Phone"; } if (/android/i.test(userAgent)) { return "Android"; } if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { return "iOS"; } return "unknown"; // return “Android” - one should either handle the unknown or fallback to a specific platform, let’s say Android } Once you’re in that rabbit hole, it’s impossible to get out of it.
  • Block Domain

    Solved Let's Build It code javascript block domain nodebb
    26
    1 Votes
    26 Posts
    11k Views
    DownPW
    Yes ogproxy too is functionnal on dev
  • nodebb-plugin-custom-pages

    Solved Customisation plugin custom-pages
    5
    2
    3 Votes
    5 Posts
    5k Views
    phenomlab
    @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?
  • Bootstrap Version

    Solved Customisation nodebb bootstrap
    8
    5 Votes
    8 Posts
    3k Views
    Madchatthew
    @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] Custom fields plugin

    Unsolved Customisation nodebb plugins javascript custom
    5
    0 Votes
    5 Posts
    3k Views
    phenomlab
    @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 ?
  • [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] First post customization

    Solved Customisation nodebb
    5
    4 Votes
    5 Posts
    3k Views
    crazycells
    @phenomlab thanks
  • nodebb-plugin-customize error

    Solved Customisation
    25
    2 Votes
    25 Posts
    17k Views
    RiekMedia
    @phenomlab it work, thanks