diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b3dfee7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd4f2b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..05174e9 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## [dbqp mural](https://webmural.com/dbqp) + +[tape](https://s9a.page/tape) [flex](lev.css) [play](luv.css) diff --git a/UNLICENSE.txt b/UNLICENSE.txt new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/UNLICENSE.txt @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/index.html b/index.html new file mode 100644 index 0000000..69a1970 --- /dev/null +++ b/index.html @@ -0,0 +1,36 @@ + + + + +dbqp mural + + + + + + + + + + + + + + + diff --git a/lev.css b/lev.css new file mode 100644 index 0000000..7c55e62 --- /dev/null +++ b/lev.css @@ -0,0 +1,65 @@ +* { + box-sizing: border-box; +} + +:any-link { + text-decoration-style: dotted; + text-decoration-line: line-through; +} + +html { + font-family: sans-serif; + font-size: max(3ch, 3vmax + 2vmin); + line-height: 1.618; +} + +body { + margin: 0; + overflow-wrap: anywhere; +} + +.dbqp { + display: flex; + flex-flow: row wrap; + font-size: 20vmax; + font-weight: unset; + margin: 0; +} + +.dbqp > * { + align-items: center; + display: inline-flex; + flex-basis: 25%; + justify-content: center; + min-height: 100vh; + padding: 5vw; + text-shadow: + 0 1vh 0 var(--tape-hex), + 0 2vh 0 var(--tape-hex), + 0 3vh 0 powderblue; +} + +.hope { + align-items: flex-start; + display: flex; + flex-flow: column; + justify-content: center; + min-height: 100vh; +} + +.hope a { + padding: 1vh 5vw; +} + +@media (orientation: portrait) { + .dbqp > * { + flex-basis: 50%; + min-height: 50vh; + } + + .hope a { + padding: 1vh 8vw; + } +} + + diff --git a/luv.css b/luv.css new file mode 100644 index 0000000..6a3d85d --- /dev/null +++ b/luv.css @@ -0,0 +1,55 @@ +/* https://s9a.page/tape */ +:root{--tape-filter:none;--tape-bluv:#11dff1;--tape-play:#fbbfff;--tape-loud:#eee833;--tape-luvu:#44f477;--tape-blaq:#0e0e0e;--tape-watt:#e0e0e0;--tape-hex:#e0e0e0;--tape-mix:transparent}.tape-watt{--tape-hex:var(--tape-watt)}.tape-luvu{--tape-hex:var(--tape-luvu)}.tape-loud{--tape-hex:var(--tape-loud)}.tape-play{--tape-hex:var(--tape-play)}.tape-bluv{--tape-hex:var(--tape-bluv)}.tape-flat{border-color:transparent}.tape-flap{border-color:currentColor}.tape-flow{--tape-remix:none}.tape-flow :not(.tape-skip){background-color:transparent;color:inherit}.tape-blaq,.tape-bluv,.tape-loud,.tape-luvu,.tape-play,.tape-watt{--tape-mix:var(--tape-hex);--tape-remix:none;color:var(--tape-blaq)!important;background-color:var(--tape-mix)!important;background-image:var(--tape-remix);filter:var(--tape-filter)}.tape-blaq{--tape-mix:var(--tape-blaq);color:var(--tape-hex)!important}.tape-erase,.tape-erase *{color:transparent!important} + +@media not (prefers-contrast: more) { + :root { + --tape-watt: thistle; + --tape-luvu: turquoise; + --tape-play: salmon; + --tape-loud: #ec0; + --tape-blaq: #303; + --tape-bluv: deepskyblue; + } +} + +@media (orientation: portrait) { + :root { + --tape-remix: radial-gradient( + var(--tape-play), + var(--tape-bluv), + var(--tape-bluv), + var(--tape-play) + ); + } +} + +@media (orientation: landscape) { + :root { + --tape-remix: conic-gradient( + var(--tape-play), + var(--tape-bluv), + var(--tape-bluv), + var(--tape-play) + ); + } +} + +::selection { + background: deeppink; + color: #0e0e0e; +} + +:focus-within { + --tape-filter: hue-rotate(9deg); +} + +:focus { + --tape-filter: hue-rotate(-72deg); + outline: 1rem dotted; + outline-offset: -1em; + outline-width: min(1rem, 1ch); +} + +:any-link { + text-decoration-color: var(--tape-hex); +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a80f83b --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "scripts": { + "ff": "npm run firefox", + "firefox": "open -a firefox index.html || start firefox index.html", + "start": "npm run firefox", + "test": "open index.html || start index.html || xdg-open index.html", + "posttest": "echo isluvvalid" + } +}