Skip to content

Fontawesome 5

Unsolved Customisation
14 2 4.5k 1
  • What is the best approach to adding FA5 into a nodebb installation.

    Assuming i am doing it via Custom JS CP.

  • What is the best approach to adding FA5 into a nodebb installation.

    Assuming i am doing it via Custom JS CP.

    @pwsincd are you looking to use the pro version or free ?

  • @pwsincd are you looking to use the pro version or free ?

    @phenomlab the free version

  • @phenomlab the free version

    @pwsincd Here’s the steps to add

    1. Open the ACP, and go to Appearance -> Custom Header. Within the custom header, we need to add
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    

    It should look like the below. Don’t forget to add the DOCTYPE and <head> values before anything else.

    e4c19939-e079-4507-907b-d6de2e4a6202-image.png

    1. In the same location, we need to add
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js" integrity="sha512-Tn2m0TIpgVyTzzvmxLNuqbSJH3JP8jm+Cy3hvHrW7ndTDcJ1w5mBiksqDBb8GpE2ksktFvDB/ykZ0mDpsZj20w==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    

    You should now have something like the below

    0aa95976-c73d-4737-9cc2-c7eae8ca9c69-image.png

    Ensure that both of the below are on

    beaa416f-fd89-45e2-80b4-ab561443934b-image.png

    Save the changes

    This will now pull the required CSS and JS from the CDN on each page load. When attempting to use the font itself, you will need to identify it with font-family, so for example

    .mytarget {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    }
    

    Note that the free version only supports the solid icons, so it’s necessary to set the font-weight attribute.

    If you are looking to replace the existing icons, let me know as this requires additional configuration for it to work properly. This is something I do with a Pro subscription I have that Sudonix is using.

  • @pwsincd Here’s the steps to add

    1. Open the ACP, and go to Appearance -> Custom Header. Within the custom header, we need to add
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    

    It should look like the below. Don’t forget to add the DOCTYPE and <head> values before anything else.

    e4c19939-e079-4507-907b-d6de2e4a6202-image.png

    1. In the same location, we need to add
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js" integrity="sha512-Tn2m0TIpgVyTzzvmxLNuqbSJH3JP8jm+Cy3hvHrW7ndTDcJ1w5mBiksqDBb8GpE2ksktFvDB/ykZ0mDpsZj20w==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    

    You should now have something like the below

    0aa95976-c73d-4737-9cc2-c7eae8ca9c69-image.png

    Ensure that both of the below are on

    beaa416f-fd89-45e2-80b4-ab561443934b-image.png

    Save the changes

    This will now pull the required CSS and JS from the CDN on each page load. When attempting to use the font itself, you will need to identify it with font-family, so for example

    .mytarget {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    }
    

    Note that the free version only supports the solid icons, so it’s necessary to set the font-weight attribute.

    If you are looking to replace the existing icons, let me know as this requires additional configuration for it to work properly. This is something I do with a Pro subscription I have that Sudonix is using.

    @phenomlab This is great , i think you included some info i was missing i was almost there … replacing the whole sites fonts would be cool , is that with some kind of shim?

  • @phenomlab This is great , i think you included some info i was missing i was almost there … replacing the whole sites fonts would be cool , is that with some kind of shim?

    @pwsincd No, you should be able to override all of them, but likely on a one-by-one basis. You could use the css class of * but this is complete overkill and will impact other fonts on the site as it covers every single class.

  • @pwsincd No, you should be able to override all of them, but likely on a one-by-one basis. You could use the css class of * but this is complete overkill and will impact other fonts on the site as it covers every single class.

    @phenomlab Capture.PNG

    adding the code you posted , instantly affects some icons with the default FontAwesome as you can see they are now ?

  • @phenomlab Capture.PNG

    adding the code you posted , instantly affects some icons with the default FontAwesome as you can see they are now ?

    @pwsincd Can you share a URL where I can see this ? Over PM if you’d prefer 🙂

  • @phenomlab Capture.PNG

    adding the code you posted , instantly affects some icons with the default FontAwesome as you can see they are now ?

    @pwsincd This doesn’t look right at all

    2a8e7877-7728-45de-9a8d-c1f4b0f0123b-image.png

    Can you give me admin access to this site so I can take a look at your config please ?

    Let me know if feasible, and I’ll create an account.

  • @pwsincd This doesn’t look right at all

    2a8e7877-7728-45de-9a8d-c1f4b0f0123b-image.png

    Can you give me admin access to this site so I can take a look at your config please ?

    Let me know if feasible, and I’ll create an account.

    @phenomlab did u make an account

  • @phenomlab did u make an account

    @pwsincd Just created one

  • @pwsincd Just created one

    @phenomlab ok i will have to get back to this … i will DM when i available… IRL calling.

  • @phenomlab ok i will have to get back to this … i will DM when i available… IRL calling.

    @pwsincd no problems. Just let me know.

  • @phenomlab ok i will have to get back to this … i will DM when i available… IRL calling.

    @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 ?


Related Topics
  • What plugins are being used here on Sudonix?

    Solved General nodebb plugins development
    6
    5 Votes
    6 Posts
    2k Views
    @Roki-Antic Welcome! This site isn’t running Persona, but Harmony - a very heavily customised version at that. Do you have a URL where your site is currently located that is publicly accessible? Feel free to PM this info if you do not want to disclose here. Happy to help with any customisation needs.
  • Interesting Widget code, but can't fetch API

    Solved Customisation nodebb
    26
    2 Votes
    26 Posts
    9k Views
    @Panda said in Interesting Widget code, but can’t fetch API: How did you drop that widget into the post there? I hadnt seen this BSgenerator anywhere on sudonix site, do you use it somewhere already? Yes, here https://sudonix.org/topic/414/corporate-bullshit-generator?_=1687774393044 It’s not a “post” or “topic” in the common sense. It is actually a page in it’s own right and leverages nodebb-plugin-custom-pages. This in turn creates a new “route” which behaves like a page, meaning it is then exposed for widgets. @Panda said in Interesting Widget code, but can’t fetch API: Also can you explain more what you mean by calling the code externally. In my API call example, how would I go about doing that? By this, I mean create all the required code in an external JS file that is reachable by the NodeBB instance - so, in “public” for example - or in my case /public/js. The widget then “calls” that file and because it runs outside of the scope of NodeBB, you just need to return the values to the widget. Hope this makes sense?
  • Smart Widgets

    Solved Configure nodebb
    9
    3 Votes
    9 Posts
    2k Views
    @Panda said in Smart Widgets: So why is that, or conversely why would the function to expose username ever be required, as it seems app.user is already an available global object? It is, yes, but not if you are using it outside of a widget. The function I wrote is also historical and comes from the 2.x train
  • hover link effect

    Solved Customisation css link hover
    18
    1
    6 Votes
    18 Posts
    5k Views
    @DownPW Looking at the underlying code, class start is being added on hover by jQuery in this function document.querySelectorAll(".button-gradient, .button-transparent").forEach((button) => { const style = getComputedStyle(button); const lines = document.createElement("div"); lines.classList.add("lines"); const groupTop = document.createElement("div"); const groupBottom = document.createElement("div"); const svg = createSVG( button.offsetWidth, button.offsetHeight, parseInt(style.borderRadius, 10) ); groupTop.appendChild(svg); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); lines.appendChild(groupTop); lines.appendChild(groupBottom); button.appendChild(lines); button.addEventListener("pointerenter", () => { button.classList.add("start"); }); svg.addEventListener("animationend", () => { button.classList.remove("start"); }); }); }) The CSS for start is below .button-gradient.start .lines svg, .button-transparent.start .lines svg { animation: stroke 0.3s linear; } And this is the corresponding keyframe @keyframes stroke { 30%, 55% { opacity: 1; } 100% { stroke-dashoffset: 5; opacity: 0; } } It’s using both CSS and SVG, so might not be a simple affair to replicate without the SVG files.
  • Title on homepage of nodebb forum

    Solved Customisation nodebb
    2
    1 Votes
    2 Posts
    2k Views
    @eveh Welcome board The code you are referring to is custom written as no such functionality exists under NodeBB. However, adding the functionality is relatively trivial. Below are the required steps Navigate to /admin/appearance/customise#custom-header Add the below code to your header, and save once completed <ol id="mainbanner" class="breadcrumb"><li id="addtext">Your Title Goes Here</li></ol> Navigate to /admin/appearance/customise#custom-js and add the below code, then save $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { // Initialise mainbanner ID, but hide it from view $('#mainbanner').hide(); var pathname = window.location.pathname; if (pathname === "/") { $("#addtext").text("Your Title"); $('#mainbanner').show(); } else {} // If we want to add a title to a sub page, uncomment the below and adjust accordingly //if (pathname === "/yourpath") { //$("#addtext").text("Your Title"); //$('#mainbanner').show(); //} }); }); Navigate to /admin/appearance/customise#custom-css and add the below CSS block .breadcrumb { right: 0; margin-right: auto; text-align: center; background: #0086c4; color: #ffffff; width: 100vw; position: relative; margin-left: -50vw; left: 50%; top: 50px; position: fixed; z-index: 1020; } Note, that you will need to adjust your CSS code to suit your own site / requirements.
  • Recent Cards plugin customization

    Solved Customisation nodebb
    21
    1
    13 Votes
    21 Posts
    10k 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); }); }); });
  • 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.
  • Customising NodeBB

    Locked Customisation nodebb
    3
    0 Votes
    3 Posts
    2k Views
    Closing this thread as a duplicate of https://sudonix.com/topic/12/nodebb-customisation