]> git.scottworley.com Git - vopamoi/blobdiff - vopamoi.ts
Color tags
[vopamoi] / vopamoi.ts
index 5916d0a9b21d5fe722d5e05cfa2151b2e1057dd1..135fe0afe417539547816bdab6f807ed58eef10e 100644 (file)
@@ -29,6 +29,12 @@ function Clock() {
 }
 const clock = Clock();
 
+// Returns a promise for a hue based on a hash of the string
+function hashHue(str: string) {
+  // Using crypto for this is overkill
+  return crypto.subtle.digest("SHA-256", new TextEncoder().encode(str)).then((buf) => (new Uint16Array(buf)[0] * 360) / 2 ** 16);
+}
+
 const Model = {
   addTask: function (timestamp: string, description: string): Element {
     const task = document.createElement("div");
@@ -53,6 +59,7 @@ const Model = {
     tag.appendChild(document.createTextNode(tagName));
     tag.classList.add("tag");
     tag.setAttribute("tabindex", "0");
+    hashHue(tagName).then((hue) => (tag.style.backgroundColor = `hsl(${hue},90%,45%)`));
     task.appendChild(tag);
     return tag;
   },