Changing the color of a UIGradient inside of a UIStroke inside of a CanvasGroup does not work if the parent CanvasGroup is nested inside another CanvasGroup. After debugging a bit, I discovered that parenting it to a Frame or using only one CanvasGroup works for whatever reason. It also does not have to be directly parented to a CanvasGroup, for example the structure can be CanvasGroup.ScrollingFrame.CanvasGroup.UIStroke.UIGradient which still breaks the color since it’s still indirectly parented.
I have also discovered that in order to fix the color that you selected in the UIGradient, you would need to disable and re-enable the UIStroke instance from it’s properties.
Visual aids:
Here is the structure I used to reproduce the bug
Reproduction steps:
Create the structure CanvasGroup.CanvasGroup.UIStroke.UIGradient and set stroke to white to allow UIGradient to control the color. Then change the color of the UIGradient. Nothing happens. To see the changes re-enable the UIStroke instance.
System information:
Intel(R) Core™ 7 150U
16GB
Intel(R) Graphics