.theme-light { /* Background colors are 85% luminosity */ --focus: #ff0000; --nonfocus: #eeeeee; --node: #c0def2; --group: #c0f2d5; --link: #ffd1b3; --label: #ffb3eb; --help: #ffb3b3; --text: #000000; --placeholder: rgba(0,0,0,0.2); --outline: #323434; --editor-background: #ffffff; --grid-background: #ffffff; --group-background: rgba(255,255,255,0.5); --node-background: #f8f8f8; --link-label-background: rgba(240,240,240,0.9); --input: rgba(0,0,0,0.1); --input-focus: rgba(255,0,0,0.2); --line: #000000; --tag0: hsl(180, 100%, 75%); --tag1: hsl( 0, 100%, 75%); --tag2: hsl(120, 100%, 75%); --tag3: hsl(300, 100%, 75%); --tag4: hsl( 60, 100%, 75%); --tag5: hsl(240, 100%, 75%); } .theme-dark { /* Background colors are 10% luminosity */ --focus: #ff0000; --nonfocus: #000000; --node: #091d2a; --group: #092a17; --link: #331400; --label: #330025; --help: #330000; --text: #ffffff; --placeholder: rgba(255,255,255,0.2); --outline: #323434; --editor-background: #000000; --grid-background: #202020; --group-background: rgba(0,0,0,0.5); --node-background: #000000; --link-label-background: rgba(0,0,0,0.8); --input: rgba(255,255,255,0.2); --input-focus: rgba(255,0,0,0.2); --line: #ffffff; --tag0: hsl(180, 100%, 25%); --tag1: hsl( 0, 100%, 25%); --tag2: hsl(120, 100%, 25%); --tag3: hsl(300, 100%, 25%); --tag4: hsl( 60, 100%, 25%); --tag5: hsl(240, 100%, 25%); } :root { --editor-width: 280px; } body { position: fixed; top: 0; left: 0; right: 0; bottom: 0; margin: 0; } .architype { box-sizing: border-box; width: 100%; height: 100%; color: var(--text); font-family: 'Courier', monospace; font-size: 16px; display: grid; grid-template: [row1-start] "editor grid" 100% [row1-end] / var(--editor-width) auto; } .editor { list-style: none; margin: 0; padding: 0; outline: 1px solid var(--outline); height: 100%; overflow-y: scroll; user-select: none; background: var(--editor-background); } .editor li { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; white-space: pre; padding: 1px; padding-left: 4px; border-left: 10px solid var(--nonfocus); outline: 1px solid var(--outline); font-size: 30px; cursor: default; } .editor li.node { background-color: var(--node); } .editor li.node.highlight { background: repeating-linear-gradient( -45deg, transparent 0 10px, rgba(255,0,0,0.3) 10px 20px ), var(--node); } .editor li.group { background-color: var(--group); } .editor li.group.highlight { background: repeating-linear-gradient( -45deg, transparent 0 10px, rgba(255,0,0,0.3) 10px 20px ), var(--group); } .editor li.link { background-color: var(--link); } .editor li.link.highlight { background: repeating-linear-gradient( -45deg, transparent 0 10px, rgba(255,0,0,0.3) 10px 20px ), var(--link); } .editor li.label { background-color: var(--label); } .editor li.label.highlight { background: repeating-linear-gradient( -45deg, transparent 0 10px, rgba(255,0,0,0.3) 10px 20px ), var(--label); } .editor li.help { padding: 10px; font-size: 16px; flex-direction: column; background-color: var(--help); } .editor li.help > div { margin-top: 2px; min-height: 10px; } .editor li.help .key { display: inline-flex; width: 20px; height: 20px; justify-content: center; align-items: center; vertical-align: middle; font-size: 20px; border: 1px solid var(--text); border-radius: 5px; padding: 5px; margin: 3px; overflow: hidden; } .editor li.help .key:empty { visibility: hidden; } .editor li.help .text { margin: 5px; } .editor li.help a { color: var(--text); margin: 8px; } .editor li:focus { border-left: 10px solid var(--focus) !important; } .editor li input { background-color: var(--input); border: none; padding: 2px; padding-top: 3px; padding-left: 3px; margin: 2px; margin-left: 5px; font-family: 'Courier', monospace; color: var(--text); width: 209px; } .editor li input::-webkit-input-placeholder { color: var(--placeholder); } .editor li input:focus { background-color: var(--input-focus); outline: none; } .editor .editor { margin: 3px; margin-left: 5px; } .grid { width: calc(100% - 20px); height: calc(100% - 20px); display: grid; background: var(--grid-background); align-items: center; justify-items: center; align-content: center; justify-content: center; padding: 10px; } .gridNode, .gridGraphLabel, .gridGroup, .gridGroupLabel, .gridLinkLabel, .gridTagLabel { display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 20px; overflow-wrap: anywhere; overflow: hidden; cursor: default; user-select: none; } .gridNode { width: 81%; height: 81%; background: var(--node-background); justify-content: center; border: 1px solid var(--line); border-radius: 10%; padding: 2%; z-index: 3; } .tag0 { background: var(--tag0); } .tag1 { background: var(--tag1); } .tag2 { background: var(--tag2); } .tag3 { background: var(--tag3); } .tag4 { background: var(--tag4); } .tag5 { background: var(--tag5); } .gridNode.highlight { border-color: var(--focus); border-width: 3px; } .gridGraphLabel { height: 100%; width: 100%; font-size: 30px; text-align: center; } .gridGraphLabel.highlight { color: var(--focus); } .gridGroup { width: 100%; height: 100%; background: var(--group-background); justify-content: flex-start; border: 1px dashed var(--line); z-index: 1; } .gridGroup.highlight { border-color: var(--focus); border-width: 3px; } .gridGroupLabel { max-width: 90%; max-height: 90%; justify-content: center; font-size: 20px; overflow: hidden; overflow-wrap: anywhere; z-index: 1; } .gridNode.highlight { border-color: var(--focus); border-width: 3px; } .gridGraphLabel { height: 100%; width: 100%; font-size: 30px; text-align: center; } .gridGraphLabel.highlight { color: var(--focus); } .gridGroup { width: 100%; height: 100%; background: var(--group-background); justify-content: flex-start; border: 1px dashed var(--line); z-index: 1; } .gridGroup.highlight { border-color: var(--focus); border-width: 3px; } .gridGroupLabel { max-width: 90%; max-height: 90%; justify-content: center; font-size: 20px; overflow: hidden; overflow-wrap: anywhere; z-index: 1; } .gridGroupLabel.highlight { color: var(--focus); } .gridLines { width: 100%; height: 100%; z-index: 2; --line-color: var(--line); } .gridLines.highlight { --line-color: var(--focus); --line-width: 3; } .gridLinkLabel { max-width: 80%; max-height: 80%; font-size: 16px; background: var(--link-label-background); z-index: 3; border-radius: 4px; padding: 3px; } .gridLinkLabel.highlight { color: var(--focus); } .gridArrow { width: 100%; height: 100%; z-index: 4; pointer-events: none; --arrow-color: var(--line); } .gridArrow.highlight { --arrow-color: var(--focus); } .gridTagLabel { max-width: 80%; max-height: 80%; font-size: 16px; z-index: 3; border-radius: 4px; padding: 3px; }