Skip to content

[NODEBB] Help for my custom CSS

Solved Customisation
  • possible to delete border radius at the bottom left and right ?

    9355af8d-d9bf-40d6-abeb-84bc4e95387e-image.png

    Just border radius at the top of the first div and at the last Div bottom ?
    I would like a entirely bloc with four border radius

    Possible ?
    I play with .categories>li, .category>ul>li but it’s not what I want

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I tetst with this bit it’s not perfect :

    .taskbar .navbar-nav {
    padding-right: 1840px;
    padding-bottom: 15px;
    position: relative;
    bottom: 25px !important;
    }

    Thanks for your help in advance Mark 🙂

  • possible to delete border radius at the bottom left and right ?

    9355af8d-d9bf-40d6-abeb-84bc4e95387e-image.png

    Just border radius at the top of the first div and at the last Div bottom ?
    I would like a entirely bloc with four border radius

    Possible ?
    I play with .categories>li, .category>ul>li but it’s not what I want

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I tetst with this bit it’s not perfect :

    .taskbar .navbar-nav {
        padding-right: 1840px;
        padding-bottom: 15px;
        position: relative;
        bottom: 25px !important;
    }
    

    Thanks for your help in advance Mark 🙂

    @DownPW Definitely possible, yes. This will work

    .categories>li, .category>ul>li {
    border-radius: 0px;
    }
    .categories>li:first-of-type {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    }
    .categories>li:last-of-type {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    }

    Looks like this

    80e68c63-7289-4153-aac8-52a92816074a-image.png

    You could then close the gaps between if you really wanted it as one block

    .categories>li, .category>ul>li {
    border: none;
    margin-top: 0px;
    background: #F5F5F5;
    }

    That gives you

    bdb893e3-0a37-44f9-9715-0c26b5ca2146-image.png

  • @DownPW Definitely possible, yes. This will work

    .categories>li, .category>ul>li {
        border-radius: 0px;
    }
    .categories>li:first-of-type {
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
    }
    .categories>li:last-of-type {
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }
    

    Looks like this

    80e68c63-7289-4153-aac8-52a92816074a-image.png

    You could then close the gaps between if you really wanted it as one block

    .categories>li, .category>ul>li {
        border: none;
        margin-top: 0px;
        background: #F5F5F5;
    }
    

    That gives you

    bdb893e3-0a37-44f9-9715-0c26b5ca2146-image.png

    @phenomlab Great !! Thanks you very much:)

    @phenomlab

    EDIT: Possible to do the same thing on Unread page and Recent page ?

  • Other two things 🙂

    ONE

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    .taskbar .navbar-nav {
    padding-right: 1840px;
    padding-bottom: 15px;
    position: relative;
    bottom: 25px !important;
    }
    Thanks for your help in advance Mark 🙂

    TWO

    I have this problem :
    alt text

    The chat windows stays in the background even when I click on it.

    I have zindex on composer and footbar

  • @phenomlab Great !! Thanks you very much:)

    @phenomlab

    EDIT: Possible to do the same thing on Unread page and Recent page ?

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

    @phenomlab Great !! Thanks you very much:)

    @phenomlab

    EDIT: Possible to do the same thing on Unread page and Recent page ?

    This should work

    .category-item:first-of-type {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    }
    .category-item:last-of-type {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    }
  • Other two things 🙂

    ONE

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    .taskbar .navbar-nav {
    padding-right: 1840px;
    padding-bottom: 15px;
    position: relative;
    bottom: 25px !important;
    }
    Thanks for your help in advance Mark 🙂

    TWO

    I have this problem :
    alt text

    The chat windows stays in the background even when I click on it.

    I have zindex on composer and footbar

    @DownPW

    The chat windows stays in the background even when I click on it.

    I have zindex on composer and footbar

    This should fix that

    .chat-modal {
    z-index: 5000;
    }
  • Other two things 🙂

    ONE

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    .taskbar .navbar-nav {
    padding-right: 1840px;
    padding-bottom: 15px;
    position: relative;
    bottom: 25px !important;
    }
    Thanks for your help in advance Mark 🙂

    TWO

    I have this problem :
    alt text

    The chat windows stays in the background even when I click on it.

    I have zindex on composer and footbar

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

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    Can you elaborate a bit more on this in terms of what you are looking to do ?

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

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    Can you elaborate a bit more on this in terms of what you are looking to do ?

    @phenomlab

    chat-modal zindex and border for Unread & recent works !!!
    Thanks Mark 😉

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

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

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    Can you elaborate a bit more on this in terms of what you are looking to do ?

    Just these icons to put on the bottom left:

    f8974ecd-b25c-469e-a7ec-12477a99ad00-image.png

  • @phenomlab

    chat-modal zindex and border for Unread & recent works !!!
    Thanks Mark 😉

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

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

    I would like to move chat bubbles and WYSIWYG at the left bottom if it’s possible, I test with this bit it’s not perfect :

    Can you elaborate a bit more on this in terms of what you are looking to do ?

    Just these icons to put on the bottom left:

    f8974ecd-b25c-469e-a7ec-12477a99ad00-image.png

    @DownPW Try this

    .taskbar.navbar-fixed-bottom {
    right: auto;
    left: 0;
    }
  • @DownPW Try this

    .taskbar.navbar-fixed-bottom {
        right: auto;
        left: 0;
    }
    

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

    @DownPW Try this

    .taskbar.navbar-fixed-bottom {
    right: auto;
    left: 0;
    }

    Much cleaner than what I had found:

    .taskbar .navbar-nav {
    padding-right: 1840px;
    padding-bottom: 15px;
    position: relative;
    bottom: 25px !important;
    }

    I had not found this property by inspecting the code!! I wonder where you found that one 🙂

    I just added left and bottom space :

    .taskbar.navbar-fixed-bottom {
    right: auto;
    left: 10px;
    bottom: 25px;
    }

    RESULT:
    111bb445-d4ca-401e-a620-692b23e37f62-image.png

    Much better with footbar !
    This also allows you to leave the right side quiet already occupied by the paging block !

    Thanks my friend 😉

  • How to add icon on categories span time ?

    I will test this code for add Paragraph FA icon for example :

    [component="topic/header"] span.timeago:before {
    content: "\f1dd";
    margin-right: 5px;
    margin-left: 5px;
    }

    Result 😞

    311ca192-524a-4c10-bcb6-02e0381b6900-image.png

  • How to add icon on categories span time ?

    I will test this code for add Paragraph FA icon for example :

    [component="topic/header"] span.timeago:before {
        content: "\f1dd";
        margin-right: 5px;
        margin-left: 5px;
    }
    

    Result 😞

    311ca192-524a-4c10-bcb6-02e0381b6900-image.png

    @DownPW that won’t work unless you add a font family to go with it - any Unicode characters typically require an associated font family. Try adding

    font-family: "font awesome 5 free"; to the CSS you already have.

  • @phenomlab

    I have test this :

    [component="topic/header"] span.timeago:before {
    content: "\f1c0";
    font-family: "font awesome 5 free";
    margin-right: 5px;
    margin-left: 5px;
    color: black;
    }

    But doesn’t work

    8ed44f06-ca16-4a7c-9a7b-e46a9b6fa339-image.png

  • @phenomlab

    I have test this :

    [component="topic/header"] span.timeago:before {
        content: "\f1c0";
        font-family: "font awesome 5 free";
        margin-right: 5px;
        margin-left: 5px;
        color: black;
    }
    

    But doesn’t work

    8ed44f06-ca16-4a7c-9a7b-e46a9b6fa339-image.png

    @DownPW does it work if you change it to
    Font Awesome 5 Free ? Might need to access your site directly to test this as it works for mine and should also work for you.

    One last thing you can try is adding the below into the CSS class - sometimes needed as the FA5 free icons are solid only, therefore may require

    font-weight: 900;

    Let me know how you get on

  • @DownPW does it work if you change it to
    Font Awesome 5 Free ? Might need to access your site directly to test this as it works for mine and should also work for you.

    One last thing you can try is adding the below into the CSS class - sometimes needed as the FA5 free icons are solid only, therefore may require

    font-weight: 900;

    Let me know how you get on

    @phenomlab

    That works with

    font-weight: 900;
    

    Thank you 🙂

    9a398d72-9ceb-48f7-b6c1-8e21509ced47-image.png

  • @DownPW After spending a lot of time on the theme switcher (see referenced post above), I re-wrote some of it as found that there were caching issues with CSS as it always calls the same version number. The new function below resolves that issue.

    I also removed the website prefix, as with relative paths, this is not required 🙂

    // ------------------------------------------
    // Theme Switcher
    // ------------------------------------------
    // On choisit une chaine de caractère aléatoire pour affecter un numéro de version au fichier CSS. 
    // The function below creates a random string which we use for CSS versioning to prevent cache conflicts
    function generateRandomString(length) {
        var text="";
        var possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        for (var i=0;
        i < length;
        i++) {
            text+=possible.charAt(Math.floor(Math.random() * possible.length));
        }
        return text;
    }
    
    $(document).ready(function () {
        var string=generateRandomString(10);
        $("#random_string").text(string);
        // This variable gets the theme ID 
        // Cette variable obtient l'ID du thème
        var whichTheme=localStorage.getItem("theme");
        // This variable gets the active theme's actual URL
        //Cette variable obtient l'URL réelle du thème actif
        var activeTheme=localStorage.getItem("activeTheme");
        // This variable appends the dropdown list to the existing panel
        // Cette variable ajoute la liste déroulante au panneau existant
        var panel=$('<li id="switcher" class="dropdown text-center"> \
    <label for="theme-control-list-check" class="dropdown-toggle" data-toggle="dropdown" id="theme_dropdown" title="" role="button" data-original-title="Theme" aria-expanded="false"> \
    <a class="btn-link" title="Theme Switcher" href="#"><i id="ticon" class="fa fa-fw fa-lightbulb-o"></i><span class="visible-xs-inline">Theme Switcher</span></a> \
    </label> \
    <ul id="theme" class="dropdown-menu"> \
    <li><a id="default" href="#" rel="/assets/client.css?v=e02phpkima0">Default</a></li> \
    <li><a id="default dark" href="#" rel="/assets/customcss/default_dark.css">Default Dark</a></li> \
    <li><a id="Light Flat" href="#" rel="/assets/customcss/testflat.css">Light Flat</a></li> \
    <li><a id="Dark Flat" href="#" rel="/assets/customcss/testflat.css">Dark Flat</a></li> \
    <li><a id="Dark Neon Aqua" href="#" rel="/assets/customcss/dark_neon_aqua.css">Dark Neon Aqua</a></li> \
    <li><a id="Dark Neon Blue" href="#" rel="assets/customcss/dark_neon_blue.css">Dark Neon Blue</a></li> \
    <li><a id="Dark Neon Green" href="#" rel="/assets/customcss/dark_neon_green.css">Dark Neon Green</a></li> \
    <li><a id="Dark Neon Solary" href="#" rel="/assets/customcss/dark_neon_solary.css">Dark Neon Solary</a></li> \
    <li><a id="Dark Neon White" href="#" rel="/assets/customcss/dark_neon_white.css"">Dark Neon White</a></li> \
    <li><a id="Eva 00" href="#" rel="/assets/customcss/eva_00.css">Eva.00</a></li> \
    <li><a id="Eva 01" href="#" rel="/assets/customcss/eva_01.css">Eva.01</a></li> \
    <li><a id="Eva 01 Purple Green"href="#" rel="/assets/customcss/eva_01_purple_green.css">Eva.01: Purple-Green</a></li> \
    <li><a id="Eva 02" href="#" rel="/assets/customcss/eva_02.css">Eva.02: Red-Orange</a></li> \
    </ul> \
    </div> ');
        // See if there is an active theme selected in localStorage. If none selected, use the default. If there is a theme in localStorage, use that and apply it
        // Regarde s'il y a un thème actif sélectionné dans "localStorage". Si aucun n'est sélectionné, utilise la valeur par défaut. 
        // S'il y a un thème dans localStorage, on l'utilise et on l'applique.
        if (whichTheme) {
            $("head").append("<link href='" + activeTheme + '?version=' + string + "' type=\"text/css\" rel=\'stylesheet\' />");
        }
        else {
            // No need to include anything here as there's no CSS to add.
            // Pas besoin d'inclure quoi que ce soit ici car il n'y a pas de CSS à ajouter.
        }
        $('ul#logged-in-menu').prepend(panel);
        $('ul#logged-out-menu').prepend(panel);
        if (utils.findBootstrapEnvironment()==='xs') {
            $('#menu').prepend(panel);
        }
        $(document).ready(function () {
            // Listen to the NAV dropdown for any changes
            // Écoute la liste déroulante NAV pour tout changement de thème
            $("#theme li a").on("click change", function () {
                // If we detect a change, append the selected CSS file into the DOM 
                // Si un changement est détecté, on ajoute le fichier CSS sélectionné dans le DOM (Document Object Model)
                var thishref=$(this).attr('rel');
                $("link[rel=stylesheet]").attr('href', thishref + "?version=" + string + "");
                //location.reload();
                //$("head").append("<link href='" + $(this).attr("rel") + $(this).attr("id") + " type=\'text/css\' rel=\'stylesheet\' />");
                location.reload();
                // This variable stores the selected theme ID
                // Cette variable stocke l'ID du thème sélectionné
                var selected=$(this).attr("id");
                // This variable stores the selected theme link 
                // Cette variable stocke le lien du thème sélectionné
                var theTheme=$(this).attr("rel");
                // This variable updates the selected theme ID
                // See if "default" has been selected. If it has, then...
                // Cette variable met à jour l'ID du thème sélectionné
                // Regarde si "default" a été sélectionné. Si c'est le cas, alors...
                if (selected==='default') {
                    localStorage.setItem("theme", "");
                    // This variable will strip the current appeneded theme ID
                    // Cette variable supprimera l'ID du thème actuellement ajouté
                    localStorage.setItem("activeTheme", "");
                    // This variable will strip the current appeneded theme URL (HREF)
                    // Finally, we have to reload the page to effect the changes
                    // Cette variable supprimera l'URL actuelle du thème ajouté (HREF)
                    // Enfin, on recharge la page pour effectuer les modifications
                    location.reload();
                }
                // If any other theme is selected, carry on as normnal, and update localStorage
                // Si un autre thème est sélectionné, continuez normalement et mettez à jour localStorage
                else {
                    localStorage.setItem("theme", selected);
                    // This variable updates the actual href of the CSS file
                    // Cette variable met à jour le href réel du fichier CSS
                    localStorage.setItem("activeTheme", theTheme);
                    //window.location.href = window.location.href
                }
                // We use return false to prevent the browser from reloading or following any HREF links
                // On utilise la fonction "return false" pour empêcher le navigateur de recharger ou de suivre les liens HREF
                //return false;
            }
            );
        }
        );
    }
    
    );
    // When hovering over the #switcher element, target the i class and add 'themeoff'
    // Lorsque du  survol de l'élément #switcher, on cible la classe CSS "i" et on ajoute le CSS "themeoff"
    $(document).on('mouseenter', '#switcher', function() {
        $('#switcher i').addClass("themeoff");
    }
    
    );
    // When leaving the however state, target the i class and remove 'themeoff'
    // Lorsque l'on quitte l'état, on cible la classe CSS "i" et on supprime le CSS "themeoff"
    $(document).on('mouseleave', '#switcher', function() {
        $('#switcher i').removeClass("themeoff");
    }
    
    );
    

    Hi friend, the code looks great.
    Can I post it on my site as well?
    And how can one know the path of subject assessments?
    I’m talking about this code: https://sudonix.com/post/1809

  • Hi friend, the code looks great.
    Can I post it on my site as well?
    And how can one know the path of subject assessments?
    I’m talking about this code: https://sudonix.com/post/1809

    @elhana-fine feel free. It’s posted here so that others can also make use of it.

  • @elhana-fine @phenomlab

    We have create this topic for reference.

    –> You will find all stuff to deploy it on your server.

    ENJOY

  • hi @phenomlab

    I use .category-item:first-of-type css properties for add a border-top on my principal pages like recent, unread etc…

    But this properties add a border too on topic header categories name.

    It’s possible to disable it just on topic (topic.header) ?

    83184b85-6629-4b93-8ef3-2bfb9b6d5631-image.png

  • hi @phenomlab

    I use .category-item:first-of-type css properties for add a border-top on my principal pages like recent, unread etc…

    But this properties add a border too on topic header categories name.

    It’s possible to disable it just on topic (topic.header) ?

    83184b85-6629-4b93-8ef3-2bfb9b6d5631-image.png

  • Did this solution help you?
    Did you find the suggested solution useful? Why not buy me a coffee? It's a nice gesture, and a great way to show your appreciation 💗


71/218

18 Feb 2022, 17:59


Threaded Replies


Related Topics
  • 5 Votes
    7 Posts
    250 Views
    Installation completed, verified, and tested. Correct installation methodology is below https://docs.nodebb.org/installing/os/ubuntu/
  • 3 Votes
    5 Posts
    700 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?
  • Nodebb design

    Solved General 11 Jul 2023, 10:13
    1 Votes
    2 Posts
    370 Views
    @Panda said in Nodebb design: One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum. From recollection, Google and Bing have the capability to read and process JS, although it’s not in the same manner as a physical person will consume content on a page. It will be seen as plain text, but will be indexed. However, it’s important to note that Yandex and Baidu will not render JS, although seeing as Google has a 90% share of the content available on the web in terms of indexing, this isn’t something you’ll likely lose sleep over. @Panda said in Nodebb design: The “write api” is preferred for server-to-server interactions. This is mostly based around overall security - you won’t typically want a client machine changing database elements or altering data. This is why you have “client-side” which could be DOM manipulation etc, and “server-side” which performs more complex operations as it can communicate directly with the database whereas the client cannot (and if it can, then you have a serious security flaw). Reading from the API is perfectly acceptable on the client-side, but not being able to write. A paradigm here would be something like SNMP. This protocol exists as a UDP (UDP is very efficient, as it is “fire and forget” and does not wait for a response like TCP does) based service which reads performance data from a remote source, thus enabling an application to parse that data for use in a monitoring application. In all cases, SNMP access should be “RO” (Read Only) and not RW (Read Write). It is completely feasible to assume complete control over a firewall for example by having RW access to SNMP and then exposing it to the entire internet with a weak passphrase. You wouldn’t do it (at least, I hope you wouldn’t) and the same ethic applies to server-side rendering and the execution of commands.
  • NodeBB upgrade now cant post

    Solved Bugs 28 May 2023, 10:03
    2 Votes
    5 Posts
    480 Views
    @Panda yes, for some reason, that is the case. If you need an urgent response, it’s probably better to post here because of the time difference.
  • 3 Votes
    12 Posts
    1k 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.
  • 24 Votes
    112 Posts
    15k Views
    @DownPW as discussed in PM Seems to have been solved with the new JS code that you added allowing the version CSS file change!! Cache problem therefore with the JS of the Switcher theme Based on this, I will close this thread and reference https://sudonix.com/topic/207/nodebb-help-for-my-custom-css/27
  • nodebb-plugin-customize error

    Solved Customisation 19 Oct 2021, 11:48
    2 Votes
    25 Posts
    3k Views
    @phenomlab it work, thanks
  • NodeBB Design help

    Solved Customisation 16 Oct 2021, 12:56
    3
    2 Votes
    8 Posts
    1k 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.