# 🌐 UIBUILDER New Release, v7.7.4 - New features and bug fixes (+ extra bugfixes)

**URL:** https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164
**Category:** Share Your Nodes
**Tags:** uibuilder
**Created:** [31 May 2026 16:58 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164 "2026-05-31T16:58:08Z")
**Posts on this page:** 17
**Page:** 1

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [31 May 2026 16:58 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/1 "2026-05-31T16:58:08Z")

</div>

Hi all, an unexpected early summer release of UIBUILDER for Node-RED. Here are the details.

As always, I strongly recommend upgrading to the latest release. All releases in the same major version are backwards compatible.

Changes in this release are relatively minor. Markweb gets Mermaid and footnotes formatting. The `uib-sidebar` is fixed and gets an upgrade. The new `<json-viewer>` component and related front- and back-end functions may help folk who need to pass around or show complex JavaScript objects. Content Security Policy overrides are now easier. And the new anonymous telemetry feature is live (and optional).

* * *

[Code commits since last release](https://github.com/TotallyInformation/node-red-contrib-uibuilder/compare/v7.6.2...v7.7.0).

### 📌 Highlights

- Markweb now supports Mermaid diagrams and Markdown footnotes. The automatic status block has been corrected and moved to the main content.
- The `uib-sidebar` node is now working correctly which creates a mini-web-page in the Node-RED Editor's sidebar panel. It has been updated to allow multiple sidebar nodes to be used. Each will create a separate section in the sidebar and can have its own input and output for dynamic content.
- New `<json-viewer>` web component made available for displaying JSON data in a structured format. Accepts pretty much ALL JavaScript object data, not just JSON. The uibuilder client library's `syntaxHighlight()` and `showMsg()` functions have also been updated to use this new component if it is loaded, giving a much nicer output with collapsible sections for large objects and arrays.
- Updated `RED.util.uib` namespace for Node-RED Function nodes with new `saferSerialize()` and `renderToHTML()` functions for more robust JavaScript object handling and rendering.
- Easier CSP overrides. `uibuilder.contentSecurityPolicy` in settings.js.
- New anonymous telemetry feature.
- The uibuilder initial log summary nows starts just after the 'flows:started' event to ensure that telemetry data is available. Whether telemetry is active and the number of uibuilder and markweb node instances are now also shown.

### NEW telemetry feature

Records anonymous, non-identifiable data about uibuilder usage to a cloud endpoint to help guide future development.

Data is stored locally and sent no more than monthly if enabled. See the telemetry process documentation for details.

The send process is checked every time flows are (re)started. So on stable platforms, sending might be much longer than a month.

There is a new Privacy Policy document for GDPR and other compliance purposes.

Telemetry is optional and can be disabled in settings.js (`uibuilder.telemetryEnabled`). If disabled, data will still be collected locally but not sent to the cloud endpoint.

The telemetry data is written to `<uibRoot>/.config/telemetry.json`.

### NEW Node-RED Function Node utility functions

UIBUILDER has enhanced the `RED.util` object for quite some time. It adds the `RED.util.uib` namespace which contains utility functions for use in Node-RED Function nodes.

This release adds to this namespace two new functions:

- `saferSerialize()` - This is a more robust version of `JSON.stringify()` that can handle circular references, functions and other data types without throwing an error.

- `renderToHTML()` - This function takes a JavaScript object and renders it to an HTML string using the new `saferSerialize` function.

There is also a new _example flow_ that you can import. In the uibuilder examples, look for `Client-side code >> Web Component - json-viewer`. It demonstrates both the saferSerialize, renderToHTML functions and the new json-viewer web component.

> [!NOTE]  
> `renderToHTML()` and `saferSerialize()` do not quite produce the same output as the `json-viewer` component since they have no JavaScript interactivity available. However, they do produce a nicely formatted and highlighted HTML representation of the data that is much more robust than `JSON.stringify()`.
> 
> Use `<json-viewer>` in a web page for the best experience.

### NEW json-viewer HTML Web Component library

This optional library provides an HTML Web Component `<json-viewer>` that can be used to display JSON data in a nicely formatted and interactive way. It supports collapsible sections for objects and arrays, syntax highlighting, and other features to make it easier to explore complex JSON data.

If loaded in your `index.html` file, it not only provides the new element but also enhances the existing `uibuilder.syntaxHighlight()` and `uibuilder.showMsg()` functions to use the new library for rendering JSON data. This gives a much nicer output with collapsible sections for large objects and arrays.

### uibuilder client library

- **FIX** for issue with `RED.util.uib.send()`. Was generating an uncaught error if the specified uibuilder instance did not exist.
- Moved some startup processing into the runtime plugin. This means that the uibuilder global configuration is available earlier in the startup process since plugins are loaded before nodes.
- **ENHANCED** `uibuilder.syntaxHighlight()` function now looks for the JsonViewer library. If loaded, it is used to render to HTML instead of the custom renderer. This gives a much nicer output with collapsible sections for large objects and arrays. If the library is not loaded, it falls back to the original custom renderer.
- **ENHANCED** `uibuilder.showMsg()` function now has tooltips for its two action buttons. It will also use the JsonViewer library if loaded.
- When the Node-RED server tells clients that it is shutting down, the [Socket.IO](http://Socket.IO) auto-reconnect is turned off for 30 seconds to allow the server to restart without clients trying to reconnect and causing errors. Also reduced the number of error messages logged to the client console when Node-RED is disconnected.
- [Socket.IO](http://Socket.IO) disconnect function updated to add the disconnect details introduced in [Socket.IO](http://Socket.IO) v4.5. The `uibuilder:socket:disconnected` event updated to output `{reason, details}` instead of just the reason string.

### Markweb

- The automatic status block has been corrected and moved to the main content. It only shows if either or both of the `status` and/or `since` front-matter attributes are set. Note that this is driven purely by CSS (no JavaScript) but it requires a relatively up-to-date browser to work correctly.
- [Mermaid diagrams](https://mermaid.ai/open-source/intro/) are now supported as code blocks in markdown files.
- Markdown footnotes are now also supported. See the Footnotes page in the `[DEMO]` Markweb for details and examples. We use the [markdown-it-footnote](https://github.com/markdown-it/markdown-it-footnote) plugin for this.
- Markweb nodes are now tracked in the uibuilder global configuration.
- The sidebar resizer is now more accessible and works with the keyboard.

### Sidebar node

- **FIXED** Clearly nobody has been using the features of the `uib-sidebar`! Because if you had tried to send dynamic content to the sidebar, it wasn't working at all! Now, it does indeed work correctly.

- **NEW** You can now have as many `uib-sidebar` nodes as you like. Each one will add its defined HTML to the sidebar, wrapped in a `<section>` tag with a unique ID. This allows you to easily modularise your sidebar content and have different nodes responsible for different parts of the sidebar. Each sidebar node has its own input and output so they can be updated and respond to messages independently. The content from each sidebar node is added to the sidebar in the order that the nodes are listed in the Node-RED editor.

### uibuilder node

- Improved shutdown processing, especially when using a custom Express server. [Socket.IO](http://Socket.IO) and web connections are now terminated if Node-RED recieves a SIGINT. In addition, each instance's close function has been tidied up & the "shutdown" control message is now sent to connected clients earlier. This also updates the web and uiblib libraries.

- Started to move initialisation processing into the runtime plugin. This allows the uibuilder global configuration to be available earlier in the startup process since plugins are loaded before nodes. This is a work in progress and will continue over several releases. This also simplifies the uibuilder node's code and should make it easier to maintain and extend in the future. This is also important now that we have Markweb as well as uibuilder nodes that need to share the global configuration and filing system setup.

### Documentation

- The sidebar resizer is now more accessible and works with the keyboard.
- New design docs added. These are directions or ideas for future development.
- Some additional process documents added. The process documents are aimed at clarifying the internal workings of uibuilder.

### Runtime plugin

- Started to move initialisation processing into the runtime plugin. This allows the uibuilder global configuration to be available earlier in the startup process since plugins are loaded before nodes. This is a work in progress and will continue over several releases.

### Runtime libraries

- **NEW** In Node-RED's `settings.js` file, you can now specify `uibuilder.contentSecurityPolicy` to set the default Content-Security-Policy (CSP) header for uibuilder instances. This allows you to improve the security of your uibuilder applications by restricting the sources of content that can be loaded in the browser.

- The remaining ~~5~~ 4 fsextra functions in fs lib. `ensureDirSync` have been replaced with native functions. fs-extra is no longer a dev- or other dependency.

- Unnecessary `require` of the ui library removed from the uibuilder node's runtime.

- UIBUILDER's global configuration and filing-system setup is now done in the runtime plugin rather than the uibuilder node. This makes it available earlier and ensures it is ready for other nodes such as Markweb.

- There are now fewer places where the global config object is passed by reference. Instead, the global config singleton class is used directly where needed. This should make it easier to maintain and reduce the risk of errors.

- `tilib.cjs` - added a `maxLength` parameter to the `syntaxHighlight` function to allow the output length to be limited. This is to prevent potential denial-of-service attacks via extremely large JSON payloads. This is used when displaying the uibuilder details page from the editor.

- `admin-api-v2.cjs` - extend length of JSON outputs.

### Other

- uibuilder now tracks markweb nodes deployed (runtime only). Markweb "apps" are also now added to the global config `apps` property. The apps property has been extended with a `type` property which is either "uibuilder" or "markweb".
- Startup summary log moved from `runtime-event`\>`runtime-state` to `flows:started` event to ensure that telemetry data is available for the summary log.

---

<div class="post-metadata">

### Author: ![Buckskin](https://avatars.discourse-cdn.com/v4/letter/b/b9e5f3/32.png) [@Buckskin](https://discourse.nodered.org/u/Buckskin)
#### Post date: [31 May 2026 18:07 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/2 "2026-05-31T18:07:52Z")

</div>

An idea for the future. I use `asyncSend()` but it doesn't play well with MQTT so I have to save the `uibData` Object to context in a `change node` before the MQTT node and then recover it on the way back. Perhaps an easier way of doing this

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [31 May 2026 20:25 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/3 "2026-05-31T20:25:00Z")

</div>

Hi, thanks for the suggestion.

> [@Buckskin](#):
>
> doesn't play well with MQTT

In what way? It is just a message, so setting the topic and payload will work as expected with MQTT won't it?

The only other thing is the `msg._uib.correlationId` which, obviously, you need in order to send something back.

But honestly, if you are sending something to MQTT and needing a response, I don't think you are going about it in the best way?

> [@Buckskin](#):
>
> Perhaps an easier way of doing this

The only other thing I can think of would be to have the `correlationId` as part of the topic. But this might be just as problematic for other use-cases.

---

<div class="post-metadata">

### Author: ![Buckskin](https://avatars.discourse-cdn.com/v4/letter/b/b9e5f3/32.png) [@Buckskin](https://discourse.nodered.org/u/Buckskin)
#### Post date: [31 May 2026 21:32 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/4 "2026-05-31T21:32:14Z")

</div>

> [@TotallyInformation](#):
>
> In what way? It is just a message, so setting the topic and payload will work as expected with MQTT won't it?

Yes but `asyncSend()` requires that `_uib` be the same coming as going out and MQTT will not send an Object (I also save `_socketId` which also does not seem to survive MQTT).

The system sends a request for data from another instance of Node-RED. It works well

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [1 June 2026 10:37 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/5 "2026-06-01T10:37:35Z")

</div>

> [@Buckskin](#):
>
> Yes but `asyncSend()` requires that `_uib` be the same coming as going out and MQTT will not send an Object (I also save `_socketId` which also does not seem to survive MQTT).

The whole point of asyncSend is that it is a round-trip message dialogue. So you must have something that ties the outbound and inbound messages.

Also, while _technically_ MQTT won't send an object, an mqtt-subscribe node WILL turn a JSON string into an object for you. It just depends on what you are using your MQTT message for.

> [@Buckskin](#):
>
> The system sends a request for data from another instance of Node-RED. It works well

As I alluded to before, this isn't really what asyncSend is for. In your case, you should be using a standard `uibuilder.send` in your front-end code and simply using an MQTT subscribe fed straight back to your uibuilder node. You can use a topic listener in your front-end code to deal with the incoming messages. Indeed, you wouldn't even need any front-end JavaScript at all if you use `uibuilder.eventSend`, a change node to extract what you want to send out. Then a subscribe node into the uibuilder input with an HTML element using a `uib-topic` attribute.

This gives you an easy round-trip with no JavaScript needed.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [1 June 2026 16:11 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/6 "2026-06-01T16:11:36Z")

</div>

v7.7.1 has just been published. It contains a single bugfix for forcing Markweb sites to use uibuilder's dark mode styling. I'm afraid that light mode styling for Markweb is not (yet) available. Let me know if this is an issue for you.

If you have already deployed a Markweb site with a custom config folder, please either delete `page-template.html` and restart node-red so it gets re-created from the updated template, or simply adjust the HTML tag line of it to be:

```auto
<html lang="en" class="dark"><head>

```

---

<div class="post-metadata">

### Author: ![Martin12](https://avatars.discourse-cdn.com/v4/letter/m/e47c2d/32.png) [@Martin12](https://discourse.nodered.org/u/Martin12)
#### Post date: [1 June 2026 19:26 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/7 "2026-06-01T19:26:36Z")

</div>

I've got the projects feature of NodeRED enabled. With older versions of UIBUILDER it was using the files within the NodeRED Projects folder (`~/.node-red/projects/<PROJECT>/uibuilder`). From 7.7.0 on it seems like it changed since it is accessing the files in the uibuilder-Folder within the NodeRED root dir (`~/.node-red/uibuilder`).

Is this desired behaviour or maybe a bug? Or do I need to change someting?

I don't have any UIBUILDER-specific settings in my settings.js file.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [1 June 2026 21:07 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/8 "2026-06-01T21:07:51Z")

</div>

Thanks for reporting.

> [@Martin12](#):
>
> Is this desired behaviour or maybe a bug?

A bug I would think. I didn't think I'd changed anything in that area.

Late here now, I will look in the morning.

> [@Martin12](#):
>
> Or do I need to change someting?

As a temporary workaround, you can manually set the uibRoot folder in settings.js.

---

<div class="post-metadata">

### Author: ![Martin12](https://avatars.discourse-cdn.com/v4/letter/m/e47c2d/32.png) [@Martin12](https://discourse.nodered.org/u/Martin12)
#### Post date: [2 June 2026 05:51 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/9 "2026-06-02T05:51:43Z")

</div>

I just copied the website files to the uibuilder folder in the root dir and updated dependencies. So it's not really urgent and (for me) it doesn't matter too much where they sit. I was just wondering that this has been changed with the latest updates without mentioning it in the release notes as it is a braking change. 🙂

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [2 June 2026 10:31 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/10 "2026-06-02T10:31:00Z")

</div>

Thanks for reporting it. I will fix it. As you say, it is an unintentional breaking change.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [2 June 2026 11:55 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/11 "2026-06-02T11:55:32Z")

</div>

There is a fix in place for the next release.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [5 June 2026 20:05 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/12 "2026-06-05T20:05:08Z")

</div>

And another bug fix I'm afraid. v7.7.2:

[Code commits since last release](https://github.com/TotallyInformation/node-red-contrib-uibuilder/compare/v7.7.1...v7.7.2).

(Mostly) A bug fix release.

### New features

- A new `--syntax-highlight-height` CSS variable has been added to allow the maximum height of syntax-highlighted blocks to be set. If the content exceeds this height, it becomes scrollable. This is useful for preventing very large blocks of content from taking up too much space on the page. The default value is `22em`, but you can set it to whatever you like in your CSS. You can check out its use on the Variables page in the Markweb demo where the height is reduced to `9em`.

- For Markweb:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/4/a4f26efd53e5698d10d8caef44e93ccbc509b046.png)

### Bug fixes & tweaks

- When the runtime plugin is loaded by Node-RED, the `uibRoot` folder should be in 1 of 3 possible places. An overridden location (`uibuilder.uibRoot` in `settings.js` if provided), `<userDir>/<uib.moduleName>` (e.g. commonly `~/.node-red/uibuilder`), or `<userDir>/projects/<currProject>/<uib.moduleName>` if Node-RED projects are being used. The last of these was not working correctly. This is now fixed. In addition, the logic for determining the `uibRoot` location has been tidied up and made more robust. [Reference](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-1-new-features-and-bug-fixes-extra-bugfix/101164/7).

- Markweb:

---

<div class="post-metadata">

### Author: ![Martin12](https://avatars.discourse-cdn.com/v4/letter/m/e47c2d/32.png) [@Martin12](https://discourse.nodered.org/u/Martin12)
#### Post date: [6 June 2026 06:39 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/13 "2026-06-06T06:39:25Z")

</div>

> [@TotallyInformation](#):
>
> - When the runtime plugin is loaded by Node-RED, the `uibRoot` folder should be in 1 of 3 possible places. An overridden location (`uibuilder.uibRoot` in `settings.js` if provided), `<userDir>/<uib.moduleName>` (e.g. commonly `~/.node-red/uibuilder`), or `<userDir>/projects/<currProject>/<uib.moduleName>` if Node-RED projects are being used. The last of these was not working correctly. This is now fixed. In addition, the logic for determining the `uibRoot` location has been tidied up and made more robust. [Reference](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-1-new-features-and-bug-fixes-extra-bugfix/101164/7).

Just updated to v7.7.2 and it is still using the uibuilder Folder in the Root-Path of Node-RED while having Projects feature turned on in Node-RED. 🤔

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [6 June 2026 11:10 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/14 "2026-06-06T11:10:44Z")

</div>

Yes, sorry about that. I've discovered a startup timing issue so I'm not always getting the node-red core data I thought I was. Currently working through some better options to see what works.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [6 June 2026 16:59 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/15 "2026-06-06T16:59:55Z")

</div>

OK, 2nd attempt at fixing Node-RED Projects issues!

Please note that if you are using Node-RED projects and you've ended up with your front-end source code in `~/.node-red/uibuilder/<url>` instead of `~/.node-red/projects/<project_name>/uibuilder/<url>`, you can simply copy the folder from one to the other location and restart node-red.

Also note that, when using projects, if you change projects, you MUST restart node-red for uibuilder to work correctly.

* * *

[Code commits since last release](https://github.com/TotallyInformation/node-red-contrib-uibuilder/compare/v7.7.2...v7.7.3).

A bug fix release.

- Runtime startup was not correctly recognising the `uibuilder.telemetryEnabled` setting in `settings.js`. This meant that telemetry was always enabled even if the setting was set to false. Now fixed.
- The "fix" for projects in v7.7.2 was not quite correct. Now corrected
- Node-RED project changes to a new project were not being recognised by uibuilder.

> **CRITICAL NOTE**
> 
> When changing Node-RED projects, it is critical to restart Node-RED after switching. This will reset the uibuilder runtime settings to the new project locations.
> 
> **Failing to restart will cause uibuilder to fail to work correctly and may cause data loss.**
> 
> To support this, uibuilder now shows an error in the log and the Editor telling you to restart Node-RED if it detects a project change.
> 
> In addition, the uibuilder initialisation log block now shows if projects are in use and which is the current project (if any).
> 
> Also note that a new project will get a completely "clean" uibuilder environment (other than any configuration in settings.js).  
> Front-end libraries will need to be installed and any changes to uibuilder's `.config` or `common` folders will need to be manually copied over.

---

<div class="post-metadata">

### Author: ![Martin12](https://avatars.discourse-cdn.com/v4/letter/m/e47c2d/32.png) [@Martin12](https://discourse.nodered.org/u/Martin12)
#### Post date: [7 June 2026 13:42 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/16 "2026-06-07T13:42:42Z")

</div>

It's working properly again now. Thank you! 🙂

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [12 June 2026 16:02 UTC](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-4-new-features-and-bug-fixes-extra-bugfixes/101164/17 "2026-06-12T16:02:48Z")

</div>

Two more bugs squashed.

- Thanks to Colin for reporting an [issue with link colours in Markweb](https://discourse.nodered.org/t/uibuilder-markweb-too-dark/101168/40)
- A Node-RED v5 issue that stopped the `uib-sidebar` from working.
