From 1fc38253ec7df28f2980f80ed04dfa3ccb444147 Mon Sep 17 00:00:00 2001 From: John Muchovej Date: Tue, 6 Dec 2022 15:28:41 -0500 Subject: [PATCH 01/13] Adding TailwindCSS colors --- data/tailwind.txt | 220 +++++++++++++++++++++++++++++++++++++++++++++ src/NamedColors.jl | 5 +- src/loading.jl | 9 ++ test/loading.jl | 6 ++ 4 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 data/tailwind.txt diff --git a/data/tailwind.txt b/data/tailwind.txt new file mode 100644 index 0000000..c450856 --- /dev/null +++ b/data/tailwind.txt @@ -0,0 +1,220 @@ +slate.50 #f8fafc +slate.100 #f1f5f9 +slate.200 #e2e8f0 +slate.300 #cbd5e1 +slate.400 #94a3b8 +slate.500 #64748b +slate.600 #475569 +slate.700 #334155 +slate.800 #1e293b +slate.900 #0f172a +gray.50 #f9fafb +gray.100 #f3f4f6 +gray.200 #e5e7eb +gray.300 #d1d5db +gray.400 #9ca3af +gray.500 #6b7280 +gray.600 #4b5563 +gray.700 #374151 +gray.800 #1f2937 +gray.900 #111827 +zinc.50 #fafafa +zinc.100 #f4f4f5 +zinc.200 #e4e4e7 +zinc.300 #d4d4d8 +zinc.400 #a1a1aa +zinc.500 #71717a +zinc.600 #52525b +zinc.700 #3f3f46 +zinc.800 #27272a +zinc.900 #18181b +neutral.50 #fafafa +neutral.100 #f5f5f5 +neutral.200 #e5e5e5 +neutral.300 #d4d4d4 +neutral.400 #a3a3a3 +neutral.500 #737373 +neutral.600 #525252 +neutral.700 #404040 +neutral.800 #262626 +neutral.900 #171717 +stone.50 #fafaf9 +stone.100 #f5f5f4 +stone.200 #e7e5e4 +stone.300 #d6d3d1 +stone.400 #a8a29e +stone.500 #78716c +stone.600 #57534e +stone.700 #44403c +stone.800 #292524 +stone.900 #1c1917 +red.50 #fef2f2 +red.100 #fee2e2 +red.200 #fecaca +red.300 #fca5a5 +red.400 #f87171 +red.500 #ef4444 +red.600 #dc2626 +red.700 #b91c1c +red.800 #991b1b +red.900 #7f1d1d +orange.50 #fff7ed +orange.100 #ffedd5 +orange.200 #fed7aa +orange.300 #fdba74 +orange.400 #fb923c +orange.500 #f97316 +orange.600 #ea580c +orange.700 #c2410c +orange.800 #9a3412 +orange.900 #7c2d12 +amber.50 #fffbeb +amber.100 #fef3c7 +amber.200 #fde68a +amber.300 #fcd34d +amber.400 #fbbf24 +amber.500 #f59e0b +amber.600 #d97706 +amber.700 #b45309 +amber.800 #92400e +amber.900 #78350f +yellow.50 #fefce8 +yellow.100 #fef9c3 +yellow.200 #fef08a +yellow.300 #fde047 +yellow.400 #facc15 +yellow.500 #eab308 +yellow.600 #ca8a04 +yellow.700 #a16207 +yellow.800 #854d0e +yellow.900 #713f12 +lime.50 #f7fee7 +lime.100 #ecfccb +lime.200 #d9f99d +lime.300 #bef264 +lime.400 #a3e635 +lime.500 #84cc16 +lime.600 #65a30d +lime.700 #4d7c0f +lime.800 #3f6212 +lime.900 #365314 +green.50 #f0fdf4 +green.100 #dcfce7 +green.200 #bbf7d0 +green.300 #86efac +green.400 #4ade80 +green.500 #22c55e +green.600 #16a34a +green.700 #15803d +green.800 #166534 +green.900 #14532d +emerald.50 #ecfdf5 +emerald.100 #d1fae5 +emerald.200 #a7f3d0 +emerald.300 #6ee7b7 +emerald.400 #34d399 +emerald.500 #10b981 +emerald.600 #059669 +emerald.700 #047857 +emerald.800 #065f46 +emerald.900 #064e3b +teal.50 #f0fdfa +teal.100 #ccfbf1 +teal.200 #99f6e4 +teal.300 #5eead4 +teal.400 #2dd4bf +teal.500 #14b8a6 +teal.600 #0d9488 +teal.700 #0f766e +teal.800 #115e59 +teal.900 #134e4a +cyan.50 #ecfeff +cyan.100 #cffafe +cyan.200 #a5f3fc +cyan.300 #67e8f9 +cyan.400 #22d3ee +cyan.500 #06b6d4 +cyan.600 #0891b2 +cyan.700 #0e7490 +cyan.800 #155e75 +cyan.900 #164e63 +sky.50 #f0f9ff +sky.100 #e0f2fe +sky.200 #bae6fd +sky.300 #7dd3fc +sky.400 #38bdf8 +sky.500 #0ea5e9 +sky.600 #0284c7 +sky.700 #0369a1 +sky.800 #075985 +sky.900 #0c4a6e +blue.50 #eff6ff +blue.100 #dbeafe +blue.200 #bfdbfe +blue.300 #93c5fd +blue.400 #60a5fa +blue.500 #3b82f6 +blue.600 #2563eb +blue.700 #1d4ed8 +blue.800 #1e40af +blue.900 #1e3a8a +indigo.50 #eef2ff +indigo.100 #e0e7ff +indigo.200 #c7d2fe +indigo.300 #a5b4fc +indigo.400 #818cf8 +indigo.500 #6366f1 +indigo.600 #4f46e5 +indigo.700 #4338ca +indigo.800 #3730a3 +indigo.900 #312e81 +violet.50 #f5f3ff +violet.100 #ede9fe +violet.200 #ddd6fe +violet.300 #c4b5fd +violet.400 #a78bfa +violet.500 #8b5cf6 +violet.600 #7c3aed +violet.700 #6d28d9 +violet.800 #5b21b6 +violet.900 #4c1d95 +purple.50 #faf5ff +purple.100 #f3e8ff +purple.200 #e9d5ff +purple.300 #d8b4fe +purple.400 #c084fc +purple.500 #a855f7 +purple.600 #9333ea +purple.700 #7e22ce +purple.800 #6b21a8 +purple.900 #581c87 +fuchsia.50 #fdf4ff +fuchsia.100 #fae8ff +fuchsia.200 #f5d0fe +fuchsia.300 #f0abfc +fuchsia.400 #e879f9 +fuchsia.500 #d946ef +fuchsia.600 #c026d3 +fuchsia.700 #a21caf +fuchsia.800 #86198f +fuchsia.900 #701a75 +pink.50 #fdf2f8 +pink.100 #fce7f3 +pink.200 #fbcfe8 +pink.300 #f9a8d4 +pink.400 #f472b6 +pink.500 #ec4899 +pink.600 #db2777 +pink.700 #be185d +pink.800 #9d174d +pink.900 #831843 +rose.50 #fff1f2 +rose.100 #ffe4e6 +rose.200 #fecdd3 +rose.300 #fda4af +rose.400 #fb7185 +rose.500 #f43f5e +rose.600 #e11d48 +rose.700 #be123c +rose.800 #9f1239 +rose.900 #881337 \ No newline at end of file diff --git a/src/NamedColors.jl b/src/NamedColors.jl index 8d266d2..e977b34 100644 --- a/src/NamedColors.jl +++ b/src/NamedColors.jl @@ -3,7 +3,7 @@ using ColorTypes using REPL: levsort import Colors: @colorant_str -export load_xkcd, load_resene, load_nbs, load_x11_style, load_winsor_newton, load_x11, load_css3, load_crayola, load_paul_tol, ALL_COLORS, @colorant_str, UnknownColorError, named_color +export load_tailwind, load_xkcd, load_resene, load_nbs, load_x11_style, load_winsor_newton, load_x11, load_css3, load_crayola, load_paul_tol, ALL_COLORS, @colorant_str, UnknownColorError, named_color include("loading.jl") @@ -15,9 +15,10 @@ This is the initialised for the globel const ALL_COLORS, used by "@colorant" """ function load_all_colors(load_functions = ( load_resene, + load_tailwind, load_xkcd, load_nbs, - load_winsor_newton, + load_winsor_newton, load_x11, load_crayola, load_css3, diff --git a/src/loading.jl b/src/loading.jl index 137bff2..791739a 100644 --- a/src/loading.jl +++ b/src/loading.jl @@ -83,6 +83,15 @@ end ########## Specific formats for specific instances +""" +Load the color list from [TailwindCSS](https://tailwindcss.org/docs/customizing-colors). +These colors are suitable for use with (modern) monitors. +""" +function load_tailwind() + linefields = (split(line," "; keepempty=false) for line in eachline(datafile("tailwind.txt"))) + Dict((name => parse_hexcode(code)) for (name,code) in linefields) +end + """ Load the color list from the [XKCD color survey](https://blog.xkcd.com/2010/05/03/color-survey-results/). These colors are suitable for use with (modern) monitors diff --git a/test/loading.jl b/test/loading.jl index a7bf460..a0079c0 100644 --- a/test/loading.jl +++ b/test/loading.jl @@ -1,4 +1,10 @@ +@testset "xkcd" begin + tailwind = load_tailwind() + @test length(tailwind) == 220 + @test tailwind["sky.400"] == RGB24(0.22, 0.741, 0.973) +end + @testset "xkcd" begin xkcd = load_xkcd() @test length(xkcd) == 949 From 000becf81599daba23ab5ab839ee80cc65d49936 Mon Sep 17 00:00:00 2001 From: John Muchovej Date: Tue, 6 Dec 2022 15:30:11 -0500 Subject: [PATCH 02/13] Add JS script to extract TailwindCSS colors Adds JavaScript script to track the colors that ship with the `tailwindcss` `npm` package. Also edits `.gitignore` to prevent tracking `node_modules` and `package-lock.json` --- .gitignore | 3 +++ scripts/exportTailwindColors.cjs | 42 ++++++++++++++++++++++++++++++++ scripts/package.json | 6 +++++ 3 files changed, 51 insertions(+) create mode 100755 scripts/exportTailwindColors.cjs create mode 100644 scripts/package.json diff --git a/.gitignore b/.gitignore index 1c61506..b3cc781 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ *.jl.mem **.ipynb_checkpoints** Manifest.toml + +scripts/node_modules/ +scripts/package-lock.json diff --git a/scripts/exportTailwindColors.cjs b/scripts/exportTailwindColors.cjs new file mode 100755 index 0000000..8a0a97b --- /dev/null +++ b/scripts/exportTailwindColors.cjs @@ -0,0 +1,42 @@ +#!/usr/bin/env node +const _ = require("lodash"); +const colorPalette = require("tailwindcss/colors"); +const path = require("path"); +const fs = require("fs"); + +// The relevant color scales are `object`s, but Tailwind supports the previous names +// for some colors so they need to be removed, as well. (String colors are +// black/white and some CSS-related fallbacks. +const deprecatedColors = ["lightBlue", "warmGray", "trueGray", "coolGray", "blueGray"]; +const desiredColors = _.pickBy( + colorPalette, + (value, key) => _.isPlainObject(value) && !deprecatedColors.includes(key), +); + +// Since the JS is structed as a deep `object` (Dict), this destructures the depth +// into a dotted scheme (e.g. `Dict(:blue => Dict(500 => "#RRGGBB"))` -> +// `Dict("blue.500" => "#RRGGBB")`) +const colors = _.reduce(desiredColors, (colorMap, colorScale2Hex, colorName) => { + _.map(colorScale2Hex, (colorHex, colorScale) => { + colorMap[`${colorName}.${colorScale}`] = colorHex; + }) + return colorMap; +}, {}); + +// This is fluff just to make the output file a little more readable +const longestColorNameScale = _.size(_.maxBy(_.keys(colors), _.size)); + +// Converting `colors` into an array of strings, then a single string to be written +const tailwindTXT = _.join(_.reduce(colors, (colorArr, colorHex, colorName) => { + colorArr.push(`${_.padEnd(colorName, longestColorNameScale, " ")} ${colorHex}`); + return colorArr; +}, []), "\n"); + +// `__dirname` is a constant that points to the directory where this script is located +const datapath = path.join(__dirname, "../data/tailwind.txt"); + +// Write-out the TailwindCSS colors to `data/tailwind.txt` +fs.writeFile(datapath, tailwindTXT, { encoding: "utf-8", flag: "w", }, (err) => { + if (err) throw err; + console.log(`Successfully wrote Tailwind colors to \`${datapath}\`!`); +}); diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000..e40f4af --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "lodash": "^4.17.21", + "tailwindcss": "^3.2.4" + } +} From 3dda2d1a713e9ed145fc529ad08a472c6fc16cae Mon Sep 17 00:00:00 2001 From: John Muchovej Date: Tue, 6 Dec 2022 15:28:41 -0500 Subject: [PATCH 03/13] Adding TailwindCSS colors --- data/tailwind.txt | 220 +++++++++++++++++++++++++++++++++++++++++++++ src/NamedColors.jl | 5 +- src/loading.jl | 9 ++ test/loading.jl | 6 ++ 4 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 data/tailwind.txt diff --git a/data/tailwind.txt b/data/tailwind.txt new file mode 100644 index 0000000..c450856 --- /dev/null +++ b/data/tailwind.txt @@ -0,0 +1,220 @@ +slate.50 #f8fafc +slate.100 #f1f5f9 +slate.200 #e2e8f0 +slate.300 #cbd5e1 +slate.400 #94a3b8 +slate.500 #64748b +slate.600 #475569 +slate.700 #334155 +slate.800 #1e293b +slate.900 #0f172a +gray.50 #f9fafb +gray.100 #f3f4f6 +gray.200 #e5e7eb +gray.300 #d1d5db +gray.400 #9ca3af +gray.500 #6b7280 +gray.600 #4b5563 +gray.700 #374151 +gray.800 #1f2937 +gray.900 #111827 +zinc.50 #fafafa +zinc.100 #f4f4f5 +zinc.200 #e4e4e7 +zinc.300 #d4d4d8 +zinc.400 #a1a1aa +zinc.500 #71717a +zinc.600 #52525b +zinc.700 #3f3f46 +zinc.800 #27272a +zinc.900 #18181b +neutral.50 #fafafa +neutral.100 #f5f5f5 +neutral.200 #e5e5e5 +neutral.300 #d4d4d4 +neutral.400 #a3a3a3 +neutral.500 #737373 +neutral.600 #525252 +neutral.700 #404040 +neutral.800 #262626 +neutral.900 #171717 +stone.50 #fafaf9 +stone.100 #f5f5f4 +stone.200 #e7e5e4 +stone.300 #d6d3d1 +stone.400 #a8a29e +stone.500 #78716c +stone.600 #57534e +stone.700 #44403c +stone.800 #292524 +stone.900 #1c1917 +red.50 #fef2f2 +red.100 #fee2e2 +red.200 #fecaca +red.300 #fca5a5 +red.400 #f87171 +red.500 #ef4444 +red.600 #dc2626 +red.700 #b91c1c +red.800 #991b1b +red.900 #7f1d1d +orange.50 #fff7ed +orange.100 #ffedd5 +orange.200 #fed7aa +orange.300 #fdba74 +orange.400 #fb923c +orange.500 #f97316 +orange.600 #ea580c +orange.700 #c2410c +orange.800 #9a3412 +orange.900 #7c2d12 +amber.50 #fffbeb +amber.100 #fef3c7 +amber.200 #fde68a +amber.300 #fcd34d +amber.400 #fbbf24 +amber.500 #f59e0b +amber.600 #d97706 +amber.700 #b45309 +amber.800 #92400e +amber.900 #78350f +yellow.50 #fefce8 +yellow.100 #fef9c3 +yellow.200 #fef08a +yellow.300 #fde047 +yellow.400 #facc15 +yellow.500 #eab308 +yellow.600 #ca8a04 +yellow.700 #a16207 +yellow.800 #854d0e +yellow.900 #713f12 +lime.50 #f7fee7 +lime.100 #ecfccb +lime.200 #d9f99d +lime.300 #bef264 +lime.400 #a3e635 +lime.500 #84cc16 +lime.600 #65a30d +lime.700 #4d7c0f +lime.800 #3f6212 +lime.900 #365314 +green.50 #f0fdf4 +green.100 #dcfce7 +green.200 #bbf7d0 +green.300 #86efac +green.400 #4ade80 +green.500 #22c55e +green.600 #16a34a +green.700 #15803d +green.800 #166534 +green.900 #14532d +emerald.50 #ecfdf5 +emerald.100 #d1fae5 +emerald.200 #a7f3d0 +emerald.300 #6ee7b7 +emerald.400 #34d399 +emerald.500 #10b981 +emerald.600 #059669 +emerald.700 #047857 +emerald.800 #065f46 +emerald.900 #064e3b +teal.50 #f0fdfa +teal.100 #ccfbf1 +teal.200 #99f6e4 +teal.300 #5eead4 +teal.400 #2dd4bf +teal.500 #14b8a6 +teal.600 #0d9488 +teal.700 #0f766e +teal.800 #115e59 +teal.900 #134e4a +cyan.50 #ecfeff +cyan.100 #cffafe +cyan.200 #a5f3fc +cyan.300 #67e8f9 +cyan.400 #22d3ee +cyan.500 #06b6d4 +cyan.600 #0891b2 +cyan.700 #0e7490 +cyan.800 #155e75 +cyan.900 #164e63 +sky.50 #f0f9ff +sky.100 #e0f2fe +sky.200 #bae6fd +sky.300 #7dd3fc +sky.400 #38bdf8 +sky.500 #0ea5e9 +sky.600 #0284c7 +sky.700 #0369a1 +sky.800 #075985 +sky.900 #0c4a6e +blue.50 #eff6ff +blue.100 #dbeafe +blue.200 #bfdbfe +blue.300 #93c5fd +blue.400 #60a5fa +blue.500 #3b82f6 +blue.600 #2563eb +blue.700 #1d4ed8 +blue.800 #1e40af +blue.900 #1e3a8a +indigo.50 #eef2ff +indigo.100 #e0e7ff +indigo.200 #c7d2fe +indigo.300 #a5b4fc +indigo.400 #818cf8 +indigo.500 #6366f1 +indigo.600 #4f46e5 +indigo.700 #4338ca +indigo.800 #3730a3 +indigo.900 #312e81 +violet.50 #f5f3ff +violet.100 #ede9fe +violet.200 #ddd6fe +violet.300 #c4b5fd +violet.400 #a78bfa +violet.500 #8b5cf6 +violet.600 #7c3aed +violet.700 #6d28d9 +violet.800 #5b21b6 +violet.900 #4c1d95 +purple.50 #faf5ff +purple.100 #f3e8ff +purple.200 #e9d5ff +purple.300 #d8b4fe +purple.400 #c084fc +purple.500 #a855f7 +purple.600 #9333ea +purple.700 #7e22ce +purple.800 #6b21a8 +purple.900 #581c87 +fuchsia.50 #fdf4ff +fuchsia.100 #fae8ff +fuchsia.200 #f5d0fe +fuchsia.300 #f0abfc +fuchsia.400 #e879f9 +fuchsia.500 #d946ef +fuchsia.600 #c026d3 +fuchsia.700 #a21caf +fuchsia.800 #86198f +fuchsia.900 #701a75 +pink.50 #fdf2f8 +pink.100 #fce7f3 +pink.200 #fbcfe8 +pink.300 #f9a8d4 +pink.400 #f472b6 +pink.500 #ec4899 +pink.600 #db2777 +pink.700 #be185d +pink.800 #9d174d +pink.900 #831843 +rose.50 #fff1f2 +rose.100 #ffe4e6 +rose.200 #fecdd3 +rose.300 #fda4af +rose.400 #fb7185 +rose.500 #f43f5e +rose.600 #e11d48 +rose.700 #be123c +rose.800 #9f1239 +rose.900 #881337 \ No newline at end of file diff --git a/src/NamedColors.jl b/src/NamedColors.jl index 8d266d2..e977b34 100644 --- a/src/NamedColors.jl +++ b/src/NamedColors.jl @@ -3,7 +3,7 @@ using ColorTypes using REPL: levsort import Colors: @colorant_str -export load_xkcd, load_resene, load_nbs, load_x11_style, load_winsor_newton, load_x11, load_css3, load_crayola, load_paul_tol, ALL_COLORS, @colorant_str, UnknownColorError, named_color +export load_tailwind, load_xkcd, load_resene, load_nbs, load_x11_style, load_winsor_newton, load_x11, load_css3, load_crayola, load_paul_tol, ALL_COLORS, @colorant_str, UnknownColorError, named_color include("loading.jl") @@ -15,9 +15,10 @@ This is the initialised for the globel const ALL_COLORS, used by "@colorant" """ function load_all_colors(load_functions = ( load_resene, + load_tailwind, load_xkcd, load_nbs, - load_winsor_newton, + load_winsor_newton, load_x11, load_crayola, load_css3, diff --git a/src/loading.jl b/src/loading.jl index 137bff2..791739a 100644 --- a/src/loading.jl +++ b/src/loading.jl @@ -83,6 +83,15 @@ end ########## Specific formats for specific instances +""" +Load the color list from [TailwindCSS](https://tailwindcss.org/docs/customizing-colors). +These colors are suitable for use with (modern) monitors. +""" +function load_tailwind() + linefields = (split(line," "; keepempty=false) for line in eachline(datafile("tailwind.txt"))) + Dict((name => parse_hexcode(code)) for (name,code) in linefields) +end + """ Load the color list from the [XKCD color survey](https://blog.xkcd.com/2010/05/03/color-survey-results/). These colors are suitable for use with (modern) monitors diff --git a/test/loading.jl b/test/loading.jl index a7bf460..014f436 100644 --- a/test/loading.jl +++ b/test/loading.jl @@ -1,4 +1,10 @@ +@testset "tailwind" begin + tailwind = load_tailwind() + @test length(tailwind) == 220 + @test tailwind["sky.400"] == RGB24(0.22, 0.741, 0.973) +end + @testset "xkcd" begin xkcd = load_xkcd() @test length(xkcd) == 949 From 3ab36dc5002c964ac0f367de561aef133d584699 Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 11:21:50 -0400 Subject: [PATCH 04/13] Remove accidental copy-paste of `xkcd` test set --- test/loading.jl | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/loading.jl b/test/loading.jl index a75b034..014f436 100644 --- a/test/loading.jl +++ b/test/loading.jl @@ -5,12 +5,6 @@ @test tailwind["sky.400"] == RGB24(0.22, 0.741, 0.973) end -@testset "xkcd" begin - tailwind = load_tailwind() - @test length(tailwind) == 220 - @test tailwind["sky.400"] == RGB24(0.22, 0.741, 0.973) -end - @testset "xkcd" begin xkcd = load_xkcd() @test length(xkcd) == 949 From ae4faec81220466fc7fcee8e9166fa5c3e34850f Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:10:08 -0400 Subject: [PATCH 05/13] Adding links to TailwindCSS colors (and Paul Tol's) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dbe30ee..f218171 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,8 @@ Dict{String,ColorTypes.RGB24} with 949 entries: - [NBS](http://people.csail.mit.edu/jaffer/Color/Dictionaries#nbs-anthus) National Bureau of Statistics. 275 colors - [Crayola Crayons](https://en.wikipedia.org/wiki/List_of_Crayola_crayon_colors) not the full set, but 197 colors - [Winsor Newton Water Colors](http://people.csail.mit.edu/jaffer/Color/Dictionaries#winsor-newton) 300 colors, based on the paints of [Winsor Newton](www.winsornewton.com/) + - [Paul Tol](https://personal.sron.nl/~pault/) 72 colors from Paul Tol + - [Tailwind](https://tailwindcss.com/docs/customizing-colors) 242 colors from a highly popular CSS-framework. # Futher Reading Naming colors is actually something experts exist in. From 63c4352b57edfe1defa6f813d44a24b298642942 Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:11:20 -0400 Subject: [PATCH 06/13] Remove lingering `package.json`. Remove from `.gitignore` --- .gitignore | 3 --- scripts/package.json | 6 ------ 2 files changed, 9 deletions(-) delete mode 100644 scripts/package.json diff --git a/.gitignore b/.gitignore index b3cc781..1c61506 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,3 @@ *.jl.mem **.ipynb_checkpoints** Manifest.toml - -scripts/node_modules/ -scripts/package-lock.json diff --git a/scripts/package.json b/scripts/package.json deleted file mode 100644 index e40f4af..0000000 --- a/scripts/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { - "lodash": "^4.17.21", - "tailwindcss": "^3.2.4" - } -} From 7e1e8a5abeb1c4a7265a26c5c342bba3d10743e9 Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:12:12 -0400 Subject: [PATCH 07/13] Update `load_tailwind` to support comments --- data/tailwind.txt | 377 +++++++++++++++++++++++++--------------------- src/loading.jl | 6 +- 2 files changed, 207 insertions(+), 176 deletions(-) diff --git a/data/tailwind.txt b/data/tailwind.txt index c450856..3e10901 100644 --- a/data/tailwind.txt +++ b/data/tailwind.txt @@ -1,220 +1,247 @@ -slate.50 #f8fafc -slate.100 #f1f5f9 -slate.200 #e2e8f0 -slate.300 #cbd5e1 -slate.400 #94a3b8 -slate.500 #64748b -slate.600 #475569 -slate.700 #334155 -slate.800 #1e293b -slate.900 #0f172a -gray.50 #f9fafb +; "tailwind.txt" color dictionary +; The colors from Tailwind CSS, https://tailwindcss.com/docs/customizing-colors. +; +; Transcribed to NamedColors.jl by John Muchovej (jmuchovej). +; +amber.100 #fef3c7 +amber.200 #fde68a +amber.300 #fcd34d +amber.400 #fbbf24 +amber.50 #fffbeb +amber.500 #f59e0b +amber.600 #d97706 +amber.700 #b45309 +amber.800 #92400e +amber.900 #78350f +amber.950 #451a03 +blue.100 #dbeafe +blue.200 #bfdbfe +blue.300 #93c5fd +blue.400 #60a5fa +blue.50 #eff6ff +blue.500 #3b82f6 +blue.600 #2563eb +blue.700 #1d4ed8 +blue.800 #1e40af +blue.900 #1e3a8a +blue.950 #172554 +cyan.100 #cffafe +cyan.200 #a5f3fc +cyan.300 #67e8f9 +cyan.400 #22d3ee +cyan.50 #ecfeff +cyan.500 #06b6d4 +cyan.600 #0891b2 +cyan.700 #0e7490 +cyan.800 #155e75 +cyan.900 #164e63 +cyan.950 #083344 +emerald.100 #d1fae5 +emerald.200 #a7f3d0 +emerald.300 #6ee7b7 +emerald.400 #34d399 +emerald.50 #ecfdf5 +emerald.500 #10b981 +emerald.600 #059669 +emerald.700 #047857 +emerald.800 #065f46 +emerald.900 #064e3b +emerald.950 #022c22 +fuchsia.100 #fae8ff +fuchsia.200 #f5d0fe +fuchsia.300 #f0abfc +fuchsia.400 #e879f9 +fuchsia.50 #fdf4ff +fuchsia.500 #d946ef +fuchsia.600 #c026d3 +fuchsia.700 #a21caf +fuchsia.800 #86198f +fuchsia.900 #701a75 +fuchsia.950 #4a044e gray.100 #f3f4f6 gray.200 #e5e7eb gray.300 #d1d5db gray.400 #9ca3af +gray.50 #f9fafb gray.500 #6b7280 gray.600 #4b5563 gray.700 #374151 gray.800 #1f2937 gray.900 #111827 -zinc.50 #fafafa -zinc.100 #f4f4f5 -zinc.200 #e4e4e7 -zinc.300 #d4d4d8 -zinc.400 #a1a1aa -zinc.500 #71717a -zinc.600 #52525b -zinc.700 #3f3f46 -zinc.800 #27272a -zinc.900 #18181b -neutral.50 #fafafa +gray.950 #030712 +green.100 #dcfce7 +green.200 #bbf7d0 +green.300 #86efac +green.400 #4ade80 +green.50 #f0fdf4 +green.500 #22c55e +green.600 #16a34a +green.700 #15803d +green.800 #166534 +green.900 #14532d +green.950 #052e16 +indigo.100 #e0e7ff +indigo.200 #c7d2fe +indigo.300 #a5b4fc +indigo.400 #818cf8 +indigo.50 #eef2ff +indigo.500 #6366f1 +indigo.600 #4f46e5 +indigo.700 #4338ca +indigo.800 #3730a3 +indigo.900 #312e81 +indigo.950 #1e1b4b +lime.100 #ecfccb +lime.200 #d9f99d +lime.300 #bef264 +lime.400 #a3e635 +lime.50 #f7fee7 +lime.500 #84cc16 +lime.600 #65a30d +lime.700 #4d7c0f +lime.800 #3f6212 +lime.900 #365314 +lime.950 #1a2e05 neutral.100 #f5f5f5 neutral.200 #e5e5e5 neutral.300 #d4d4d4 neutral.400 #a3a3a3 +neutral.50 #fafafa neutral.500 #737373 neutral.600 #525252 neutral.700 #404040 neutral.800 #262626 neutral.900 #171717 -stone.50 #fafaf9 -stone.100 #f5f5f4 -stone.200 #e7e5e4 -stone.300 #d6d3d1 -stone.400 #a8a29e -stone.500 #78716c -stone.600 #57534e -stone.700 #44403c -stone.800 #292524 -stone.900 #1c1917 -red.50 #fef2f2 -red.100 #fee2e2 -red.200 #fecaca -red.300 #fca5a5 -red.400 #f87171 -red.500 #ef4444 -red.600 #dc2626 -red.700 #b91c1c -red.800 #991b1b -red.900 #7f1d1d -orange.50 #fff7ed +neutral.950 #0a0a0a orange.100 #ffedd5 orange.200 #fed7aa orange.300 #fdba74 orange.400 #fb923c +orange.50 #fff7ed orange.500 #f97316 orange.600 #ea580c orange.700 #c2410c orange.800 #9a3412 orange.900 #7c2d12 -amber.50 #fffbeb -amber.100 #fef3c7 -amber.200 #fde68a -amber.300 #fcd34d -amber.400 #fbbf24 -amber.500 #f59e0b -amber.600 #d97706 -amber.700 #b45309 -amber.800 #92400e -amber.900 #78350f -yellow.50 #fefce8 -yellow.100 #fef9c3 -yellow.200 #fef08a -yellow.300 #fde047 -yellow.400 #facc15 -yellow.500 #eab308 -yellow.600 #ca8a04 -yellow.700 #a16207 -yellow.800 #854d0e -yellow.900 #713f12 -lime.50 #f7fee7 -lime.100 #ecfccb -lime.200 #d9f99d -lime.300 #bef264 -lime.400 #a3e635 -lime.500 #84cc16 -lime.600 #65a30d -lime.700 #4d7c0f -lime.800 #3f6212 -lime.900 #365314 -green.50 #f0fdf4 -green.100 #dcfce7 -green.200 #bbf7d0 -green.300 #86efac -green.400 #4ade80 -green.500 #22c55e -green.600 #16a34a -green.700 #15803d -green.800 #166534 -green.900 #14532d -emerald.50 #ecfdf5 -emerald.100 #d1fae5 -emerald.200 #a7f3d0 -emerald.300 #6ee7b7 -emerald.400 #34d399 -emerald.500 #10b981 -emerald.600 #059669 -emerald.700 #047857 -emerald.800 #065f46 -emerald.900 #064e3b -teal.50 #f0fdfa -teal.100 #ccfbf1 -teal.200 #99f6e4 -teal.300 #5eead4 -teal.400 #2dd4bf -teal.500 #14b8a6 -teal.600 #0d9488 -teal.700 #0f766e -teal.800 #115e59 -teal.900 #134e4a -cyan.50 #ecfeff -cyan.100 #cffafe -cyan.200 #a5f3fc -cyan.300 #67e8f9 -cyan.400 #22d3ee -cyan.500 #06b6d4 -cyan.600 #0891b2 -cyan.700 #0e7490 -cyan.800 #155e75 -cyan.900 #164e63 -sky.50 #f0f9ff +orange.950 #431407 +pink.100 #fce7f3 +pink.200 #fbcfe8 +pink.300 #f9a8d4 +pink.400 #f472b6 +pink.50 #fdf2f8 +pink.500 #ec4899 +pink.600 #db2777 +pink.700 #be185d +pink.800 #9d174d +pink.900 #831843 +pink.950 #500724 +purple.100 #f3e8ff +purple.200 #e9d5ff +purple.300 #d8b4fe +purple.400 #c084fc +purple.50 #faf5ff +purple.500 #a855f7 +purple.600 #9333ea +purple.700 #7e22ce +purple.800 #6b21a8 +purple.900 #581c87 +purple.950 #3b0764 +red.100 #fee2e2 +red.200 #fecaca +red.300 #fca5a5 +red.400 #f87171 +red.50 #fef2f2 +red.500 #ef4444 +red.600 #dc2626 +red.700 #b91c1c +red.800 #991b1b +red.900 #7f1d1d +red.950 #450a0a +rose.100 #ffe4e6 +rose.200 #fecdd3 +rose.300 #fda4af +rose.400 #fb7185 +rose.50 #fff1f2 +rose.500 #f43f5e +rose.600 #e11d48 +rose.700 #be123c +rose.800 #9f1239 +rose.900 #881337 +rose.950 #4c0519 sky.100 #e0f2fe sky.200 #bae6fd sky.300 #7dd3fc sky.400 #38bdf8 +sky.50 #f0f9ff sky.500 #0ea5e9 sky.600 #0284c7 sky.700 #0369a1 sky.800 #075985 sky.900 #0c4a6e -blue.50 #eff6ff -blue.100 #dbeafe -blue.200 #bfdbfe -blue.300 #93c5fd -blue.400 #60a5fa -blue.500 #3b82f6 -blue.600 #2563eb -blue.700 #1d4ed8 -blue.800 #1e40af -blue.900 #1e3a8a -indigo.50 #eef2ff -indigo.100 #e0e7ff -indigo.200 #c7d2fe -indigo.300 #a5b4fc -indigo.400 #818cf8 -indigo.500 #6366f1 -indigo.600 #4f46e5 -indigo.700 #4338ca -indigo.800 #3730a3 -indigo.900 #312e81 -violet.50 #f5f3ff +sky.950 #082f49 +slate.100 #f1f5f9 +slate.200 #e2e8f0 +slate.300 #cbd5e1 +slate.400 #94a3b8 +slate.50 #f8fafc +slate.500 #64748b +slate.600 #475569 +slate.700 #334155 +slate.800 #1e293b +slate.900 #0f172a +slate.950 #020617 +stone.100 #f5f5f4 +stone.200 #e7e5e4 +stone.300 #d6d3d1 +stone.400 #a8a29e +stone.50 #fafaf9 +stone.500 #78716c +stone.600 #57534e +stone.700 #44403c +stone.800 #292524 +stone.900 #1c1917 +stone.950 #0c0a09 +teal.100 #ccfbf1 +teal.200 #99f6e4 +teal.300 #5eead4 +teal.400 #2dd4bf +teal.50 #f0fdfa +teal.500 #14b8a6 +teal.600 #0d9488 +teal.700 #0f766e +teal.800 #115e59 +teal.900 #134e4a +teal.950 #042f2e violet.100 #ede9fe violet.200 #ddd6fe violet.300 #c4b5fd violet.400 #a78bfa +violet.50 #f5f3ff violet.500 #8b5cf6 violet.600 #7c3aed violet.700 #6d28d9 violet.800 #5b21b6 violet.900 #4c1d95 -purple.50 #faf5ff -purple.100 #f3e8ff -purple.200 #e9d5ff -purple.300 #d8b4fe -purple.400 #c084fc -purple.500 #a855f7 -purple.600 #9333ea -purple.700 #7e22ce -purple.800 #6b21a8 -purple.900 #581c87 -fuchsia.50 #fdf4ff -fuchsia.100 #fae8ff -fuchsia.200 #f5d0fe -fuchsia.300 #f0abfc -fuchsia.400 #e879f9 -fuchsia.500 #d946ef -fuchsia.600 #c026d3 -fuchsia.700 #a21caf -fuchsia.800 #86198f -fuchsia.900 #701a75 -pink.50 #fdf2f8 -pink.100 #fce7f3 -pink.200 #fbcfe8 -pink.300 #f9a8d4 -pink.400 #f472b6 -pink.500 #ec4899 -pink.600 #db2777 -pink.700 #be185d -pink.800 #9d174d -pink.900 #831843 -rose.50 #fff1f2 -rose.100 #ffe4e6 -rose.200 #fecdd3 -rose.300 #fda4af -rose.400 #fb7185 -rose.500 #f43f5e -rose.600 #e11d48 -rose.700 #be123c -rose.800 #9f1239 -rose.900 #881337 \ No newline at end of file +violet.950 #2e1065 +yellow.100 #fef9c3 +yellow.200 #fef08a +yellow.300 #fde047 +yellow.400 #facc15 +yellow.50 #fefce8 +yellow.500 #eab308 +yellow.600 #ca8a04 +yellow.700 #a16207 +yellow.800 #854d0e +yellow.900 #713f12 +yellow.950 #422006 +zinc.100 #f4f4f5 +zinc.200 #e4e4e7 +zinc.300 #d4d4d8 +zinc.400 #a1a1aa +zinc.50 #fafafa +zinc.500 #71717a +zinc.600 #52525b +zinc.700 #3f3f46 +zinc.800 #27272a +zinc.900 #18181b +zinc.950 #09090b diff --git a/src/loading.jl b/src/loading.jl index 791739a..3e1486b 100644 --- a/src/loading.jl +++ b/src/loading.jl @@ -88,7 +88,11 @@ Load the color list from [TailwindCSS](https://tailwindcss.org/docs/customizing- These colors are suitable for use with (modern) monitors. """ function load_tailwind() - linefields = (split(line," "; keepempty=false) for line in eachline(datafile("tailwind.txt"))) + linefields = [] + for line in eachline(datafile("tailwind.txt")) + startswith(line, ";") && continue + push!(linefields, split(line, " "; keepempty=false)) + end Dict((name => parse_hexcode(code)) for (name,code) in linefields) end From 2332c4a645c05755052fc255434ac142100dceaf Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:12:55 -0400 Subject: [PATCH 08/13] Remove file I/O from tailwind export JS --- scripts/exportTailwindColors.cjs | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) mode change 100755 => 100644 scripts/exportTailwindColors.cjs diff --git a/scripts/exportTailwindColors.cjs b/scripts/exportTailwindColors.cjs old mode 100755 new mode 100644 index 8a0a97b..496ef57 --- a/scripts/exportTailwindColors.cjs +++ b/scripts/exportTailwindColors.cjs @@ -1,8 +1,6 @@ #!/usr/bin/env node const _ = require("lodash"); const colorPalette = require("tailwindcss/colors"); -const path = require("path"); -const fs = require("fs"); // The relevant color scales are `object`s, but Tailwind supports the previous names // for some colors so they need to be removed, as well. (String colors are @@ -26,17 +24,8 @@ const colors = _.reduce(desiredColors, (colorMap, colorScale2Hex, colorName) => // This is fluff just to make the output file a little more readable const longestColorNameScale = _.size(_.maxBy(_.keys(colors), _.size)); -// Converting `colors` into an array of strings, then a single string to be written -const tailwindTXT = _.join(_.reduce(colors, (colorArr, colorHex, colorName) => { - colorArr.push(`${_.padEnd(colorName, longestColorNameScale, " ")} ${colorHex}`); - return colorArr; -}, []), "\n"); - -// `__dirname` is a constant that points to the directory where this script is located -const datapath = path.join(__dirname, "../data/tailwind.txt"); - -// Write-out the TailwindCSS colors to `data/tailwind.txt` -fs.writeFile(datapath, tailwindTXT, { encoding: "utf-8", flag: "w", }, (err) => { - if (err) throw err; - console.log(`Successfully wrote Tailwind colors to \`${datapath}\`!`); -}); +// Printing each [color, hex] pair to stdout so the Julia script can write to +// `data/tailwind.txt`. +for (const [colorName, colorHex] of Object.entries(colors)) { + console.log(`${_.padEnd(colorName, longestColorNameScale, " ")} ${colorHex}`) +} From 8bf8e50ed7d477ef6f92eb808086927add3b5b1f Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:13:45 -0400 Subject: [PATCH 09/13] Add `update-tailwind.jl` for auto-TailwindCSS updating --- scripts/update-tailwind.jl | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 scripts/update-tailwind.jl diff --git a/scripts/update-tailwind.jl b/scripts/update-tailwind.jl new file mode 100644 index 0000000..d70afef --- /dev/null +++ b/scripts/update-tailwind.jl @@ -0,0 +1,57 @@ +#!/usr/bin/env julia +"""A script to extract and dump the colors from TailwindCSS. + +The source data for the color paletee is on GitHub: https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js + +The color palette can be viewed here: https://tailwindcss.com/docs/customizing-colors + +Last updated on 05 Jun 2023. +""" +using NodeJS +using JSON + +scriptsdir = dirname(@__FILE__) +cd(scriptsdir) + +run(`npm install -g tailwindcss`) +run(`npm install -g lodash`) + +datafile = joinpath(dirname(@__FILE__), "..", "data", "tailwind.txt") + +const deprecatedcolors = ["lightBlue", "warmGray", "trueGray", "coolGray", "blueGray"] + +colors = read(`node -e "console.log(JSON.stringify(require('tailwindcss/colors')))"`, String) +colors = JSON.parse(colors) + +colors = filter(color -> !in(first(color), deprecatedcolors), colors) +colors = filter(color -> !isa(last(color), String), colors) + +colorlevels = Dict{String, String}() +for (color, levels) in colors + for (level, hex) in levels + colorlevels["$(color).$(level)"] = hex + end +end +# Sorting doesn't technically order correctly because `amber.50` < `amber.100`, but it +# shouldn't _really_ matter unless the `data/tailwind.txt` file __needs__ to match the +# sorting of TailwindCSS's color page (unlikely). +colorlevels = sort(colorlevels) + +max_charlen = maximum(length, keys(colorlevels)) + +#! The output colors are not sorted as they are on TailwindCSS's website. The incoming +#! JSON is sorted accordingly, but it's unclear why `JSON.parse` reorders the keys. +tailwind = open(datafile, "w") + +write(tailwind, """ +; "tailwind.txt" color dictionary +; The colors from Tailwind CSS, https://tailwindcss.com/docs/customizing-colors. +; +; Transcribed to NamedColors.jl by John Muchovej (jmuchovej). +; +""") + +for (colorlevel, hex) in colorlevels + write(tailwind, "$(rpad(colorlevel, max_charlen, " ")) $(hex)\n") +end +close(tailwind) \ No newline at end of file From bc733e67f372f80068c8c456dce273d7f441cbcd Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:19:52 -0400 Subject: [PATCH 10/13] Fix Tailwind tests (since there are 242 colors now) --- test/loading.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/loading.jl b/test/loading.jl index 014f436..b9b20b5 100644 --- a/test/loading.jl +++ b/test/loading.jl @@ -1,8 +1,8 @@ @testset "tailwind" begin tailwind = load_tailwind() - @test length(tailwind) == 220 - @test tailwind["sky.400"] == RGB24(0.22, 0.741, 0.973) + @test length(tailwind) == 242 + @test tailwind["sky.400"] == reinterpret(RGB24, 0x38bdf8) end @testset "xkcd" begin From b6db87cbbc01fd8730320416b951d3c8dfac0f0f Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Tue, 6 Jun 2023 08:40:16 -0400 Subject: [PATCH 11/13] Add deps for Tailwind update script --- scripts/Project.toml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 scripts/Project.toml diff --git a/scripts/Project.toml b/scripts/Project.toml new file mode 100644 index 0000000..9b09bf7 --- /dev/null +++ b/scripts/Project.toml @@ -0,0 +1,7 @@ +[deps] +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +NodeJS = "2bd173c7-0d6d-553b-b6af-13a54713934c" + +[compat] +NodeJS = "2" +JSON = "0.21" \ No newline at end of file From c8789c323e5553ad02eb11b22c1638bbeb61c888 Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:33:54 -0400 Subject: [PATCH 12/13] Remove JS Tailwind update, link to Gist. Removes the JS script used to fetch Tailwind colors from their JS package and adds a link to a private GitHub Gist in the source of `scripts/update-tailwind.jl`. --- scripts/exportTailwindColors.cjs | 31 ------------------------------- scripts/update-tailwind.jl | 6 +++++- 2 files changed, 5 insertions(+), 32 deletions(-) delete mode 100644 scripts/exportTailwindColors.cjs diff --git a/scripts/exportTailwindColors.cjs b/scripts/exportTailwindColors.cjs deleted file mode 100644 index 496ef57..0000000 --- a/scripts/exportTailwindColors.cjs +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env node -const _ = require("lodash"); -const colorPalette = require("tailwindcss/colors"); - -// The relevant color scales are `object`s, but Tailwind supports the previous names -// for some colors so they need to be removed, as well. (String colors are -// black/white and some CSS-related fallbacks. -const deprecatedColors = ["lightBlue", "warmGray", "trueGray", "coolGray", "blueGray"]; -const desiredColors = _.pickBy( - colorPalette, - (value, key) => _.isPlainObject(value) && !deprecatedColors.includes(key), -); - -// Since the JS is structed as a deep `object` (Dict), this destructures the depth -// into a dotted scheme (e.g. `Dict(:blue => Dict(500 => "#RRGGBB"))` -> -// `Dict("blue.500" => "#RRGGBB")`) -const colors = _.reduce(desiredColors, (colorMap, colorScale2Hex, colorName) => { - _.map(colorScale2Hex, (colorHex, colorScale) => { - colorMap[`${colorName}.${colorScale}`] = colorHex; - }) - return colorMap; -}, {}); - -// This is fluff just to make the output file a little more readable -const longestColorNameScale = _.size(_.maxBy(_.keys(colors), _.size)); - -// Printing each [color, hex] pair to stdout so the Julia script can write to -// `data/tailwind.txt`. -for (const [colorName, colorHex] of Object.entries(colors)) { - console.log(`${_.padEnd(colorName, longestColorNameScale, " ")} ${colorHex}`) -} diff --git a/scripts/update-tailwind.jl b/scripts/update-tailwind.jl index d70afef..e62fbd3 100644 --- a/scripts/update-tailwind.jl +++ b/scripts/update-tailwind.jl @@ -5,7 +5,11 @@ The source data for the color paletee is on GitHub: https://github.com/tailwindl The color palette can be viewed here: https://tailwindcss.com/docs/customizing-colors -Last updated on 05 Jun 2023. +For the original JavaScript implementation that retrieves the TailwindCSS colors from + their JavaScript library, check the following GitHub Gist. + https://gist.github.com/jmuchovej/e8470f3b01420cac006c428861ddbd9b + +Last updated on 06 Jun 2023. """ using NodeJS using JSON From 3e78db174af924bbac9f178d9be00883457d5e5d Mon Sep 17 00:00:00 2001 From: John Muchovej <5000729+jmuchovej@users.noreply.github.com> Date: Thu, 15 Jun 2023 10:26:56 -0400 Subject: [PATCH 13/13] Bump patch version Closes #24. --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 36fb7b5..2117d84 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "NamedColors" uuid = "51fcb6bd-ecd8-522c-95bc-4099d1d03463" -version = "0.2.1" +version = "0.2.2" [deps] ColorTypes = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"