🐛 Subtitle & Icon Issues When Using Background in Custom Context Menu

Describe the bug
When defining items in a Custom Context Menu (using Simple JSON Format) and you set a background color for the item, I observe two bugs / unexpected behavior:

  1. Subtitles are not displayed.
  2. Icons become misaligned.

For example, the Custom Context Menu generated by the JS code below produces the following context menu:

:information_source: Tests 4, 7, & 8 do not pass.

Expected Behavior

Subtitle should appear under the title, even when a background color is set.

Icon should align consistently, regardless of background color being set.

//see https://docs.folivora.ai/docs/1108_simple_format.html

async function retrieveJSON() {
	const emoji = {
		checked: "\u2705",
		unchecked: "\u274C",
	};

	const subtitleText = "Subtitle text.";
	const backgroundColor = "#D3B3FF80";
	const iconDefinition = {
		type: "sfsymbol",
		value: "person.3.sequence",
	};

	let items = [
		{
			// Test 1: Pass 👍
			title: `Test 1: Subtitle ${emoji.unchecked}, Background ${emoji.unchecked}, Icon ${emoji.unchecked}`,
			subtitle: null,
			background: null,
			icon: null,
		},
		{
			// Test 2: Pass 👍
			title: `Test 2: Subtitle ${emoji.checked}, Background ${emoji.unchecked}, Icon ${emoji.unchecked}`,
			subtitle: { text: subtitleText },
			background: null,
			icon: null,
		},
		{
			// Test 3: Pass 👍
			title: `Test 3: Subtitle ${emoji.unchecked}, Background ${emoji.checked}, Icon ${emoji.unchecked}`,
			subtitle: null,
			background: backgroundColor,
			icon: null,
		},
		{
			// Test 4: Fail 👎 'Subtitle' unexpectedly is not being displayed due to 'Background' being set
			title: `Test 4: Subtitle ${emoji.checked}, Background ${emoji.checked}, Icon ${emoji.unchecked}`,
			subtitle: { text: subtitleText },
			background: backgroundColor,
			icon: null,
		},
		{
			// Test 5: Pass 👍
			title: `Test 5: Subtitle ${emoji.unchecked}, Background ${emoji.unchecked}, Icon ${emoji.checked}`,
			subtitle: null,
			background: null,
			icon: iconDefinition,
		},
		{
			// Test 6: Pass 👍
			title: `Test 6: Subtitle ${emoji.checked}, Background ${emoji.unchecked}, Icon ${emoji.checked}`,
			subtitle: { text: subtitleText },
			background: null,
			icon: iconDefinition,
		},
		{
			// Test 7: Fail 👎 'icon' placement and dimensions are distorted due to 'Background' being set
			title: `Test 7: Subtitle ${emoji.unchecked}, Background ${emoji.checked}, Icon ${emoji.checked}`,
			subtitle: null,
			background: backgroundColor,
			icon: iconDefinition,
		},
		{
			// Test 8: Fail 👎 'Subtitle' unexpectedly is not being displayed and 'icon' placement and dimensions are distorted due to 'Background' being set
			title: `Test 8: Subtitle ${emoji.checked}, Background ${emoji.checked}, Icon ${emoji.checked}`,
			subtitle: { text: subtitleText },
			background: backgroundColor,
			icon: iconDefinition,
		},
	];

	return JSON.stringify(items);
}

Here's the configuration of the Keyboard Shortcut trigger and the Show Custom Context Menu (NEW) action:

[
  {
    "BTTActionCategory" : 0,
    "BTTLastUpdatedAt" : 1736982754.103164,
    "BTTTriggerType" : 0,
    "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
    "BTTUUID" : "B4579788-0615-4FA4-8331-569E1AA27C3B",
    "BTTPredefinedActionType" : 366,
    "BTTPredefinedActionName" : "Empty Placeholder",
    "BTTAdditionalConfiguration" : "8388608",
    "BTTKeyboardShortcutKeyboardType" : 2302,
    "BTTTriggerOnDown" : 1,
    "BTTLayoutIndependentChar" : "F3",
    "BTTEnabled" : 1,
    "BTTEnabled2" : 1,
    "BTTShortcutKeyCode" : 99,
    "BTTShortcutModifierKeys" : 8388608,
    "BTTOrder" : 3,
    "BTTAutoAdaptToKeyboardLayout" : 0,
    "BTTAdditionalActions" : [
      {
        "BTTActionCategory" : 0,
        "BTTLastUpdatedAt" : 1736982763.16522,
        "BTTTriggerParentUUID" : "B4579788-0615-4FA4-8331-569E1AA27C3B",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
        "BTTUUID" : "C947D3A4-D548-4E8E-80F1-ACF28AF6441D",
        "BTTPredefinedActionType" : 327,
        "BTTPredefinedActionName" : "Show Custom Context Menu (NEW)",
        "BTTActionCustomScriptSettings" : "ewogICJCVFRTY3JpcHRUeXBlIiA6IDMsCiAgIkJUVEFwcGxlU2NyaXB0U3RyaW5nIiA6ICJcL1wvc2VlIGh0dHBzOlwvXC9kb2NzLmZvbGl2b3JhLmFpXC9kb2NzXC8xMTA4X3NpbXBsZV9mb3JtYXQuaHRtbFxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZUpTT04oKSB7XG5cdGNvbnN0IGVtb2ppID0ge1xuXHRcdGNoZWNrZWQ6IFwiXFx1MjcwNVwiLFxuXHRcdHVuY2hlY2tlZDogXCJcXHUyNzRDXCIsXG5cdH07XG5cblx0Y29uc3Qgc3VidGl0bGVUZXh0ID0gXCJTdWJ0aXRsZSB0ZXh0LlwiO1xuXHRjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBcIiNEM0IzRkY4MFwiO1xuXHRjb25zdCBpY29uRGVmaW5pdGlvbiA9IHtcblx0XHR0eXBlOiBcInNmc3ltYm9sXCIsXG5cdFx0dmFsdWU6IFwicGVyc29uLjMuc2VxdWVuY2VcIixcblx0fTtcblxuXHRsZXQgaXRlbXMgPSBbXG5cdFx0e1xuXHRcdFx0XC9cLyBUZXN0IDE6IFBhc3Mg76O_w7zDq8OnXG5cdFx0XHR0aXRsZTogYFRlc3QgMTogU3VidGl0bGUgJHtlbW9qaS51bmNoZWNrZWR9LCBCYWNrZ3JvdW5kICR7ZW1vamkudW5jaGVja2VkfSwgSWNvbiAke2Vtb2ppLnVuY2hlY2tlZH1gLFxuXHRcdFx0c3VidGl0bGU6IG51bGwsXG5cdFx0XHRiYWNrZ3JvdW5kOiBudWxsLFxuXHRcdFx0aWNvbjogbnVsbCxcblx0XHR9LFxuXHRcdHtcblx0XHRcdFwvXC8gVGVzdCAyOiBQYXNzIO+jv8O8w6vDp1xuXHRcdFx0dGl0bGU6IGBUZXN0IDI6IFN1YnRpdGxlICR7ZW1vamkuY2hlY2tlZH0sIEJhY2tncm91bmQgJHtlbW9qaS51bmNoZWNrZWR9LCBJY29uICR7ZW1vamkudW5jaGVja2VkfWAsXG5cdFx0XHRzdWJ0aXRsZTogeyB0ZXh0OiBzdWJ0aXRsZVRleHQgfSxcblx0XHRcdGJhY2tncm91bmQ6IG51bGwsXG5cdFx0XHRpY29uOiBudWxsLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0XC9cLyBUZXN0IDM6IFBhc3Mg76O_w7zDq8OnXG5cdFx0XHR0aXRsZTogYFRlc3QgMzogU3VidGl0bGUgJHtlbW9qaS51bmNoZWNrZWR9LCBCYWNrZ3JvdW5kICR7ZW1vamkuY2hlY2tlZH0sIEljb24gJHtlbW9qaS51bmNoZWNrZWR9YCxcblx0XHRcdHN1YnRpdGxlOiBudWxsLFxuXHRcdFx0YmFja2dyb3VuZDogYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0aWNvbjogbnVsbCxcblx0XHR9LFxuXHRcdHtcblx0XHRcdFwvXC8gVGVzdCA0OiBGYWlsIO+jv8O8w6vDqSAnU3VidGl0bGUnIHVuZXhwZWN0ZWRseSBpcyBub3QgYmVpbmcgZGlzcGxheWVkIGR1ZSB0byAnQmFja2dyb3VuZCcgYmVpbmcgc2V0XG5cdFx0XHR0aXRsZTogYFRlc3QgNDogU3VidGl0bGUgJHtlbW9qaS5jaGVja2VkfSwgQmFja2dyb3VuZCAke2Vtb2ppLmNoZWNrZWR9LCBJY29uICR7ZW1vamkudW5jaGVja2VkfWAsXG5cdFx0XHRzdWJ0aXRsZTogeyB0ZXh0OiBzdWJ0aXRsZVRleHQgfSxcblx0XHRcdGJhY2tncm91bmQ6IGJhY2tncm91bmRDb2xvcixcblx0XHRcdGljb246IG51bGwsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRcL1wvIFRlc3QgNTogUGFzcyDvo7_DvMOrw6dcblx0XHRcdHRpdGxlOiBgVGVzdCA1OiBTdWJ0aXRsZSAke2Vtb2ppLnVuY2hlY2tlZH0sIEJhY2tncm91bmQgJHtlbW9qaS51bmNoZWNrZWR9LCBJY29uICR7ZW1vamkuY2hlY2tlZH1gLFxuXHRcdFx0c3VidGl0bGU6IG51bGwsXG5cdFx0XHRiYWNrZ3JvdW5kOiBudWxsLFxuXHRcdFx0aWNvbjogaWNvbkRlZmluaXRpb24sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRcL1wvIFRlc3QgNjogUGFzcyDvo7_DvMOrw6dcblx0XHRcdHRpdGxlOiBgVGVzdCA2OiBTdWJ0aXRsZSAke2Vtb2ppLmNoZWNrZWR9LCBCYWNrZ3JvdW5kICR7ZW1vamkudW5jaGVja2VkfSwgSWNvbiAke2Vtb2ppLmNoZWNrZWR9YCxcblx0XHRcdHN1YnRpdGxlOiB7IHRleHQ6IHN1YnRpdGxlVGV4dCB9LFxuXHRcdFx0YmFja2dyb3VuZDogbnVsbCxcblx0XHRcdGljb246IGljb25EZWZpbml0aW9uLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0XC9cLyBUZXN0IDc6IEZhaWwg76O_w7zDq8OpICdpY29uJyBwbGFjZW1lbnQgYW5kIGRpbWVuc2lvbnMgYXJlIGRpc3RvcnRlZCBkdWUgdG8gJ0JhY2tncm91bmQnIGJlaW5nIHNldFxuXHRcdFx0dGl0bGU6IGBUZXN0IDc6IFN1YnRpdGxlICR7ZW1vamkudW5jaGVja2VkfSwgQmFja2dyb3VuZCAke2Vtb2ppLmNoZWNrZWR9LCBJY29uICR7ZW1vamkuY2hlY2tlZH1gLFxuXHRcdFx0c3VidGl0bGU6IG51bGwsXG5cdFx0XHRiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRpY29uOiBpY29uRGVmaW5pdGlvbixcblx0XHR9LFxuXHRcdHtcblx0XHRcdFwvXC8gVGVzdCA4OiBGYWlsIO+jv8O8w6vDqSAnU3VidGl0bGUnIHVuZXhwZWN0ZWRseSBpcyBub3QgYmVpbmcgZGlzcGxheWVkIGFuZCAnaWNvbicgcGxhY2VtZW50IGFuZCBkaW1lbnNpb25zIGFyZSBkaXN0b3J0ZWQgZHVlIHRvICdCYWNrZ3JvdW5kJyBiZWluZyBzZXRcblx0XHRcdHRpdGxlOiBgVGVzdCA4OiBTdWJ0aXRsZSAke2Vtb2ppLmNoZWNrZWR9LCBCYWNrZ3JvdW5kICR7ZW1vamkuY2hlY2tlZH0sIEljb24gJHtlbW9qaS5jaGVja2VkfWAsXG5cdFx0XHRzdWJ0aXRsZTogeyB0ZXh0OiBzdWJ0aXRsZVRleHQgfSxcblx0XHRcdGJhY2tncm91bmQ6IGJhY2tncm91bmRDb2xvcixcblx0XHRcdGljb246IGljb25EZWZpbml0aW9uLFxuXHRcdH0sXG5cdF07XG5cblx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KGl0ZW1zKTtcbn1cbiIsCiAgIkJUVFNjcmlwdEZ1bmN0aW9uVG9DYWxsIiA6ICJyZXRyaWV2ZUpTT04iLAogICJCVFRTY3JpcHRMb2NhdGlvbiIgOiAwLAogICJCVFRBcHBsZVNjcmlwdFVzZVBhdGgiIDogZmFsc2UsCiAgIkJUVEphdmFTY3JpcHRVc2VJc29sYXRlZENvbnRleHQiIDogZmFsc2UKfQ==",
        "BTTAdditionalActionData" : {
          "BTTActionRetrieveFromScript" : 1
        },
        "BTTKeyboardShortcutKeyboardType" : 0,
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1,
        "BTTShortcutKeyCode" : -1,
        "BTTOrder" : 696,
        "BTTAutoAdaptToKeyboardLayout" : 0
      }
    ]
  }
]

Device information:

  • Device: MacBook Pro (14-inch, 2021)
  • macOS: 15.2 (24C101)
  • BTT Version: 5.071 (2025011404)
  • Alpha: 0 update(s) behind latest Alpha version 5.071 (2025011404).
  • Regular: Installed version is ahead of latest Regular version 5.061.

Additional information (e.g. crash logs, related issues, etc.):