/* Icons SVG files */ :root { --info: url('data:image/svg+xml,'); --home: url('data:image/svg+xml,'); --shot: url('data:image/svg+xml,'); --ota: url('data:image/svg+xml,'); --browse: url('data:image/svg+xml,'); --cog: url('data:image/svg+xml,'); --star: url('data:image/svg+xml,'); --trash: url('data:image/svg+xml,'); --download: url('data:image/svg+xml,'); --upload: url('data:image/svg+xml,'); --flash: url('data:image/svg+xml,'); --file: url('data:image/svg+xml,'); --dir: url('data:image/svg+xml,'); --diropen: url('data:image/svg+xml,'); --html: url('data:image/svg+xml,'); --image: url('data:image/svg+xml,'); --zip: url('data:image/svg+xml,'); --cmd: url('data:image/svg+xml,'); --css: url('data:image/svg+xml,'); --ttf: url('data:image/svg+xml,'); --eye: url('data:image/svg+xml,'); --json: url('data:image/svg+xml,'); --audio: url('data:image/svg+xml,'); } .fn:hover { text-decoration: underline; } .fi { display: inline-block; vertical-align: middle; width: 1.1rem; height: 1.25rem; mask-size: auto; mask-repeat: no-repeat; mask-position: center; -webkit-mask-size: auto; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; background-color: var(--txt); } .fa { display: block; text-indent: -9999px; width: clamp(2rem, 7.5vw, 5rem); height: 2rem; mask-size: auto; mask-repeat: no-repeat; mask-position: center; -webkit-mask-size: auto; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; background-color: var(--clr-primary-400); transition: 0.5s; padding: 1rem; margin-top: 0.5rem; margin-bottom: 0.5rem; } .fa-browse { mask-image: var(--browse); -webkit-mask-image: var(--browse)} .fa-cog { mask-image: var(--cog); -webkit-mask-image: var(--cog)} .fa-download{ mask-image: var(--download); -webkit-mask-image: var(--download)} .fa-upload { mask-image: var(--upload); -webkit-mask-image: var(--upload)} .fa-home { mask-image: var(--home); -webkit-mask-image: var(--home)} .fa-info { mask-image: var(--info); -webkit-mask-image: var(--info)} .fa-ota { mask-image: var(--ota); -webkit-mask-image: var(--ota)} .fa-shot { mask-image: var(--shot); -webkit-mask-image: var(--shot)} .fa-star { mask-image: var(--star); -webkit-mask-image: var(--star)} .fa-trash { mask-image: var(--trash); -webkit-mask-image: var(--trask)} .fa-flash { mask-image: var(--flash); -webkit-mask-image: var(--flash)} .fa-file { mask-image: var(--file); -webkit-mask-image: var(--file)} .fa-dir { mask-image: var(--dir); -webkit-mask-image: var(--dir)} .fa-diropen { mask-image: var(--diropen); -webkit-mask-image: var(--diropen)} .fa-eye { mask-image: var(--eye); -webkit-mask-image: var(--eye)} .fa-zip { mask-image: var(--zip); -webkit-mask-image: var(--zip)} .fa-css { mask-image: var(--css); -webkit-mask-image: var(--css)} .fa-cmd { mask-image: var(--cmd); -webkit-mask-image: var(--cmd)} .fa-json { mask-image: var(--json); -webkit-mask-image: var(--json)} .fa-jsonl { mask-image: var(--json); -webkit-mask-image: var(--json)} .fa-image { mask-image: var(--image); -webkit-mask-image: var(--image)} .fa-audio { mask-image: var(--audio); -webkit-mask-image: var(--audio)} .fa-html { mask-image: var(--html); -webkit-mask-image: var(--html)} .fa-ttf { mask-image: var(--ttf); -webkit-mask-image: var(--ttf)} .nav-list { font-size: var(--fs-nav); padding: 0; display: flex; justify-content: space-evenly; gap: clamp(1.5rem, 10vw, var(--size-500)); width: clamp(275px, 80vw, 600px); } .nav-list a { position: relative; display: flex; justify-content: space-evenly; align-items: center; flex-direction: column; text-decoration: none; color: var(--clr-primary-400); } .nav-list a:hover, .nav-list a:focus-visible { color: var(--clr-accent-400); } .nav-list a .text { position: absolute; letter-spacing: -0.05rem; font-size: var(--fs-500); font-weight: var(--fw-semi-bold); white-space: nowrap; opacity: 0; transition: 0.5s; transform: translateY(0.5rem); } .nav-list a:hover .text, .nav-list a:focus-visible .text { opacity: 1; transform: translateY(1rem); } .nav-list a:hover .fa, .nav-list a:focus-visible .fa { background-color: var(--clr-accent-400); transform: translateY(-0.5rem); } /* Box sizing rules */ *, *::before, *::after { box-sizing: border-box; } /* Set default margin */ * { margin: 0px; padding: 0px; } p { margin: 1em 0px; } /* Main Style */ body { font-family: 'Inter', sans-serif; line-height: 1.5; height: 100%; background: var(--bg); color: var(--txt) } a { text-decoration: none; } a[href], input[type='submit'], label[for], select, button, .pointer { cursor: pointer; } /* Message Fields */ .error, .info, .success, .validation, .warning { border: 1px solid; margin: 1rem auto; padding: 2rem 1rem 1rem 3rem; background-repeat: no-repeat; background-position: 10px center; max-width: 500px } .info { color: #00529B; background-color: #BDE5F8 } .success{ color: #4F8A10; background-color: #DFF2BF } .warning{ color: #9F6000; background-color: #FEEFB3 } .error { color: #D8000C; background-color: #FFD2D2 } .left { float: left } .right { float: right } .bold { font-weight: bold } /* Main Page */ #doc { text-align: left; margin: 0 auto; /* display: inline-block; display: table; */ color: var(--txt); width: 80%; min-width: 300px; max-width: 600px; } #doc>a, .dist>a, #doc button, #doc input[type=submit] { /* padding: 12px; */ height: 3rem; border: 1px solid var(--btnbrd); border-radius: .6rem; background-color: var(--btnbg); color: var(--btnfg); font-size: 1rem; width: 100%; margin: 12px 0; display: flex; align-items: center; justify-content: center; text-align: center; text-decoration: none } #doc>a:hover, .dist>a:hover, #doc button:hover, #doc input[type=submit]:hover { background-color: var(--btnbghi) } #doc input:not([type=file]) { background-color: var(--fldbg); color: var(--fldfg) } #doc input[type=checkbox], #doc input[type=radio] { width: 1rem; height: 1rem; margin: 0.25rem } #doc input[type=color] { width: 30%; padding: 5px } #doc input:invalid { border: 1px solid var(--fldred) } #doc select { background-color: var(--fldbg); color: var(--fldfg) } .c { text-align: center } #doc>a.red, #doc button.red { background-color: var(--btnred) } #doc>a.red:focus, #doc>a.red:hover, #doc button.red:focus, #doc button.red:hover { background-color: var(--btnredhi) } #doc td { padding-bottom: 0; padding-top: 0 } #doc th { padding-top: .5rem } #doc input, #doc select, #doc textarea { width: 100%; padding: 1rem; border: 1px solid #ccc; border-radius: .6rem; resize: vertical } #doc select { appearance: none; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 1rem } #doc label { padding-right: 18px; padding-left: .25rem; display: inline-block } #bmp { max-width: 100%; height: auto; } .required { background-image: var(--star); background-position: right; background-repeat: no-repeat; background-size: 1.5rem 1.5rem; } .icon { background-size: 1.25rem 1.25rem; background-position: left; background-repeat: no-repeat; width: 1.5rem; display: inline-block; text-decoration: none } .icon:before{content: "\0000a0"} .edit{background-image: var(--browse)} .trash{background-image: var(--trash)} /* Forms */ .container { background-color: var(--grpbg); color: var(--grpfg); border-radius: .6rem; padding: 10px; margin: 20px 0 } .dist { display: flex; justify-content: space-between; width: 100%; margin: 1rem 0 } .dist>a { flex-grow: 1; margin: 0 6px } .dist>a:first-child { margin-left: 0 } .dist>a:last-child { margin-right: 0 } .row:after { content: ""; display: table; clear: both } .row { /* font-size: .833rem; */ margin: 5px } .gap, .row:last-of-type { margin-bottom: 1rem } .col-25 { /* float: left; width: 25%; */ text-align: left; } /* .col-75 { float: left; width: 75% } */ #doc label, #doc legend { padding: 5px 18px 5px 0; } #doc fieldset { display: contents } [v-cloak] > * { display:none } /* [v-cloak]::before { content: "Loading…"; margin: auto; } */ @media screen and (min-width:800px) { .row { display:flex; align-items:center } .col-25, .col-75 { float: left; width: 75%; margin-top: 0 } .col-25 { width: 25%; text-align: right } } /* @media screen and (max-width:800px) { // #doc input[type=submit], .col-25, .col-75 { width: 100%; margin-top: 0 } .col-25 { text-align: left } #doc label { padding: 5px 18px 5px 0 } } */ /* ********** Page Footer ********** */ .foot { background-color: transparent !important; all: revert; float: right; margin: 0; font-size: .6rem } a.foot:link, a.foot:visited { color: var(--footfg) } .clear { clear: both } /* ********** File Editor ********** */ .container__editor { /* display: none; */ display: flex; /* Misc */ border: 0; width: 100vw; height: 100vh; background-color: var(--bg); } .container__left { /* Initially, the left takes 3/4 width */ width: 10rem; min-width: 6rem; max-width: 20rem; /* Misc */ /* align-items: center; */ display: flex; justify-content: left; overflow-x: clip; overflow-y: scroll; background-color: var(--treebg); /* Popout */ top: 0; bottom: 0; left: 0; right: clamp(10rem, 15vw, 80rem); z-index: 10; /* position: absolute; */ /* visibility: hidden; */ } .resizer { background-color: #d5dbe2; cursor: ew-resize; height: 100%; width: 5px; } .container__right { /* Take the remaining width */ flex: 1; flex-direction: column; /* Misc */ align-items: center; display: flex; background-color: #888; } .toolbar { text-align: center; width: 100%; padding: 0.5rem; color: var(--btnfg); background-color: var(--toolbg) } .container__bottom { /* Take the remaining width */ flex: 1; /* Misc */ align-items: center; display: flex; justify-content: center; top: 0; bottom: 0; width: 100%; /* background-color: bisque; */ } #sizeList { width: 4rem; } #ctx { display: none; top: 10px; left: 50px; position: absolute; background: #fff; z-index: 10; padding: 0.75rem; border-radius: 0.5rem; box-shadow: 0 0.5rem 0.75rem rgba(0,0,0,0.25); } #ctx > ul { padding-left: 0px; } #ctx > ul > li { white-space: nowrap } #ctx > ul > li:hover { background: #ccc; } #fontsize, #page { width: 3rem } #preview { padding: 0.3rem; overflow: scroll; } #preview > img { max-width:100%; max-height:100%; height: 100%; margin: auto; display: block } #download-frame, #preview { display:none; } #tree { width: 100%; line-height: 1.3rem; font-size: 0.95rem; } .download{background-image: var(--download)} .upload{background-image: var(--upload)} .eye{background-image: var(--eye)} .flash{background-image: var(--flash)} .file{background-image: var(--file)} .zip{background-image: var(--zip)} .css{background-image: var(--css)} .cmd{background-image: var(--cmd)} .json{background-image: var(--json)} .jsonl{background-image: var(--json)} .image{background-image: var(--image)} .audio{background-image: var(--audio)} .html{background-image: var(--html)} .dir{background-image: var(--dir)} .diropen{background-image: var(--diropen)} #toast { position: fixed; bottom: 1rem; right: 1.5rem; display: grid; align-items: end; align-content: end; gap: 1rem; } .toast { font-size: 1rem; margin: 0; font-weight: bold; line-height: 1; padding: 0.5em 1em; background-color: lightblue; animation: toastIt 3000ms cubic-bezier(0.785, 0.135, 0.15, 0.86) forwards; } @keyframes toastIt { 0%, 100% { transform: translateY(150%); opacity: 0; } 10%, 90% { transform: translateY(0); opacity: 1; } }