diff --git a/v4/css/index.css b/v4/css/index.css new file mode 100644 index 00000000..441693ba --- /dev/null +++ b/v4/css/index.css @@ -0,0 +1,10 @@ + + +/* Import fonts from Google Fonts */ +@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap"); + +/* Import main styles */ +@import url("style.css"); +@import url("themes.css"); +@import url("mobile.css"); diff --git a/v4/css/mobile.css b/v4/css/mobile.css new file mode 100644 index 00000000..ad8eb957 --- /dev/null +++ b/v4/css/mobile.css @@ -0,0 +1,46 @@ +/*-------------------- Mobile --------------------*/ + +@media only screen and (max-width: 480px) { + .navlogo { + display: none; + } + + .games { + grid-template-columns: repeat(auto-fill, 150px); + grid-gap: 1rem; + margin: 1rem; + } + + .game { + height: 185px; + width: 150px; + } + + .game-image { + height: 150px; + width: 150px; + } + + .game-text { + line-height: 35px; + width: 150px; + } + + .review:last-child { + display: none; + } + + .review:first-child { + display: none; + } + + .review-placeholder { + display: none; + } +} + +@media only screen and (max-height: 432px) { + .reviews-link { + display: none; + } +} diff --git a/v4/css/style.css b/v4/css/style.css new file mode 100644 index 00000000..4c0c57a1 --- /dev/null +++ b/v4/css/style.css @@ -0,0 +1,676 @@ +@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"); +* { + font-family: "Ubuntu", sans-serif; + user-select: none; +} + +html { + scroll-behavior: smooth; +} + +::-webkit-scrollbar { + width: 16px; +} + +::-webkit-scrollbar-thumb { + background: var(--theme); + border: 4px solid transparent; + background-clip: content-box; + border-radius: 8px; +} + +::-webkit-scrollbar-corner { + background: transparent; +} + +::placeholder { + color: var(--text-secondary); + user-select: none; +} + +body { + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + min-height: 100vh; + background: var(--background); +} + +@keyframes breathing { + 0% { + box-shadow: 0 5px 170px var(--theme); + } + + 25% { + box-shadow: 0 5px 200px var(--theme); + } + + 60% { + box-shadow: 0 5px 170px var(--theme); + } + + 100% { + box-shadow: 0 5px 170px var(--theme); + } +} + +@-webkit-keyframes breathing { + 0% { + box-shadow: 0 5px 170px var(--theme); + } + + 25% { + box-shadow: 0 5px 200px var(--theme); + } + + 60% { + box-shadow: 0 5px 170px var(--theme); + } + + 100% { + box-shadow: 0 5px 170px var(--theme); + } +} + +.navbar { + height: 56px; + box-shadow: 0 5px 200px var(--theme); + position: sticky; + top: 0; + z-index: 9999; + animation: breathing 5s ease-out infinite normal; +} + +.navbar.noshadow { + box-shadow: 0 0 0 var(--background); + animation: none; +} + +.navitems { + display: flex; + justify-content: center; + height: 100%; + align-items: center; + gap: 10px; + background: var(--background); +} + +.navlogo { + height: 45px; + border-radius: 15px; + position: absolute; + left: 5px; + user-select: none; +} + +@keyframes shake { + 0% { + transform: translate(1px, 1px) rotate(0deg); + } + + 10% { + transform: translate(-1px, -2px) rotate(-1deg); + } + + 20% { + transform: translate(-3px, 0px) rotate(1deg); + } + + 30% { + transform: translate(3px, 2px) rotate(0deg); + } + + 40% { + transform: translate(1px, -1px) rotate(1deg); + } + + 50% { + transform: translate(-1px, 2px) rotate(-1deg); + } + + 60% { + transform: translate(-3px, 1px) rotate(0deg); + } + + 70% { + transform: translate(3px, 1px) rotate(-1deg); + } + + 80% { + transform: translate(-1px, -1px) rotate(1deg); + } + + 90% { + transform: translate(1px, 2px) rotate(0deg); + } + + 100% { + transform: translate(1px, -2px) rotate(-1deg); + } +} + +.navlogo:hover { + animation: shake 0.5s; + animation-iteration-count: infinite; +} + +.navitem { + border-radius: 500px; + padding: 10px 15px; + font-size: 15px; + background: transparent; + cursor: pointer; + user-select: none; + color: var(--text); +} + +.navitem[current] { + background: var(--theme); + color: var(--text-secondary); +} + +.title { + font-size: 3em; + color: var(--text); + text-align: center; + margin-top: 180px; + font-weight: bold; + margin-top: 10rem; +} + +.message { + text-align: center; + color: var(--text); + font-size: 1.5rem; + margin: 1rem; +} + +.homemessage { + cursor: pointer; + width: fit-content; + user-select: none; +} + +.play-link { + width: fit-content; + display: block; +} + +.play { + height: 30px; + padding: 20px 15px; + display: flex; + align-items: center; + justify-content: center; + background: var(--theme); + font-size: 1rem; + border-radius: 15px; + cursor: pointer; + margin-bottom: 10rem; + user-select: none; + border: none; + color: var(--text-secondary); + transition: transform 500ms; + transition: background 250ms; +} + +.play:hover { + background: var(--theme-hover); +} + +a { + text-decoration: none; + color: #0084ff; +} + +footer { + color: var(--text); + text-align: center; + margin-top: auto; + margin-bottom: 5px; +} + +.searchbar { + height: 40px; + border: none; + background: var(--theme); + outline: none; + font-size: 1rem; + border-radius: 15px; + padding: 0 15px; + margin: 1rem; + width: 40rem; + color: var(--text-secondary); + max-width: calc(100% - 4rem); +} + +.games { + display: flex; + align-items: center; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-content: center; +} + +.game { + height: 240px; + width: 200px; + background: var(--theme); + color: var(--text); + text-decoration: none; + border-radius: 15px; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: center; + -webkit-user-select: none; + user-select: none; + position: relative; + transition: 0.5s; + margin: 22px; + padding: 20px; +} + +.game:hover { + transform: scale(1.1); + box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.616); +} + +.game[hidden] { + display: none; +} + +.game > img { + background: var(--theme); + object-fit: cover; + height: 200px; + width: 200px; + border-radius: 15px; +} + +.game > span { + line-height: 40px; + width: 200px; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--text-secondary); + padding: 0 10px; + font-size: 16px; +} + +.nogames { + color: var(--text); + margin: 0 2rem; + margin-top: -2rem; + text-align: center; + display: none; +} + +.section-title { + color: var(--text); + font-size: 1.5rem; + margin: 1rem; +} + +.section-text { + color: var(--text); + font-size: 1rem; + margin: 0 1rem; +} + +.section-text p { + font-size: 18px; +} + +.section-text a { + color: var(--theme); +} + +.buttons { + display: flex; + gap: 10px; + margin: 0 1rem; + user-select: none; + flex-wrap: wrap; + flex-direction: row; + justify-content: flex-start; + align-items: center; + align-content: center; +} + +.button { + background: var(--theme); + width: fit-content; + padding: 10px; + border-radius: 6px; + cursor: pointer; + color: var(--text-secondary); + border: 0; +} + +.input { + border: none; + background: var(--theme); + width: 200px; + padding: 10px; + border-radius: 6px; + outline: none; + color: var(--text-secondary); +} + +select { + border: none; + background: var(--theme); + width: 200px; + padding: 10px; + border-radius: 6px; + outline: none; + color: var(--text-secondary); +} + +.play-link { + width: fit-content; + display: block; +} + +.reviews-link { + height: 35px; + padding: 20px 15px; + display: flex; + align-items: center; + justify-content: center; + background: var(--theme); + font-size: 1rem; + border-radius: 40px; + cursor: pointer; + margin-bottom: 10rem; + user-select: none; + border: none; + color: var(--text-secondary); + width: fit-content; + position: absolute; + bottom: 1rem; + right: 0; + left: 0; + margin: 0 auto; +} + +#reviews { + margin-top: 26rem; + visibility: hidden; + height: 382px; +} + +.review-container { + display: flex; +} + +.review { + background: var(--theme); + width: 200px; + height: 350px; + margin: 1rem; + border-radius: 15px; +} + +.review-img { + border-radius: 50%; + width: 124px; + height: 124px; + display: flex; + margin: 0 auto; + margin-top: 1rem; +} + +.review-name { + color: var(--text-secondary); + font-size: 1.5rem; + text-align: center; + margin: 0.5rem; + overflow: hidden; + height: 29.6px; +} + +.review-content { + margin: 0 10px; + text-align: center; + overflow: hidden; + height: 44%; + color: var(--text-secondary); +} + +.review-placeholder { + width: 200px; + height: 350px; + margin: 1rem; + border-radius: 15px; + opacity: 0; + user-select: none; + pointer-events: none; +} + +[class^="number-slide"], +[class*=" number-slide"] { + display: flex; + align-items: center; + justify-content: center; +} + +.navigation-wrapper { + position: relative; +} + +.arrow { + width: 30px; + height: 30px; + position: absolute; + top: 50%; + transform: translateY(-50%); + -webkit-transform: translateY(-50%); + fill: #fff; + cursor: pointer; +} + +.arrow--left { + left: 5px; + fill: "#fff"; + background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24' %3E%3Cpath d='M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z' %3E%3C/path%3E%3C/svg%3E"); +} + +.arrow--right { + left: auto; + right: 5px; + background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24' %3E%3Cpath d='M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z'%3E%3C/path%3E%3C/svg%3E"); +} + +.arrow--disabled.arrow--left { + background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' fill='grey' viewBox='0 0 24 24' %3E%3Cpath d='M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z' %3E%3C/path%3E%3C/svg%3E"); +} + +.arrow--disabled.arrow--right { + background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' fill='grey' viewBox='0 0 24 24' %3E%3Cpath d='M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z'%3E%3C/path%3E%3C/svg%3E"); +} + +.version-warning { + color: var(--theme); + display: none; +} + +.spinner { + display: inline-block; + color: var(--theme); + animation: 1.4s linear 0s infinite normal none running animation-61bdi0; + width: 80px; + height: 80px; + margin: 0 auto; + margin-top: 2rem; +} + +.spinnerSvg { + stroke: currentColor; + stroke-dasharray: 80px, 200px; + stroke-dashoffset: 0; + -webkit-animation: animation-1p2h4ri 1.4s ease-in-out infinite; + animation: animation-1p2h4ri 1.4s ease-in-out infinite; +} + +@keyframes animation-61bdi0 { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.saveItems { + display: flex; + gap: 10px; + padding-left: 2rem; +} + +.hiddenUpload { + display: none; +} + +.uploadResult { + display: none; + color: var(--theme); + display: flex; + align-items: center; +} + +.changelog-item { + display: flex; + width: fit-content; + border-radius: 2.5px; + margin: 1em 0; +} + +.changelog-type { + padding: 0 0.5rem; + border-radius: 30px; + margin-right: 0.5rem; + user-select: none; + font-size: 13px; + display: flex; + align-items: center; + justify-content: center; +} + +.changelog-type[added] { + background: #21bd01; + color: white; +} + +.changelog-type[added]::before { + content: "Added"; +} + +.changelog-type[removed] { + background: #ff0000; + color: white; +} + +.changelog-type[removed]::before { + content: "Removed"; +} + +.changelog-type[changed] { + background: #ff7b00; + color: white; +} + +.changelog-type[changed]::before { + content: "Changed"; +} + +.hii { + color: var(--theme); + margin: 1rem; + margin-left: 2rem; +} + +.alien { + border: none; + margin: 1rem auto; +} + +input[type="color"] { + background: var(--text); + border: none; + border-radius: 5px; + outline: none; + padding: 2px; +} + +.bookmarklet { + margin-bottom: 50px; +} + +.content { + margin-left: 50px; + margin-bottom: 50px; +} + +.hidden { + display: none; +} + +.gamecontainer { + height: 50em; +} + +.gamecontainer > .nav { + display: flex; + width: 100%; + height: 45px; + background: var(--theme); + align-items: stretch; +} + +.gamecontainer > .nav > .item { + width: fit-content; + padding: 0.5em; + cursor: pointer; +} + +.gamecontainer > .nav > span { + width: fit-content; + padding: 0.5em; + color: var(--text); + font-size: 22px; +} + +.gamecontainer > .nav > .item#fullscreen { + margin: 0.2em; + width: fit-content; + padding: 0.4em; + cursor: pointer; + right: 0; + position: fixed; + background-color: var(--text); + border-radius: 999999999999999999999px; +} + +.gamecontainer > .nav > .item > svg { + width: 30px; +} + +.gamecontainer > .nav > .item > svg > path { + fill: var(--background); +} + +.gamecontainer > div { + height: 100%; +} + +.gamecontainer > div > iframe { + width: 100%; + height: 100%; +} diff --git a/v4/css/themes.css b/v4/css/themes.css new file mode 100644 index 00000000..52ace2bc --- /dev/null +++ b/v4/css/themes.css @@ -0,0 +1,328 @@ +/*-------------------- Themes --------------------*/ + +body[theme="default"] { + --background: #1c1c1c; + --theme: #0284d4; + --theme-hover: #123bde; + --text: white; + --text-secondary: black; +} +body[theme="axel"] { + --background: #4b146d; + --theme: #f1a6c9; + --theme-hover: #ca8ca9; + --text: #7d5624; + --text-secondary: #af73b2; +} +body[theme="fuckyouandrewosborne"] { + --background: #fffff; + --theme: brown; + --theme-hover: rgb(138, 34, 34); + --text: black; + --text-secondary: black; +} +body[theme="if_you_are_reading_this_are_you_skidding_or_just_looking_at_code"] { + --background: #1448f5; + --theme: #6c06ba; + --theme-hover: #5b039e; + --text: #14f5f5; + --text-secondary: white; +} +body[theme="poop"] { + --background: black; + --theme: brown; + --theme-hover: rgb(136, 34, 34); + --text: white; + --text-secondary: white; +} +body[theme="fuckyoufeny"] { + --background: blue; + --theme: yellow; + --theme-hover: rgb(204, 204, 3); + --text: green; + --text-secondary: green; +} + +body[theme="light"] { + --background: white; + --theme: #4caf50; + --theme-hover: #3f9142; + --text: black; + --text-secondary: black; +} +body[theme="pink"] { + --background: #ff1dce; + --theme: #ff33ff; + --theme-hover: #d62ad6; + --text: #39ff14; + --text-secondary: #39ff14; +} +body[theme="blue"] { + --background: #062a78; + --theme: #062a78; + --theme-hover: #051d50; + --text: #b0c4de; + --text-secondary: #b0c4de; +} +body[theme="yellow"] { + --background: #ffff00; + --theme: #ffff00; + --theme-hover: rgb(204, 204, 3); + --text: #002147; + --text-secondary: #002147; +} +body[theme="40yearoldpedophileanddiscordmod"] { + --background: #321414; + --theme: #f4a460; + --theme-hover: #cc894f; + --text: #f4a460; + --text-secondary: #b58b00; +} +body[theme="airtagschicken"] { + --background: #00ff00; + --theme: #00ff80; + --theme-hover: #00c563; + --text: #fa11f2; + --text-secondary: #fa11f2; +} +body[theme="amoled"] { + --background: #000000; + --theme: #000000; + --theme-hover: #1b1b1b; + --text: #ffffff; + --text-secondary: #ffffff; +} +body[theme="communism"] { + --background: ##ff0000; + --theme: #ff1f1f; + --theme-hover: #d62a2a; + --text: #ffff00; + --text-secondary: #ffff00; +} +body[theme="homestuck"] { + --background: #dfdfdf; + --theme: #0ad53e; + --theme-hover: #07b332; + --text: black; + --text-secondary: white; +} +body[theme="orchid"] { + --background: #1c1c1c; + --theme: #b625cc; + --theme-hover: #a31eb8; + --text: white; + --text-secondary: white; +} + +body[theme="sky"] { + --background: #1c1c1c; + --theme: #0084ff; + --theme-hover: #0072d1; + --text: white; + --text-secondary: black; +} + +body[theme="winter"] { + --background: linear-gradient(to right, #2377a4, #79c0d7), #79c0d7; + --theme: #3da341; + --theme-hover: #2d7a2d; + --text: white; + --text-secondary: white; +} + +body[theme="winter"] .navbar { + box-shadow: none; +} + +body[theme="nebelung"] { + --background: #dabc9a; + --text: black; + --text-secondary: white; + --theme: linear-gradient(to right, #3d2d1e, #190f05); + --theme-hover: linear-gradient(to right, #221911, #110a03); +} + +body[theme="nebelung"] .navbar { + box-shadow: 0 5px 200px #3d2d1e; + animation: nebelungBreathing 5s ease-out infinite normal; +} + +body[theme="piplup"] { + --background: #5bacee; + --theme: #0026ff; + --theme-hover: #0019d4; + --text: white; + --text-secondary: black; +} + +@keyframes nebelungBreathing { + 0% { + box-shadow: 0 5px 170px #3d2d1e; + } + + 25% { + box-shadow: 0 5px 200px #3d2d1e; + } + + 60% { + box-shadow: 0 5px 170px #3d2d1e; + } + + 100% { + box-shadow: 0 5px 170px #3d2d1e; + } +} + +@-webkit-keyframes nebelungBreathing { + 0% { + box-shadow: 0 5px 170px #3d2d1e; + } + + 25% { + box-shadow: 0 5px 200px #3d2d1e; + } + + 60% { + box-shadow: 0 5px 170px #3d2d1e; + } + + 100% { + box-shadow: 0 5px 170px #3d2d1e; + } +} + +body[theme="forternish"] { + --background: #003443; + --theme: linear-gradient(15deg, #82c4e4, #60f108); + --theme-hover: linear-gradient(15deg, #6ca3be, #52cc06); + --text: white; + --text-secondary: black; +} + +body[theme="forternish"] * { + font-family: Comic Sans MS; +} + +body[theme="northernfish"] { + --background: linear-gradient(to bottom right, #91fa9e, #0ec9f8); + --theme: #3778ff; + --theme-hover: #2e64d8; + --text: black; + --text-secondary: black; +} + +body[theme="northernfish"] .navbar { + box-shadow: none !important; +} + +body[theme="northernfish"] .navitems { + background: transparent; +} + +body[theme="northernfish"]::-webkit-scrollbar { + background: #0ec9f8; +} + +body[theme="forgor"] { + --background: #efefef; + --theme: #d7d700; + --theme-hover: #b5b500; + --text: #d7d700; + --text-secondary: #efefef; +} + +body[theme="monotonium"] { + --background: white; + --theme: black; + --theme-hover: #2c2c2c; + --text: black; + --text-secondary: white; +} + +body[theme="monotonium-dark"] { + --background: black; + --theme: white; + --theme-hover: #b1b1b1; + --text: white; + --text-secondary: black; +} + +body[theme="concrete"] { + --background: gray; + --theme: white; + --theme-hover: #b1b1b1; + --text: white; + --text-secondary: grey; +} + +body[theme="sunset"] { + --background: #1c1c1c; + --theme: #e83141; + --theme-hover: #c41e2d; + --text: white; + --text-secondary: black; +} + +body[theme="russell2259"] { + --background: rgba(17, 17, 17, 0.777); + --theme: #0473fb; + --theme-hover: #0059d1; + --text: #fff; + --text-secondary: black; +} + +html, +body { + color: var(--text); +} + +body[theme="fracital"] { + --background: #222; + --theme: #f971e4; + --theme-hover: #e84fc4; + --text: white; + --text-secondary: black; +} + +body[theme="hacker"] { + --background: black; + --theme: #72dc83; + --theme-hover: #5cbf6b; + --text: white; + --text-secondary: black; +} + +body[theme="hacker"] * { + font-family: "JetBrains Mono"; +} + +body[theme="parrot"] { + --background: #1a1404; + --theme: #0580c3; + --theme-hover: #0469a0; + --text: #c39e1f; + --text-secondary: #000000; +} + +body[theme="premiumdark"] { + --background: #111827; + --theme: #4b5563; + --text: white; + --text-secondary: white; +} + +body[theme="premiumdark"] > .navbar { + box-shadow: none; + animation: none; + padding: 6px; + /*border-bottom: solid 1px #374151;*/ +} + +body[theme="premiumdark"] > .navbar > .navitems { + background: #1f2937; + border-radius: 22px; +} + +body[theme="premiumdark"] > .navbar > .navitems > .navlogo { + left: 13px; +} \ No newline at end of file