Skip to content

Fixed background to nodebb forum

Solved Configure
25 2 8.2k 1
  • I’ve been asked to do this:

    On the forum, mobile friendly and on PC you’ll get a fire coloured gradient for the background with everything within a frame on top of that background so the frame can be scrolled but the background doesn’t change.
    Centred experience such as tumblr or twitter in the sense that it’s the info that gets scrolled but not the whole page

    The forum is nodebb hosted, so although I can add custom CSS or Javascript, where can I upload the image to use?
    Also what CSS to write please?

  • I’ve been asked to do this:

    On the forum, mobile friendly and on PC you’ll get a fire coloured gradient for the background with everything within a frame on top of that background so the frame can be scrolled but the background doesn’t change.
    Centred experience such as tumblr or twitter in the sense that it’s the info that gets scrolled but not the whole page

    The forum is nodebb hosted, so although I can add custom CSS or Javascript, where can I upload the image to use?
    Also what CSS to write please?

    @Panda this is untested as I’m not in front of a PC currently, but should work

    body {
    background-image: url("/path/to/your/image.jpg");
    min-height: 100%;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
    }
    

    The image can be hosted anywhere outside of the NodeBB ecosystem provided it is reachable from any machine with an Internet connection. It doesn’t necessarily need to be on the site itself

  • @Panda this is untested as I’m not in front of a PC currently, but should work

    body {
    background-image: url("/path/to/your/image.jpg");
    min-height: 100%;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
    }
    

    The image can be hosted anywhere outside of the NodeBB ecosystem provided it is reachable from any machine with an Internet connection. It doesn’t necessarily need to be on the site itself

    @phenomlab there was error, close } without opening {

    Is there missing line at start?

    On that topic the brackets and some words in that code block (center , cover etc) are very feint to read on my device?

  • Ah I figured out needed
    body {

    Its working but got this funny response as if background is being clicked, and slightly moves sometimes, when you scroll up and down on forum content

  • Apart from the slight move issue
    The dark background was also too stong and making forum text hard to read.

    I asked chatGPT for fix, both its suggestions didnt work

    1st suggestion change alpha value on rgb made no difference

    Screenshot_20230730_153940_Chrome~2.jpg

    2nd idea, filter:

    Screenshot_20230730_154031_Chrome~2.jpg

    This only made forum text weaker!

    Its now saying I need to edit the image in a paint program, and save it with more transparency, but as Im loading from website I cant do that

    Is there a CSS way to reduce alpha value on image from external url?

  • Ah I figured out needed
    body {

    Its working but got this funny response as if background is being clicked, and slightly moves sometimes, when you scroll up and down on forum content

    @Panda yes, sorry. I’ve updated the original post

  • Apart from the slight move issue
    The dark background was also too stong and making forum text hard to read.

    I asked chatGPT for fix, both its suggestions didnt work

    1st suggestion change alpha value on rgb made no difference

    Screenshot_20230730_153940_Chrome~2.jpg

    2nd idea, filter:

    Screenshot_20230730_154031_Chrome~2.jpg

    This only made forum text weaker!

    Its now saying I need to edit the image in a paint program, and save it with more transparency, but as Im loading from website I cant do that

    Is there a CSS way to reduce alpha value on image from external url?

    @Panda there is. What you are seeing here with the image moving when clicked is called Cumulative Layout Shift which occurs when the body height is set incorrectly.

    Filter and Opacity are a bad idea as you are targeting the body element meaning all ancestors are affected by that change which in turn makes the text even harder to read.

    Tired want to use a overlay with the image, to add background color with transparency which should solve the issue.

  • @Panda there is. What you are seeing here with the image moving when clicked is called Cumulative Layout Shift which occurs when the body height is set incorrectly.

    Filter and Opacity are a bad idea as you are targeting the body element meaning all ancestors are affected by that change which in turn makes the text even harder to read.

    Tired want to use a overlay with the image, to add background color with transparency which should solve the issue.

    @phenomlab
    I did try putting 95% height, but didnt solve it

    Re: putting a background color on…
    If you look at the aignite site can you suggest what line to put to make the dark background more transparent

    I try to avoid CSS, so dont know it!

  • @phenomlab
    I did try putting 95% height, but didnt solve it

    Re: putting a background color on…
    If you look at the aignite site can you suggest what line to put to make the dark background more transparent

    I try to avoid CSS, so dont know it!

    @Panda said in Fixed background to nodebb forum:

    I try to avoid CSS, so dont know it!

    You’ll never avoid having to use it. I’d recommend you start to learn it because you’ll come across this in all aspects of web development.

  • @Panda said in Fixed background to nodebb forum:

    I try to avoid CSS, so dont know it!

    You’ll never avoid having to use it. I’d recommend you start to learn it because you’ll come across this in all aspects of web development.

    @phenomlab making min height 90% fixed it 😊

  • Pandaundefined Panda has marked this topic as solved on
  • @phenomlab making min height 90% fixed it 😊

    @Panda Good. And the background image with the text?

  • @Panda Good. And the background image with the text?

    @phenomlab
    Sort of …
    Its taken me ages to get a skin that looks ok even over a feint background

    If I pick a skin can I change just one of the colors if its not dark enough?

  • @phenomlab
    Sort of …
    Its taken me ages to get a skin that looks ok even over a feint background

    If I pick a skin can I change just one of the colors if its not dark enough?

    @Panda yes, but you should start with a sane value and work backwards. The lower the last number in terms of rgba the higher the transparency.

  • @Panda yes, but you should start with a sane value and work backwards. The lower the last number in terms of rgba the higher the transparency.

    @phenomlab ah ok
    So how do I change one color in a skin?

  • @phenomlab ah ok
    So how do I change one color in a skin?

    @Panda first, define “skin”

  • @Panda first, define “skin”

    @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

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

    @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

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

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


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
  • 4 Votes
    3 Posts
    995 Views
    thanks @DownPW ! this is definitely very helpful.
  • Custom html in nodebb to prevent cache

    Unsolved Configure nodebb
    18
    2 Votes
    18 Posts
    4k Views
    @Panda You’ll need to do that with js. With some quick CSS changes, it looks like this [image: 1690796279348-d619844f-fbfe-4cf1-a283-6b7364f6bf18-image.png] The colour choice is still really hard on the eye, but at least you can now read the text
  • Sidebar Widget is no longer on the side!

    Moved Solved General nodebb
    4
    2
    2 Votes
    4 Posts
    1k Views
    @Panda said in Sidebar Widget is no longer on the side!: Ah, so sidebar wont work on mobile? Correct. If you review the docs on bootstrap, you’ll notice that it is designed on a grid system https://getbootstrap.com/docs/5.0/layout/grid/ What I mean by changing the category is moving it on here to general as you posted it in bugs, when it isn’t.
  • Difficult to move posts now, on mobile.

    Bugs nodebb
    16
    1
    5 Votes
    16 Posts
    4k Views
    @DownPW Yes, it is. It’s set far too low meaning other elements with a higher preference will sit over the top of it.
  • NodeBB: Consent page

    Solved Configure nodebb consent
    16
    4 Votes
    16 Posts
    5k Views
    @DownPW I still do not see any issues.
  • 5 Votes
    13 Posts
    3k Views
    '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); } };
  • Forum not loading

    Solved Configure
    27
    0 Votes
    27 Posts
    9k Views
    @phenomlab Brilliant!! Thanks ever so much!! Now I need to try pull in new members
  • nodebb dropdown menu

    Solved Configure nodebb
    5
    1
    0 Votes
    5 Posts
    2k Views
    @phenomlab said in nodebb dropdown menu: @kurulumu-net You set it like the below example taken from this site [image: 1637939951821-aae36790-3257-4bb2-ad5a-0d744309876a-image.png] Which presents this [image: 1637939983445-77f47260-2941-4afe-9614-8e17dcfc8c19-image.png] Very interesting… I actually thought this wasn’t possible, as I remember it being asked in the NodeBB forum. Is this something new that’s been implemented? I’ll 100% be doing that when I’m on the laptop over the weekend.