From 946523534498b25e5c5713d7973f6f44e55a39b1 Mon Sep 17 00:00:00 2001 From: hwelch-fle <91618355+hwelch-fle@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:27:45 -0400 Subject: [PATCH 1/4] fix(node.icon): Allow Node.icon to inherit Node.size resolves #385 --- lib/network/modules/NodesHandler.js | 4 ++-- lib/network/modules/components/nodes/util/NodeBase.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/network/modules/NodesHandler.js b/lib/network/modules/NodesHandler.js index c948b9fd96..96778938d4 100644 --- a/lib/network/modules/NodesHandler.js +++ b/lib/network/modules/NodesHandler.js @@ -85,7 +85,7 @@ class NodesHandler { icon: { face: "FontAwesome", //'FontAwesome', code: undefined, //'\uf007', - size: 50, //50, + size: undefined, //set to 50 in NodeBase to allow inheriting Node.size, color: "#2B7CE9", //'#aa00ff' }, image: undefined, // --> URL @@ -142,7 +142,7 @@ class NodesHandler { useBorderWithImage: false, // only for image shape coordinateOrigin: "center", // only for image and circularImage shapes }, - size: 25, + size: undefined, // set to 25 in NodeBase to allow icon to inherit size, title: undefined, value: undefined, x: undefined, diff --git a/lib/network/modules/components/nodes/util/NodeBase.js b/lib/network/modules/components/nodes/util/NodeBase.js index 32f2b598a8..bd49bfdf74 100644 --- a/lib/network/modules/components/nodes/util/NodeBase.js +++ b/lib/network/modules/components/nodes/util/NodeBase.js @@ -26,6 +26,10 @@ class NodeBase { * @param {object} options */ setOptions(options) { + if (options.icon !== undefined && options.icon.size === undefined) { + options.icon.size = options.size || 50; + } + options.size = options.size || 25; this.options = options; } From 5530404c81510209a7cefb5027e275a9fe73fd90 Mon Sep 17 00:00:00 2001 From: hwelch-fle <91618355+hwelch-fle@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:32:37 -0400 Subject: [PATCH 2/4] docs(node): Add note to `node.icon.size` explaining that size will be inherited from `node.size` if unset --- docs/network/nodes.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/network/nodes.html b/docs/network/nodes.html index 6ab0d00691..de7d737722 100644 --- a/docs/network/nodes.html +++ b/docs/network/nodes.html @@ -1111,7 +1111,10 @@

Options

icon.size Number 50 - The size of the icon. + + The size of the icon. (will inherit size if + undefined) + icon.color From fc94668dfbb4af37f76bea55673c0dff2d74a428 Mon Sep 17 00:00:00 2001 From: hwelch-fle Date: Mon, 1 Jun 2026 22:16:19 -0400 Subject: [PATCH 3/4] fix(node.icon): Prevent `size` from being inherited unless new `inheritSize` flag is set at some level of the icon definition --- lib/network/modules/components/nodes/util/NodeBase.js | 8 ++++++-- lib/network/options.ts | 1 + types/network/Network.d.ts | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/network/modules/components/nodes/util/NodeBase.js b/lib/network/modules/components/nodes/util/NodeBase.js index bd49bfdf74..48d9021d58 100644 --- a/lib/network/modules/components/nodes/util/NodeBase.js +++ b/lib/network/modules/components/nodes/util/NodeBase.js @@ -26,8 +26,12 @@ class NodeBase { * @param {object} options */ setOptions(options) { - if (options.icon !== undefined && options.icon.size === undefined) { - options.icon.size = options.size || 50; + if (options.icon) { + if (options.icon.inheritSize) { + options.icon.size = options.size || 50; + } else { + options.icon.size = options.icon.size || 50; + } } options.size = options.size || 25; this.options = options; diff --git a/lib/network/options.ts b/lib/network/options.ts index 070de61f49..43d6f3a55f 100644 --- a/lib/network/options.ts +++ b/lib/network/options.ts @@ -121,6 +121,7 @@ const nodeOptions: OptionsConfig = { face: { string }, code: { string }, //'\uf007', size: { number }, //50, + inheritSize: { boolean: bool }, color: { string }, weight: { string, number }, __type__: { object }, diff --git a/types/network/Network.d.ts b/types/network/Network.d.ts index b9fb2bb7ca..c7b2a0e786 100644 --- a/types/network/Network.d.ts +++ b/types/network/Network.d.ts @@ -923,6 +923,7 @@ export interface NodeOptions { size?: number, // 50, color?: string, weight?: number | string, + inheritSize?: boolean, }; image?: string | Image; From 065b21672a677940b74abd3711e7ae588d4dd0ea Mon Sep 17 00:00:00 2001 From: hwelch-fle Date: Mon, 1 Jun 2026 22:20:31 -0400 Subject: [PATCH 4/4] docs(node): Add entry for new `inheritSize` flag on `node.icon` --- docs/network/nodes.html | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/network/nodes.html b/docs/network/nodes.html index de7d737722..1bd769934b 100644 --- a/docs/network/nodes.html +++ b/docs/network/nodes.html @@ -1111,9 +1111,22 @@

Options

icon.size Number 50 + The size of the icon. + + + icon.inheritSize + Boolean + false - The size of the icon. (will inherit size if - undefined) + When true, inherit size from + node.size. Takes precedence over + icon.size.
Note: This flag exists to preserve the original behavior of + icons. If using groups to set icons, you may want to set this to + true + so you can drive icon size without overwriting the group icon + object. +