Get AI summaries of any video or article — Sign up free
Colorful Second Brain - Part 2: Excalidraw Color Palette Loader thumbnail

Colorful Second Brain - Part 2: Excalidraw Color Palette Loader

5 min read

Based on Zsolt's Visual Personal Knowledge Management's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Custom Excalidraw palettes can be generated externally and then applied inside Excalidraw via the Obsidian-based “palette loader” script.

Briefing

A custom color palette workflow for Excalidraw is the centerpiece here: build palettes elsewhere, save them in an Obsidian vault, then use the “palette loader” script to repaint existing drawings with brand-matching or more/less vivid color schemes. The payoff is practical—switching palettes becomes a repeatable, one-click process instead of manually recoloring shapes.

The process starts with a quick grounding in color theory concepts that matter when generating palettes. The palette logic distinguishes the RGB color wheel used by computers (red, green, blue) from the RYB wheel used by artists (red, yellow, blue). From there, the video lays out common palette structures: monochromatic (one hue with multiple shades), analogous (a base color plus its neighbors), complementary (two colors opposite on the wheel), split complementary (three colors using the neighbors of the complement), triadic (three equidistant hues), and tetradic (four hues forming a rectangle/square). It also notes how shade generation can be driven by algorithms—changing lightness/darkness and, optionally, shifting hue to create warmer shadows and cooler highlights.

For palette creation, Palatin is presented as the most convenient generator because the palette loader script works best with Palatin’s output format (though it can handle other generators too). In Palatin, users pick a palette type (monochromatic, analogous, triadic, tetradic), optionally add complementary colors, and then tune parameters like hue position, saturation, and the angular distance between colors on the wheel. The result is a palette defined by a base color plus multiple shades per secondary color. Once the palette looks right, export is done via “Sketch palette,” which produces text that can be copied into Obsidian.

In Obsidian, palettes are stored as documents inside a dedicated folder (defaulting to an Excalidraw “palettes” folder). After saving the palette data, the first-time setup requires installing the palette loader script from the Excalidraw script library and running it once. When a palette is loaded, the script also fills in missing essentials—adding black, white, transparent, and two gray shades—so Excalidraw has a complete set of colors to map onto existing elements.

Switching palettes is then demonstrated by drawing a simple face and repainting it. If the new palette is compatible in size (e.g., both use the same number of base/secondary colors and shades), the script offers an option to “repaint” so the drawing’s colors remap line-by-line from the old palette to the new one. If the palette structure differs (such as moving between monochromatic and triadic), the script may skip the repaint prompt and simply replace the palette.

Finally, the workflow supports non-JSON palette sources. Users can export as text, then edit the output so only hexadecimal color values remain (without the “#” character) to avoid Obsidian treating them as tags. The palette loader can then import that edited list and repaint drawings accordingly.

Overall, the central insight is that palette switching in Excalidraw can be automated end-to-end—generation in Palatin, storage in Obsidian, and deterministic recoloring via palette loader—making iterative experimentation with color combinations fast enough to be genuinely useful for real projects and brand-aligned notes.

Cornell Notes

The workflow centers on creating custom Excalidraw color palettes outside the app and then using the “palette loader” script to repaint drawings with those palettes. Palette design is guided by color-wheel relationships—monochromatic, analogous, complementary, split complementary, triadic, and tetradic—plus shade-generation choices like lightness/darkness and hue shifts. Palatin is recommended because its “Sketch palette” export fits the palette loader’s expectations, but other generators can work via a text/hex workflow. In Obsidian, palettes are stored in a dedicated folder, and the script fills in missing colors (black, white, transparent, and gray shades) so Excalidraw can map colors consistently. Palette switching is most seamless when the new palette matches the old palette’s structure so repainting can remap colors line-by-line.

Why does the RGB vs. RYB distinction matter when building palettes for Excalidraw?

The video contrasts the RGB wheel (red, green, blue) used by computers with the RYB wheel (red, yellow, blue) used by artists. That difference matters because palette harmony and “natural-looking” combinations often come from artist-style relationships on a color wheel. Even if Excalidraw ultimately uses computer color values, the palette generation approach (how hues are selected and spaced) can follow the RYB-style intuition for combinations that tend to work together.

What are the main palette structures, and how do they determine which hues appear together?

Monochromatic uses one hue with multiple shades. Analogous picks a base color plus the two neighboring colors on the wheel. Complementary chooses two colors opposite each other (180 degrees). Split complementary keeps three colors by taking the two neighbors of the complement instead of the complement itself. Triadic selects three hues equidistant on the wheel (triangle vertices). Tetradic selects four hues at rectangle/square vertices, with variants depending on the triangle/rectangle shape parameters.

How does Palatin let users tune a palette beyond just picking a palette type?

After choosing a palette type (monochromatic, analogous, triadic, tetradic), users can adjust the color-wheel parameters: hue position (moving the central dot changes the base hue), saturation (moving the dot toward gray reduces saturation), and the angular distance between colors (e.g., changing from 30 degrees to 45 degrees expands the rectangle/spacing). These changes affect both the base color and how the shades behave across the palette.

What does palette loader add to a palette that only contains “colors” but not Excalidraw essentials?

When a palette is exported from Palatin, it may include only the palette’s designed colors (and not Excalidraw’s required set). Palette loader automatically creates additional entries: black, white, transparent, and two gray shades. Those gray shades are adjusted to match the picture/background so that when a palette changes, the background gray can shift to better align with the new palette.

When does palette switching repaint existing drawings versus just replacing the palette?

Repainting is offered when the new palette is compatible in size/structure with the currently loaded palette. If the palette sizes match, the script can remap colors line-by-line and ask to “repaint” the drawing. If the palette structure differs (for example, switching between monochromatic and triadic), the script may not be able to map colors cleanly and may simply replace the palette without a repaint prompt.

How can palettes be imported when the generator doesn’t output the right JSON format?

The video describes exporting as text, then editing the output so it becomes a clean list of hexadecimal values without the “#” character. This avoids Obsidian interpreting them as tags. After editing (e.g., using Notepad++ to delete extra rows and keep only hex values), the list can be pasted into an Obsidian palette document and loaded by palette loader, which can repaint Excalidraw using that text-based palette.

Review Questions

  1. How would you choose between complementary, split complementary, and triadic palette structures for a brand-matching goal?
  2. What compatibility condition determines whether palette loader offers to repaint an existing drawing?
  3. Why must hexadecimal values be imported without the “#” character in the text-based palette workflow?

Key Points

  1. 1

    Custom Excalidraw palettes can be generated externally and then applied inside Excalidraw via the Obsidian-based “palette loader” script.

  2. 2

    Color harmony can be approached systematically using palette structures: monochromatic, analogous, complementary, split complementary, triadic, and tetradic.

  3. 3

    Palatin is the preferred palette generator because its “Sketch palette” export aligns with palette loader’s expected format.

  4. 4

    Palette loader automatically adds black, white, transparent, and two gray shades so Excalidraw has a complete, usable palette.

  5. 5

    Palette switching works best when the new palette matches the old palette’s structure, enabling line-by-line color remapping and repaint prompts.

  6. 6

    Non-JSON palette sources can still work by exporting as text and importing only hex color values (without “#”) to prevent Obsidian tag pollution.

Highlights

Palette loader turns palette changes into a practical recoloring workflow: compatible palettes can repaint existing drawings instead of requiring manual recoloring.
Gray shades aren’t arbitrary—palette loader adjusts them to better match the drawing’s background when switching palettes.
Palatin’s Sketch palette export is the smoothest path, but text-based hex lists provide a fallback for other palette generators.

Topics

  • Excalidraw Palettes
  • Color Theory
  • Palatin Export
  • Obsidian Vault
  • Palette Loader Script

Mentioned