: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-code { display: flex; flex-direction: column; gap: 5px; } #console pre { color: white; background-color: black; margin: 0; width: 100%; overflow-wrap: break-word; word-break: break-all; font-size: 1rem; padding: 4px 8px; flex: 1; overflow-y: auto; } #console pre { width: 100%; white-space: pre-wrap; } #console p { margin: 0; } #console .error { color: #d32f2f; } #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 .property { color: #9c27b0; } #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; padding: 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; } .dropdown-wrapper { position: relative; } .dropdown-content { display: none; background-color: white; position: absolute; top: 100%; left: 0; right: 0; border-radius: 0.25rem; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1); } .dropdown-option { padding: 0.3rem 0.6rem; color: #424242; font-size: 0.8rem; cursor: pointer; } .dropdown-option:hover { background-color: #eee; } 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; } .dropdown-wrapper:has(.active) button, button:active { background-color: #065275; } button:hover { box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2); } footer { position: absolute; bottom: 1px; left: 1px; } #toggle-sprite-editor-button { color: white; cursor: pointer; font-size: 32px; align-self: center; padding: 0.25rem 0.5rem; border-radius: 0.5rem; } #toggle-sprite-editor-button[expanded] { background-color: #242424; border-radius: 0.5rem 0 0 0.5rem; } #sprite-editor { background-color: #242424; display: none; } #sprite-editor-container { flex-direction: row; align-items: stretch; gap: 0; min-width: min-content; } #sprite-editor-preview { display: flex; flex-direction: column; margin-bottom: 2rem; } #sprite-editor-preview-title { margin: 1rem; overflow-wrap: break-word; font-weight: bold; } #sprite-editor-preview-title:empty { display: none; } #sprite-editor-preview-image { background-color: #1d2021; object-fit: contain; width: 100%; border-radius: 0; max-height: min(40vh, 400px); } #sprite-editor-sprite-list-title { font-weight: bold; text-align: center; } #sprite-editor-sprite-list { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; background-color: #131313; list-style-type: none; } #sprite-editor-sprite-list:not(:empty) { border-top: 1px solid #131313; border-bottom: 1px solid #131313; } #sprite-editor-sprite-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; } #sprite-editor-sprite-list li:hover, #sprite-editor-sprite-list li[previewed] { background-color: #131313; } #sprite-editor-sprite-list .delete-button { background-color: #c83e4d; padding: 0.25rem 0.75rem; } #sprite-editor-sprite-list .delete-button:hover { background-color: #9f2d3a; } #sprite-editor-sprite-list .delete-button:active { background-color: #7f242f; } #sprite-editor-upload-button { display: block; margin: 1rem auto; } #sprite-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; } #sprite-editor-preview-snippet .str { color: #b8ba37; } #sprite-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; 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; } #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; }