1
Fork 0
mirror of https://github.com/glassflame/glassflame.github.io.git synced 2024-10-16 14:37:33 +00:00

Make padding and stuff work as expected

This commit is contained in:
Steffo 2023-10-22 01:36:55 +02:00
parent 93b91c5b6c
commit 9a7f5a4bd8
Signed by: steffo
GPG key ID: 2A24051445686895
3 changed files with 47 additions and 18 deletions

View file

@ -27,8 +27,12 @@
} }
body { body {
margin: 0; padding: 128px;
width: max-content;
height: max-content;
background-image: linear-gradient(var(--color-foreground)) var(--color-gray) url("./media/tile.png");
background-blend-mode: normal, multiply, normal;
background-color: var(--color-background); background-color: var(--color-background);
color: var(--color-foreground); color: var(--color-foreground);
} }
@ -76,7 +80,6 @@
<aside class="node-group-label"> <aside class="node-group-label">
<h1><slot name="node-label">{Group label}</slot></h1> <h1><slot name="node-label">{Group label}</slot></h1>
</aside> </aside>
<slot name="node-contents">{Node contents}</slot>
</section> </section>
</template> </template>
<template id="template-node-file"> <template id="template-node-file">
@ -129,7 +132,20 @@
<slot name="markdown-contents">{Markdown text}</slot> <slot name="markdown-contents">{Markdown text}</slot>
</template> </template>
<template id="template-canvas"> <template id="template-canvas">
<slot name="canvas-contents">{Canvas}</slot> <style>
.canvas {
position: relative;
display: flex;
width: max-content;
height: max-content;
}
</style>
<div class="canvas">
<slot name="canvas-nodes">{Canvas nodes}</slot>
<slot name="canvas-edges">{Canvas edges}</slot>
</div>
</template> </template>
<template id="template-wikilink"> <template id="template-wikilink">
<style> <style>

BIN
media/tile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

View file

@ -27,7 +27,8 @@ export class CanvasElement extends HTMLElement {
parsedJSON parsedJSON
contentsSlotted nodesSlotted
edgesSlotted
nodeElements = {} nodeElements = {}
edgeElements = {} edgeElements = {}
@ -38,8 +39,11 @@ export class CanvasElement extends HTMLElement {
this.parsedJSON = JSON.parse(this.getAttribute("contents")) this.parsedJSON = JSON.parse(this.getAttribute("contents"))
this.contentsSlotted = document.createElement("div") this.nodesSlotted = document.createElement("div")
this.contentsSlotted.slot = "canvas-contents" this.nodesSlotted.slot = "canvas-nodes"
this.edgesSlotted = document.createElement("div")
this.edgesSlotted.slot = "canvas-edges"
let minX = { x: Infinity, width: 0 } let minX = { x: Infinity, width: 0 }
let minY = { y: Infinity, height: 0 } let minY = { y: Infinity, height: 0 }
@ -61,7 +65,7 @@ export class CanvasElement extends HTMLElement {
element.setAttribute("y", node["y"] - minY["y"]) element.setAttribute("y", node["y"] - minY["y"])
element.setAttribute("width", node["width"]) element.setAttribute("width", node["width"])
element.setAttribute("height", node["height"]) element.setAttribute("height", node["height"])
element.setAttribute("color", node["color"]) if(node["color"]) element.setAttribute("color", node["color"])
switch(node["type"]) { switch(node["type"]) {
case "text": case "text":
@ -83,7 +87,7 @@ export class CanvasElement extends HTMLElement {
} }
this.nodeElements[node["id"]] = element this.nodeElements[node["id"]] = element
this.contentsSlotted.appendChild(element) this.nodesSlotted.appendChild(element)
} }
for(const edge of this.parsedJSON["edges"]) { for(const edge of this.parsedJSON["edges"]) {
@ -93,19 +97,27 @@ export class CanvasElement extends HTMLElement {
element.setAttribute("node-from-side", edge["fromSide"]) element.setAttribute("node-from-side", edge["fromSide"])
element.setAttribute("node-to", edge["toNode"]) element.setAttribute("node-to", edge["toNode"])
element.setAttribute("node-to-side", edge["toSide"]) element.setAttribute("node-to-side", edge["toSide"])
element.setAttribute("color", edge["color"]) if(edge["color"]) element.setAttribute("color", edge["color"])
element.setAttribute("arrows", edge["toEnd"]) if(edge["arrows"]) element.setAttribute("arrows", edge["toEnd"])
this.edgeElements[edge["id"]] = element this.edgeElements[edge["id"]] = element
this.contentsSlotted.appendChild(element) this.edgesSlotted.appendChild(element)
} }
console.log(Object.values(this.nodeElements)) this.nodesSlotted.style["position"] = "relative"
this.nodesSlotted.style["left"] = "0"
this.nodesSlotted.style["top"] = "0"
this.nodesSlotted.style["width"] = `${maxX["x"] + maxX["width"] - minX["x"]}px`
this.nodesSlotted.style["height"] = `${maxY["y"] + maxY["height"] - minY["y"]}px`
this.contentsSlotted.style["width"] = `${maxX["x"] + maxX["width"] - minX["x"]}px` this.edgesSlotted.style["position"] = "absolute"
this.contentsSlotted.style["height"] = `${maxY["y"] + maxY["height"] - minY["y"]}px` this.edgesSlotted.style["left"] = "0"
this.edgesSlotted.style["top"] = "0"
this.edgesSlotted.style["width"] = `${maxX["x"] + maxX["width"] - minX["x"]}px`
this.edgesSlotted.style["height"] = `${maxY["y"] + maxY["height"] - minY["y"]}px`
this.appendChild(this.contentsSlotted) this.appendChild(this.nodesSlotted)
this.appendChild(this.edgesSlotted)
shadow.appendChild(instanceDocument) shadow.appendChild(instanceDocument)
} }
@ -119,15 +131,16 @@ export class CanvasItemElement extends HTMLElement {
colorToHex() { colorToHex() {
const color = this.getAttribute("color") const color = this.getAttribute("color")
if(color?.startsWith("#")) { if(color === undefined || color === null || color === "") {
return "var(--color-gray)"
}
else if(color.startsWith("#")) {
// This is an hex color // This is an hex color
return color return color
} }
else { else {
// TODO: Check which colors correspond to what // TODO: Check which colors correspond to what
return { return {
[undefined]: "var(--color-gray)",
"undefined": "var(--color-gray)",
"0": "var(--color-gray)", "0": "var(--color-gray)",
"1": "var(--color-red)", "1": "var(--color-red)",
"2": "var(--color-orange)", "2": "var(--color-orange)",