Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title></title>
- <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700&display=swap" rel="stylesheet">
- <style>
- * { box-sizing: border-box; }
- body {
- margin: 0;
- min-height: 100vh;
- background: linear-gradient(180deg, #0a0f1a, #101e33);
- font-family: 'Orbitron', sans-serif;
- display: flex;
- justify-content: center;
- align-items: center;
- overflow-x: hidden;
- perspective: 1500px;
- }
- .system-container {
- width: 430px;
- background: radial-gradient(circle at top, #0f1a2e, #0b121e);
- border: 2px solid rgba(0, 255, 255, 0.3);
- border-radius: 15px;
- box-shadow: 0 0 30px rgba(0, 255, 255, 0.2), inset 0 0 15px rgba(0, 255, 255, 0.05);
- padding: 20px;
- padding-bottom: 20px;
- position: relative;
- text-align: center;
- overflow: hidden;
- transition: transform 0.4s ease, box-shadow 0.4s ease;
- transform-style: preserve-3d;
- }
- .system-container:hover {
- transform: scale(0.985);
- box-shadow: 0 0 40px rgba(0, 255, 255, 0.35);
- }
- .profile-img {
- width: 100%;
- max-width: 400px;
- border-radius: 10px;
- border: 2px solid rgba(0, 255, 255, 0.4);
- margin-bottom: 20px;
- box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
- }
- .glow-title {
- font-size: 22px;
- color: #00ffff;
- text-transform: uppercase;
- letter-spacing: 2px;
- animation: glowCycle 4s infinite;
- text-shadow: 0 0 6px #00ffff;
- }
- @keyframes glowCycle {
- 0%, 100% { text-shadow: 0 0 6px #00ffff, 0 0 10px #00ffff; }
- 50% { text-shadow: 0 0 14px #00ffff, 0 0 24px #00ffff; }
- }
- .button-wrapper {
- height: 0;
- overflow: hidden;
- padding-top: 0;
- transition: height 0.3s ease, padding-top 0.3s ease;
- }
- .system-container.show-button .button-wrapper {
- height: 50px;
- padding-top: 10px;
- }
- .info-button {
- padding: 8px 18px;
- background: rgba(0, 255, 255, 0.15);
- border: 1px solid rgba(0, 255, 255, 0.4);
- color: #00ffff;
- border-radius: 6px;
- font-size: 12px;
- text-transform: uppercase;
- cursor: pointer;
- opacity: 0;
- transform: scale(0.95);
- transition: opacity 0.3s ease, transform 0.3s ease;
- }
- .system-container.show-button .info-button:not(.hide) {
- opacity: 1;
- transform: scale(1.05);
- }
- .info-panel {
- margin-top: 20px;
- max-height: 0;
- overflow: hidden;
- transition: max-height 0.5s ease, opacity 0.4s ease;
- opacity: 0;
- }
- .info-panel.active {
- max-height: 800px;
- opacity: 1;
- }
- .tab-buttons {
- display: flex;
- justify-content: center;
- margin-bottom: 15px;
- gap: 12px;
- }
- .tab-button {
- padding: 6px 14px;
- font-size: 11px;
- text-transform: uppercase;
- background: rgba(0, 255, 255, 0.1);
- border: 1px solid rgba(0, 255, 255, 0.3);
- border-radius: 6px;
- color: #00ffff;
- cursor: pointer;
- transition: background 0.3s ease;
- }
- .tab-button.active {
- background: rgba(0, 255, 255, 0.25);
- }
- .tab-content {
- opacity: 0;
- visibility: hidden;
- transform: translateY(10px);
- transition: opacity 0.3s ease, transform 0.3s ease;
- max-height: 0;
- overflow: hidden;
- }
- .tab-content.active {
- opacity: 1;
- visibility: visible;
- transform: translateY(0);
- max-height: 500px;
- }
- .tab-content p {
- margin: 6px 0;
- color: #bdfcff;
- font-size: 13px;
- text-align: left;
- line-height: 1.4;
- }
- .scroll-box {
- max-height: 180px;
- overflow-y: auto;
- padding-right: 6px;
- margin-top: 5px;
- }
- .scroll-box::-webkit-scrollbar {
- width: 6px;
- }
- .scroll-box::-webkit-scrollbar-thumb {
- background: rgba(0, 255, 255, 0.3);
- border-radius: 5px;
- }
- .description-box {
- background: rgba(0, 255, 255, 0.05);
- border: 1px solid rgba(0, 255, 255, 0.2);
- border-radius: 8px;
- padding: 10px;
- margin-top: 10px;
- color: #e0ffff;
- font-size: 12px;
- text-align: left;
- max-height: 150px;
- overflow-y: auto;
- }
- .description-box::-webkit-scrollbar {
- width: 6px;
- }
- .description-box::-webkit-scrollbar-thumb {
- background: rgba(0, 255, 255, 0.3);
- border-radius: 5px;
- }
- .feat-box, .relationship-box {
- background: rgba(0, 255, 255, 0.05);
- border: 1px solid rgba(0, 255, 255, 0.2);
- border-radius: 6px;
- padding: 10px;
- margin-bottom: 10px;
- text-align: left;
- color: #c7f9ff;
- font-size: 12px;
- box-shadow: 0 0 6px rgba(0, 255, 255, 0.1);
- }
- .particles {
- position: fixed;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- overflow: hidden;
- z-index: 0;
- pointer-events: none;
- }
- .particles span {
- position: absolute;
- bottom: -10px;
- width: 3px;
- height: 3px;
- background: rgba(0, 255, 255, 0.25);
- animation: floatUp 10s infinite linear;
- border-radius: 50%;
- }
- @keyframes floatUp {
- 0% { transform: translateY(0) scale(0.5); opacity: 0; }
- 40% { opacity: 0.6; }
- 100% { transform: translateY(-120vh) scale(1.3); opacity: 0; }
- }
- </style>
- </head>
- <body>
- <div class="particles" id="particles"></div>
- <div class="system-container" id="systemCard">
- <img src="Profile Link Here" class="profile-img"/>
- <div class="glow-title">Status Window</div>
- <div class="button-wrapper">
- <button class="info-button" id="showPanel">Open Interface</button>
- </div>
- <div class="info-panel" id="infoPanel">
- <div class="tab-buttons">
- <button class="tab-button" onclick="switchTab(0)">Info</button>
- <button class="tab-button" onclick="switchTab(1)">Feats</button>
- <button class="tab-button" onclick="switchTab(2)">Relationships</button>
- </div>
- <div class="tab-content">
- <p><strong>Name:</strong> [NAME]</p>
- <p><strong>Class:</strong> [CLASS]</p>
- <p><strong>Level:</strong> [LEVEL]</p>
- <p><strong>Affiliation:</strong> [FACTION]</p>
- <div class="description-box">
- [Brief description here.]
- </div>
- </div>
- <div class="tab-content">
- <div class="scroll-box">
- <div class="feat-box">[FEAT_1]</div>
- <div class="feat-box">[FEAT_2]</div>
- <div class="feat-box">[FEAT_3]</div>
- </div>
- </div>
- <div class="tab-content">
- <div class="scroll-box">
- <div class="relationship-box"><strong>[Character Name]</strong>: [Relationship Description]</div>
- <div class="relationship-box"><strong>[Ally/Faction]</strong>: [Trust Status or History]</div>
- <div class="relationship-box"><strong>[Rival]</strong>: [Enemy / Rival Connection]</div>
- </div>
- </div>
- </div>
- </div>
- <audio autoplay loop hidden>
- <source src="[AUDIO URL HERE]" type="audio/mpeg">
- </audio>
- <script>
- const infoPanel = document.getElementById("infoPanel");
- const showBtn = document.getElementById("showPanel");
- const tabButtons = document.querySelectorAll(".tab-button");
- const tabContents = document.querySelectorAll(".tab-content");
- const card = document.getElementById("systemCard");
- let activeTab = null;
- let infoOpen = false;
- card.addEventListener("mouseenter", () => {
- if (!infoOpen) card.classList.add("show-button");
- });
- card.addEventListener("mouseleave", () => {
- card.classList.remove("show-button");
- });
- showBtn.addEventListener("click", () => {
- infoPanel.classList.add("active");
- showBtn.classList.add("hide");
- card.classList.remove("show-button");
- infoOpen = true;
- });
- function switchTab(index) {
- if (infoOpen && activeTab === index) {
- infoPanel.classList.remove("active");
- showBtn.classList.remove("hide");
- infoOpen = false;
- activeTab = null;
- if (card.matches(':hover')) {
- card.classList.add("show-button");
- }
- tabButtons.forEach(btn => btn.classList.remove("active"));
- tabContents.forEach(content => content.classList.remove("active"));
- return;
- }
- tabButtons.forEach((btn, i) => {
- btn.classList.toggle("active", i === index);
- tabContents[i].classList.toggle("active", i === index);
- });
- if (!infoOpen) {
- infoPanel.classList.add("active");
- showBtn.classList.add("hide");
- card.classList.remove("show-button");
- infoOpen = true;
- }
- activeTab = index;
- }
- const particleContainer = document.getElementById("particles");
- for (let i = 0; i < 80; i++) {
- const dot = document.createElement("span");
- dot.style.left = Math.random() * 100 + "%";
- dot.style.animationDelay = Math.random() * 6 + "s";
- const size = Math.random() * 2 + 2;
- dot.style.width = dot.style.height = `${size}px`;
- dot.style.animationDuration = (8 + Math.random() * 4) + "s";
- particleContainer.appendChild(dot);
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment