diff options
Diffstat (limited to 'index.css')
| -rw-r--r-- | index.css | 395 |
1 files changed, 395 insertions, 0 deletions
diff --git a/index.css b/index.css new file mode 100644 index 0000000..26229e2 --- /dev/null +++ b/index.css @@ -0,0 +1,395 @@ +:root { + --cl-black: hsl(140, 1%, 6%); + --cl-gray-0: hsl(140, 2%, 8%); + --cl-gray-1: hsl(140, 2%, 12%); + --cl-gray-2: hsl(140, 4%, 16%); + --cl-gray-3: hsl(140, 4%, 24%); + --cl-gray-4: hsl(140, 4%, 36%); + --cl-gray-5: hsl(140, 4%, 44%); + --cl-gray-6: hsl(80, 8%, 52%); + --cl-gray-7: hsl(70, 8%, 58%); + --cl-gray-8: hsl(60, 16%, 66%); + --cl-gray-9: hsl(40, 32%, 78%); + --cl-gray-10: hsl(30, 32%, 84%); + --cl-white: hsl(26, 64%, 88%); + --cl-red-6: hsl(4, 83%, 67%); + --cl-red-7: hsl(4, 75%, 75%); + --cl-orange-6: hsl(26, 84%, 62%); + --cl-orange-7: hsl(26, 84%, 74%); + --cl-yellow: hsl(37, 80%, 69%); + --cl-green-6: hsl(120, 41%, 64%); + --cl-green-7: hsl(120, 42%, 75%); + --cl-cyan-6: hsl(160, 41%, 64%); + --cl-cyan-7: hsl(160, 32%, 75%); + --cl-blue-6: hsl(200, 55%, 64%); + --cl-blue-8: hsl(201, 55%, 80%); + --cl-magenta-7: hsl(320, 59%, 72%); + --cl-magenta-8: hsl(320, 61%, 80%); +} + +* { + box-sizing: border-box; + border-radius: 0px !important; +} + +body { + min-height: 100vh; + margin: 5vh 10vw; + display: flex; + justify-content: center; + font-family: "Iosevka", "Roboto Mono", monospace; + background-color: var(--cl-black); + color: var(--cl-white); +} + +/* Neutralize the old space background elements */ +body::before, +#space-bg, +.star-layer, +.stars-s, +.stars-m, +.stars-l { + display: none; +} + +.app-container { + position: relative; + width: 100%; + max-width: 760px; + height: fit-content; + background-color: var(--cl-gray-0); + border: 2px solid var(--cl-gray-2); +} + +.app-container::before { + display: none; +} + +.banner { + width: 100%; + height: auto; + display: block; + border-bottom: 2px solid var(--cl-gray-2); +} + +.content-wrapper { + position: relative; + padding: 2rem; +} + +.progress-bar { + position: absolute; + top: 0; + left: 0; + z-index: 10; + width: 100%; + height: 4px; + background-color: var(--cl-orange-6); +} + +.header { + margin-bottom: 1.75rem; + text-align: left; +} + +.eyebrow { + display: block; + margin-bottom: 0.65rem; + color: var(--cl-gray-6); + font-size: 0.85rem; + font-weight: bold; + text-transform: uppercase; +} + +.eyebrow::before, +.eyebrow::after { + display: none; +} + +.header h1 { + margin: 0 0 0.5rem; + color: var(--cl-white); + font-size: 2.2rem; + font-weight: bold; +} + +.header p { + max-width: 100%; + margin: 0; + color: var(--cl-gray-7); + font-size: 1rem; + line-height: 1.6; +} + +.status-badge { + display: inline-flex; + align-items: center; + margin-top: 1rem; + padding: 4px 12px; + font-size: 0.85rem; + font-weight: bold; + text-transform: uppercase; + border: 2px solid; +} + +.status-online { + color: var(--cl-green-6); + border-color: var(--cl-green-6); + background-color: transparent; +} + +.status-offline { + color: var(--cl-red-6); + border-color: var(--cl-red-6); + background-color: transparent; +} + +.pulse-dot { + width: 10px; + height: 10px; + margin-right: 0.75rem; + background-color: currentColor; +} + +.server-stats { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; + margin-bottom: 1.5rem; + padding: 1rem; + border: 2px solid var(--cl-gray-2); + background-color: var(--cl-gray-1); +} + +.stat-item { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: 10px; + padding: 0.75rem; + border: 2px solid var(--cl-gray-2); + background-color: var(--cl-gray-0); +} + +.stat-label { + margin-bottom: 0.5rem; + color: var(--cl-gray-6); + font-size: 0.75rem; + font-weight: bold; + text-transform: uppercase; +} + +.stat-value { + color: var(--cl-white); + font-size: 1.25rem; + font-weight: bold; +} + +.btn-primary { + display: block; + width: 100%; + margin-bottom: 1rem; + padding: 12px; + color: var(--cl-orange-6); + text-align: center; + text-decoration: none; + text-transform: uppercase; + font-size: 1rem; + font-weight: bold; + border: 2px solid var(--cl-orange-6); + background-color: transparent; +} + +.btn-primary::before { + content: "[ "; +} + +.btn-primary::after { + content: " ]"; +} + +.btn-primary:hover { + color: var(--cl-black); + background-color: var(--cl-magenta-7); + border-color: transparent; +} + +.help-text { + margin: 1rem 0 2rem; + color: var(--cl-gray-6); + text-align: left; + font-size: 0.9rem; +} + +.help-text a { + color: var(--cl-orange-6); + text-decoration: none; + border-bottom: 2px solid var(--cl-orange-6); +} + +.help-text a:hover { + color: var(--cl-black); + background-color: var(--cl-magenta-7); + border-color: transparent; +} + +.channel-list { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.channel { + border: 2px solid var(--cl-gray-2); + background-color: var(--cl-gray-1); +} + +.channel-header { + padding: 0.75rem 1rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + color: var(--cl-white); + border-bottom: 2px solid var(--cl-gray-2); + background-color: var(--cl-gray-2); +} + +.channel-title-group { + display: flex; + align-items: center; + margin: 0; +} + +.channel-title-group::before { + content: ">"; + margin-right: 0.75rem; + color: var(--cl-orange-6); + font-weight: bold; +} + +.channel-title-group h2 { + margin: 0; + font-size: 1rem; + font-weight: bold; +} + +.channel-icon { + display: none; +} + +.channel-meta { + padding: 4px 8px; + color: var(--cl-cyan-6); + font-size: 0.85rem; + font-weight: bold; + border: 2px solid var(--cl-cyan-6); +} + +.client-list { + margin: 0; + padding: 0.5rem; + list-style: none; +} + +.client { + padding: 0.5rem 1rem; + display: flex; + align-items: center; + color: var(--cl-gray-8); + font-size: 0.95rem; + border: 2px solid transparent; +} + +.client::before { + content: "-"; + margin-right: 1rem; + color: var(--cl-gray-5); +} + +.client:hover { + color: var(--cl-white); + background-color: var(--cl-gray-2); + border-color: var(--cl-gray-4); +} + +.role-icon, +.client-no-role-icon { + display: none; +} + +.empty-server { + padding: 2rem 1rem; + color: var(--cl-gray-6); + text-align: center; + font-size: 1rem; + border: 2px dashed var(--cl-gray-4); + background-color: var(--cl-gray-1); +} + +.footer-links { + margin-top: 2.5rem; + padding-top: 1.5rem; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + gap: 1rem; + border-top: 2px solid var(--cl-gray-2); +} + +.footer-links a { + color: var(--cl-orange-6); + font-size: 0.9rem; + font-weight: bold; + text-decoration: none; + border: 2px solid transparent; + padding: 2px 4px; +} + +.footer-links a:hover { + color: var(--cl-black); + background-color: var(--cl-magenta-7); +} + +.credits { + margin-top: 1.5rem; + color: var(--cl-gray-6); + text-align: left; + font-size: 0.85rem; +} + +.credits a { + color: var(--cl-orange-6); + text-decoration: none; + border-bottom: 2px solid var(--cl-orange-6); +} + +.credits a:hover { + color: var(--cl-black); + background-color: var(--cl-magenta-7); + border-color: transparent; +} + +#ajax-container { + transition: none; +} + +@media (max-width: 640px) { + body { + margin: 2vh 4vw; + } + + .content-wrapper { + padding: 1.25rem; + } + + .server-stats { + grid-template-columns: 1fr; + } + + .channel-header { + align-items: flex-start; + flex-direction: column; + gap: 0.75rem; + } +} |
