mirror of
https://github.com/Retropex/custom-ocean.xyz-dashboard.git
synced 2025-05-12 19:20:45 +02:00
Add DeepSea theme styles and effects
Implemented new CSS styles for the DeepSea theme in `boot.css`, enhancing visual elements like colors, shadows, and animations for various components. Updated `common.css` to include a footer style and a theme loader for improved user experience. Removed inline styles from `base.html` and replaced them with references to the new styles. Added JavaScript to create dynamic underwater effects when the DeepSea theme is active. Updated footer to include a link to Ocean.xyz.
This commit is contained in:
parent
00d3bbdee9
commit
2021583951
@ -1,3 +1,446 @@
|
|||||||
|
/* Config form styling - fixed width and hidden by default */
|
||||||
|
#config-form {
|
||||||
|
display: none;
|
||||||
|
width: 500px;
|
||||||
|
max-width: 90%;
|
||||||
|
margin: 30px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #0d0d0d;
|
||||||
|
border: 1px solid #f7931a;
|
||||||
|
box-shadow: 0 0 10px rgba(247, 147, 26, 0.5);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Boot text color - updated with theme toggling */
|
||||||
|
body:not(.deepsea-theme) #terminal,
|
||||||
|
body:not(.deepsea-theme) #output,
|
||||||
|
body:not(.deepsea-theme) #prompt-container,
|
||||||
|
body:not(.deepsea-theme) #prompt-text,
|
||||||
|
body:not(.deepsea-theme) #user-input,
|
||||||
|
body:not(.deepsea-theme) #loading-message {
|
||||||
|
color: #f7931a;
|
||||||
|
text-shadow: 0 0 5px rgba(247, 147, 26, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DeepSea theme text color */
|
||||||
|
body.deepsea-theme #terminal,
|
||||||
|
body.deepsea-theme #output,
|
||||||
|
body.deepsea-theme #prompt-container,
|
||||||
|
body.deepsea-theme #prompt-text,
|
||||||
|
body.deepsea-theme #user-input,
|
||||||
|
body.deepsea-theme #loading-message {
|
||||||
|
color: #0088cc;
|
||||||
|
text-shadow: 0 0 5px rgba(0, 136, 204, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DeepSea cursor color */
|
||||||
|
body.deepsea-theme .cursor,
|
||||||
|
body.deepsea-theme .prompt-cursor {
|
||||||
|
background-color: #0088cc;
|
||||||
|
box-shadow: 0 0 5px rgba(0, 136, 204, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Boot-specific DeepSea theme adjustments */
|
||||||
|
body.deepsea-theme #bitcoin-logo {
|
||||||
|
color: #0088cc;
|
||||||
|
border-color: #0088cc;
|
||||||
|
text-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
||||||
|
box-shadow: 0 0 15px rgba(0, 136, 204, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme #config-form {
|
||||||
|
border: 1px solid #0088cc;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .config-title {
|
||||||
|
color: #0088cc;
|
||||||
|
text-shadow: 0 0 8px rgba(0, 136, 204, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .form-group label {
|
||||||
|
color: #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .form-group input,
|
||||||
|
body.deepsea-theme .form-group select {
|
||||||
|
border: 1px solid #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .form-group input:focus,
|
||||||
|
body.deepsea-theme .form-group select:focus {
|
||||||
|
box-shadow: 0 0 5px #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .btn {
|
||||||
|
background-color: #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .btn:hover {
|
||||||
|
background-color: #00b3ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .btn-secondary {
|
||||||
|
background-color: #333;
|
||||||
|
color: #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .tooltip .tooltip-text {
|
||||||
|
border: 1px solid #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .form-group select {
|
||||||
|
background-image: linear-gradient(45deg, transparent 50%, #0088cc 50%), linear-gradient(135deg, #0088cc 50%, transparent 50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DeepSea skip button */
|
||||||
|
body.deepsea-theme #skip-button {
|
||||||
|
background-color: #0088cc;
|
||||||
|
box-shadow: 0 0 8px rgba(0, 136, 204, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme #skip-button:hover {
|
||||||
|
background-color: #00b3ff;
|
||||||
|
box-shadow: 0 0 12px rgba(0, 136, 204, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Original Bitcoin styling preserved by default */
|
||||||
|
.config-title {
|
||||||
|
font-size: 24px;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
color: #f7931a;
|
||||||
|
text-shadow: 0 0 8px rgba(247, 147, 26, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
color: #f7931a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group input,
|
||||||
|
.form-group select {
|
||||||
|
width: 100%;
|
||||||
|
padding: 8px;
|
||||||
|
background-color: #0d0d0d;
|
||||||
|
border: 1px solid #f7931a;
|
||||||
|
color: #fff;
|
||||||
|
font-family: 'VT323', monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group input:focus,
|
||||||
|
.form-group select:focus {
|
||||||
|
outline: none;
|
||||||
|
box-shadow: 0 0 5px #f7931a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-actions {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
padding: 8px 16px;
|
||||||
|
background-color: #f7931a;
|
||||||
|
color: #000;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: 'VT323', monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: #ffa32e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
background-color: #333;
|
||||||
|
color: #f7931a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#form-message {
|
||||||
|
margin-top: 15px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-success {
|
||||||
|
background-color: rgba(50, 205, 50, 0.2);
|
||||||
|
border: 1px solid #32CD32;
|
||||||
|
color: #32CD32;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-error {
|
||||||
|
background-color: rgba(255, 0, 0, 0.2);
|
||||||
|
border: 1px solid #ff0000;
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tooltip {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 5px;
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-color: #333;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 50%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 14px;
|
||||||
|
font-size: 10px;
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tooltip .tooltip-text {
|
||||||
|
visibility: hidden;
|
||||||
|
width: 200px;
|
||||||
|
background-color: #000;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 5px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
bottom: 125%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -100px;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s;
|
||||||
|
font-size: 14px;
|
||||||
|
border: 1px solid #f7931a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tooltip:hover .tooltip-text {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style the select dropdown with custom arrow */
|
||||||
|
.form-group select {
|
||||||
|
appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
background-image: linear-gradient(45deg, transparent 50%, #f7931a 50%), linear-gradient(135deg, #f7931a 50%, transparent 50%);
|
||||||
|
background-position: calc(100% - 15px) calc(1em + 0px), calc(100% - 10px) calc(1em + 0px);
|
||||||
|
background-size: 5px 5px, 5px 5px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Base styling for the Bitcoin logo */
|
||||||
|
#bitcoin-logo {
|
||||||
|
position: relative;
|
||||||
|
white-space: pre;
|
||||||
|
font-family: monospace;
|
||||||
|
height: 130px; /* Set fixed height to match original logo */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update the DeepSea theme logo styling */
|
||||||
|
body.deepsea-theme #bitcoin-logo {
|
||||||
|
color: transparent; /* Hide original logo */
|
||||||
|
position: relative;
|
||||||
|
text-shadow: none;
|
||||||
|
min-height: 120px; /* Ensure enough height for the new logo */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add the new DeepSea ASCII art */
|
||||||
|
body.deepsea-theme #bitcoin-logo::after {
|
||||||
|
content: " ____ ____ \A| _ \\ ___ ___ _ __/ ___| ___ __ _ \A| | | |/ _ \\/ _ \\ '_ \\___ \\ / _ \\/ _` |\A| |_| | __/ __/ |_) |__) | __/ (_| |\A|____/ \\___|\\___|_.__/____/ \\___|\\__,_|\A|_| ";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%); /* Center perfectly */
|
||||||
|
font-size: 100%; /* Full size */
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.2;
|
||||||
|
color: #0088cc;
|
||||||
|
white-space: pre;
|
||||||
|
display: block;
|
||||||
|
text-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
||||||
|
font-family: monospace;
|
||||||
|
z-index: 1;
|
||||||
|
padding: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add "DeepSea" version info */
|
||||||
|
body.deepsea-theme #bitcoin-logo::before {
|
||||||
|
content: "v.21";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 10px;
|
||||||
|
color: #0088cc;
|
||||||
|
font-size: 16px;
|
||||||
|
text-shadow: 0 0 5px rgba(0, 136, 204, 0.5);
|
||||||
|
font-family: 'VT323', monospace;
|
||||||
|
z-index: 2; /* Ensure version displays on top */
|
||||||
|
}
|
||||||
|
/* Ocean Wave Ripple Effect for DeepSea Theme */
|
||||||
|
body.deepsea-theme::after {
|
||||||
|
content: "";
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
background: transparent;
|
||||||
|
opacity: 0.1;
|
||||||
|
z-index: 10;
|
||||||
|
animation: oceanRipple 8s infinite linear;
|
||||||
|
background-image: repeating-linear-gradient( 0deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.1) 1px, transparent 1px, transparent 6px );
|
||||||
|
background-size: 100% 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ocean waves moving animation */
|
||||||
|
@keyframes oceanRipple {
|
||||||
|
0% {
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateY(6px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retro glitch effect for DeepSea Theme */
|
||||||
|
body.deepsea-theme::before {
|
||||||
|
content: "";
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 3;
|
||||||
|
opacity: 0.15;
|
||||||
|
background-image: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 73, 109, 0.1) 50%), linear-gradient(90deg, rgba(0, 81, 122, 0.03), rgba(0, 136, 204, 0.08), rgba(0, 191, 255, 0.03));
|
||||||
|
background-size: 100% 2px, 3px 100%;
|
||||||
|
animation: glitchEffect 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Glitch animation */
|
||||||
|
@keyframes glitchEffect {
|
||||||
|
0% {
|
||||||
|
opacity: 0.15;
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
20% {
|
||||||
|
opacity: 0.17;
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
opacity: 0.14;
|
||||||
|
background-position: -1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
60% {
|
||||||
|
opacity: 0.15;
|
||||||
|
background-position: 1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
80% {
|
||||||
|
opacity: 0.16;
|
||||||
|
background-position: -2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 0.15;
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Deep underwater light rays */
|
||||||
|
body.deepsea-theme {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.deepsea-theme .underwater-rays {
|
||||||
|
position: fixed;
|
||||||
|
top: -50%;
|
||||||
|
left: -50%;
|
||||||
|
right: -50%;
|
||||||
|
bottom: -50%;
|
||||||
|
width: 200%;
|
||||||
|
height: 200%;
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 1;
|
||||||
|
background-image: radial-gradient(ellipse at top, rgba(0, 136, 204, 0.1) 0%, rgba(0, 136, 204, 0) 70%), radial-gradient(ellipse at bottom, rgba(0, 91, 138, 0.15) 0%, rgba(0, 0, 0, 0) 70%);
|
||||||
|
animation: lightRays 15s ease infinite alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Light ray animation */
|
||||||
|
@keyframes lightRays {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg) scale(1);
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg) scale(1.1);
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Subtle digital noise texture */
|
||||||
|
body.deepsea-theme .digital-noise {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4woEFQwNDaabTQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACASURBVGje7dixDcIwFEbhb8QMKWn5dwEWY4fswAasRJkBkhfAIarsNDEF5x5LrV/dJ1cEAAAAAOzHuefF5byzZ7tS6xDj6qoQpdRxUvNM6lH3rPeM1+ZJ3ROtqe9feGcjY8z74M8UvJGxEVHxTcIbGSsR+SECAAAAsC9/8G82GwHDD80AAAAASUVORK5CYII=');
|
||||||
|
opacity: 0.05;
|
||||||
|
z-index: 2;
|
||||||
|
pointer-events: none;
|
||||||
|
animation: noise 0.5s steps(5) infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Noise animation */
|
||||||
|
@keyframes noise {
|
||||||
|
0% {
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
20% {
|
||||||
|
transform: translate(-1px, 1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
transform: translate(1px, -1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
60% {
|
||||||
|
transform: translate(-2px, -1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
80% {
|
||||||
|
transform: translate(2px, 1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Base Styles with a subtle radial background for extra depth */
|
/* Base Styles with a subtle radial background for extra depth */
|
||||||
body {
|
body {
|
||||||
background: linear-gradient(135deg, #121212, #000000);
|
background: linear-gradient(135deg, #121212, #000000);
|
||||||
|
@ -1,3 +1,74 @@
|
|||||||
|
.footer {
|
||||||
|
margin-top: 30px;
|
||||||
|
padding: 10px 0;
|
||||||
|
color: grey;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
text-shadow: 0 0 5px rgba(100, 100, 100, 0.3);
|
||||||
|
border-top: 1px solid rgba(128, 128, 128, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style >
|
||||||
|
<!-- Preload theme to prevent flicker -->
|
||||||
|
<style id="theme-preload" >
|
||||||
|
/* Theme-aware loading state */
|
||||||
|
html.bitcoin-theme {
|
||||||
|
background-color: #111111;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.deepsea-theme {
|
||||||
|
background-color: #0c141a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#theme-loader {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 9999;
|
||||||
|
font-family: 'VT323', monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.bitcoin-theme #theme-loader {
|
||||||
|
background-color: #111111;
|
||||||
|
color: #f2a900;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.deepsea-theme #theme-loader {
|
||||||
|
background-color: #0c141a;
|
||||||
|
color: #0088cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loader-icon {
|
||||||
|
font-size: 48px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
animation: spin 2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loader-text {
|
||||||
|
font-size: 24px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide content during load */
|
||||||
|
body {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
/* Common styling elements shared across all pages */
|
/* Common styling elements shared across all pages */
|
||||||
:root {
|
:root {
|
||||||
--bg-color: #0a0a0a;
|
--bg-color: #0a0a0a;
|
||||||
|
@ -26,77 +26,6 @@
|
|||||||
<!-- Page-specific CSS -->
|
<!-- Page-specific CSS -->
|
||||||
{% block css %}{% endblock %}
|
{% block css %}{% endblock %}
|
||||||
|
|
||||||
<style>
|
|
||||||
.footer {
|
|
||||||
margin-top: 30px;
|
|
||||||
padding: 10px 0;
|
|
||||||
color: grey;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
text-shadow: 0 0 5px rgba(100, 100, 100, 0.3);
|
|
||||||
border-top: 1px solid rgba(128, 128, 128, 0.2);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<!-- Preload theme to prevent flicker -->
|
|
||||||
<style id="theme-preload">
|
|
||||||
/* Theme-aware loading state */
|
|
||||||
html.bitcoin-theme {
|
|
||||||
background-color: #111111;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.deepsea-theme {
|
|
||||||
background-color: #0c141a;
|
|
||||||
}
|
|
||||||
|
|
||||||
#theme-loader {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
z-index: 9999;
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.bitcoin-theme #theme-loader {
|
|
||||||
background-color: #111111;
|
|
||||||
color: #f2a900;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.deepsea-theme #theme-loader {
|
|
||||||
background-color: #0c141a;
|
|
||||||
color: #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-icon {
|
|
||||||
font-size: 48px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
animation: spin 2s infinite linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-text {
|
|
||||||
font-size: 24px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spin {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide content during load */
|
|
||||||
body {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script>
|
<script>
|
||||||
// Execute this immediately to preload theme
|
// Execute this immediately to preload theme
|
||||||
(function () {
|
(function () {
|
||||||
@ -144,6 +73,23 @@
|
|||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<script>
|
||||||
|
// Add underwater effects for DeepSea theme
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
// Check if DeepSea theme is active
|
||||||
|
if (localStorage.getItem('useDeepSeaTheme') === 'true') {
|
||||||
|
// Create underwater light rays
|
||||||
|
const rays = document.createElement('div');
|
||||||
|
rays.className = 'underwater-rays';
|
||||||
|
document.body.appendChild(rays);
|
||||||
|
|
||||||
|
// Create digital noise
|
||||||
|
const noise = document.createElement('div');
|
||||||
|
noise.className = 'digital-noise';
|
||||||
|
document.body.appendChild(noise);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<!-- Connection status indicator -->
|
<!-- Connection status indicator -->
|
||||||
<div id="connectionStatus"></div>
|
<div id="connectionStatus"></div>
|
||||||
@ -188,7 +134,7 @@
|
|||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer class="footer text-center">
|
<footer class="footer text-center">
|
||||||
<p>Not affiliated with Ocean.xyz</p>
|
<p>Not affiliated with <a href="https://www.Ocean.xyz">Ocean.xyz</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -9,450 +9,6 @@
|
|||||||
<link rel="stylesheet" href="/static/css/theme-toggle.css">
|
<link rel="stylesheet" href="/static/css/theme-toggle.css">
|
||||||
<!-- Add Theme JS -->
|
<!-- Add Theme JS -->
|
||||||
<script src="/static/js/theme.js"></script>
|
<script src="/static/js/theme.js"></script>
|
||||||
<style>
|
|
||||||
/* Config form styling - fixed width and hidden by default */
|
|
||||||
#config-form {
|
|
||||||
display: none;
|
|
||||||
width: 500px;
|
|
||||||
max-width: 90%;
|
|
||||||
margin: 30px auto;
|
|
||||||
padding: 20px;
|
|
||||||
background-color: #0d0d0d;
|
|
||||||
border: 1px solid #f7931a;
|
|
||||||
box-shadow: 0 0 10px rgba(247, 147, 26, 0.5);
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Boot text color - updated with theme toggling */
|
|
||||||
body:not(.deepsea-theme) #terminal,
|
|
||||||
body:not(.deepsea-theme) #output,
|
|
||||||
body:not(.deepsea-theme) #prompt-container,
|
|
||||||
body:not(.deepsea-theme) #prompt-text,
|
|
||||||
body:not(.deepsea-theme) #user-input,
|
|
||||||
body:not(.deepsea-theme) #loading-message {
|
|
||||||
color: #f7931a;
|
|
||||||
text-shadow: 0 0 5px rgba(247, 147, 26, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DeepSea theme text color */
|
|
||||||
body.deepsea-theme #terminal,
|
|
||||||
body.deepsea-theme #output,
|
|
||||||
body.deepsea-theme #prompt-container,
|
|
||||||
body.deepsea-theme #prompt-text,
|
|
||||||
body.deepsea-theme #user-input,
|
|
||||||
body.deepsea-theme #loading-message {
|
|
||||||
color: #0088cc;
|
|
||||||
text-shadow: 0 0 5px rgba(0, 136, 204, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DeepSea cursor color */
|
|
||||||
body.deepsea-theme .cursor,
|
|
||||||
body.deepsea-theme .prompt-cursor {
|
|
||||||
background-color: #0088cc;
|
|
||||||
box-shadow: 0 0 5px rgba(0, 136, 204, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Boot-specific DeepSea theme adjustments */
|
|
||||||
body.deepsea-theme #bitcoin-logo {
|
|
||||||
color: #0088cc;
|
|
||||||
border-color: #0088cc;
|
|
||||||
text-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
|
||||||
box-shadow: 0 0 15px rgba(0, 136, 204, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme #config-form {
|
|
||||||
border: 1px solid #0088cc;
|
|
||||||
box-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .config-title {
|
|
||||||
color: #0088cc;
|
|
||||||
text-shadow: 0 0 8px rgba(0, 136, 204, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .form-group label {
|
|
||||||
color: #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .form-group input,
|
|
||||||
body.deepsea-theme .form-group select {
|
|
||||||
border: 1px solid #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .form-group input:focus,
|
|
||||||
body.deepsea-theme .form-group select:focus {
|
|
||||||
box-shadow: 0 0 5px #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .btn {
|
|
||||||
background-color: #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .btn:hover {
|
|
||||||
background-color: #00b3ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .btn-secondary {
|
|
||||||
background-color: #333;
|
|
||||||
color: #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .tooltip .tooltip-text {
|
|
||||||
border: 1px solid #0088cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .form-group select {
|
|
||||||
background-image: linear-gradient(45deg, transparent 50%, #0088cc 50%), linear-gradient(135deg, #0088cc 50%, transparent 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DeepSea skip button */
|
|
||||||
body.deepsea-theme #skip-button {
|
|
||||||
background-color: #0088cc;
|
|
||||||
box-shadow: 0 0 8px rgba(0, 136, 204, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme #skip-button:hover {
|
|
||||||
background-color: #00b3ff;
|
|
||||||
box-shadow: 0 0 12px rgba(0, 136, 204, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Original Bitcoin styling preserved by default */
|
|
||||||
.config-title {
|
|
||||||
font-size: 24px;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
color: #f7931a;
|
|
||||||
text-shadow: 0 0 8px rgba(247, 147, 26, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group label {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
color: #f7931a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group input,
|
|
||||||
.form-group select {
|
|
||||||
width: 100%;
|
|
||||||
padding: 8px;
|
|
||||||
background-color: #0d0d0d;
|
|
||||||
border: 1px solid #f7931a;
|
|
||||||
color: #fff;
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group input:focus,
|
|
||||||
.form-group select:focus {
|
|
||||||
outline: none;
|
|
||||||
box-shadow: 0 0 5px #f7931a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-actions {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
padding: 8px 16px;
|
|
||||||
background-color: #f7931a;
|
|
||||||
color: #000;
|
|
||||||
border: none;
|
|
||||||
cursor: pointer;
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn:hover {
|
|
||||||
background-color: #ffa32e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-secondary {
|
|
||||||
background-color: #333;
|
|
||||||
color: #f7931a;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form-message {
|
|
||||||
margin-top: 15px;
|
|
||||||
padding: 10px;
|
|
||||||
border-radius: 3px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message-success {
|
|
||||||
background-color: rgba(50, 205, 50, 0.2);
|
|
||||||
border: 1px solid #32CD32;
|
|
||||||
color: #32CD32;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message-error {
|
|
||||||
background-color: rgba(255, 0, 0, 0.2);
|
|
||||||
border: 1px solid #ff0000;
|
|
||||||
color: #ff0000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
margin-left: 5px;
|
|
||||||
width: 14px;
|
|
||||||
height: 14px;
|
|
||||||
background-color: #333;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 50%;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 14px;
|
|
||||||
font-size: 10px;
|
|
||||||
cursor: help;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip .tooltip-text {
|
|
||||||
visibility: hidden;
|
|
||||||
width: 200px;
|
|
||||||
background-color: #000;
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 5px;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1;
|
|
||||||
bottom: 125%;
|
|
||||||
left: 50%;
|
|
||||||
margin-left: -100px;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.3s;
|
|
||||||
font-size: 14px;
|
|
||||||
border: 1px solid #f7931a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip:hover .tooltip-text {
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Style the select dropdown with custom arrow */
|
|
||||||
.form-group select {
|
|
||||||
appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
background-image: linear-gradient(45deg, transparent 50%, #f7931a 50%), linear-gradient(135deg, #f7931a 50%, transparent 50%);
|
|
||||||
background-position: calc(100% - 15px) calc(1em + 0px), calc(100% - 10px) calc(1em + 0px);
|
|
||||||
background-size: 5px 5px, 5px 5px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
padding-right: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Base styling for the Bitcoin logo */
|
|
||||||
#bitcoin-logo {
|
|
||||||
position: relative;
|
|
||||||
white-space: pre;
|
|
||||||
font-family: monospace;
|
|
||||||
height: 130px; /* Set fixed height to match original logo */
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Update the DeepSea theme logo styling */
|
|
||||||
body.deepsea-theme #bitcoin-logo {
|
|
||||||
color: transparent; /* Hide original logo */
|
|
||||||
position: relative;
|
|
||||||
text-shadow: none;
|
|
||||||
min-height: 120px; /* Ensure enough height for the new logo */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add the new DeepSea ASCII art */
|
|
||||||
body.deepsea-theme #bitcoin-logo::after {
|
|
||||||
content: " ____ ____ \A| _ \\ ___ ___ _ __/ ___| ___ __ _ \A| | | |/ _ \\/ _ \\ '_ \\___ \\ / _ \\/ _` |\A| |_| | __/ __/ |_) |__) | __/ (_| |\A|____/ \\___|\\___|_.__/____/ \\___|\\__,_|\A|_| ";
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%); /* Center perfectly */
|
|
||||||
font-size: 100%; /* Full size */
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 1.2;
|
|
||||||
color: #0088cc;
|
|
||||||
white-space: pre;
|
|
||||||
display: block;
|
|
||||||
text-shadow: 0 0 10px rgba(0, 136, 204, 0.5);
|
|
||||||
font-family: monospace;
|
|
||||||
z-index: 1;
|
|
||||||
padding: 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add "DeepSea" version info */
|
|
||||||
body.deepsea-theme #bitcoin-logo::before {
|
|
||||||
content: "v.21";
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
right: 10px;
|
|
||||||
color: #0088cc;
|
|
||||||
font-size: 16px;
|
|
||||||
text-shadow: 0 0 5px rgba(0, 136, 204, 0.5);
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
z-index: 2; /* Ensure version displays on top */
|
|
||||||
}
|
|
||||||
/* Ocean Wave Ripple Effect for DeepSea Theme */
|
|
||||||
body.deepsea-theme::after {
|
|
||||||
content: "";
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
pointer-events: none;
|
|
||||||
background: transparent;
|
|
||||||
opacity: 0.1;
|
|
||||||
z-index: 10;
|
|
||||||
animation: oceanRipple 8s infinite linear;
|
|
||||||
background-image: repeating-linear-gradient( 0deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.1) 1px, transparent 1px, transparent 6px );
|
|
||||||
background-size: 100% 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ocean waves moving animation */
|
|
||||||
@keyframes oceanRipple {
|
|
||||||
0% {
|
|
||||||
transform: translateY(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: translateY(6px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Retro glitch effect for DeepSea Theme */
|
|
||||||
body.deepsea-theme::before {
|
|
||||||
content: "";
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
pointer-events: none;
|
|
||||||
z-index: 3;
|
|
||||||
opacity: 0.15;
|
|
||||||
background-image: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 73, 109, 0.1) 50%), linear-gradient(90deg, rgba(0, 81, 122, 0.03), rgba(0, 136, 204, 0.08), rgba(0, 191, 255, 0.03));
|
|
||||||
background-size: 100% 2px, 3px 100%;
|
|
||||||
animation: glitchEffect 2s infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Glitch animation */
|
|
||||||
@keyframes glitchEffect {
|
|
||||||
0% {
|
|
||||||
opacity: 0.15;
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
20% {
|
|
||||||
opacity: 0.17;
|
|
||||||
}
|
|
||||||
|
|
||||||
40% {
|
|
||||||
opacity: 0.14;
|
|
||||||
background-position: -1px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
60% {
|
|
||||||
opacity: 0.15;
|
|
||||||
background-position: 1px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
80% {
|
|
||||||
opacity: 0.16;
|
|
||||||
background-position: -2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 0.15;
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Deep underwater light rays */
|
|
||||||
body.deepsea-theme {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.deepsea-theme .underwater-rays {
|
|
||||||
position: fixed;
|
|
||||||
top: -50%;
|
|
||||||
left: -50%;
|
|
||||||
right: -50%;
|
|
||||||
bottom: -50%;
|
|
||||||
width: 200%;
|
|
||||||
height: 200%;
|
|
||||||
background: rgba(0, 0, 0, 0);
|
|
||||||
pointer-events: none;
|
|
||||||
z-index: 1;
|
|
||||||
background-image: radial-gradient(ellipse at top, rgba(0, 136, 204, 0.1) 0%, rgba(0, 136, 204, 0) 70%), radial-gradient(ellipse at bottom, rgba(0, 91, 138, 0.15) 0%, rgba(0, 0, 0, 0) 70%);
|
|
||||||
animation: lightRays 15s ease infinite alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Light ray animation */
|
|
||||||
@keyframes lightRays {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0deg) scale(1);
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg) scale(1.1);
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Subtle digital noise texture */
|
|
||||||
body.deepsea-theme .digital-noise {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4woEFQwNDaabTQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAACASURBVGje7dixDcIwFEbhb8QMKWn5dwEWY4fswAasRJkBkhfAIarsNDEF5x5LrV/dJ1cEAAAAAOzHuefF5byzZ7tS6xDj6qoQpdRxUvNM6lH3rPeM1+ZJ3ROtqe9feGcjY8z74M8UvJGxEVHxTcIbGSsR+SECAAAAsC9/8G82GwHDD80AAAAASUVORK5CYII=');
|
|
||||||
opacity: 0.05;
|
|
||||||
z-index: 2;
|
|
||||||
pointer-events: none;
|
|
||||||
animation: noise 0.5s steps(5) infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Noise animation */
|
|
||||||
@keyframes noise {
|
|
||||||
0% {
|
|
||||||
transform: translate(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
20% {
|
|
||||||
transform: translate(-1px, 1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
40% {
|
|
||||||
transform: translate(1px, -1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
60% {
|
|
||||||
transform: translate(-2px, -1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
80% {
|
|
||||||
transform: translate(2px, 1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: translate(0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
|
Loading…
Reference in New Issue
Block a user