:root { color-scheme: dark; } body { font-family: system-ui; } * { box-sizing: border-box; } body { margin: 0; height: 100vh; background-color: #333; } main { display: flex; flex-direction: row; height: 100vh; padding: 2rem; gap: 2rem; } .section-header { background-color: #bdbdbd; border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; border: 1px solid #222; padding: 0.25rem; padding-left: 0.5rem; color: #424242; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); } section { border-radius: 0.5rem; width: 100%; flex: 1; display: flex; flex-direction: column; background-color: black; } section canvas { margin-left: auto; margin-right: auto; } section { box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); } section > :last-child { flex: 1; border-bottom-left-radius: 0.5rem; border-bottom-right-radius: 0.5rem; } div#buttons { width: 100%; display: flex; flex-wrap: wrap; gap: 0.5rem; } div#buttons > * { flex: 1; } div#buttons button { width: 100%; height: 100%; white-space: nowrap; } .column { display: flex; flex-direction: column; gap: 0.3rem; justify-content: space-evenly; align-items: flex-start; gap: 2rem; flex: 1; min-width: 0; } #canvas-area { background-color: black; aspect-ratio: 480 / 360; width: 100%; } #console-section { min-height: 0; flex: 0 1 100%; } #console { display: flex; flex-direction: column; overflow-y: hidden; } #console pre { color: white; background-color: black; margin: 0; width: 100%; overflow-wrap: break-word; word-break: break-all; font-size: 1rem; flex: 1; overflow-y: auto; display: flex; flex-direction: column; scroll-behavior: smooth; } #console pre { width: 100%; white-space: pre-wrap; } #console p, #console summary { margin: 0; padding: 0.125rem 0.5rem 0.125rem 0; } #console summary { white-space: nowrap; } #console a { color: #2196f3; } #console p { padding: 0.25rem 0.5rem; display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; } #console p ~ p { border-top: 1px solid #242424; } #console p + .warn, #console .warn + p { border-color: #fbc02d; } #console p + .error, #console .error + p { border-color: #d32f2f; } #console p > *:last-child { flex: 1; } #console p > details { min-width: 130px; overflow-x: hidden; } #console p > details[open] { min-width: 100%; } #console .error { background-color: #4a1305; } #console [data-type="error"] { color: #ff8a65; background-color: #4a1305; } #console .warn { color: #fff176; background-color: #413d07; } #console .input:before { content: ">"; } #console .input { color: #bdbdbd; font-style: italic; } #console .info, #console .debug, #console .prototype, #console [data-type="undefined"], #console [data-type="object"], #console [data-type="function"] { color: #bdbdbd; } #console [data-type="boolean"], #console [data-type="null"] { color: #ff9800; } #console .log .value:hover, #console .info .value:hover, #console .debug .value:hover { background-color: #242424; } #console .value { display: flex; } #console .base-value { display: list-item; /* Re-add arrow that was removed by applying flex on */ overflow-x: hidden; text-overflow: ellipsis; } #console .property + .base-value { white-space: nowrap; } #console .property { color: #9c27b0; white-space: nowrap; } #console .property + [data-type="string"]:before, #console .property + [data-type="string"]:after { content: '"'; } #console .property + [data-type="string"] { color: #4caf50; } #console [data-type="number"] { color: #2196f3; } #console input { width: 100%; margin: 0; outline: none; color: white; border: none; background-color: #222; padding: 0.25rem 0.5rem; font-family: monospace; font-size: 1rem; flex-grow: 0; } #editor-area { width: 100%; overflow-y: auto; } #editor { margin: 0; width: 100%; height: 100%; font-size: 1rem; } #editor * { border-radius: 0; box-shadow: none; } button { background-color: #087aaf; border: none; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1); padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; transition-duration: 200ms; white-space: nowrap; } button:hover { box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2); } button:active { background-color: #06577e; } button.secondary { background-color: #616161; } button.secondary:active { background-color: #424242; } #run-button { transition-duration: 0s; background-color: #388e3c; } #run-button.running { background-color: #d32f2f; } footer { position: absolute; bottom: 1px; left: 1px; } #toggle-asset-editor-button { color: white; cursor: pointer; font-size: 32px; align-self: center; padding: 0.25rem 0.5rem; border-radius: 0.5rem; } #toggle-asset-editor-button[expanded] { background-color: #242424; border-radius: 0.5rem 0 0 0.5rem; } #asset-editor { background-color: #242424; display: none; } #asset-editor-container { flex-direction: row; align-items: stretch; gap: 0; min-width: min-content; } #asset-editor-preview { display: flex; flex-direction: column; margin-bottom: 2rem; } #asset-editor-preview-title { margin: 1rem; overflow-wrap: break-word; font-weight: bold; } #asset-editor-preview-title:empty { display: none; } #asset-editor-preview-image { background-color: #1d2021; object-fit: contain; width: 100%; border-radius: 0; max-height: min(40vh, 400px); } #asset-editor-asset-list-title { font-weight: bold; text-align: center; } #asset-editor-asset-list { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; background-color: #131313; list-style-type: none; } #asset-editor-asset-list:not(:empty) { border-top: 1px solid #131313; border-bottom: 1px solid #131313; } #asset-editor-asset-list li { display: flex; cursor: pointer; background-color: #242424; transition: background-color 50ms ease-in-out; padding: 0.5rem 1.5rem; justify-content: space-between; align-items: center; gap: 1rem; } #asset-editor-asset-list li:hover, #asset-editor-asset-list li[previewed] { background-color: #131313; } #asset-editor-asset-list .delete-button { background-color: #c83e4d; padding: 0.25rem 0.75rem; } #asset-editor-asset-list .delete-button:hover { background-color: #9f2d3a; } #asset-editor-asset-list .delete-button:active { background-color: #7f242f; } #asset-editor-upload-button { display: block; margin: 1rem auto; } #asset-editor-preview-snippet { background-color: #1d2021; border: 1px solid black; border-radius: 0.25rem; padding: 0.125rem 0.25rem; margin: 0.5rem; white-space: pre; } #asset-editor-preview-snippet .str { color: #b8ba37; } #asset-editor-preview-snippet:empty { display: none; } #project-header { display: flex; justify-content: space-between; align-items: center; align-self: stretch; gap: 0.5rem; } #project-header-left { display: flex; align-items: center; gap: 0.5rem; } #project-name { background-color: inherit; border: none; font-size: 1.5rem; font-weight: bold; border-bottom: 1px solid #bdbdbd; transition: border-color 200ms ease-in-out; margin-right: 1rem; width: 100%; max-width: 400px; } #project-name:hover, #project-name:focus { border-color: white; outline: none; } #save-status { white-space: nowrap; font-size: 0.8rem; margin-left: 0.5rem; padding: 0.125rem 0.75rem; border-radius: 0.5rem; } #export-button { justify-self: flex-end; } #buttons > a:has(button) { text-decoration: none; } .icon-button { display: flex; gap: 0.5ch; align-items: center; justify-content: center; } #persistent-storage-overlay { display: none; position: absolute; inset: 0; padding: 0 20rem; height: 100vh; background-color: rgba(0, 0, 0, 0.8); flex-direction: column; justify-content: center; align-items: flex-start; z-index: 100; transition: opacity 200ms ease-in-out; } #persistent-storage-overlay p { color: #bdbdbd; } #persistent-storage-overlay a { color: #2196f3; }