Skip to content

Custom Canvas Colors

Change background and grid color of Grasshopper canvas. Edge and shade color can also be changed with some edits to the code.
Similar to PALETTE
For simple dark mode toggle use MOONLIGHT

Basic component setup:

  • E : item, bool - Enable Toggle
  • B : list, System.Drawing.Color - Background Color
  • G : item, System.Drawing.Color - Grid Color

Code

using System.Drawing;

// Descriptions
Component.Name = "Canvas Colour";
Component.Description = "Changes colour of canvas background and grid";
Component.Params.Input[0].Name = "Enable";
Component.Params.Input[0].NickName = "E";
Component.Params.Input[0].Description = "Toggle to enable/disable custom colour settings";
Component.Params.Input[1].Name = "Background Colour";
Component.Params.Input[1].NickName = "B";
Component.Params.Input[1].Description = "Colour of canvas background";
Component.Params.Input[2].Name = "Grid Colour";
Component.Params.Input[2].NickName = "G";
Component.Params.Input[2].Description = "Colour of Canvas Grid";

// Defaults to white BG with no grid
if(G.IsEmpty) G = Color.FromArgb(0, 0, 0, 0);
if(B.IsEmpty) B = Color.FromArgb(255, 255, 255, 255);


if (E)
{
  Grasshopper.GUI.Canvas.GH_Skin.canvas_grid = G;
  Grasshopper.GUI.Canvas.GH_Skin.canvas_back = B;
  Grasshopper.GUI.Canvas.GH_Skin.canvas_edge = Color.FromArgb(255, 0, 0, 0);
  Grasshopper.GUI.Canvas.GH_Skin.canvas_shade = Color.FromArgb(80, 0, 0, 0);
}
else
{
  // GH DEFAULTS
  Grasshopper.GUI.Canvas.GH_Skin.canvas_grid = Color.FromArgb(30, 0, 0, 0);
  Grasshopper.GUI.Canvas.GH_Skin.canvas_back = Color.FromArgb(255, 212, 208, 200);
  Grasshopper.GUI.Canvas.GH_Skin.canvas_edge = Color.FromArgb(255, 0, 0, 0);
  Grasshopper.GUI.Canvas.GH_Skin.canvas_shade = Color.FromArgb(80, 0, 0, 0);
}
GitHub Gist

Result

Delete component after toggling to True to make changes persistent.