Refactoring Again (Priduck Color Theme)

Originally, when this theme was created, it made sense to create two separate packages to provide the theme, one for the CSS files themselves and the other for a CLI to generate the source files.

These we needed to generate GPL palettes for Inkscape and that specific abstraction started to crumble. The result is that we merged the two Priduck repositories together and made it a single theme, with the intent that one would generate the files they want instead of a tiny package that just provided a single CSS variables version.

This will also allow for the generation of character-specific stylesheets over at Fedran not to mention the book covers over there.


The CLI is pretty simple, a verb-based Node script that installs into the node_modules/.bin folder as usual:

$ priduck
priduck <cmd> [args]

  priduck css      Generate CSS files
  priduck palette  Generate palette files

  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Not enough non-option arguments: got 0, need at least 2

The three basic commands are:

  • priduck css variables [--output /path/style.css] to generate the CSS variables CSS file.
  • priduck css mixin to combine CSS fragments files instead a combination of media queries and data attributes for supporting prefers-color-scheme and prefers-contrast options.
  • priduck palette gpl --hue [--output example.gpl] which generates a hue-specific palette file for GNU Imp and Inkscape.


Along the process, a project can never be done if it isn't documented, so we wrote some documentation. It gives the general gist of the tool. We'll expand on it some more “someday.”