Why Showcase Palette Ports

loading

theme.Init();

A personal color scheme by initSyscall. Deep purple, thirteen tokens, one JSON file. Built to still be readable at hour twelve.

Why these colors

Every token was picked against real editor backgrounds and then measured, not eyeballed at 2am.

Contrast that holds up

Body text runs 13.7:1 against the background, muted text 5.3:1. Both clear WCAG AA, so the theme doesn't quietly fall apart when you get tired.

Night and day, one palette

nightSyscall and daySyscall share the same hue relationships, so a port looks like itself in either mode instead of like two themes stapled together.

Port it yourself

Thirteen tokens in plain JSON. No build step, no dependencies, no framework to agree with. Copy the file and start hacking.

Theme in action

The same thirteen tokens, driving an editor, a web app and a terminal.

main.zig
const std = @import("std");

pub fn main() void {
    var gpa = std.heap.GeneralPurposeAllocator.{};
    defer _ = gpa.deinit();

    const greeting = "hello, themeInit";
    print("{s}\n", .{greeting});

    const count = 42;
    if (count > 1) std.debug.print("more than one\n", .{});
}

One file. That's the lot.

No build, no dependencies, no lockfile. Copy it, commit it, or download it.

themeInit.json

The palette

Click any swatch to copy its hex. Thirteen tokens, all of them in this one file.

Ports

Running themeInit somewhere? Add it to ports.json and open a pull request.

By initSyscall

By the community

Take it and go

If love purples here you go

Not trying to be the next Catppuccin. This is one person's palette, shared because someone asked.