/*fonts*/ @font-face { font-family: gothammedium; src: url("data/fonts/gotham-medium.ttf"); } @font-face { font-family: belerenb; src: url("data/fonts/beleren-b.ttf"); } @font-face { font-family: belerenbsc; src: url("data/fonts/beleren-bsc.ttf"); } @font-face { font-family: matrix; src: url("data/fonts/matrix.ttf"); } @font-face { font-family: matrixb; src: url("data/fonts/matrix-b.ttf"); } @font-face { font-family: matrixbsc; src: url("data/fonts/matrix-bsc.ttf"); } @font-face { font-family: mplantin; src: url("data/fonts/mplantin.ttf"); } @font-face { font-family: mplantini; src: url("data/fonts/mplantin-i.ttf"); } @font-face { font-family: goudymedieval; src: url("data/fonts/goudy-medieval.ttf"); } @font-face { font-family: phyrexian; src: url("data/fonts/phyrexian.ttf"); } :root { --background-color: #f5f5f5; --background-color-contrast: #e4e4e4; --interactable-color: #dfdfdf; --interactable-selected-color: #cccccc; --input-color: #dadada; --input-font-color: #000; --font-color: #000; --font-color-contrast: #000; --body-background: none; } html { font: 12pt georgia; background: var(--background-color); color: var(--font-color); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } html, body { margin: 0; border: 0; padding: 0; overflow-x: hidden; } body { background: var(--body-background); } a { font: inherit; color: inherit; text-decoration: none; } a:hover { text-decoration: underline; } .title { text-align: center; font: 2.5rem 'belerenbsc'; padding: 1rem 0; } .cardMaster { margin: 0.9rem 0px; } .cardMasterElement { font: 1rem belerenbsc; margin-top: 0.1rem; display: grid; grid-template-columns: 2rem 4rem auto 2rem; align-items: center; background: var(--interactable-color); color: var(--input-font-color); cursor: pointer; } .cardMasterElement > .handle { cursor: move; padding: 0.5rem; text-align: center; } .cardMasterElement > div > img { height: 2rem; width: 2rem; object-fit: contain; } .cardMasterElementMoving { background: var(--interactable-selected-color); } .cardMasterElement > .delete { cursor: pointer; text-align: center; } .cardMasterElement.cardMasterElementSelected { background: var(--interactable-selected-color); } .splitGrid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0.1rem; } .autoGrid { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); grid-auto-rows: min-content; grid-gap: 0.1rem; } .frameGrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(3rem, 1fr)); grid-auto-rows: min-content; grid-gap: 0.1rem; } img { -webkit-user-drag: none; -khtml-user-drag: none; -moz-user-drag: none; -o-user-drag: none; user-drag: none; } #framePicker, #maskPicker { max-height: 260pt; overflow-y: auto; overflow-x: hidden; } #framePicker > div { height: 3rem; text-align: center; width: 100%; } #framePicker img { width: 3rem; height: 3rem; object-fit: contain; } #maskPicker img { max-width: 1.5rem; max-height: 1.5rem; } #framePicker > div.frameOptionSelected, #maskPicker > div.maskOptionSelected { background: var(--interactable-selected-color); } #maskPicker > div, #framePicker > div { background: var(--interactable-color); color: var(--input-font-color); cursor: pointer; } #maskPicker > div { padding: 0.5rem; margin-bottom: 0.1rem; } #textPicker { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); grid-auto-rows: min-content; grid-gap: 0.1rem; margin: 0.1rem 0px; } #textPicker > div { font: 1rem belerenbsc; background: var(--interactable-color); color: var(--input-font-color); padding: 0.5rem; cursor: pointer; } #textPicker > div.selectedText { background: var(--interactable-selected-color); } textarea { resize: vertical; min-height: 4rem; max-height: 12rem; } .hidden { display: none; } .hidden.frameClassCustom { display: inline-block; } .tabPicker { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.2rem, 1fr)); grid-auto-rows: min-content; grid-gap: 0.1rem; margin-bottom: 1rem; } .tabPicker > div { font: 1.2rem belerenbsc; text-align: center; padding: 0.5rem 0; background: var(--interactable-color); color: var(--input-font-color); cursor: pointer; } .tabPicker > div.tabOptionSelected { background: var(--interactable-selected-color); } input:not([type='checkbox']), textarea, button, select { font: inherit; color: var(--input-font-color); width: 100%; background: var(--input-color); border: none; outline: none; padding: 0.2rem; margin-top: 0.1rem; } input:not([type='checkbox']):active, textarea:active, button:active { border: 0.1rem solid var(--input-font-color); padding: 0.1rem; } input[type='checkbox'] { position: relative; top: 0.25rem; width: 1rem; height: 1rem; } input[type='checkbox'], select, option, input[type='file'], button { cursor: pointer; } @keyframes fade-in { from {opacity: 0;} to {opacity: 1;} } @keyframes slide-from-left { 0% {transform: translate(-100vw, 0);} 100% {transform: translate(0, 0);} } @keyframes slide-from-right { 0% {transform: translate(100vw, 0);} 100% {transform: translate(0, 0);} } .layerTitle { text-align: center; font: 2rem 'belerenbsc'; } .darkLayer { background: var(--background-color-contrast); color: var(--font-color-contrast); } .layer > div { opacity: 0; } .layer.revealedLayer > div { opacity: 1; } .layer.revealedLayer.fadeIn > div { animation: fade-in 2s; } .layer.revealedLayer.slideFromLeft > div { animation: slide-from-left 0.8s; } .layer.revealedLayer.slideFromRight > div { animation: slide-from-right 0.8s; } .fiveSampleCards { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; margin-top: 1rem; margin-bottom: 2rem; } .fiveSampleCards > div > img { position: relative; width: 100%; } .fiveSampleCards > div { transition: transform 0.5s; } /*.fiveSampleCards > div:hover { z-index: 100; transform: translate(0, -1em); }*/ .layer.revealedLayer > div > div > div > .sample1 { animation: sample-one 2s; transform: rotate(-10deg) translate(16%, 15%); } .layer.revealedLayer > div > div > div > .sample2 { animation: sample-two 2s; transform: rotate(-5deg) translate(10%, 4%); } .layer.revealedLayer > div > div > div > .sample4 { animation: sample-four 2s; transform: rotate(5deg) translate(-10%, 4%); } .layer.revealedLayer > div > div > div > .sample5 { animation: sample-five 2s; transform: rotate(10deg) translate(-16%, 15%); } @keyframes sample-one { 0% {transform: rotate(0deg) translate(0, 0); position: relative; left: 200%;} 10% {transform: rotate(0deg) translate(0, 0); position: relative; left: 200%;} 100% {transform: rotate(-10deg) translate(16%, 15%); position: relative; left: 0;} } @keyframes sample-two { 0% {transform: rotate(0deg) translate(0, 0); position: relative; left: 100%;} 10% {transform: rotate(0deg) translate(0, 0); position: relative; left: 100%;} 100% {transform: rotate(-5deg) translate(10%, 4%); position: relative; left: 0;} } @keyframes sample-four { 0% {transform: rotate(0deg) translate(0, 0); position: relative; left: -100%;} 10% {transform: rotate(0deg) translate(0, 0); position: relative; left: -100%;} 100% {transform: rotate(5deg) translate(-10%, 4%); position: relative; left: 0;} } @keyframes sample-five { 0% {transform: rotate(0deg) translate(0, 0); position: relative; left: -200%;} 10% {transform: rotate(0deg) translate(0, 0); position: relative; left: -200%;} 100% {transform: rotate(10deg) translate(-16%, 15%); position: relative; left: 0;} } #inputColorPalette { font: inherit; width: 10rem; textAlign: left; } .downloadCardImage { margin-top: 0.5rem; text-align: center; font: 2rem belerenbsc; } ::placeholder { color: inherit; opacity: 0.5; } .indent { text-indent: 2em; } .truncate { word-break: break-word; } .cornered { border-radius: 0.5rem; } .justify { text-align: justify; } #textCodeReference { display: grid; grid-template-columns: 7rem auto; margin-top: 1rem; grid-gap: 0.1rem; } #textCodeReference > div { background: var(--input-color); padding: 0.1rem; color: var(--input-font-color); } .notificationContainer { position: fixed; bottom: 0; left: 0; width: 100%; color: black; } .notification { display: grid; grid-template-columns: auto 1rem; grid-gap: 1rem; margin: 0.5rem; padding: 0.5rem; background: green; } .notification > .deleteNotification { text-align: center; cursor: pointer; } /*ANYTHING THAT CHANGES BASED ON SCREEN WIDTH GOES HERE*/ .mainGrid { display: grid; grid-template-columns: auto; justify-items: center; grid-gap: 1rem; padding: 1rem; } .layer { padding: 2rem; } .cardLayerGrid { display: grid; grid-template-columns: auto; grid-gap: 1rem; justify-items: center; align-items: center; } .cardLayerGrid > img { width: 100%; height: auto; } canvas { width: 100%; } footer { background: var(--background-color-contrast); color: var(--font-color-contrast); font: 1rem arial; } .footer { width: 10rem; padding: 1rem 0; margin: 0 auto; display: grid; grid-template-columns: auto; grid-gap: 2rem; } .footer > div > div:first-child { margin-bottom: 0.2rem; } .footer > div > div:not(:first-child) { /* font-weight: bold;*/ } .footer > div > div > select { width: auto !important; } @media screen and (min-width: 909pt) { /*Screen is wide enough to show the card next to the editor menu*/ .mainGrid { grid-template-columns: 750px auto; justify-items: stretch; } } @media screen and (min-width: 800pt) { /*Screen is wide enough for cardLayerGrids to display side by side, and for more padding*/ .cardLayerGrid { grid-template-columns: auto auto; } .layer { padding: 4rem; } } @media screen and (min-width: 618pt) { /*Screen is wide enough for padding*/ .mainGrid { /*padding: 1rem 1rem;*/ } } @media screen and (min-width: 768px) { /*Screen is wide enough for the card image to be 750px wide. Scrollbar is 18 pixels?*/ canvas { width: 750px; } } @media screen and (min-width: 50rem) { /*Screen is wide enough for the footer to display horizontally*/ .footer { width: 30rem; padding: 2rem 0; grid-template-columns: repeat(4, 6rem); } } @media screen and (min-width: 392pt) { /*Screen is wide enough for the samples to be a constant size*/ .cardLayerGrid > img { width: 300pt; } } @media screen and (min-width: 300pt) { /*Screen is wide enough for larger text*/ html { font: 20pt georgia; } footer { font: 0.6rem arial; } }