mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-24 07:37:10 +00:00
765 lines
12 KiB
CSS
765 lines
12 KiB
CSS
:root {
|
|
--background: #ffffff;
|
|
--text: #000000;
|
|
--nav: #343a40;
|
|
--nav-hover: #565d64;
|
|
--nav-faded: #9fa2a7;
|
|
--nav-faded-hover: #bcbfc3;
|
|
--selection: rgba(103, 134, 221, 0.6);
|
|
--border: #cccccc;
|
|
--nav-menu: #ffffff83;
|
|
--btn-background: #1f2020a6;
|
|
--btn-hover: #5d5f5fa6;
|
|
--btn-text: #ffffff;
|
|
--btn-active: #a5e77a;
|
|
--errors-background: #f13000c5;
|
|
--errors-text: #000000cc;
|
|
|
|
--style-transition: 0.3s;
|
|
}
|
|
|
|
:root[data-theme=dark] {
|
|
--background: #222222;
|
|
--text: #ffffff;
|
|
--nav: #91908f;
|
|
--nav-hover: #b4b3b0;
|
|
--nav-faded: #4d4c4c;
|
|
--nav-faded-hover: #6e6e6e;
|
|
--border: #3d3d3d;
|
|
--nav-menu: #00000083;
|
|
--btn-background: #0a0a0aa6;
|
|
--btn-hover: #383838a6;
|
|
--errors-text: #ffffffcc;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
a svg {
|
|
pointer-events: none;
|
|
}
|
|
|
|
body {
|
|
font-size: 18px;
|
|
font-family: Arial, Helvetica, sans-serif;
|
|
overflow-x: hidden;
|
|
background-color: var(--background);
|
|
transition: background-color var(--style-transition);
|
|
}
|
|
|
|
header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 10px;
|
|
width: 100%;
|
|
height: 56px;
|
|
z-index: 5;
|
|
background-color: var(--background);
|
|
border-bottom: 2px solid var(--border);
|
|
transition: border-color var(--style-transition), background-color var(--style-transition);
|
|
}
|
|
|
|
body[data-panel="home"] header,
|
|
body[data-panel="settings"] header {
|
|
position: fixed;
|
|
}
|
|
|
|
.header-title {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.header-title h2 {
|
|
color: var(--nav);
|
|
transition: color var(--style-transition);
|
|
}
|
|
|
|
.home-link {
|
|
margin: 0 8px 0 0;
|
|
height: 32px;
|
|
fill: var(--nav);
|
|
transition: fill var(--style-transition);
|
|
}
|
|
|
|
.home-link svg {
|
|
width: 32px;
|
|
height: 32px;
|
|
padding: 2px;
|
|
}
|
|
|
|
.panel-toggles {
|
|
display: none;
|
|
}
|
|
|
|
nav ul {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.panel-toggles > *,
|
|
nav li {
|
|
display: flex;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
margin: 0 16px;
|
|
user-select: none;
|
|
}
|
|
|
|
.panel-toggles > *:hover svg,
|
|
.home-link:hover svg,
|
|
header .toggle:hover svg,
|
|
nav li:hover svg {
|
|
fill: var(--nav-hover);
|
|
}
|
|
|
|
nav > .toggle {
|
|
display: none;
|
|
}
|
|
|
|
nav li.dimmed svg {
|
|
fill: var(--nav-faded);
|
|
}
|
|
|
|
nav li.dimmed:hover svg {
|
|
fill: var(--nav-faded-hover);
|
|
}
|
|
|
|
.panel-toggles svg,
|
|
nav > .toggle svg,
|
|
nav li > *,
|
|
nav li svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--nav);
|
|
transition: fill var(--style-transition);
|
|
}
|
|
|
|
nav > .toggle span {
|
|
color: var(--nav);
|
|
margin-left: 5px;
|
|
}
|
|
|
|
.dropdown {
|
|
position: relative;
|
|
}
|
|
|
|
.dropdown > * {
|
|
position: absolute;
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
|
|
.dropdown > *:not(select) {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dropdown select {
|
|
cursor: pointer;
|
|
border: none;
|
|
background: none;
|
|
color: transparent;
|
|
outline: none;
|
|
}
|
|
|
|
.dropdown option {
|
|
color: var(--text);
|
|
background-color: var(--background);
|
|
font-size: 130%;
|
|
border: none;
|
|
}
|
|
|
|
.content {
|
|
display: flex;
|
|
height: calc(100vh - 56px);
|
|
overflow-y: hidden;
|
|
color: var(--text);
|
|
fill: var(--text);
|
|
}
|
|
|
|
.split-group {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.split-group.vertical {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.panel {
|
|
position: relative;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tree {
|
|
display: flow-root;
|
|
padding: 44px 16px 50vh;
|
|
height: 100%;
|
|
overflow: auto;
|
|
}
|
|
|
|
.source {
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 32px 8px;
|
|
border: none;
|
|
white-space: pre;
|
|
overflow-wrap: normal;
|
|
overflow-x: auto;
|
|
tab-size: 4;
|
|
-moz-tab-size: 4;
|
|
-o-tab-size: 4;
|
|
-webkit-tab-size: 4;
|
|
outline: none;
|
|
resize: none;
|
|
background-color: var(--background);
|
|
color: var(--text);
|
|
transition: background-color var(--style-transition), color var(--style-transition)
|
|
}
|
|
|
|
.source::selection {
|
|
background-color: var(--selection);
|
|
}
|
|
|
|
.panel-controls {
|
|
display: flex;
|
|
position: absolute;
|
|
right: 22px;
|
|
top: 5px;;
|
|
z-index: 1;
|
|
}
|
|
|
|
.preview-panel .panel-controls {
|
|
justify-content: flex-end;
|
|
width: 100%;
|
|
right: 0;
|
|
padding: 0 5px;
|
|
opacity: 0;
|
|
transition: opacity 0.1s;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.preview-panel .panel-controls > * {
|
|
pointer-events: initial;
|
|
}
|
|
|
|
.preview-panel:hover .panel-controls {
|
|
opacity: 1;
|
|
}
|
|
|
|
.panel-controls > *:not(:last-child) {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
.panel-menu:not(.no-relative) {
|
|
position: relative;
|
|
}
|
|
|
|
.panel-menu > .btn {
|
|
height: 100%;
|
|
}
|
|
|
|
.panel-menu-list {
|
|
display: none;
|
|
flex-direction: column;
|
|
position: absolute;
|
|
right: 0;
|
|
top: 100%;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.panel-menu .btn.active ~ .panel-menu-list {
|
|
display: flex;
|
|
}
|
|
|
|
.panel-controls input {
|
|
margin-right: 5px;
|
|
background: var(--background);
|
|
color: var(--text);
|
|
font-size: 17px;
|
|
border: none;
|
|
transition: background-color var(--style-transition), color var(--style-transition);
|
|
}
|
|
|
|
.panel-controls input::selection {
|
|
background-color: var(--selection);
|
|
}
|
|
|
|
.btn.preview-scale {
|
|
display: block;
|
|
width: 25%;
|
|
text-align: center;
|
|
border-bottom: 2px solid #fff;
|
|
border-bottom-left-radius: 0;
|
|
border-bottom-right-radius: 0;
|
|
}
|
|
|
|
.gutter {
|
|
border-color: var(--border) !important;
|
|
transition: border-color var(--style-transition);
|
|
}
|
|
|
|
.gutter.gutter-vertical {
|
|
border-top: 2px solid;
|
|
border-bottom: 2px solid;
|
|
cursor: ns-resize;
|
|
}
|
|
|
|
.gutter.gutter-horizontal {
|
|
border-left: 2px solid;
|
|
border-right: 2px solid;
|
|
cursor: ew-resize;
|
|
}
|
|
|
|
.preview-panel canvas {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: var(--nav-faded);
|
|
display: block;
|
|
cursor: crosshair;
|
|
image-rendering: optimizeSpeed;
|
|
image-rendering: -moz-crisp-edges;
|
|
image-rendering: -webkit-optimize-contrast;
|
|
image-rendering: -o-crisp-edges;
|
|
image-rendering: pixelated;
|
|
-ms-interpolation-mode: nearest-neighbor;
|
|
}
|
|
|
|
.btn {
|
|
display: flex;
|
|
align-items: center;
|
|
border: none;
|
|
border-radius: 3px;
|
|
height: 33px;
|
|
padding: 7px 11px;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
outline: none;
|
|
font-size: 1rem;
|
|
white-space: nowrap;
|
|
background-color: var(--btn-background);
|
|
color: var(--btn-text);
|
|
fill: var(--btn-text);
|
|
transition: background-color var(--style-transition);
|
|
}
|
|
|
|
.btn:not(.input):hover {
|
|
background-color: var(--btn-hover);
|
|
}
|
|
|
|
.btn svg:not(:last-child) {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
.btn-group .btn:not(:last-child) {
|
|
border-bottom-right-radius: 0px;
|
|
border-bottom-left-radius: 0px;
|
|
}
|
|
|
|
.panel-menu .result-list .btn:first-child,
|
|
.btn-group .btn:not(:first-child) {
|
|
border-top-right-radius: 0px;
|
|
border-top-left-radius: 0px;
|
|
}
|
|
|
|
.btn.check,
|
|
.btn.selected {
|
|
fill: var(--btn-active);
|
|
color: var(--btn-active);
|
|
}
|
|
|
|
.btn.input {
|
|
cursor: initial;
|
|
}
|
|
|
|
.btn input {
|
|
margin-left: 5px;
|
|
width: 100px;
|
|
}
|
|
|
|
.btn.btn.large-input {
|
|
padding: 5px;
|
|
padding-left: 11px;
|
|
}
|
|
|
|
.btn.large-input input {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin-right: 0;
|
|
}
|
|
|
|
.btn a {
|
|
color: var(--btn-text);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.panel-menu .result-list {
|
|
display: block;
|
|
width: 380px;
|
|
height: unset;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
|
|
max-height: 240px;
|
|
}
|
|
|
|
.panel-menu.disabled {
|
|
display: none;
|
|
margin-right: 0;
|
|
}
|
|
|
|
.errors {
|
|
position: fixed;
|
|
display: flex;
|
|
bottom: 17px;
|
|
right: 17px;
|
|
margin: 5px;
|
|
border-radius: 3px;
|
|
background-color: var(--errors-background);
|
|
color: var(--errors-text);
|
|
fill: var(--errors-text);
|
|
transition: fill var(--style-transition);
|
|
}
|
|
|
|
.error {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 7px;
|
|
}
|
|
|
|
.error span:not(:last-child) {
|
|
padding-right: 11px;
|
|
}
|
|
|
|
.errors .toggle {
|
|
padding: 6px;
|
|
width: 36px;
|
|
height: 36px;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.errors svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
|
|
.home {
|
|
display: flex;
|
|
padding: 20px;
|
|
padding-top: 71px;
|
|
}
|
|
|
|
.home.center {
|
|
flex-direction: column;
|
|
align-items: center;
|
|
color: var(--nav);
|
|
}
|
|
|
|
.home.center p {
|
|
padding-bottom: 20px;
|
|
text-align: center;
|
|
font-size: 20px;
|
|
}
|
|
|
|
.generators-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin: 0 20px;
|
|
list-style-type: none;
|
|
}
|
|
|
|
.generators-card {
|
|
margin: 5px 0;
|
|
padding: 8px 15px;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
text-decoration: none;
|
|
text-transform: capitalize;
|
|
border-radius: 3px;
|
|
background-color: var(--nav-faded);
|
|
color: var(--text);
|
|
fill: var(--text);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
transition: background-color 0.2s;
|
|
transition: margin 0.2s;
|
|
}
|
|
|
|
.generators-card * {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.generators-card:hover,
|
|
.generators-card.selected {
|
|
background-color: var(--nav-faded-hover);
|
|
margin-left: 8px;
|
|
margin-right: -8px;
|
|
}
|
|
|
|
.generators-card svg {
|
|
margin-left: 10px;
|
|
}
|
|
|
|
.settings {
|
|
padding: 20px;
|
|
padding-top: 71px;
|
|
}
|
|
|
|
.settings p {
|
|
color: var(--nav);
|
|
padding: 8px;
|
|
border-bottom: 2px solid var(--border);
|
|
transition: border-color var(--style-transition), color var(--style-transition);
|
|
}
|
|
|
|
.field-list {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
list-style-type: none;
|
|
}
|
|
|
|
.field-list li {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 4px 0;
|
|
border-bottom: 1px solid var(--border);
|
|
transition: border-color var(--style-transition);
|
|
}
|
|
|
|
.field-prop {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
margin: 4px;
|
|
}
|
|
|
|
.field-prop > label,
|
|
.field-prop > input {
|
|
height: 34px;
|
|
color: var(--text);
|
|
margin-right: -1px;
|
|
border: 1px solid;
|
|
border-color: var(--nav-faded-hover);
|
|
transition: all var(--style-transition);
|
|
}
|
|
|
|
.field-prop label {
|
|
padding: 0 9px;
|
|
line-height: 1.94rem;
|
|
background-color: var(--node-background-label);
|
|
white-space: nowrap;
|
|
border-top-left-radius: 3px;
|
|
border-bottom-left-radius: 3px;
|
|
}
|
|
|
|
.field-prop input {
|
|
width: 100%;
|
|
line-height: 1.6rem;
|
|
background-color: var(--node-background-input);
|
|
color: var(--text);
|
|
padding-left: 9px;
|
|
font-size: 18px;
|
|
border-top-right-radius: 3px;
|
|
border-bottom-right-radius: 3px;
|
|
}
|
|
|
|
.field-prop svg {
|
|
padding: 4px;
|
|
margin: 0 4px;
|
|
height: 28px;
|
|
width: 28px;
|
|
fill: var(--nav);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.field-prop .hidden svg {
|
|
fill: #be4b2e;
|
|
}
|
|
|
|
.field-prop .dimmed svg {
|
|
fill: var(--nav-faded);
|
|
}
|
|
|
|
.spinner {
|
|
margin: 40px auto 0;
|
|
width: 80px;
|
|
height: 80px;
|
|
}
|
|
|
|
.spinner:after {
|
|
content: "";
|
|
display: block;
|
|
width: 64px;
|
|
height: 64px;
|
|
margin: 8px;
|
|
border-radius: 50%;
|
|
border: 6px solid var(--border);
|
|
border-color: var(--border) transparent var(--border) transparent;
|
|
animation: spinner 1.2s linear infinite, fadein 0.4s;
|
|
transition: border-color var(--style-transition);
|
|
}
|
|
|
|
.very-large {
|
|
font-size: 80px;
|
|
font-weight: 100;
|
|
}
|
|
|
|
@keyframes spinner {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@keyframes fadein {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
/* MEDIUM */
|
|
@media screen and (max-width: 580px) {
|
|
header {
|
|
position: fixed;
|
|
}
|
|
|
|
.panel-toggles {
|
|
display: flex;
|
|
}
|
|
|
|
body nav ul {
|
|
display: none;
|
|
}
|
|
|
|
body[data-panel="home"] header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
height: 92px;
|
|
}
|
|
body[data-panel="home"] nav {
|
|
align-self: flex-end;
|
|
}
|
|
|
|
body[data-panel="home"] nav ul {
|
|
display: flex;
|
|
}
|
|
|
|
.content {
|
|
padding-top: 56px;
|
|
}
|
|
|
|
.content {
|
|
height: unset;
|
|
min-height: 100%;
|
|
}
|
|
|
|
textarea.source {
|
|
height: calc(100vh - 56px);
|
|
}
|
|
|
|
.gutter {
|
|
display: none;
|
|
}
|
|
|
|
.content-output,
|
|
.tree-panel {
|
|
width: 100% !important;
|
|
}
|
|
|
|
.source-panel,
|
|
.preview-panel,
|
|
.preview-panel canvas {
|
|
height: 100% !important;
|
|
}
|
|
|
|
.tree-panel .panel-controls {
|
|
top: 61px;
|
|
right: 5px;
|
|
position: fixed;
|
|
}
|
|
|
|
.btn.btn.large-input,
|
|
.panel-menu .result-list {
|
|
width: calc(100vw - 10px);
|
|
}
|
|
|
|
.tree-panel,
|
|
.content-output,
|
|
.source-panel,
|
|
.preview-panel {
|
|
display: none;
|
|
}
|
|
|
|
body[data-panel="tree"] .tree-panel,
|
|
body[data-panel="source"] .source-panel,
|
|
body[data-panel="source"] .content-output,
|
|
body[data-panel="preview"] .preview-panel,
|
|
body[data-panel="preview"] .content-output {
|
|
display: block;
|
|
}
|
|
|
|
.home {
|
|
padding: 107px 5px 5px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.field-list li {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.field-prop {
|
|
width: 100%;
|
|
}
|
|
|
|
.field-prop input {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
/* SMALL */
|
|
@media screen and (max-width: 650px) {
|
|
body[data-panel="tree"] .header-title h2,
|
|
body[data-panel="source"] .header-title h2,
|
|
body[data-panel="preview"] .header-title h2 {
|
|
font-size: 22px;
|
|
}
|
|
}
|
|
|
|
/* EXTRA SMALL */
|
|
@media screen and (max-width: 480px) {
|
|
.header-title h2 {
|
|
font-size: 22px;
|
|
}
|
|
|
|
body[data-panel="tree"] .header-title h2,
|
|
body[data-panel="source"] .header-title h2,
|
|
body[data-panel="preview"] .header-title h2 {
|
|
font-size: 18px;
|
|
}
|
|
|
|
body[data-panel="preview"] .preview-panel .panel-controls {
|
|
opacity: 1;
|
|
}
|
|
|
|
.generators-list {
|
|
margin: 0 15px;
|
|
}
|
|
|
|
.home:not(.center) .generators-card {
|
|
font-size: 14px;
|
|
padding: 8px;
|
|
}
|
|
}
|