Files
brk/website_next/brand/index.js
T
2026-07-06 11:15:39 +02:00

50 lines
1.1 KiB
JavaScript

import { createCube } from "../cube/index.js";
/**
* @param {string | undefined} href
* @param {string} label
*/
function createBrandElement(href, label) {
if (href) {
const link = document.createElement("a");
link.href = href;
link.setAttribute("aria-label", `${label} home`);
return link;
}
return document.createElement("p");
}
/**
* @param {{
* href?: string,
* tone?: "default" | "receipt",
* animated?: boolean,
* fill?: number,
* }} [options]
*/
export function createBrand({
href,
tone = "default",
animated = Boolean(href),
fill = tone === "receipt" ? 1 : 0.5,
} = {}) {
const label = "bitview";
const brand = createBrandElement(href, label);
const mark = document.createElement("span");
const text = document.createElement("span");
brand.dataset.brand = "";
brand.dataset.tone = tone;
if (animated) brand.dataset.animated = "";
mark.dataset.brandMark = "";
text.dataset.brandText = "";
text.textContent = label;
mark.append(createCube({ fill }));
brand.append(mark, text);
return brand;
}