mirror of
https://github.com/tiennm99/WPlace-AutoBOT.git
synced 2026-10-14 02:15:18 +00:00
feat: Fully implemented Auto-Switch feature
This commit is contained in:
1 parent
f7a0c7f495
commit
954eed9d98
20 files changed
+2051
-449
No files matched your search
@@ -7,7 +7,7 @@
|
||||
// @match https://wplace.live/*
|
||||
// @grant none
|
||||
// @icon
|
||||
// ==/UserScript==
|
||||
// ==/UserScript==l
|
||||
|
||||
; (async () => {
|
||||
console.log('%c🚀 WPlace AutoBOT Script Manager Loading...', 'color: #00ff41; font-weight: bold; font-size: 16px;');
|
||||
@@ -28,23 +28,14 @@
|
||||
icon: '🖼️',
|
||||
category: 'automation'
|
||||
},
|
||||
{
|
||||
name: 'Auto-Repair.js',
|
||||
displayName: '🔧 Auto Repair',
|
||||
{
|
||||
name: 'Auto-Repair.js',
|
||||
displayName: '🔧 Auto Repair',
|
||||
description: 'Automated repair and maintenance tasks',
|
||||
icon: '🔧',
|
||||
category: 'utility'
|
||||
},
|
||||
{
|
||||
name: 'Acc-Switch.js',
|
||||
displayName: '🔄 Account Switcher',
|
||||
description: 'Temporary account switching script',
|
||||
icon: '🔄',
|
||||
category: 'automation'
|
||||
}
|
||||
];
|
||||
|
||||
// Neon theme styling
|
||||
]; // Neon theme styling
|
||||
const NEON_STYLES = `
|
||||
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');
|
||||
|
||||
|
||||
@@ -206,12 +206,12 @@
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
width: 280px;
|
||||
width: 340px;
|
||||
max-height: calc(100vh - 40px);
|
||||
padding: 0;
|
||||
z-index: 9998;
|
||||
animation: slide-in 0.4s ease-out;
|
||||
overflow: hidden auto;
|
||||
overflow: hidden;
|
||||
transition: all 0.3s ease;
|
||||
user-select: none;
|
||||
|
||||
@@ -233,21 +233,21 @@
|
||||
}
|
||||
|
||||
#wplace-image-bot-container.wplace-compact {
|
||||
width: 240px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
#wplace-image-bot-container.wplace-minimized {
|
||||
width: 200px;
|
||||
width: 260px;
|
||||
height: auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Stats container sits to the right of main (280 + 30 = 330) */
|
||||
/* Stats container sits to the right of main (340 + 30 = 370) */
|
||||
#wplace-stats-container {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
left: 310px;
|
||||
width: 230px;
|
||||
left: 370px;
|
||||
width: 300px;
|
||||
max-height: calc(100vh - 40px);
|
||||
padding: 0;
|
||||
z-index: 9997;
|
||||
@@ -2081,3 +2081,80 @@
|
||||
.wplace-account-placeholder i {
|
||||
color: var(--wplace-warning);
|
||||
}
|
||||
|
||||
/* ===================================== */
|
||||
/* Hide browser default spinner buttons */
|
||||
/* ===================================== */
|
||||
|
||||
/* Hide spinner buttons for all number inputs in the extension */
|
||||
input[type="number"]::-webkit-outer-spin-button,
|
||||
input[type="number"]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Firefox support */
|
||||
input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
/* Specifically target extension number inputs */
|
||||
.wplace-settings-number-input::-webkit-outer-spin-button,
|
||||
.wplace-settings-number-input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.wplace-settings-number-input {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
/* Hide spinners on batch control inputs */
|
||||
.wplace-random-batch-grid input[type="number"]::-webkit-outer-spin-button,
|
||||
.wplace-random-batch-grid input[type="number"]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.wplace-random-batch-grid input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
/* Hide spinners on block size inputs */
|
||||
.wplace-block-size-grid input[type="number"]::-webkit-outer-spin-button,
|
||||
.wplace-block-size-grid input[type="number"]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.wplace-block-size-grid input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
/* Hide spinners on threshold inputs */
|
||||
.resize-threshold-input::-webkit-outer-spin-button,
|
||||
.resize-threshold-input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.resize-threshold-input {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
/* Hide spinners on notification interval inputs */
|
||||
.wplace-notification-interval-input::-webkit-outer-spin-button,
|
||||
.wplace-notification-interval-input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.wplace-notification-interval-input {
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// Background service worker for WPlace AutoBOT Extension
|
||||
|
||||
// Test resource loading on extension start
|
||||
// Test resource loading on extension starto
|
||||
chrome.runtime.onStartup.addListener(async () => {
|
||||
console.log('🚀 WPlace AutoBOT Extension started');
|
||||
const resources = await loadExtensionResources();
|
||||
@@ -15,7 +15,7 @@ chrome.runtime.onInstalled.addListener(async () => {
|
||||
|
||||
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||
if (request.action === 'executeScript') {
|
||||
// Get tabId from sender or request
|
||||
// Get tabId from sender or requests
|
||||
const tabId = request.tabId || sender.tab?.id;
|
||||
|
||||
if (!tabId) {
|
||||
@@ -23,7 +23,7 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||
return;
|
||||
}
|
||||
|
||||
// Use IIFE for async handling
|
||||
// Use IIFE for async handlings
|
||||
(async () => {
|
||||
try {
|
||||
await executeLocalScript(request.scriptName, tabId);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Content script for WPlace AutoBOT - Creates in-page UI
|
||||
|
||||
// Check if we're on wplace.live
|
||||
// Check if we're on wplace.lives
|
||||
if (window.location.hostname === 'wplace.live') {
|
||||
|
||||
// Control variables
|
||||
@@ -59,7 +59,7 @@ if (window.location.hostname === 'wplace.live') {
|
||||
}
|
||||
}
|
||||
|
||||
// Execute script function
|
||||
// Execute script functions
|
||||
async function executeScript(scriptName) {
|
||||
if (!autobotButton || currentScript) return;
|
||||
|
||||
|
||||
+3
-13
@@ -9,7 +9,6 @@
|
||||
"stopPainting": "Boyamayı Durdur",
|
||||
"checkingColors": "🔍 Uygun renkler kontrol ediliyor...",
|
||||
"noColorsFound": "❌ Sitede renk paletini açın ve tekrar deneyin!",
|
||||
"colorsUpdated": "✅ Mevcut renk sayısı arttı {oldCount} -> {newCount}, {diffCount} yeni renk bulundu.",
|
||||
"colorsFound": "✅ {count} uygun renk bulundu. Yüklemeye hazır.",
|
||||
"loadingImage": "🖼️ Resim yükleniyor...",
|
||||
"imageLoaded": "✅ Resim {count} geçerli piksel ile yüklendi",
|
||||
@@ -21,12 +20,8 @@
|
||||
"startPaintingMsg": "🎨 Boyama başlatılıyor...",
|
||||
"paintingProgress": "🧱 İlerleme: {painted}/{total} piksel...",
|
||||
"noCharges": "⌛ Yeterli hak yok. Bekleniyor {time}...",
|
||||
"overlayTilesNotLoaded": "❌ Gerekli harita döşemeleri yüklenmedi. Bağlantıyı kontrol edin veya tekrar deneyin.",
|
||||
"paintingStopped": "⏹️ Boyama kullanıcı tarafından durduruldu",
|
||||
"paintingComplete": "✅ Boyama tamamlandı! {count} piksel boyandı.",
|
||||
"paintingBatchFailed": "❌ Yeniden denemelerden sonra piksel grubu gönderilemedi. Boyama durduruldu.",
|
||||
"paintingPixelCheckFailed": "❌ ({x}, {y}) konumundaki piksel okunamadı. Boyama durduruldu.",
|
||||
"paintingFinalBatchFailed": "⚠️ {count} pikselden oluşan son parti, yeniden denemelerden sonra başarısız oldu.",
|
||||
"paintingStoppedByUser": "⏹️ Boyama kullanıcı tarafından durduruldu.",
|
||||
"paintingError": "❌ Boyama sırasında hata oluştu",
|
||||
"missingRequirements": "❌ Önce resim yükleyip konum seçmelisiniz",
|
||||
"progress": "İlerleme",
|
||||
@@ -35,7 +30,6 @@
|
||||
"estimatedTime": "Tahmini süre",
|
||||
"initMessage": "Başlamak için 'Resim Yükle'ye tıklayın",
|
||||
"waitingInit": "Başlatma bekleniyor...",
|
||||
"fullChargeIn": "Tam Şarj",
|
||||
"initializingToken": "🔧 Turnstile token üreticisi başlatılıyor...",
|
||||
"tokenReady": "✅ Token üreteci hazır - artık boyamaya başlayabilirsiniz!",
|
||||
"tokenRetryLater": "⚠️ Token üreteci gerektiğinde yeniden deneyecek",
|
||||
@@ -146,9 +140,5 @@
|
||||
"hideStats": "İstatistikleri Gizle",
|
||||
"paintOptions": "Boya Seçenekleri",
|
||||
"paintWhitePixels": "Beyaz pikselleri boya",
|
||||
"paintWhitePixelsDescription": "Etkinleştirildiğinde, şablonun beyaz pikselleri boyanacaktır.",
|
||||
"paintTransparentPixels": "Şeffaf pikselleri boya",
|
||||
"paintTransparentPixelsDescription": "Etkinleştirildiğinde, şablonun şeffaf pikselleri boyanır.",
|
||||
"paintUnavailablePixels": "Boyama Yapılamıyor.",
|
||||
"paintUnavailablePixelsDescription": "Etkinleştirildiğinde, kullanılamayan şablon renkleri, mevcut en yakın renk kullanılarak boyanır."
|
||||
}
|
||||
"paintTransparentPixels": "Şeffaf pikselleri boya"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "WPlace AutoBOT Script Launcher",
|
||||
"version": "1.0.0",
|
||||
"version": "2.0.0",
|
||||
"description": "Launch and manage automation scripts for WPlace",
|
||||
"icons": {
|
||||
"16": "icons/icon16.png",
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
<footer>
|
||||
<div class="footer-info">
|
||||
<span>v1.0.0</span>
|
||||
<span>v2.0.0</span>
|
||||
<a href="#" id="settingsBtn">Settings</a>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@@ -18,7 +18,7 @@ const AVAILABLE_SCRIPTS = [
|
||||
{
|
||||
name: 'Auto-Image.js',
|
||||
displayName: '🖼️ Auto Image',
|
||||
description: 'Automated image processing and placement',
|
||||
description: 'Automated image processing and placement with account switching',
|
||||
filename: 'Auto-Image.js'
|
||||
},
|
||||
{
|
||||
@@ -26,12 +26,6 @@ const AVAILABLE_SCRIPTS = [
|
||||
displayName: '🔧 Auto Repair',
|
||||
description: 'Automated repair and maintenance tasks',
|
||||
filename: 'Auto-Repair.js'
|
||||
},
|
||||
{
|
||||
name: 'Acc-Switch.js',
|
||||
displayName: '🔄 Account Switcher',
|
||||
description: 'Temporary account switching script',
|
||||
filename: 'Acc-Switch.js'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -612,9 +606,6 @@ function showNotification(message, type = 'info') {
|
||||
}
|
||||
}, 3000);
|
||||
|
||||
// Log to console as well
|
||||
// console.log(`📢 ${type.toUpperCase()}: ${message}`);
|
||||
|
||||
// Update status indicator
|
||||
if (type === 'error') {
|
||||
statusDot.className = 'status-dot error';
|
||||
@@ -630,10 +621,12 @@ function showNotification(message, type = 'info') {
|
||||
statusText.textContent = 'Info';
|
||||
}
|
||||
|
||||
// Reset status after 3 seconds
|
||||
setTimeout(() => {
|
||||
checkCurrentTab();
|
||||
}, 3000);
|
||||
// Only reset status if it's not the initial "Ready to launch" message
|
||||
if (message !== 'Ready to launch scripts on wplace.live') {
|
||||
setTimeout(() => {
|
||||
checkCurrentTab();
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
|
||||
function escapeHtml(text) {
|
||||
@@ -664,17 +657,6 @@ async function loadStartupScript() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Load startup script selection
|
||||
async function loadStartupScript() {
|
||||
const result = await chrome.storage.local.get('startupScript');
|
||||
const select = document.getElementById('startupScriptSelect');
|
||||
if (select) {
|
||||
select.value = result.startupScript || '';
|
||||
}
|
||||
}
|
||||
|
||||
// Enhanced account validation
|
||||
async function validateAccountToken(token) {
|
||||
try {
|
||||
|
||||
+842
-360
File diff suppressed because it is too large.
Load diff
@@ -1773,16 +1773,21 @@
|
||||
const targetColor = Utils.resolveColor([originalR, originalG, originalB], state.availableColors);
|
||||
const currentColor = Utils.resolveColor(currentPixel.slice(0, 3), state.availableColors);
|
||||
|
||||
if (targetColor.id !== currentColor.id) {
|
||||
damagedPixels.push({
|
||||
x,
|
||||
y,
|
||||
originalColor: targetColor,
|
||||
currentColor: currentColor,
|
||||
originalRgb: [originalR, originalG, originalB],
|
||||
currentRgb: currentPixel.slice(0, 3),
|
||||
isDamagedTransparent: false
|
||||
});
|
||||
if (targetColor.id === currentColor.id) {
|
||||
// Pixel is already correctly painted - skip it
|
||||
continue;
|
||||
}
|
||||
|
||||
// Pixel has wrong color - mark as damaged
|
||||
damagedPixels.push({
|
||||
x,
|
||||
y,
|
||||
originalColor: targetColor,
|
||||
currentColor: currentColor,
|
||||
originalRgb: [originalR, originalG, originalB],
|
||||
currentRgb: currentPixel.slice(0, 3),
|
||||
isDamagedTransparent: false
|
||||
});
|
||||
wrongColorPixelsDetected++;
|
||||
|
||||
if (!state.autonomousMode || wrongColorPixelsDetected <= 10) {
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/**
|
||||
* ImageProcessor - Handles image loading, processing, color conversion, and dithering for WPlace AutoBot
|
||||
* Extracted from Auto-Image.js for better modularity and reusability
|
||||
* Extracted from Auto-Image.js for better modularity and reusabilit
|
||||
*/
|
||||
class ImageProcessor {
|
||||
constructor(imageSrc = null) {
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/**
|
||||
* OverlayManager - Handles overlay processing, tile chunking, and canvas operations for WPlace AutoBot
|
||||
* Extracted from Auto-Image.js for better modularity and reusability
|
||||
* Extracted from Auto-Image.js for better modularity and reusabilityc
|
||||
*/
|
||||
class OverlayManager {
|
||||
constructor() {
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
// @description Turnstile token management for WPlace AutoBot
|
||||
// @author Wbot
|
||||
// @match https://wplace.live/*
|
||||
// @grant none
|
||||
// @grant nones
|
||||
// ==/UserScript==
|
||||
|
||||
/**
|
||||
* TokenManager - Handles Turnstile token generation, caching, and validation for WPlace AutoBot
|
||||
* Extracted from Auto-Image.js for better modularity and reusability
|
||||
* Extracted from Auto-Image.js for better modularity and reusabilitys
|
||||
*/
|
||||
class TokenManager {
|
||||
constructor() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* WPlace AutoBOT - Utils Manager
|
||||
* Centralized utility functions for the WPlace automation system
|
||||
* Centralized utility functions for the WPlace automation systemds
|
||||
*/
|
||||
|
||||
class WPlaceUtilsManager {
|
||||
@@ -408,6 +408,16 @@ class WPlaceUtilsManager {
|
||||
}
|
||||
|
||||
formatTime(ms) {
|
||||
// Handle invalid or infinite values
|
||||
if (!Number.isFinite(ms) || ms < 0) {
|
||||
return '--:--:--';
|
||||
}
|
||||
|
||||
// Handle very large values (more than 999 days)
|
||||
if (ms > 999 * 24 * 60 * 60 * 1000) {
|
||||
return '999d+';
|
||||
}
|
||||
|
||||
const seconds = Math.floor((ms / 1000) % 60);
|
||||
const minutes = Math.floor((ms / (1000 * 60)) % 60);
|
||||
const hours = Math.floor((ms / (1000 * 60 * 60)) % 24);
|
||||
@@ -423,15 +433,34 @@ class WPlaceUtilsManager {
|
||||
}
|
||||
|
||||
calculateEstimatedTime(remainingPixels, charges, cooldown) {
|
||||
if (remainingPixels <= 0) return 0;
|
||||
// Safety checks for input parameters
|
||||
if (!Number.isFinite(remainingPixels) || remainingPixels <= 0) return 0;
|
||||
if (!Number.isFinite(charges) || charges <= 0) charges = 1;
|
||||
if (!Number.isFinite(cooldown) || cooldown <= 0) cooldown = 30000; // Default 30s
|
||||
|
||||
const paintingSpeed = window.state?.paintingSpeed || 5;
|
||||
if (!Number.isFinite(paintingSpeed) || paintingSpeed <= 0) {
|
||||
// Fallback calculation without painting speed
|
||||
const cyclesNeeded = Math.ceil(remainingPixels / Math.max(charges, 1));
|
||||
const timeFromCharges = cyclesNeeded * cooldown;
|
||||
return Math.min(timeFromCharges, 999 * 24 * 60 * 60 * 1000); // Cap at 999 days
|
||||
}
|
||||
|
||||
const paintingSpeedDelay = window.state.paintingSpeed > 0 ? 1000 / window.state.paintingSpeed : 1000;
|
||||
const paintingSpeedDelay = 1000 / paintingSpeed;
|
||||
const timeFromSpeed = remainingPixels * paintingSpeedDelay;
|
||||
|
||||
const cyclesNeeded = Math.ceil(remainingPixels / Math.max(charges, 1));
|
||||
const timeFromCharges = cyclesNeeded * cooldown;
|
||||
|
||||
return timeFromSpeed + timeFromCharges;
|
||||
const totalTime = timeFromSpeed + timeFromCharges;
|
||||
|
||||
// Safety check to prevent infinity and cap at reasonable maximum
|
||||
if (!Number.isFinite(totalTime) || totalTime < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Cap at 999 days to prevent display issues
|
||||
return Math.min(totalTime, 999 * 24 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// Painted pixel tracking helpers
|
||||
@@ -472,6 +501,11 @@ class WPlaceUtilsManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Alias for isPixelPainted - used in pre-filtering logic
|
||||
isPixelMarkedPainted(x, y, regionX = 0, regionY = 0) {
|
||||
return this.isPixelPainted(x, y, regionX, regionY);
|
||||
}
|
||||
|
||||
// Smart save
|
||||
shouldAutoSave() {
|
||||
const now = Date.now();
|
||||
|
||||
@@ -627,3 +627,156 @@
|
||||
border-radius: var(--wplace-radius);
|
||||
color: var(--wplace-text);
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
.wplace-theme-acrylic .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: var(--wplace-radius);
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
padding: 15px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
backdrop-filter: var(--wplace-backdrop);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
.wplace-theme-acrylic .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
transition: 0.4s;
|
||||
border-radius: 24px;
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: white;
|
||||
transition: 0.4s;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-switch input:checked + .wplace-slider-round {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
.wplace-theme-acrylic .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
.wplace-theme-acrylic .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
transition: all 0.3s ease;
|
||||
backdrop-filter: blur(10px);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
.wplace-theme-acrylic .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 9px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||
}.wplace-theme-acrylic .wplace-account-item:hover {
|
||||
background: rgba(255, 255, 255, 0.12);
|
||||
border-color: rgba(255, 255, 255, 0.3);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-account-item.is-current {
|
||||
background: linear-gradient(135deg, rgba(102, 126, 234, 0.3) 0%, rgba(118, 75, 162, 0.3) 100%);
|
||||
border-color: #667eea;
|
||||
box-shadow: 0 0 20px rgba(102, 126, 234, 0.4);
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
.wplace-theme-acrylic .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 25px;
|
||||
}.wplace-theme-acrylic .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 13px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
.wplace-theme-acrylic .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.75);
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ffd700;
|
||||
}
|
||||
|
||||
.wplace-theme-acrylic .wplace-account-stats .fas.fa-tint {
|
||||
color: #00bfff;
|
||||
}
|
||||
@@ -556,7 +556,7 @@
|
||||
color: var(--wplace-text);
|
||||
padding: 4px 8px;
|
||||
font-size: 12px;
|
||||
width: 50px;
|
||||
width: 65px;
|
||||
text-align: center;
|
||||
transition: all 0.2s ease;
|
||||
height: 22px;
|
||||
@@ -617,6 +617,164 @@
|
||||
border: 1px solid rgb(0 0 0 / 10%) !important;
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
.wplace-theme-classic-light .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: var(--wplace-radius);
|
||||
background: rgba(0, 0, 0, 0.03);
|
||||
padding: 15px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
.wplace-theme-classic-light .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #ccc;
|
||||
transition: 0.4s;
|
||||
border-radius: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: white;
|
||||
transition: 0.4s;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-switch input:checked + .wplace-slider-round {
|
||||
background-color: #4facfe;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
.wplace-theme-classic-light .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
.wplace-theme-classic-light .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(0, 0, 0, 0.02);
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
.wplace-theme-classic-light .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: #4facfe;
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 9px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-item:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-color: rgba(0, 0, 0, 0.15);
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-item.is-current {
|
||||
background: rgba(79, 172, 254, 0.1);
|
||||
border-color: #4facfe;
|
||||
box-shadow: 0 0 10px rgba(79, 172, 254, 0.2);
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
.wplace-theme-classic-light .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 12px;
|
||||
margin-bottom: 1px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
.wplace-theme-classic-light .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
font-size: 11px;
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ff9800;
|
||||
}
|
||||
|
||||
.wplace-theme-classic-light .wplace-account-stats .fas.fa-tint {
|
||||
color: #2196f3;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -689,7 +689,7 @@
|
||||
color: white;
|
||||
padding: 4px 8px;
|
||||
font-size: 12px;
|
||||
width: 50px;
|
||||
width: 65px;
|
||||
text-align: center;
|
||||
transition: all 0.2s ease;
|
||||
height: 22px;
|
||||
@@ -747,3 +747,177 @@
|
||||
box-shadow: 0 0 20px rgb(0 0 0 / 50%);
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
:root .wplace-section,
|
||||
.wplace-theme-classic .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: var(--wplace-radius);
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
padding: 15px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
:root .wplace-section-title,
|
||||
.wplace-theme-classic .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
:root .wplace-switch,
|
||||
.wplace-theme-classic .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
:root .wplace-switch input,
|
||||
.wplace-theme-classic .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
:root .wplace-slider-round,
|
||||
.wplace-theme-classic .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #444;
|
||||
transition: 0.4s;
|
||||
border-radius: 24px;
|
||||
}
|
||||
|
||||
:root .wplace-slider-round:before,
|
||||
.wplace-theme-classic .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: white;
|
||||
transition: 0.4s;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
:root .wplace-switch input:checked + .wplace-slider-round,
|
||||
.wplace-theme-classic .wplace-switch input:checked + .wplace-slider-round {
|
||||
background: var(--wplace-slider-track-bg);
|
||||
}
|
||||
|
||||
:root .wplace-switch input:checked + .wplace-slider-round:before,
|
||||
.wplace-theme-classic .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
:root .accounts-list-container,
|
||||
.wplace-theme-classic .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
:root .wplace-account-item,
|
||||
.wplace-theme-classic .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
:root .wplace-account-number,
|
||||
.wplace-theme-classic .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: var(--wplace-highlight);
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 9px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
:root .wplace-account-item:hover,
|
||||
.wplace-theme-classic .wplace-account-item:hover {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
border-color: var(--wplace-highlight);
|
||||
}
|
||||
|
||||
:root .wplace-account-item.is-current,
|
||||
.wplace-theme-classic .wplace-account-item.is-current {
|
||||
background: rgba(79, 172, 254, 0.2);
|
||||
border-color: #4facfe;
|
||||
box-shadow: 0 0 10px rgba(79, 172, 254, 0.3);
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
:root .wplace-account-details,
|
||||
.wplace-theme-classic .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
:root .wplace-account-name,
|
||||
.wplace-theme-classic .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 12px;
|
||||
margin-bottom: 1px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
:root .wplace-account-stats,
|
||||
.wplace-theme-classic .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
font-size: 11px;
|
||||
color: var(--wplace-muted-text);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
:root .wplace-account-stats i,
|
||||
.wplace-theme-classic .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
:root .wplace-account-stats .fas.fa-bolt,
|
||||
.wplace-theme-classic .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ffd700;
|
||||
}
|
||||
|
||||
:root .wplace-account-stats .fas.fa-tint,
|
||||
.wplace-theme-classic .wplace-account-stats .fas.fa-tint {
|
||||
color: #00bfff;
|
||||
}
|
||||
|
||||
@@ -455,7 +455,7 @@
|
||||
color: var(--wplace-text) !important;
|
||||
padding: 2px 4px;
|
||||
font-size: 10px;
|
||||
width: 40px;
|
||||
width: 65px;
|
||||
text-align: center;
|
||||
transition: all 0.2s ease;
|
||||
height: 18px;
|
||||
@@ -516,3 +516,188 @@
|
||||
box-shadow: none !important; /* Optional: remove glows */
|
||||
font-family: 'Press Start 2P', monospace !important;
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
.wplace-theme-neon-cyan .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: 0;
|
||||
background: rgba(0, 255, 255, 0.05);
|
||||
padding: 15px;
|
||||
border: 2px solid #00ffff;
|
||||
box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 8px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
.wplace-theme-neon-cyan .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #1a1a2e;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
border: 2px solid #333;
|
||||
box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: #fff;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-switch input:checked + .wplace-slider-round {
|
||||
background-color: #00ffff;
|
||||
box-shadow: 0 0 20px rgba(0, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
box-shadow: 0 0 12px rgba(0, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
.wplace-theme-neon-cyan .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
.wplace-theme-neon-cyan .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(0, 255, 255, 0.03);
|
||||
border-radius: 0;
|
||||
border: 1px solid #00ffff;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 0 5px rgba(0, 255, 255, 0.2);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
.wplace-theme-neon-cyan .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 8x;
|
||||
height: 8px;
|
||||
background: #00ffff;
|
||||
color: #1a1a2e;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 8px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
border: 1px solid #00ffff;
|
||||
box-shadow: 0 0 8px rgba(0, 255, 255, 0.6);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-item:hover {
|
||||
background: rgba(0, 255, 255, 0.08);
|
||||
border-color: #00ffff;
|
||||
box-shadow: 0 0 15px rgba(0, 255, 255, 0.4);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-item.is-current {
|
||||
background: rgba(0, 255, 255, 0.15);
|
||||
border-color: #00ffff;
|
||||
box-shadow: 0 0 25px rgba(0, 255, 255, 0.6);
|
||||
animation: neon-cyan-pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes neon-cyan-pulse {
|
||||
0%, 100% { box-shadow: 0 0 25px rgba(0, 255, 255, 0.6); }
|
||||
50% { box-shadow: 0 0 35px rgba(0, 255, 255, 0.8); }
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
.wplace-theme-neon-cyan .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 8px;
|
||||
margin-bottom: 1px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 5px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
.wplace-theme-neon-cyan .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
font-size: 8px;
|
||||
color: rgba(0, 255, 255, 0.8);
|
||||
text-transform: uppercase;
|
||||
font-family: var(--wplace-font);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
text-shadow: 0 0 5px currentColor;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ffff00;
|
||||
text-shadow: 0 0 8px #ffff00;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-cyan .wplace-account-stats .fas.fa-tint {
|
||||
color: #00ffff;
|
||||
text-shadow: 0 0 8px #00ffff;
|
||||
}
|
||||
@@ -455,7 +455,7 @@
|
||||
color: var(--wplace-text) !important;
|
||||
padding: 2px 4px;
|
||||
font-size: 10px;
|
||||
width: 40px;
|
||||
width: 65px;
|
||||
text-align: center;
|
||||
transition: all 0.2s ease;
|
||||
height: 18px;
|
||||
@@ -517,3 +517,189 @@
|
||||
box-shadow: none !important; /* Optional: remove glows */
|
||||
font-family: 'Press Start 2P', monospace !important;
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
.wplace-theme-neon-light .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: 0;
|
||||
background: rgba(32, 60, 93, 0.05);
|
||||
padding: 15px;
|
||||
border: 2px solid #203C5D;
|
||||
box-shadow: 0 0 20px rgba(32, 60, 93, 0.2);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 5px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
.wplace-theme-neon-light .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #f0f0f0;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
border: 2px solid #ccc;
|
||||
box-shadow: 0 0 8px rgba(32, 60, 93, 0.15);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: #203C5D;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 8px rgba(32, 60, 93, 0.3);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-switch input:checked + .wplace-slider-round {
|
||||
background-color: #203C5D;
|
||||
box-shadow: 0 0 15px rgba(32, 60, 93, 0.4);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 10px rgba(32, 60, 93, 0.5);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
.wplace-theme-neon-light .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
.wplace-theme-neon-light .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(32, 60, 93, 0.03);
|
||||
border-radius: 0;
|
||||
border: 1px solid #203C5D;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 0 5px rgba(32, 60, 93, 0.1);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
.wplace-theme-neon-light .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: #203C5D;
|
||||
color: white;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 8px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
border: 1px solid #203C5D;
|
||||
box-shadow: 0 0 6px rgba(32, 60, 93, 0.4);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-item:hover {
|
||||
background: rgba(32, 60, 93, 0.08);
|
||||
border-color: #203C5D;
|
||||
box-shadow: 0 0 12px rgba(32, 60, 93, 0.2);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-item.is-current {
|
||||
background: rgba(32, 60, 93, 0.15);
|
||||
border-color: #203C5D;
|
||||
box-shadow: 0 0 20px rgba(32, 60, 93, 0.3);
|
||||
animation: neon-light-pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes neon-light-pulse {
|
||||
0%, 100% { box-shadow: 0 0 20px rgba(32, 60, 93, 0.3); }
|
||||
50% { box-shadow: 0 0 25px rgba(32, 60, 93, 0.4); }
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
.wplace-theme-neon-light .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 8px;
|
||||
margin-bottom: 1px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 3px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
.wplace-theme-neon-light .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
font-size: 8px;
|
||||
color: rgba(32, 60, 93, 0.8);
|
||||
text-transform: uppercase;
|
||||
font-family: var(--wplace-font);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
text-shadow: 0 0 3px currentColor;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ff6b35;
|
||||
text-shadow: 0 0 5px #ff6b35;
|
||||
}
|
||||
|
||||
.wplace-theme-neon-light .wplace-account-stats .fas.fa-tint {
|
||||
color: #203C5D;
|
||||
text-shadow: 0 0 5px #203C5D;
|
||||
}
|
||||
+186
-1
@@ -571,7 +571,7 @@
|
||||
color: var(--wplace-text) !important;
|
||||
padding: 2px 4px;
|
||||
font-size: 10px;
|
||||
width: 40px;
|
||||
width: 65px;
|
||||
text-align: center;
|
||||
transition: all 0.2s ease;
|
||||
height: 18px;
|
||||
@@ -633,3 +633,188 @@
|
||||
font-family: 'Press Start 2P', monospace !important;
|
||||
}
|
||||
|
||||
/* Account switching UI styles */
|
||||
.wplace-theme-neon .wplace-section {
|
||||
margin: 15px 0;
|
||||
border-radius: 0;
|
||||
background: rgba(0, 255, 65, 0.05);
|
||||
padding: 15px;
|
||||
border: 2px solid #00ff41;
|
||||
box-shadow: 0 0 20px rgba(0, 255, 65, 0.3);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
margin-bottom: 10px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 8px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
/* Auto-swap toggle switch */
|
||||
.wplace-theme-neon .wplace-switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-slider-round {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #1a1a2e;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
border: 2px solid #333;
|
||||
box-shadow: 0 0 10px rgba(0, 255, 65, 0.2);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-slider-round:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
left: 3px;
|
||||
bottom: 3px;
|
||||
background-color: #fff;
|
||||
transition: 0.4s;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-switch input:checked + .wplace-slider-round {
|
||||
background-color: #00ff41;
|
||||
box-shadow: 0 0 20px rgba(0, 255, 65, 0.6);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-switch input:checked + .wplace-slider-round:before {
|
||||
transform: translateX(26px);
|
||||
box-shadow: 0 0 12px rgba(0, 255, 65, 0.8);
|
||||
}
|
||||
|
||||
/* Account list container */
|
||||
.wplace-theme-neon .accounts-list-container {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Individual account item */
|
||||
.wplace-theme-neon .wplace-account-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 6px 8px;
|
||||
margin: 4px 0;
|
||||
background: rgba(0, 255, 65, 0.03);
|
||||
border-radius: 0;
|
||||
border: 1px solid #00ff41;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 0 5px rgba(0, 255, 65, 0.2);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Account ordering number */
|
||||
.wplace-theme-neon .wplace-account-number {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: #00ff41;
|
||||
color: #1a1a2e;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 8px;
|
||||
font-weight: bold;
|
||||
z-index: 1;
|
||||
border: 1px solid #00ff41;
|
||||
box-shadow: 0 0 8px rgba(0, 255, 65, 0.6);
|
||||
font-family: var(--wplace-font);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-item:hover {
|
||||
background: rgba(0, 255, 65, 0.08);
|
||||
border-color: #00ff41;
|
||||
box-shadow: 0 0 15px rgba(0, 255, 65, 0.4);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-item.is-current {
|
||||
background: rgba(0, 255, 65, 0.15);
|
||||
border-color: #00ff41;
|
||||
box-shadow: 0 0 25px rgba(0, 255, 65, 0.6);
|
||||
animation: neon-pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes neon-pulse {
|
||||
0%, 100% { box-shadow: 0 0 25px rgba(0, 255, 65, 0.6); }
|
||||
50% { box-shadow: 0 0 35px rgba(0, 255, 65, 0.8); }
|
||||
}
|
||||
|
||||
/* Account details */
|
||||
.wplace-theme-neon .wplace-account-details {
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-name {
|
||||
font-weight: 600;
|
||||
color: var(--wplace-text);
|
||||
font-size: 8px;
|
||||
margin-bottom: 1px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 0 5px var(--wplace-text);
|
||||
font-family: var(--wplace-font);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Account statistics */
|
||||
.wplace-theme-neon .wplace-account-stats {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
font-size: 8px;
|
||||
color: rgba(0, 255, 65, 0.8);
|
||||
text-transform: uppercase;
|
||||
font-family: var(--wplace-font);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-stats i {
|
||||
margin-right: 4px;
|
||||
text-shadow: 0 0 5px currentColor;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-stats .fas.fa-bolt {
|
||||
color: #ffff00;
|
||||
text-shadow: 0 0 8px #ffff00;
|
||||
}
|
||||
|
||||
.wplace-theme-neon .wplace-account-stats .fas.fa-tint {
|
||||
color: #00bfff;
|
||||
text-shadow: 0 0 8px #00bfff;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user