467 lines
7.6 KiB
CSS
467 lines
7.6 KiB
CSS
: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;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
#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;
|
|
}
|
|
|
|
#console pre {
|
|
width: 100%;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
#console p, #console summary {
|
|
margin: 0;
|
|
padding: 0.125rem 0.5rem;
|
|
}
|
|
|
|
#console a {
|
|
color: #2196f3;
|
|
}
|
|
|
|
#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:hover,
|
|
#console .info:hover,
|
|
#console .debug:hover {
|
|
background-color: #242424;
|
|
}
|
|
|
|
#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;
|
|
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;
|
|
}
|