[Report] invalid CSS syntax in $:/PaletteManager inputs immediately corrupts the page display
Author: ericshulmanCreated Aug 24, 2026Updated Aug 27, 2026
Labelsbugactionable:code
- View $:/ControlPanel > Appearance > Palette
- Scroll down to click on "show editor" button
- In ANY palette entry input field, enter
rgb( - As soon as you type the
(, it corrupts the page display due to invalid CSS syntax - If you then type
)(so the input is nowrgb()) the proper page display is restored (even though the input does not specify the R,G,B values - Similarly, if you try to enter filtered transclusion syntax (to use conditional color logic). As soon as you type the initial
{the page display is borked up. You need to enter at least{{{ }}}to restore the proper display. - There may also be other ways to corrupt the CSS with invalid syntax
I've addressed this issue in my enhanced TiddlyTools/Palette/Manager. See palette-manager-colour-edit() for an example of the code technique. Basically, I've used a $:/temp tiddler and $eventcatcher to handle $focusin, $change and $focusout events to create a "pseudo-modal" $edit-text widget, where the palette value is only updated when the user presses the "enter" key or moves the focus out of the input control (i.e., when a $change event occurs).
- the
$edit-textwidget points to the $:/temp tiddler - the
$edit-textwidget uses the current palette value as its default value - on
$focusin, aninit()macro copies the current palette index value to create the $:/temp tiddler - on
$change, aset()macro copies the $:/temp tiddler value back to the palette index - on
$focusout, adel()macro cleans up by deleting the $:/temp tiddler - because the $:/temp tiddler doesn't exist until the input field gets the focus, each
$edit-textwidget shows the current palette value when not in focus, but shows the $:/temp value when it has the focus
Source: TiddlyWiki/TiddlyWiki5