Skip to content

Fixed background to nodebb forum

Solved Configure
25 2 10.0k 1
  • @Panda first, define “skin”

    wrote on last edited by
    #16

    @phenomlab I go to admin menu and select skins
    Current one is Quartz

  • @phenomlab I go to admin menu and select skins
    Current one is Quartz

    wrote on last edited by phenomlab
    #17

    @Panda ok, but which code runs this? Is it mine, or someone else’s work (it does make a difference.

    Edit - ok, unless I login, I cannot change the skin if it’s under admin. I’m being forced to wear sunglasses currently.

  • @Panda ok, but which code runs this? Is it mine, or someone else’s work (it does make a difference.

    Edit - ok, unless I login, I cannot change the skin if it’s under admin. I’m being forced to wear sunglasses currently.

    wrote on last edited by Panda
    #18

    @phenomlab
    on aignite.nodebb.com I want to pick skin with colors that look ok over back image.
    But all the skins I try have at least one text color that is light and hard to see over image

  • @phenomlab
    on aignite.nodebb.com I want to pick skin with colors that look ok over back image.
    But all the skins I try have at least one text color that is light and hard to see over image

    wrote on last edited by
    #19

    @Panda it seems you are using the NodeBB skins which frankly, are terrible. They are all based on bootswatch and all have issues.

    You really need to custom develop a skin if your want it to look right.

  • @Panda it seems you are using the NodeBB skins which frankly, are terrible. They are all based on bootswatch and all have issues.

    You really need to custom develop a skin if your want it to look right.

    wrote on last edited by
    #20

    @phenomlab yea, this is what Im asking,
    Using a skin but maybe modifying one of the color choices

  • @phenomlab yea, this is what Im asking,
    Using a skin but maybe modifying one of the color choices

    wrote on last edited by
    #21

    @Panda the really depends on what you want to do. Are you offering the same skin to everyone, or do you want to have light and dark modes etc?

    If the one skin, then this is simple enough, but you’d need a lot of custom css to make this work.

  • @Panda the really depends on what you want to do. Are you offering the same skin to everyone, or do you want to have light and dark modes etc?

    If the one skin, then this is simple enough, but you’d need a lot of custom css to make this work.

    wrote on last edited by Panda
    #22

    @phenomlab the background is supposed to be different for every user everytime they reload page
    but its always covered in light yellow color (alpha .86) so background will always be light

    Its just in each skin theres always one text color that is also light

  • wrote on last edited by phenomlab
    #23

    Not sure why you are using a before pseudonym element to set the overlay. It’s much more efficient to do it this way (for example)

    body {
        position: relative;
        background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)), url(https://loremflickr.com/500/500/flame);
        min-height: 90%;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-position: center;
        background-size: cover;
    }
    

    image.png

    The below CSS block should be removed

    body::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(255, 240, 220, 0.85);
        z-index: -100;
    }
    

    z-index: -100; is also overkill - -1 is usually always enough as this places the target element behind everything else.

  • Not sure why you are using a before pseudonym element to set the overlay. It’s much more efficient to do it this way (for example)

    body {
        position: relative;
        background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)), url(https://loremflickr.com/500/500/flame);
        min-height: 90%;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-position: center;
        background-size: cover;
    }
    

    image.png

    The below CSS block should be removed

    body::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(255, 240, 220, 0.85);
        z-index: -100;
    }
    

    z-index: -100; is also overkill - -1 is usually always enough as this places the target element behind everything else.

    wrote on last edited by Panda
    #24

    @phenomlab ah…
    Chatgpt told me the ::before method.
    Thanks for the human input 🙂

  • @phenomlab ah…
    Chatgpt told me the ::before method.
    Thanks for the human input 🙂

    wrote on last edited by
    #25

    @Panda said in Fixed background to nodebb forum:

    Chatgpt told me the ::before method.

    Go figure 😛


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
  • Following the API docs but its not clear ...

    Solved Customisation api nodebb
    8
    2 Votes
    8 Posts
    3k Views
    phenomlab
    @Panda you’d be surprised. If you consider that you’d need to use the API to be able to populate a WordPress widget for example (which in turn would of course be PHP), taking this route is still immensely popular.
  • Composer options on nodebb

    Solved Configure nodebb
    8
    1
    3 Votes
    8 Posts
    3k Views
    phenomlab
    @Panda You should be able to expose the CSS for these using F12 to get into console [image: 3591518c-e3a3-4ada-a43c-6b32a5e0359c-image.png] [image: a2b8ed46-4157-4ff2-85f0-576543380107-image.png] That should then expose the element once selected [image: 89d9c545-a47a-40d1-98f4-80cf3b958e8f-image.png] Here’s the below CSS you need based on the screenshot provided. .composer .formatting-bar .formatting-group li[data-format="picture-o"], .composer .formatting-bar .formatting-group li[data-format="spoiler"] { display: none; }
  • NodeBB: Creating pages

    Solved Configure nodebb create page
    9
    0 Votes
    9 Posts
    4k Views
    mventures
    OK, I think I have figured out how to place a link in the footer which will click to a new page.
  • Chevron up before & after

    Solved Configure nodebb
    11
    1
    4 Votes
    11 Posts
    3k Views
    cagatay
    @crazycells you are right thank you.
  • 5 Votes
    13 Posts
    3k Views
    DownPW
    'use strict'; const winston = require('winston'); const user = require('../user'); const notifications = require('../notifications'); const sockets = require('../socket.io'); const plugins = require('../plugins'); const meta = require('../meta'); module.exports = function (Messaging) { Messaging.notifyQueue = {}; // Only used to notify a user of a new chat message, see Messaging.notifyUser Messaging.notifyUsersInRoom = async (fromUid, roomId, messageObj) => { let uids = await Messaging.getUidsInRoom(roomId, 0, -1); uids = await user.blocks.filterUids(fromUid, uids); let data = { roomId: roomId, fromUid: fromUid, message: messageObj, uids: uids, }; data = await plugins.hooks.fire('filter:messaging.notify', data); if (!data || !data.uids || !data.uids.length) { return; } uids = data.uids; uids.forEach((uid) => { data.self = parseInt(uid, 10) === parseInt(fromUid, 10) ? 1 : 0; Messaging.pushUnreadCount(uid); sockets.in(`uid_${uid}`).emit('event:chats.receive', data); }); if (messageObj.system) { return; } // Delayed notifications let queueObj = Messaging.notifyQueue[`${fromUid}:${roomId}`]; if (queueObj) { queueObj.message.content += `\n${messageObj.content}`; clearTimeout(queueObj.timeout); } else { queueObj = { message: messageObj, }; Messaging.notifyQueue[`${fromUid}:${roomId}`] = queueObj; } queueObj.timeout = setTimeout(async () => { try { await sendNotifications(fromUid, uids, roomId, queueObj.message); } catch (err) { winston.error(`[messaging/notifications] Unabled to send notification\n${err.stack}`); } }, meta.config.notificationSendDelay * 1000); }; async function sendNotifications(fromuid, uids, roomId, messageObj) { const isOnline = await user.isOnline(uids); uids = uids.filter((uid, index) => !isOnline[index] && parseInt(fromuid, 10) !== parseInt(uid, 10)); if (!uids.length) { return; } if (roomId != 11) { // 5 Is the ID of the ID of the global chat room. Messaging.getUidsInRoom(roomId, 0, -1); // Proceed as normal. } else { user.getUidsFromSet('users:online', 0, -1); // Only notify online users. } const { displayname } = messageObj.fromUser; const isGroupChat = await Messaging.isGroupChat(roomId); const notification = await notifications.create({ type: isGroupChat ? 'new-group-chat' : 'new-chat', subject: `[[email:notif.chat.subject, ${displayname}]]`, bodyShort: `[[notifications:new_message_from, ${displayname}]]`, bodyLong: messageObj.content, nid: `chat_${fromuid}_${roomId}`, from: fromuid, path: `/chats/${messageObj.roomId}`, }); delete Messaging.notifyQueue[`${fromuid}:${roomId}`]; notifications.push(notification, uids); } };
  • 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.
  • Configure SMTP for Nodebb

    Solved Configure
    14
    5 Votes
    14 Posts
    5k Views
    phenomlab
    @marusaky based on the work completed thus far (in relation to PM exchanges), I’m going to mark this completed. Sending email from the server itself works fine without issue, and DNS appears to be clean (valid SPF, DMARC, and DKIM records). It appears that only Gmail marks incoming messages from your domain as spam - perhaps because of the domain age, which there is nothing we can do to prevent this. Mail delivery to all other domains appears to work fine in al of my tests.
  • Iframely (Nodebb)

    Solved Configure
    40
    4 Votes
    40 Posts
    17k Views
    phenomlab
    @DownPW This is now resolved. The issue was an incorrect URL specified in the Nodebb plugin. I’ve corrected this, and now it works as intended.