There is a Custom Styles category in panels in which you can set custom StyleBoxes.
I tested changing the Panel
one with a new StyleBoxFlat, which changes the color of the panel but not dynamically.
You can set the Bg Color
of the StyleBox but it doesn't update in the editor, which is not handy :p
If you run the scene however, you'll see the color.
When it's about to do that in code, I managed to get a blinking panel with this:
extends Panel
var style = StyleBoxFlat.new()
func _ready():
# The Panel doc tells you which style names there are
add_style_override("panel", style)
set_process(true)
func _process(delta):
# Some basic code animation
var color = Color(0.5*sin(OS.get_ticks_msec()/100.0)+0.5, 0, 0)
style.set_bg_color(color)
# Don't forget to update so the control will redraw
update()