mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-04 15:53:40 -07:00
64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
/**
|
|
* @param {number} [fill]
|
|
*/
|
|
export function createCubeButton(fill = 1) {
|
|
const element = document.createElement("button");
|
|
|
|
element.type = "button";
|
|
|
|
return { element, ...populateCube(element, fill) };
|
|
}
|
|
|
|
/**
|
|
* @param {number} [fill]
|
|
*/
|
|
export function createCubeDiv(fill = 1) {
|
|
const element = document.createElement("div");
|
|
|
|
return { element, ...populateCube(element, fill) };
|
|
}
|
|
|
|
/**
|
|
* @param {HTMLElement} element
|
|
* @param {number} fill
|
|
*/
|
|
function populateCube(element, fill) {
|
|
const topFace = createFace("face-text", "top");
|
|
const rightFace = createFace("face-text", "right");
|
|
const leftFace = createFace("face-text", "left");
|
|
|
|
element.classList.add("cube");
|
|
element.style.setProperty("--fill", String(fill));
|
|
element.append(
|
|
createFace("glass", "bottom"),
|
|
createFace("glass", "rear-right"),
|
|
createFace("glass", "rear-left"),
|
|
createFace("liquid", "bottom"),
|
|
createFace("liquid", "rear-right"),
|
|
createFace("liquid", "rear-left"),
|
|
createFace("liquid", "right"),
|
|
createFace("liquid", "left"),
|
|
createFace("liquid", "top"),
|
|
createFace("glass", "right"),
|
|
createFace("glass", "left"),
|
|
createFace("glass", "top"),
|
|
rightFace,
|
|
leftFace,
|
|
topFace,
|
|
);
|
|
|
|
return { topFace, rightFace, leftFace };
|
|
}
|
|
|
|
/**
|
|
* @param {string} role
|
|
* @param {string} position
|
|
*/
|
|
function createFace(role, position) {
|
|
const element = document.createElement("div");
|
|
|
|
element.className = `face ${role} ${position}`;
|
|
|
|
return element;
|
|
}
|