Merge pull request #214 from Dax233/2.1.1

Update codebase to v2.1.0 & Fix WASM 403 errors via API Hooking
This commit is contained in:
MiraclePatrickLumowa authored and GitHub committed 2025-11-20 11:35:14 +08:00
commit d37899e7c7
14 files changed
+5813 -5389

No files matched your search

+299 -8
View File
@@ -614,15 +614,99 @@
/* Theme-specific styling applied via theme files */
}
/* V2 Two-Column Layout */
.resize-container-v2 {
max-width: 1400px;
width: 95%;
max-height: 95%;
overflow: hidden;
}
.resize-two-column-layout {
display: flex;
gap: 20px;
height: calc(100vh - 200px);
max-height: 800px;
margin-top: 15px;
}
/* Left Column: Scrollable Configurations */
.resize-config-column {
flex: 0 0 480px;
display: flex;
flex-direction: column;
overflow: hidden;
}
.resize-config-scroll {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
padding-right: 10px;
}
/* Custom scrollbar for config column */
.resize-config-scroll::-webkit-scrollbar {
width: 8px;
}
.resize-config-scroll::-webkit-scrollbar-track {
background: var(--wplace-bg-ghost);
border-radius: 4px;
}
.resize-config-scroll::-webkit-scrollbar-thumb {
background: var(--wplace-border-subtle);
border-radius: 4px;
}
.resize-config-scroll::-webkit-scrollbar-thumb:hover {
background: var(--wplace-accent);
}
/* Right Column: Fixed Preview */
.resize-preview-column {
flex: 1;
display: flex;
flex-direction: column;
min-width: 600px;
position: relative;
overflow: hidden;
}
.resize-preview-zoom-controls {
flex-shrink: 0;
display: flex;
align-items: center;
gap: 8px;
padding: 10px;
border-bottom: 1px solid var(--wplace-border-subtle);
background: var(--wplace-bg-ghost);
flex-wrap: wrap;
justify-content: center;
}
.resize-preview-wrapper {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
margin: 15px 0;
height: 300px;
overflow: hidden;
position: relative;
background: var(--wplace-bg-canvas, #1a1a1a);
border: 1px solid var(--wplace-border-subtle);
margin: 0;
height: auto;
}
/* Theme-specific styling applied via theme files */
.resize-camera-help {
flex-shrink: 0;
text-align: center;
padding: 8px;
font-size: 12px;
color: var(--wplace-text-dim);
border-top: 1px solid var(--wplace-border-subtle);
background: var(--wplace-bg-ghost);
}
.resize-canvas-stack {
@@ -648,8 +732,12 @@
display: flex;
gap: 8px;
align-items: center;
margin-top: 8px;
margin: 20px 0;
font-size: 12px;
padding: 15px;
background: var(--wplace-bg-ghost);
border-radius: 8px;
border: 1px solid var(--wplace-border-subtle);
}
/* Missing button hover styles */
@@ -668,19 +756,84 @@
.resize-controls {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-columns: 1fr;
gap: 15px;
align-items: center;
margin-bottom: 20px;
}
.resize-control-label {
display: flex;
flex-direction: column;
gap: 5px;
font-size: 14px;
}
.resize-checkbox-label {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
cursor: pointer;
}
.resize-checkbox-label input[type="checkbox"] {
cursor: pointer;
}
.resize-slider {
width: 100%;
height: 4px;
height: 6px;
border: none;
outline: none;
appearance: none;
-webkit-appearance: none;
background: linear-gradient(to right, var(--wplace-icon-primary), var(--wplace-icon-secondary));
border-radius: 3px;
cursor: pointer;
transition: opacity 0.2s ease;
}
/* Theme-specific styling applied via theme files */
.resize-slider:hover {
opacity: 0.9;
}
.resize-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--wplace-slider-thumb-bg, white);
cursor: pointer;
box-shadow: var(--wplace-shadow-slider-thumb);
transition: all 0.2s ease;
}
.resize-slider::-webkit-slider-thumb:hover {
transform: scale(1.2);
box-shadow: var(--wplace-shadow-slider-hover);
}
.resize-slider::-moz-range-thumb {
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--wplace-slider-thumb-bg, white);
cursor: pointer;
border: none;
box-shadow: var(--wplace-shadow-slider-thumb);
transition: all 0.2s ease;
}
.resize-slider::-moz-range-thumb:hover {
transform: scale(1.2);
box-shadow: var(--wplace-shadow-slider-hover);
}
.resize-slider::-moz-range-track {
background: transparent;
border: none;
}
.resize-zoom-controls {
@@ -1360,6 +1513,7 @@
.wplace-overlay-opacity-slider {
width: 100%;
appearance: none;
-webkit-appearance: none;
height: 8px;
outline: none;
@@ -1493,6 +1647,25 @@
padding: 4px 8px;
}
/* Edit Artwork button - enlarged */
#editImageBtn {
padding: 12px 24px !important;
font-size: 16px !important;
font-weight: bold !important;
min-width: 180px;
transition: all 0.2s ease;
}
#editImageBtn i {
font-size: 18px;
margin-right: 8px;
}
#editImageBtn:hover {
transform: scale(1.05);
box-shadow: 0 4px 12px rgba(79, 172, 254, 0.4);
}
.resize-zoom-slider {
max-width: 220px;
}
@@ -1631,11 +1804,24 @@
}
.resize-advanced-select {
padding: 6px 8px;
width: 100%;
max-width: 100%;
padding: 8px 10px;
border-radius: 6px;
border: 1px solid var(--wplace-border-faint);
background: var(--wplace-bg-whisper);
color: var(--wplace-text);
font-size: 12px;
cursor: pointer;
box-sizing: border-box;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.resize-advanced-select:hover {
border-color: var(--wplace-border-subtle);
background: var(--wplace-bg-subtle);
}
.resize-advanced-toggle {
@@ -1643,6 +1829,21 @@
align-items: center;
justify-content: space-between;
font-size: 12px;
padding: 12px 0;
border-bottom: 1px solid var(--wplace-border-ultra-faint);
}
.resize-advanced-toggle:last-child {
border-bottom: none;
}
.resize-advanced-controls > div:not(.resize-advanced-toggle) {
padding: 12px 0;
border-bottom: 1px solid var(--wplace-border-ultra-faint);
}
.resize-advanced-controls > div:last-child {
border-bottom: none;
}
.resize-advanced-toggle-content {
@@ -1652,6 +1853,35 @@
.resize-advanced-description {
margin-top: 2px;
opacity: 0.65;
font-size: 11px;
line-height: 1.4;
}
.resize-slider-label {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
font-size: 13px;
font-weight: 500;
color: var(--wplace-text);
}
.resize-slider-label i {
margin-right: 6px;
color: var(--wplace-icon-primary);
}
.resize-slider-value {
background: var(--wplace-bg-subtle);
padding: 3px 10px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
min-width: 50px;
text-align: center;
color: var(--wplace-highlight);
border: 1px solid var(--wplace-border-ghost);
}
.resize-advanced-checkbox {
@@ -2236,4 +2466,65 @@ input[type="number"] {
.pill-btn.active {
color: white;
}
/* ========================= */
/* Responsive Design */
/* ========================= */
/* Adjust layout for smaller screens */
@media (max-width: 1400px) {
.resize-container-v2 {
max-width: 95%;
}
.resize-two-column-layout {
max-height: 700px;
}
.resize-config-column {
flex: 0 0 400px;
}
.resize-preview-column {
min-width: 500px;
}
}
@media (max-width: 1200px) {
.resize-two-column-layout {
flex-direction: column;
max-height: 85vh;
}
.resize-config-column {
flex: 0 0 auto;
max-height: 300px;
}
.resize-preview-column {
flex: 1;
min-width: 100%;
}
}
@media (max-width: 768px) {
.resize-container-v2 {
width: 98%;
padding: 10px;
}
.resize-config-column {
max-height: 250px;
}
.resize-preview-zoom-controls {
flex-wrap: wrap;
gap: 4px;
}
.resize-zoom-btn {
padding: 4px 8px;
font-size: 12px;
}
}
+37
View File
@@ -140,6 +140,26 @@ async function executeLocalScript(scriptName, tabId) {
} else {
console.warn(`%c⚠️ auto-image-styles.css not found in loaded themes`, 'color: #f59e0b; font-weight: bold;');
}
// Inject edit-panel.css if available (THEME-INDEPENDENT)
// This ensures edit panel has its own styling regardless of bot theme
if (themeCSS['edit-panel.css']) {
const editPanelContent = themeCSS['edit-panel.css'];
const styleElement = document.createElement('style');
styleElement.id = 'edit-panel-stylesheet';
styleElement.textContent = editPanelContent;
document.head.appendChild(styleElement);
console.log(`%c✨ AUTO-INJECTED: edit-panel.css (THEME-INDEPENDENT)`, 'color: #10b981; font-weight: bold;');
console.log(` 📏 Injected size: ${editPanelContent.length.toLocaleString()} characters`);
console.log(` 📍 Source: Extension local file`);
console.log(` 🎯 Target: <head> as <style> element`);
console.log(` 🆔 Element ID: edit-panel-stylesheet`);
console.log(` 🎨 Independence: Will override any theme-specific edit panel styles`);
} else {
console.warn(`%c⚠️ edit-panel.css not found in loaded themes`, 'color: #f59e0b; font-weight: bold;');
}
console.groupEnd();
} else {
console.warn(`%c⚠️ No themes received from extension`, 'color: #f59e0b; font-weight: bold;');
@@ -249,6 +269,22 @@ async function executeLocalScript(scriptName, tabId) {
styleElement.textContent = themeContent;
document.head.appendChild(styleElement);
// CRITICAL: Re-inject edit-panel.css AFTER theme to ensure it always wins
// This makes edit panel styling independent from bot themes
if (window.AUTOBOT_THEMES['edit-panel.css']) {
const existingEditPanel = document.getElementById('edit-panel-stylesheet');
if (existingEditPanel) {
existingEditPanel.remove();
}
const editPanelStyle = document.createElement('style');
editPanelStyle.id = 'edit-panel-stylesheet';
editPanelStyle.textContent = window.AUTOBOT_THEMES['edit-panel.css'];
document.head.appendChild(editPanelStyle);
console.log(` 🎨 Edit panel CSS re-injected after theme (ensures independence)`);
}
console.log(`%c✅ Theme applied successfully: ${themeName}`, 'color: #10b981; font-weight: bold;');
console.log(` 📏 Content size: ${themeContent.length.toLocaleString()} characters`);
console.log(` 📍 Source: Extension local file`);
@@ -317,6 +353,7 @@ async function loadExtensionResources() {
console.group('%c🎨 Theme Files Loading', 'color: #8b5cf6; font-weight: bold;');
const themeFiles = [
'auto-image-styles.css',
'edit-panel.css',
'themes/acrylic.css',
'themes/classic-light.css',
'themes/classic.css',
File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "WPlace AutoBOT Script Launcher",
"version": "2.0.7",
"version": "2.1.0",
"description": "Launch and manage automation scripts for WPlace",
"icons": {
"16": "icons/icon16.png",
@@ -55,6 +55,7 @@
"Script-manager.js",
"Script-manager-fixed.js",
"auto-image-styles.css",
"edit-panel.css",
"themes/*.css",
"lang/*.json",
"lang/lang/*.json",
+1 -1
View File
@@ -113,7 +113,7 @@
<footer>
<div class="footer-info">
<span>v2.0.7</span>
<span>v2.1.0</span>
<a href="#" id="settingsBtn">Settings</a>
</div>
</footer>
File diff suppressed because it is too large. Load diff
+59 -95
View File
@@ -472,113 +472,77 @@
async function createWasmToken(regionX, regionY, payload) {
try {
// Load the Pawtect module and WASM
const mod = await import(new URL('/_app/immutable/chunks/'+pawtect_chunk, location.origin).href);
let wasm;
try {
wasm = await mod._();
console.log('✅ WASM initialized successfully');
} catch (wasmError) {
console.error('❌ WASM initialization failed:', wasmError);
// Load the Pawtect module
// Fallback to D1pWKeJi.js if pawtect_chunk is undefined, ensuring stability
const chunkName = (typeof pawtect_chunk !== 'undefined' && pawtect_chunk) ? pawtect_chunk : "D1pWKeJi.js";
const mod = await import(new URL('/_app/immutable/chunks/' + chunkName, location.origin).href);
// Check for API client (mod.a) instead of WASM init (mod._)
if (!mod.a) {
console.error('❌ API Client (mod.a) not found');
return null;
}
try {
try {
const me = await fetch(`https://backend.wplace.live/me`, { credentials: 'include' }).then(r => r.ok ? r.json() : null);
if (me?.id) {
mod.i(me.id);
console.log('✅ user ID set:', me.id);
}
} catch { }
} catch (userIdError) {
console.log('⚠️ Error setting user ID:', userIdError.message);
}
try {
const testUrl = `https://backend.wplace.live/s0/pixel/${regionX}/${regionY}`;
if (mod.r) {
mod.r(testUrl);
console.log('✅ Request URL set:', testUrl);
} else {
console.log('⚠️ request_url function (mod.r) not available');
}
} catch (urlError) {
console.log('⚠️ Error setting request URL:', urlError.message);
console.log('✅ Module loaded and API client found');
// Prepare data for paint() method
// We need to reconstruct the internal pixel object structure expected by mod.a.paint
console.log('📝 Reconstructing paint data from payload...');
const paintPixels = [];
for (let i = 0; i < payload.colors.length; i++) {
paintPixels.push({
tile: [regionX, regionY],
pixel: [payload.coords[i * 2], payload.coords[i * 2 + 1]],
season: mod.C, // Use exported season constant
colorIdx: payload.colors[i]
});
}
console.log('🔍 payload:', payload);
// Hook request method to capture token
// This bypasses the need to manually handle WASM memory or obfuscated context functions
console.log('🚀 Hooking API client to capture token...');
const originalRequest = mod.a.request.bind(mod.a);
let capturedToken = null;
// Encode payload
const enc = new TextEncoder();
const dec = new TextDecoder();
const bodyStr = JSON.stringify(payload);
const bytes = enc.encode(bodyStr);
console.log('🔍 Payload size:', bytes.length, 'bytes');
console.log('🔄 Payload string:', bodyStr);
// Allocate WASM memory with validation
let inPtr;
try {
if (!wasm.__wbindgen_malloc) {
console.error('❌ __wbindgen_malloc function not found');
return null;
mod.a.request = async function(url, options) {
// Intercept the token from headers
if (options && options.headers && options.headers['x-pawtect-token']) {
capturedToken = options.headers['x-pawtect-token'];
console.log('✅ Token captured via hook');
// Return fake success to satisfy paint() execution flow
return { status: 200, json: async () => ({}) };
}
// Pass through other requests (like /me)
return originalRequest(url, options);
};
inPtr = wasm.__wbindgen_malloc(bytes.length, 1);
console.log('✅ WASM memory allocated, pointer:', inPtr);
// Trigger the paint function
console.log('🚀 Calling mod.a.paint() to generate token...');
try {
// This handles UserID, URL, and WASM interaction internally
await mod.a.paint(paintPixels, payload.fp);
} catch (e) {
// Ignore errors caused by our fake request response
} finally {
// Restore original request method (Cleanup)
mod.a.request = originalRequest;
console.log('✅ Request hook restored');
}
// Copy data to WASM memory
const wasmBuffer = new Uint8Array(wasm.memory.buffer, inPtr, bytes.length);
wasmBuffer.set(bytes);
console.log('✅ Data copied to WASM memory');
} catch (memError) {
console.error('❌ Memory allocation error:', memError);
// Validate and return result
if (capturedToken) {
console.log('');
console.log('🎉 SUCCESS!');
console.log('🔑 Full token:');
console.log(capturedToken);
return capturedToken;
} else {
console.error('❌ Failed to capture token via hooking');
return null;
}
// Call the WASM function
console.log('🚀 Calling get_pawtected_endpoint_payload...');
let outPtr, outLen, token;
try {
const result = wasm.get_pawtected_endpoint_payload(inPtr, bytes.length);
console.log('✅ Function called, result type:', typeof result, result);
if (Array.isArray(result) && result.length === 2) {
[outPtr, outLen] = result;
console.log('✅ Got output pointer:', outPtr, 'length:', outLen);
// Decode the result
const outputBuffer = new Uint8Array(wasm.memory.buffer, outPtr, outLen);
token = dec.decode(outputBuffer);
console.log('✅ Token decoded successfully');
} else {
console.error('❌ Unexpected function result format:', result);
return null;
}
} catch (funcError) {
console.error('❌ Function call error:', funcError);
console.error('Stack trace:', funcError.stack);
return null;
}
// Cleanup memory
try {
if (wasm.__wbindgen_free && outPtr && outLen) {
wasm.__wbindgen_free(outPtr, outLen, 1);
console.log('✅ Output memory freed');
}
if (wasm.__wbindgen_free && inPtr) {
wasm.__wbindgen_free(inPtr, bytes.length, 1);
console.log('✅ Input memory freed');
}
} catch (cleanupError) {
console.log('⚠️ Cleanup warning:', cleanupError.message);
}
console.log('🎉 SUCCESS!');
console.log('🔑 Full token:', token);
return token;
} catch (error) {
console.error('❌ Failed to generate fp parameter:', error);
console.error('❌ Failed to generate token:', error);
return null;
}
}
File diff suppressed because it is too large. Load diff
-883
View File
@@ -1,883 +0,0 @@
/* WPlace Auto-Image Bot - Acrylic Theme */
/* Beautiful theme with translucent blurred panels */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@font-face {
font-family: 'Apple Color Emoji';
src: url('https://raw.githubusercontent.com/GORAlexComp/AppleColorEmojiFont/refs/heads/main/fonts/AppleColorEmoji.ttf');
}
/* Multi-account panel styling */
.wplace-theme-acrylic #wplace-accounts-container {
background: var(--wplace-primary);
color: var(--wplace-text);
border-radius: var(--wplace-radius);
box-shadow: none;
backdrop-filter: var(--wplace-backdrop);
border: var(--wplace-border-width) var(--wplace-border-style) var(--wplace-border-color);
min-width: 250px;
}
.wplace-theme-acrylic #wplace-accounts-container * {
font-size: 15px;
line-height: normal;
}
/* Active account styles */
.wplace-theme-acrylic .wplace-accounts-container .active-account {
--active-bg: color-mix(in srgb, white 15%, transparent);
--active-color: var(--wplace-success);
--inactive-color: var(--wplace-text);
--progress-bg: rgb(255 255 255 / 10%);
--progress-fill: white;
}
/* Main Container */
.wplace-theme-acrylic #wplace-image-bot-container {
background: var(--wplace-primary);
color: var(--wplace-text);
border-radius: var(--wplace-radius);
box-shadow: none;
backdrop-filter: var(--wplace-backdrop);
border: var(--wplace-border-width) var(--wplace-border-style) var(--wplace-border-color);
min-width: 300px;
}
.wplace-theme-acrylic #wplace-image-bot-container * {
font-size: 15px;
line-height: normal;
}
.wplace-theme-acrylic .wplace-content {
display: flex;
flex-direction: column;
/* gap: 10px; */
padding: 10px;
}
#wplace-image-bot-container.wplace-dragging {
transition: none !important;
box-shadow: none !important;
transform: none !important;
}
/* Stats */
.wplace-theme-acrylic #wplace-stats-container {
background: var(--wplace-primary);
color: var(--wplace-text);
border-radius: var(--wplace-radius);
box-shadow: none;
backdrop-filter: var(--wplace-backdrop);
border: var(--wplace-border-width) var(--wplace-border-style) var(--wplace-border-color);
}
.wplace-theme-acrylic .wplace-stats {
margin-bottom: 0;
}
.wplace-theme-acrylic .wplace-colors-section {
border-top: none;
margin: 0;
}
/* Settings Container */
.wplace-theme-acrylic #wplace-settings-container {
background: var(--wplace-primary) !important;
color: var(--wplace-text) !important;
border-radius: var(--wplace-radius) !important;
box-shadow: none !important;
backdrop-filter: var(--wplace-backdrop) !important;
border: var(--wplace-border-width) var(--wplace-border-style) var(--wplace-border-color) !important;
max-width: 400px !important;
}
.wplace-theme-acrylic .wplace-settings-header {
background: transparent;
padding: 0;
}
.wplace-theme-acrylic .wplace-settings-header:hover {
background: transparent !important;
}
.wplace-theme-acrylic .wplace-settings-icon {
animation: none;
font-size: 15px;
}
.wplace-theme-acrylic .wplace-settings-content {
padding: 10px;
display: flex;
flex-direction: column;
gap: 10px;
}
.wplace-theme-acrylic .wplace-settings-footer {
border-top: none;
padding: 10px;
}
.wplace-theme-acrylic .wplace-settings-section {
margin: 0;
}
.wplace-theme-acrylic .wplace-settings-section-wrapper,
.wplace-theme-acrylic .wplace-overlay-wrapper,
.wplace-theme-acrylic .wplace-batch-controls {
padding: 0 !important;
background: transparent !important;
border: none !important;
}
/* Headers */
.wplace-theme-acrylic .wplace-header,
.wplace-theme-acrylic .wplace-settings-title-wrapper {
height: 40px;
padding: 7px 7px 7px 10px;
font-weight: 600;
background: var(--wplace-accent);
color: var(--wplace-highlight);
}
.wplace-theme-acrylic .wplace-header span,
.wplace-theme-acrylic .wplace-settings-title {
max-width: 150px;
font-size: 15px;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.wplace-theme-acrylic .wplace-header-controls #compactBtn {
display: none;
}
.wplace-theme-acrylic .wplace-header-btn,
.wplace-theme-acrylic .wplace-settings-close-btn {
background: #2e2e2e;
color: var(--wplace-highlight);
border: none;
font-size: 12px;
border-radius: 4px;
width: 24px;
height: 24px;
}
.wplace-theme-acrylic .wplace-header-btn i {
font-size: 12px !important;
}
.wplace-theme-acrylic .wplace-header-btn:hover,
.wplace-theme-acrylic .wplace-settings-close-btn:hover {
background: transparent;
transform: none;
}
/* Sections */
.wplace-theme-acrylic .wplace-section {
display: flex;
flex-direction: column;
gap: 8px;
background: transparent;
padding: 0;
border: none;
margin: 0;
}
.wplace-theme-acrylic .wplace-section-title {
color: var(--wplace-highlight);
text-transform: capitalize;
font-size: 13px;
font-weight: 600;
pointer-events: none;
letter-spacing: unset;
}
.wplace-theme-acrylic .wplace-section-title i {
display: none;
}
.wplace-theme-acrylic .wplace-status-section {
background: transparent;
padding: 0;
margin: 0;
border: none;
display: flex;
flex-direction: column;
gap: 8px;
}
/* Status Styling */
.wplace-theme-acrylic .wplace-stats {
background: transparent;
padding: 0;
border: none;
}
.wplace-theme-acrylic .wplace-stat-value {
color: var(--wplace-highlight);
}
.wplace-theme-acrylic .wplace-status {
border-radius: var(--wplace-radius);
border: none;
box-shadow: none;
padding: 10px;
font-weight: 500;
}
.wplace-theme-acrylic .status-default {
background: color-mix(in srgb, white 15%, transparent) !important;
}
.wplace-theme-acrylic .status-success {
background: color-mix(in srgb, var(--wplace-success) 15%, transparent);
color: var(--wplace-success);
}
.wplace-theme-acrylic .status-error {
background: color-mix(in srgb, var(--wplace-error) 15%, transparent);
color: var(--wplace-error);
}
.wplace-theme-acrylic .status-warning {
background: color-mix(in srgb, var(--wplace-warning) 15%, transparent);
color: var(--wplace-warning);
}
/* Buttons */
.wplace-theme-acrylic .wplace-btn {
border-radius: 8px;
border: none;
height: max-content;
padding: 10px;
gap: 5px;
flex-direction: column;
align-items: flex-start;
line-height: normal;
text-align: left;
font-size: 15px !important;
box-shadow: none;
}
.wplace-theme-acrylic .wplace-btn::before {
display: none;
}
.wplace-theme-acrylic .wplace-btn:disabled {
box-shadow: none !important;
}
.wplace-theme-acrylic .wplace-btn:hover:not(:disabled) {
transform: none;
animation: none;
box-shadow: none !important;
filter: brightness(0.9);
}
.wplace-theme-acrylic .wplace-btn-primary,
.wplace-theme-acrylic .wplace-btn-upload {
background: white !important;
color: black !important;
border: none !important;
}
.wplace-theme-acrylic .wplace-btn-upload:hover:not(:disabled) {
background: revert !important;
}
.wplace-theme-acrylic .wplace-btn-secondary,
.wplace-theme-acrylic .wplace-btn-select,
.wplace-theme-acrylic .wplace-btn-file,
.wplace-theme-acrylic .wplace-btn-overlay {
background: var(--wplace-secondary);
}
.wplace-theme-acrylic .wplace-btn-start {
background: var(--wplace-success);
color: white;
}
.wplace-theme-acrylic .wplace-btn-stop {
background: var(--wplace-error);
color: white;
}
.wplace-theme-acrylic .wplace-btn.active {
background: white;
color: black;
box-shadow: none !important;
}
.wplace-theme-acrylic .wplace-btn.active i {
filter: none;
}
.wplace-theme-acrylic .wplace-settings-apply-btn {
background: white;
color: black;
border-radius: 8px;
}
/* Compact Input Buttons */
.wplace-theme-acrylic .wplace-input-btn-small,
.wplace-theme-acrylic .wplace-input-btn-small:hover,
.wplace-theme-acrylic .wplace-input-btn-small:active {
background: white;
color: black;
border: none;
transform: none;
border-radius: 4px;
box-shadow: none;
font-weight: 500;
width: 25px;
height: 25px;
}
/* Alerts */
.wplace-theme-acrylic .wplace-alert-base {
border-radius: var(--wplace-radius);
backdrop-filter: var(--wplace-backdrop);
border: none;
box-shadow: none;
}
.wplace-theme-acrylic .wplace-alert-info {
background: color-mix(in srgb, #0000e5 50%, transparent);
}
.wplace-theme-acrylic .wplace-alert-success {
background: color-mix(in srgb, var(--wplace-success) 50%, transparent);
}
.wplace-theme-acrylic .wplace-alert-error {
background: color-mix(in srgb, var(--wplace-error) 50%, transparent);
}
.wplace-theme-acrylic .wplace-alert-warning {
background: color-mix(in srgb, var(--wplace-warning) 50%, transparent);
}
/* Progress Bar */
.wplace-theme-acrylic .wplace-progress {
background: var(--wplace-secondary);
border-radius: 4px;
margin: 0;
border: none;
}
.wplace-theme-acrylic .wplace-progress-bar {
background: white;
}
.wplace-theme-acrylic .wplace-progress-bar::after {
display: none;
}
/* Form Controls */
.wplace-theme-acrylic .wplace-settings-checkbox,
.wplace-theme-acrylic .wplace-notification-checkbox,
.wplace-theme-acrylic .wplace-speed-checkbox {
cursor: pointer;
width: 20px;
height: 20px;
flex-shrink: 0;
accent-color: var(--wplace-highlight);
}
.wplace-theme-acrylic .wplace-settings-select,
.wplace-theme-acrylic .wplace-settings-number-input,
.wplace-theme-acrylic .wplace-cooldown-input,
.wplace-theme-acrylic .wplace-notification-interval-input {
background: rgb(255 255 255 / 10%);
color: white;
border: 1px solid rgb(255 255 255 / 25%);
border-radius: 8px;
box-shadow: none;
transition-duration: 0.3s;
}
.wplace-theme-acrylic .wplace-settings-select:hover,
.wplace-theme-acrylic .wplace-settings-number-input:hover,
.wplace-theme-acrylic .wplace-cooldown-input:hover,
.wplace-theme-acrylic .wplace-notification-interval-input:hover {
border-color: rgb(255 255 255 / 50%);
}
.wplace-theme-acrylic .wplace-settings-select:focus,
.wplace-theme-acrylic .wplace-settings-number-input:focus,
.wplace-theme-acrylic .wplace-cooldown-input:focus,
.wplace-theme-acrylic .wplace-notification-interval-input:focus {
border-color: white;
}
.wplace-theme-acrylic .wplace-settings-option {
background: #2d3748;
color: white;
}
.wplace-theme-acrylic .wplace-settings-select option {
background: #2d3748;
color: white;
}
.wplace-theme-acrylic .wplace-cooldown-input {
border-radius: 4px !important;
}
.wplace-theme-acrylic .wplace-cooldown-input:focus {
background: rgb(255 255 255 / 10%);
box-shadow: none;
}
.wplace-theme-acrylic .wplace-overlay-opacity-value {
background-color: var(--wplace-secondary) !important;
border: none !important;
}
/* Sliders */
.wplace-theme-acrylic .wplace-slider,
.wplace-theme-acrylic .wplace-speed-slider,
.wplace-theme-acrylic .wplace-overlay-opacity-slider {
background: var(--wplace-secondary) !important;
border-radius: 3px !important;
height: 6px !important;
}
.wplace-theme-acrylic .wplace-slider::-webkit-slider-thumb,
.wplace-theme-acrylic .resize-slider::-webkit-slider-thumb,
.wplace-theme-acrylic .wplace-speed-slider::-webkit-slider-thumb,
.wplace-theme-acrylic .wplace-overlay-opacity-slider::-webkit-slider-thumb {
width: 16px !important;
height: 16px !important;
border-radius: 4px !important;
background: white !important;
box-shadow: none !important;
transform: none !important;
}
.wplace-theme-acrylic .wplace-speed-value {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
border-radius: 8px;
color: white;
box-shadow: 0 3px 10px rgb(79 172 254 / 30%);
border: 1px solid rgb(255 255 255 / 20%);
}
.wplace-theme-acrylic .resize-slider {
-webkit-appearance: revert;
}
/* Layout Controls */
.wplace-theme-acrylic .wplace-slider-container {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin: 0;
}
.wplace-theme-acrylic .wplace-input-label-compact {
color: rgba(255, 255, 255, 0.75);
margin-left: 4px;
text-transform: lowercase;
white-space: nowrap;
}
.wplace-theme-acrylic .wplace-cooldown-control {
margin: 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.wplace-theme-acrylic .wplace-cooldown-control label {
font-weight: 400;
margin-bottom: 0;
display: block;
}
.wplace-theme-acrylic .wplace-cooldown-input-group {
margin: 0;
background: transparent;
}
/* Color Elements */
.wplace-theme-acrylic .wplace-color-item-name {
color: #ccc;
}
.wplace-theme-acrylic .wplace-color-swatch {
border: 1px solid rgb(255 255 255 / 20%);
border-radius: 4px;
}
.wplace-theme-acrylic .wplace-color-swatch:not(.active) {
filter: grayscale(80%);
}
.wplace-theme-acrylic .wplace-color-swatch.unavailable {
border-color: #666;
}
.wplace-theme-acrylic .wplace-color-swatch.unavailable:not(.active) {
filter: grayscale(90%);
}
.wplace-theme-acrylic .wplace-color-swatch.active::after {
text-shadow: 0 0 3px black;
}
.wplace-theme-acrylic .wplace-stat-color-swatch {
border-radius: 3px;
border: 1px solid rgb(255 255 255 / 10%);
box-shadow: inset 0 0 2px rgb(0 0 0 / 50%);
}
.wplace-theme-acrylic .wplace-stat-colors-grid {
background: var(--wplace-secondary);
border-radius: 8px;
}
.wplace-theme-acrylic .wplace-color-divider {
background: rgb(255 255 255 / 10%);
}
/* Icons */
.wplace-theme-acrylic .wplace-icon-key,
.wplace-theme-acrylic .wplace-icon-robot,
.wplace-theme-acrylic .wplace-icon-speed,
.wplace-theme-acrylic .wplace-icon-bell,
.wplace-theme-acrylic .wplace-icon-palette,
.wplace-theme-acrylic .wplace-icon-globe,
.wplace-theme-acrylic .wplace-icon-paint,
.wplace-theme-acrylic .wplace-icon-eye,
.wplace-theme-acrylic .wplace-icon-compass,
.wplace-theme-acrylic .wplace-icon-route,
.wplace-theme-acrylic .wplace-icon-table,
.wplace-theme-acrylic .wplace-icon-dice {
color: white;
}
/* Typography */
.wplace-theme-acrylic .wplace-cooldown-unit {
display: none;
}
.wplace-theme-acrylic .wplace-settings-toggle-title,
.wplace-theme-acrylic .wplace-overlay-opacity-label {
font-size: 15px !important;
}
.wplace-theme-acrylic .wplace-settings-description,
.wplace-theme-acrylic .wplace-random-batch-description,
.wplace-theme-acrylic .wplace-settings-toggle-description {
font-size: 12px;
color: rgb(255 255 255 / 75%) !important;
}
/* Turnstile Overlay */
.wplace-theme-acrylic .wplace-turnstile-overlay {
background: var(--wplace-primary);
border-radius: var(--wplace-radius);
box-shadow: none;
backdrop-filter: var(--wplace-backdrop);
border: none;
padding: 16px !important;
color: var(--wplace-text) !important;
}
.wplace-theme-acrylic .wplace-turnstile-hide-btn {
border-radius: 8px !important;
backdrop-filter: var(--wplace-backdrop) !important;
background: var(--wplace-primary) !important;
top: -25px !important;
right: 0 !important;
transition: all 0.3s ease !important;
}
.wplace-theme-acrylic .wplace-turnstile-hide-btn:hover {
background: white !important;
color: black !important;
}
/* Resize Tools */
.wplace-theme-acrylic .resize-tools button {
border-radius: 6px;
border: 1px solid rgb(255 255 255 / 20%);
background: rgb(255 255 255 / 6%);
color: #fff;
}
.wplace-theme-acrylic .resize-overlay {
background: rgb(0 0 0 / 50%);
}
/* TODO: More resize menu styles */
.wplace-theme-acrylic .resize-container {
background: var(--wplace-secondary);
backdrop-filter: var(--wplace-backdrop);
border: none;
border-radius: var(--wplace-radius);
color: var(--wplace-text);
}
/* Account switching UI styles */
.wplace-theme-acrylic .wplace-section {
margin: 5px;
border-radius: var(--wplace-radius);
background: rgba(255, 255, 255, 0.08);
padding: 5px;
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: 2px;
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: 500px;
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;
}
/* Move Artwork Panel Styles for Acrylic Theme */
.wplace-theme-acrylic .wplace-move-panel {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: var(--wplace-primary);
border: var(--wplace-border-width) var(--wplace-border-style) var(--wplace-border-color);
border-radius: var(--wplace-radius);
padding: 24px;
z-index: 10000;
backdrop-filter: var(--wplace-backdrop);
min-width: 240px;
text-align: center;
font-family: var(--wplace-font);
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
}
.wplace-theme-acrylic .wplace-move-panel-title {
color: var(--wplace-text);
margin: 0 0 20px 0;
font-size: 18px;
font-weight: 600;
letter-spacing: 0.5px;
}
.wplace-theme-acrylic .wplace-move-controls {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 12px;
margin-bottom: 20px;
}
.wplace-theme-acrylic .wplace-move-btn {
padding: 12px;
background: rgba(255, 255, 255, 0.2);
color: var(--wplace-text);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 12px;
cursor: pointer;
font-family: var(--wplace-font);
font-size: 16px;
font-weight: 600;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
}
.wplace-theme-acrylic .wplace-move-btn:hover {
background: rgba(255, 255, 255, 0.3);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
.wplace-theme-acrylic .wplace-move-btn:active {
transform: translateY(0);
background: rgba(255, 255, 255, 0.4);
}
.wplace-theme-acrylic .wplace-move-center {
color: var(--wplace-text);
padding: 12px;
font-size: 14px;
font-weight: 600;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.8;
}
.wplace-theme-acrylic .wplace-move-close-btn {
background: rgba(255, 59, 48, 0.8);
color: white;
border: 1px solid rgba(255, 59, 48, 0.3);
padding: 12px 20px;
border-radius: 12px;
cursor: pointer;
font-family: var(--wplace-font);
font-size: 15px;
font-weight: 600;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
}
.wplace-theme-acrylic .wplace-move-close-btn:hover {
background: rgba(255, 59, 48, 1);
transform: translateY(-1px);
box-shadow: 0 8px 20px rgba(255, 59, 48, 0.3);
}
.wplace-theme-acrylic .wplace-move-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
z-index: 9999;
backdrop-filter: blur(8px);
}
+1 -982
View File
@@ -555,7 +555,7 @@
border-radius: 4px;
color: var(--wplace-text);
padding: 4px 8px;
font-size: 12px;
font-size: 10px;
width: 65px;
text-align: center;
transition: all 0.2s ease;
@@ -775,984 +775,3 @@
color: #2196f3;
}
/* Edit Panel Styles for Classic Light Theme - Fullscreen Layout */
:root .edit-overlay,
.wplace-theme-classic-light .edit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(255, 255, 255, 0.95);
z-index: 10001;
backdrop-filter: blur(8px);
}
/* Enhanced Container Layout */
:root .edit-container,
.wplace-theme-classic-light .edit-container {
background: linear-gradient(135deg, #FBFBFB 0%, #E0E0E1 100%);
border-radius: 8px;
box-shadow: 0 15px 60px rgba(0, 0, 0, 0.2);
display: flex;
flex-direction: column;
width: 98vw;
height: 98vh;
max-width: 98vw;
max-height: 98vh;
min-width: 1000px;
min-height: 700px;
overflow: hidden;
backdrop-filter: blur(15px);
border: 1px solid rgba(0, 0, 0, 0.1);
position: fixed;
top: 1vh;
left: 1vw;
z-index: 10000;
}
:root .edit-main,
.wplace-theme-classic-light .edit-main {
display: flex;
flex: 1;
min-height: 0;
}
/* Enhanced Header Layout */
:root .edit-header,
.wplace-theme-classic-light .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
background: linear-gradient(135deg, #E0E0E1 0%, #F3F3F3 100%);
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
min-height: 70px;
}
:root .edit-header-left,
.wplace-theme-classic-light .edit-header-left {
display: flex;
flex-direction: column;
gap: 4px;
}
:root .edit-header h3,
.wplace-theme-classic-light .edit-header h3 {
margin: 0;
color: var(--wplace-text);
font-size: 18px;
font-weight: 600;
}
:root .edit-nav-controls,
.wplace-theme-classic-light .edit-nav-controls {
display: flex;
align-items: center;
gap: 20px;
}
/* Zoom Controls */
:root .zoom-controls,
.wplace-theme-classic-light .zoom-controls {
display: flex;
align-items: center;
gap: 8px;
background: rgba(0, 0, 0, 0.05);
padding: 6px 12px;
border-radius: 6px;
border: 1px solid rgba(0, 0, 0, 0.1);
}
:root .zoom-select,
.wplace-theme-classic-light .zoom-select {
background: linear-gradient(135deg, #F3F3F3 0%, #FBFBFB 100%);
border: 1px solid rgba(0, 0, 0, 0.2);
color: var(--wplace-text);
border-radius: 4px;
padding: 4px 8px;
font-size: 11px;
cursor: pointer;
min-width: 60px;
}
:root .zoom-select:hover,
.wplace-theme-classic-light .zoom-select:hover {
background: linear-gradient(135deg, #FBFBFB 0%, #F3F3F3 100%);
}
:root .edit-content,
.wplace-theme-classic-light .edit-content {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-main-area,
.wplace-theme-classic-light .edit-main-area {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-toolbar,
.wplace-theme-classic-light .edit-toolbar {
width: 80px;
min-width: 80px;
background: rgba(0, 0, 0, 0.05);
border-right: 1px solid rgba(0, 0, 0, 0.2);
padding: 8px 4px;
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
:root .edit-canvas-area,
.wplace-theme-classic-light .edit-canvas-area {
flex: 4;
display: flex;
flex-direction: column;
position: relative;
background: #F3F3F3;
min-width: 0;
}
:root .edit-canvas-container,
.wplace-theme-classic-light .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
min-height: 400px;
max-width: 100%;
}
:root .edit-canvas,
.wplace-theme-classic-light .edit-canvas {
border: 1px solid rgba(0, 0, 0, 0.3);
cursor: crosshair;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
background-image:
repeating-conic-gradient(rgba(0, 0, 0, 0.08) 0% 25%, transparent 0% 50%) 50% / 20px 20px;
}
:root .edit-tool-group,
.wplace-theme-classic-light .edit-tool-group {
background: rgba(0, 0, 0, 0.05);
border-radius: 6px;
padding: 6px 4px;
border: 1px solid rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
width: 100%;
}
:root .edit-tool-group h4,
.wplace-theme-classic-light .edit-tool-group h4 {
color: var(--wplace-highlight);
margin: 0 0 8px 0;
font-size: 13px;
font-weight: 600;
}
:root .edit-brush-tools,
.wplace-theme-classic-light .edit-brush-tools {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
:root .edit-tool-btn,
.wplace-theme-classic-light .edit-tool-btn {
background: linear-gradient(135deg, #FBFBFB 0%, #E0E0E1 100%);
border: 1px solid rgba(0, 0, 0, 0.2);
color: var(--wplace-text);
border-radius: 6px;
padding: 8px 12px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 12px;
display: flex;
align-items: center;
gap: 6px;
}
:root .edit-tool-btn:hover,
.wplace-theme-classic-light .edit-tool-btn:hover {
background: linear-gradient(135deg, #E0E0E1 0%, #FBFBFB 100%);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
:root .edit-tool-btn.active,
.wplace-theme-classic-light .edit-tool-btn.active {
background: var(--wplace-highlight);
color: white;
border-color: var(--wplace-text);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(32, 60, 93, 0.3);
}
:root .edit-color-palette,
.wplace-theme-classic-light .edit-color-palette {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(24px, 1fr));
gap: 4px;
max-height: 150px;
overflow-y: auto;
}
:root .edit-color-swatch,
.wplace-theme-classic-light .edit-color-swatch {
width: 24px;
height: 24px;
border: 2px solid rgba(0, 0, 0, 0.3);
border-radius: 4px;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-color-swatch:hover,
.wplace-theme-classic-light .edit-color-swatch:hover {
transform: scale(1.1);
border-color: var(--wplace-text);
}
:root .edit-color-swatch.active,
.wplace-theme-classic-light .edit-color-swatch.active {
border-color: #4facfe;
box-shadow: 0 0 8px rgba(79, 172, 254, 0.5);
transform: scale(1.1);
}
:root .edit-brush-size-container,
.wplace-theme-classic-light .edit-brush-size-container {
display: flex;
flex-direction: column;
gap: 8px;
}
:root .edit-brush-size-slider,
.wplace-theme-classic-light .edit-brush-size-slider {
width: 100%;
background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
border-radius: 4px;
height: 6px;
outline: none;
appearance: none;
-webkit-appearance: none;
}
:root .edit-brush-size-slider::-webkit-slider-thumb,
.wplace-theme-classic-light .edit-brush-size-slider::-webkit-slider-thumb {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: white;
border: 2px solid #4facfe;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-brush-size-slider::-webkit-slider-thumb:hover,
.wplace-theme-classic-light .edit-brush-size-slider::-webkit-slider-thumb:hover {
transform: scale(1.2);
}
:root .edit-brush-size-display,
.wplace-theme-classic-light .edit-brush-size-display {
color: var(--wplace-text);
font-size: 12px;
text-align: center;
background: rgba(0, 0, 0, 0.1);
padding: 4px 8px;
border-radius: 4px;
}
:root .edit-action-buttons,
.wplace-theme-classic-light .edit-action-buttons {
display: flex;
gap: 10px;
padding: 10px;
background: rgba(0, 0, 0, 0.05);
border-top: 1px solid rgba(0, 0, 0, 0.2);
}
:root .edit-btn-primary,
.wplace-theme-classic-light .edit-btn-primary {
background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
color: white;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
padding: 10px 20px;
cursor: pointer;
font-weight: bold;
transition: all 0.2s ease;
}
:root .edit-btn-secondary,
.wplace-theme-classic-light .edit-btn-secondary {
background: linear-gradient(135deg, #E0E0E1 0%, #FBFBFB 100%);
color: var(--wplace-text);
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
padding: 10px 20px;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-btn-primary:hover,
.wplace-theme-classic-light .edit-btn-primary:hover {
background: linear-gradient(135deg, #45a049 0%, #4CAF50 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
:root .edit-btn-secondary:hover,
.wplace-theme-classic-light .edit-btn-secondary:hover {
background: linear-gradient(135deg, #FBFBFB 0%, #E0E0E1 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
:root .edit-zoom-controls,
.wplace-theme-classic-light .edit-zoom-controls {
display: flex;
align-items: center;
gap: 8px;
}
:root .edit-zoom-btn,
.wplace-theme-classic-light .edit-zoom-btn {
background: rgba(0, 0, 0, 0.1);
border: 1px solid rgba(0, 0, 0, 0.3);
color: var(--wplace-text);
border-radius: 4px;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-zoom-btn:hover,
.wplace-theme-classic-light .edit-zoom-btn:hover {
background: rgba(0, 0, 0, 0.2);
border-color: var(--wplace-text);
}
:root .edit-zoom-display,
.wplace-theme-classic-light .edit-zoom-display {
color: var(--wplace-text);
font-size: 12px;
min-width: 60px;
text-align: center;
}
:root .edit-instructions,
.wplace-theme-classic-light .edit-instructions {
color: rgba(0, 0, 0, 0.7);
font-size: 11px;
margin: 5px 0;
text-align: center;
}
:root .edit-status-bar,
.wplace-theme-classic-light .edit-status-bar {
background: rgba(255, 255, 255, 0.3);
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
padding: 5px 15px;
font-size: 11px;
color: rgba(0, 0, 0, 0.8);
font-family: monospace;
}
:root .edit-tool,
.wplace-theme-classic-light .edit-tool {
background: linear-gradient(135deg, #F3F3F3 0%, #FBFBFB 100%);
border: 1px solid rgba(0, 0, 0, 0.2);
color: var(--wplace-text);
border-radius: 6px;
padding: 8px 12px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 16px;
min-width: 40px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
:root .edit-tool:hover,
.wplace-theme-classic-light .edit-tool:hover {
background: linear-gradient(135deg, #FBFBFB 0%, #F3F3F3 100%);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
transform: translateY(-1px);
}
:root .edit-tool.active,
.wplace-theme-classic-light .edit-tool.active {
background: var(--wplace-highlight);
color: white;
border-color: var(--wplace-text);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(32, 60, 93, 0.3);
}
:root .edit-toggle,
.wplace-theme-classic-light .edit-toggle {
background: linear-gradient(135deg, #F3F3F3 0%, #FBFBFB 100%);
border: 1px solid rgba(0, 0, 0, 0.2);
color: var(--wplace-text);
border-radius: 6px;
padding: 6px 10px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
min-width: 35px;
display: flex;
align-items: center;
justify-content: center;
}
:root .edit-toggle:hover,
.wplace-theme-classic-light .edit-toggle:hover {
background: linear-gradient(135deg, #FBFBFB 0%, #F3F3F3 100%);
transform: translateY(-1px);
}
:root .edit-toggle.active,
.wplace-theme-classic-light .edit-toggle.active {
background: var(--wplace-highlight);
color: white;
border-color: var(--wplace-text);
box-shadow: 0 0 6px rgba(32, 60, 93, 0.3);
}
:root .edit-slider,
.wplace-theme-classic-light .edit-slider {
width: 80px;
background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
border-radius: 4px;
height: 6px;
outline: none;
appearance: none;
-webkit-appearance: none;
margin: 0 8px;
}
:root .edit-color-grid,
.wplace-theme-classic-light .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 3px;
max-height: 80px;
overflow: visible;
padding: 4px 0;
justify-content: flex-start;
flex-direction: row;
}
:root .edit-color-grid::-webkit-scrollbar,
.wplace-theme-classic-light .edit-color-grid::-webkit-scrollbar {
width: 6px;
}
:root .edit-color-grid::-webkit-scrollbar-track,
.wplace-theme-classic-light .edit-color-grid::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.1);
border-radius: 3px;
}
:root .edit-color-grid::-webkit-scrollbar-thumb,
.wplace-theme-classic-light .edit-color-grid::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.3);
border-radius: 3px;
}
:root .edit-color-grid::-webkit-scrollbar-thumb:hover,
.wplace-theme-classic-light .edit-color-grid::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.5);
}
/* Minimap Container & Components */
:root .minimap-container,
.wplace-theme-classic-light .minimap-container {
width: 200px;
height: 200px;
background: linear-gradient(135deg, #F8F8F8 0%, #EEEEEE 100%);
border: 2px solid rgba(0, 0, 0, 0.2);
border-radius: 8px;
position: absolute;
top: 80px;
right: 20px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
backdrop-filter: blur(10px);
flex-shrink: 0;
z-index: 1000;
}
:root .minimap-header,
.wplace-theme-classic-light .minimap-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 24px;
background: linear-gradient(135deg, #E0E0E1 0%, #F3F3F3 100%);
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 600;
color: var(--wplace-text);
z-index: 3;
}
:root .minimap-content,
.wplace-theme-classic-light .minimap-content {
position: absolute;
top: 24px;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
}
:root .minimap-canvas,
.wplace-theme-classic-light .minimap-canvas {
position: absolute;
top: 0;
left: 0;
cursor: crosshair;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
background-image:
repeating-conic-gradient(rgba(0, 0, 0, 0.08) 0% 25%, transparent 0% 50%) 50% / 8px 8px;
}
:root .minimap-viewport,
.wplace-theme-classic-light .minimap-viewport {
position: absolute;
border: 2px solid #4A9EFF;
background: rgba(74, 158, 255, 0.1);
pointer-events: none;
z-index: 2;
box-shadow: 0 0 8px rgba(74, 158, 255, 0.4);
}
/* Bottom Bar Styles */
:root .edit-bottom-bar,
.wplace-theme-classic-light .edit-bottom-bar {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 12px;
background: linear-gradient(135deg, #E0E0E1 0%, #F3F3F3 100%);
border-top: 1px solid rgba(0, 0, 0, 0.2);
min-height: 70px;
max-height: 120px;
overflow: visible;
width: 100%;
position: relative;
}
:root .edit-info-section,
.wplace-theme-classic-light .edit-info-section {
display: flex;
align-items: center;
color: rgba(0, 0, 0, 0.8);
font-size: 10px;
font-family: monospace;
white-space: nowrap;
min-width: 180px;
flex-shrink: 0;
}
:root .edit-current-color,
.wplace-theme-classic-light .edit-current-color {
display: flex;
align-items: center;
gap: 6px;
color: var(--wplace-text);
font-size: 11px;
white-space: nowrap;
flex-shrink: 0;
}
:root .edit-available-colors,
.wplace-theme-classic-light .edit-available-colors {
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
min-width: 0;
}
:root .edit-available-colors label,
.wplace-theme-classic-light .edit-available-colors label {
color: var(--wplace-text);
font-size: 10px;
font-weight: 600;
margin: 0;
}
:root .color-display,
.wplace-theme-classic-light .color-display {
width: 24px;
height: 24px;
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 3px;
cursor: pointer;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
flex-shrink: 0;
}
:root .edit-color-grid .color-btn,
.wplace-theme-classic-light .edit-color-grid .color-btn {
width: 18px;
height: 18px;
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 2px;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
flex-shrink: 0;
}
:root .edit-color-grid .color-btn:hover,
.wplace-theme-classic-light .edit-color-grid .color-btn:hover {
border-color: rgba(0, 0, 0, 0.6);
transform: scale(1.1);
z-index: 10;
}
:root .edit-color-grid .color-btn.selected,
.wplace-theme-classic-light .edit-color-grid .color-btn.selected {
border-color: #4facfe;
box-shadow: 0 0 8px rgba(79, 172, 254, 0.5);
transform: scale(1.1);
}
/* Mobile Responsive Adjustments */
@media (max-width: 1024px) {
:root .edit-container,
.wplace-theme-classic-light .edit-container {
width: 100vw;
height: 100vh;
min-width: 100vw;
min-height: 100vh;
top: 0;
left: 0;
border-radius: 0;
}
:root .edit-nav-controls,
.wplace-theme-classic-light .edit-nav-controls {
flex-direction: column;
gap: 8px;
}
:root .edit-main-area,
.wplace-theme-classic-light .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic-light .edit-toolbar {
width: 60px;
min-width: 60px;
}
:root .minimap-container,
.wplace-theme-classic-light .minimap-container {
top: 80px;
right: 8px;
transform: scale(0.8);
}
:root .zoom-controls,
.wplace-theme-classic-light .zoom-controls {
flex-wrap: wrap;
gap: 4px;
}
}
@media (max-width: 768px) {
:root .edit-header,
.wplace-theme-classic-light .edit-header {
padding: 8px 12px;
flex-direction: column;
gap: 8px;
min-height: 60px;
}
:root .edit-main-area,
.wplace-theme-classic-light .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic-light .edit-toolbar {
width: 50px;
min-width: 50px;
}
:root .zoom-controls,
.wplace-theme-classic-light .zoom-controls {
scale: 0.9;
}
:root .minimap-container,
.wplace-theme-classic-light .minimap-container {
display: none;
}
:root .edit-color-grid .color-btn,
.wplace-theme-classic-light .edit-color-grid .color-btn {
width: 16px;
height: 16px;
}
}
/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
:root .zoom-btn,
.wplace-theme-classic-light .zoom-btn {
min-width: 44px;
min-height: 44px;
}
}
/* Move Artwork Panel Styles for Classic Light Theme */
.wplace-theme-classic-light .wplace-move-panel {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: var(--wplace-primary);
border: 2px solid var(--wplace-border-color);
border-radius: var(--wplace-radius);
padding: 20px;
z-index: 10000;
box-shadow: var(--wplace-shadow);
min-width: 200px;
text-align: center;
backdrop-filter: var(--wplace-backdrop);
font-family: var(--wplace-font);
}
.wplace-theme-classic-light .wplace-move-panel-title {
color: var(--wplace-text);
margin: 0 0 15px 0;
font-size: 16px;
font-weight: 600;
}
.wplace-theme-classic-light .wplace-move-controls {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 8px;
margin-bottom: 15px;
}
.wplace-theme-classic-light .wplace-move-btn {
padding: 10px;
background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
color: white;
border: 1px solid var(--wplace-border-color);
border-radius: var(--wplace-btn-radius);
cursor: pointer;
font-family: var(--wplace-font);
font-size: 14px;
transition: all 0.2s ease;
box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
}
.wplace-theme-classic-light .wplace-move-btn:hover {
background: linear-gradient(135deg, #45a049 0%, #4CAF50 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgb(0 0 0 / 15%);
}
.wplace-theme-classic-light .wplace-move-btn:active {
transform: translateY(0);
box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
}
.wplace-theme-classic-light .wplace-move-center {
color: var(--wplace-highlight);
padding: 10px;
font-size: 12px;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
}
.wplace-theme-classic-light .wplace-move-close-btn {
background: linear-gradient(135deg, #f44336 0%, #d32f2f 100%);
color: white;
border: 1px solid var(--wplace-border-color);
padding: 10px 16px;
border-radius: var(--wplace-btn-radius);
cursor: pointer;
font-family: var(--wplace-font);
transition: all 0.2s ease;
box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
}
.wplace-theme-classic-light .wplace-move-close-btn:hover {
background: linear-gradient(135deg, #d32f2f 0%, #f44336 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgb(0 0 0 / 15%);
}
.wplace-theme-classic-light .wplace-move-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 9999;
backdrop-filter: blur(4px);
}
/* Mobile Responsive Adjustments */
@media (max-width: 1024px) {
:root .edit-container,
.wplace-theme-classic-light .edit-container {
width: 100vw;
height: 100vh;
min-width: 100vw;
min-height: 100vh;
top: 0;
left: 0;
border-radius: 0;
}
:root .edit-nav-controls,
.wplace-theme-classic-light .edit-nav-controls {
flex-direction: column;
gap: 8px;
}
:root .edit-main-area,
.wplace-theme-classic-light .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic-light .edit-toolbar {
width: 60px;
min-width: 60px;
}
:root .minimap-container,
.wplace-theme-classic-light .minimap-container {
top: 80px;
right: 8px;
transform: scale(0.8);
}
:root .zoom-controls,
.wplace-theme-classic-light .zoom-controls {
flex-wrap: wrap;
gap: 4px;
}
}
@media (max-width: 768px) {
:root .edit-header,
.wplace-theme-classic-light .edit-header {
padding: 8px 12px;
flex-direction: column;
gap: 8px;
min-height: 60px;
}
:root .edit-main-area,
.wplace-theme-classic-light .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic-light .edit-toolbar {
width: 50px;
min-width: 50px;
}
:root .zoom-controls,
.wplace-theme-classic-light .zoom-controls {
scale: 0.9;
}
:root .minimap-container,
.wplace-theme-classic-light .minimap-container {
display: none;
}
:root .edit-color-grid .color-btn,
.wplace-theme-classic-light .edit-color-grid .color-btn {
width: 16px;
height: 16px;
}
}
/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
:root .zoom-btn,
.wplace-theme-classic-light .zoom-btn {
min-width: 44px;
min-height: 44px;
}
:root .edit-tool,
.wplace-theme-classic-light .edit-tool {
min-width: 44px;
min-height: 44px;
padding: 12px;
}
:root .edit-color-btn,
.wplace-theme-classic-light .edit-color-btn {
min-width: 20px;
min-height: 20px;
}
}
/* High DPI Display Optimizations */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
:root .edit-canvas,
.wplace-theme-classic-light .edit-canvas {
image-rendering: -webkit-optimize-contrast;
image-rendering: pixelated;
}
:root .minimap-canvas,
.wplace-theme-classic-light .minimap-canvas {
image-rendering: -webkit-optimize-contrast;
image-rendering: pixelated;
}
}
-985
View File
@@ -1029,988 +1029,3 @@
backdrop-filter: blur(4px);
}
/* Edit Panel Styles for Classic Theme - Fullscreen Layout */
:root .edit-overlay,
.wplace-theme-classic .edit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.95);
z-index: 10001;
backdrop-filter: blur(8px);
}
/* OLD STYLES - REMOVED - Now using enhanced fullscreen layout */
:root .edit-header,
.wplace-theme-classic .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 15px;
background: linear-gradient(135deg, #111 0%, #2a2a2a 100%);
border-bottom: 1px solid #fff;
color: white;
font-weight: bold;
}
:root .edit-content,
.wplace-theme-classic .edit-content {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-main-area,
.wplace-theme-classic .edit-main-area {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-toolbar,
.wplace-theme-classic .edit-toolbar {
width: 80px;
min-width: 80px;
background: rgba(255, 255, 255, 0.05);
border-right: 1px solid rgba(255, 255, 255, 0.2);
padding: 8px 4px;
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
:root .edit-canvas-area,
.wplace-theme-classic .edit-canvas-area {
flex: 4;
display: flex;
flex-direction: column;
position: relative;
background: #111;
min-width: 0;
}
:root .edit-canvas-container,
.wplace-theme-classic .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
min-height: 400px;
max-width: 100%;
}
:root .edit-canvas,
.wplace-theme-classic .edit-canvas {
border: 1px solid rgba(255, 255, 255, 0.3);
cursor: crosshair;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
:root .edit-tool-group,
.wplace-theme-classic .edit-tool-group {
background: rgba(255, 255, 255, 0.05);
border-radius: 6px;
padding: 6px 4px;
border: 1px solid rgba(255, 255, 255, 0.1);
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
width: 100%;
}
:root .edit-tool-group h4,
.wplace-theme-classic .edit-tool-group h4 {
color: var(--wplace-highlight);
margin: 0 0 8px 0;
font-size: 13px;
font-weight: 600;
}
:root .edit-brush-tools,
.wplace-theme-classic .edit-brush-tools {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
:root .edit-tool-btn,
.wplace-theme-classic .edit-tool-btn {
background: linear-gradient(135deg, #222 0%, #4a4a4a 100%);
border: 1px solid rgba(255, 255, 255, 0.2);
color: white;
border-radius: 6px;
padding: 8px 12px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 12px;
display: flex;
align-items: center;
gap: 6px;
}
:root .edit-tool-btn:hover,
.wplace-theme-classic .edit-tool-btn:hover {
background: linear-gradient(135deg, #4a4a4a 0%, #222 100%);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
:root .edit-tool-btn.active,
.wplace-theme-classic .edit-tool-btn.active {
background: var(--wplace-highlight);
color: #000;
border-color: white;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(0, 0, 0, 0.2);
}
:root .edit-color-palette,
.wplace-theme-classic .edit-color-palette {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(24px, 1fr));
gap: 4px;
max-height: 150px;
overflow-y: auto;
}
:root .edit-color-swatch,
.wplace-theme-classic .edit-color-swatch {
width: 24px;
height: 24px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 4px;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-color-swatch:hover,
.wplace-theme-classic .edit-color-swatch:hover {
transform: scale(1.1);
border-color: white;
}
:root .edit-color-swatch.active,
.wplace-theme-classic .edit-color-swatch.active {
border-color: #4facfe;
box-shadow: 0 0 8px rgba(79, 172, 254, 0.5);
transform: scale(1.1);
}
:root .edit-brush-size-container,
.wplace-theme-classic .edit-brush-size-container {
display: flex;
flex-direction: column;
gap: 8px;
}
:root .edit-brush-size-slider,
.wplace-theme-classic .edit-brush-size-slider {
width: 100%;
background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
border-radius: 4px;
height: 6px;
outline: none;
appearance: none;
-webkit-appearance: none;
}
:root .edit-brush-size-slider::-webkit-slider-thumb,
.wplace-theme-classic .edit-brush-size-slider::-webkit-slider-thumb {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: white;
border: 2px solid #4facfe;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-brush-size-slider::-webkit-slider-thumb:hover,
.wplace-theme-classic .edit-brush-size-slider::-webkit-slider-thumb:hover {
transform: scale(1.2);
}
:root .edit-brush-size-display,
.wplace-theme-classic .edit-brush-size-display {
color: white;
font-size: 12px;
text-align: center;
background: rgba(255, 255, 255, 0.1);
padding: 4px 8px;
border-radius: 4px;
}
:root .edit-action-buttons,
.wplace-theme-classic .edit-action-buttons {
display: flex;
gap: 10px;
padding: 10px;
background: rgba(255, 255, 255, 0.05);
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
:root .edit-btn-primary,
.wplace-theme-classic .edit-btn-primary {
background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
color: white;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 6px;
padding: 10px 20px;
cursor: pointer;
font-weight: bold;
transition: all 0.2s ease;
}
:root .edit-btn-secondary,
.wplace-theme-classic .edit-btn-secondary {
background: linear-gradient(135deg, #666 0%, #444 100%);
color: white;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 6px;
padding: 10px 20px;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-btn-primary:hover,
.wplace-theme-classic .edit-btn-primary:hover {
background: linear-gradient(135deg, #45a049 0%, #4CAF50 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
:root .edit-btn-secondary:hover,
.wplace-theme-classic .edit-btn-secondary:hover {
background: linear-gradient(135deg, #444 0%, #666 100%);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
:root .edit-zoom-controls,
.wplace-theme-classic .edit-zoom-controls {
display: flex;
align-items: center;
gap: 8px;
}
:root .edit-zoom-btn,
.wplace-theme-classic .edit-zoom-btn {
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
border-radius: 4px;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-zoom-btn:hover,
.wplace-theme-classic .edit-zoom-btn:hover {
background: rgba(255, 255, 255, 0.2);
border-color: white;
}
:root .edit-zoom-display,
.wplace-theme-classic .edit-zoom-display {
color: white;
font-size: 12px;
min-width: 60px;
text-align: center;
}
/* New Edit Panel Enhancement Styles */
:root .edit-instructions,
.wplace-theme-classic .edit-instructions {
color: rgba(255, 255, 255, 0.7);
font-size: 11px;
margin: 5px 0;
text-align: center;
}
:root .edit-status-bar,
.wplace-theme-classic .edit-status-bar {
background: rgba(0, 0, 0, 0.3);
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
padding: 5px 15px;
font-size: 11px;
color: rgba(255, 255, 255, 0.8);
font-family: monospace;
}
:root .edit-tool,
.wplace-theme-classic .edit-tool {
background: linear-gradient(135deg, #333 0%, #555 100%);
border: 1px solid rgba(255, 255, 255, 0.2);
color: white;
border-radius: 6px;
padding: 8px 12px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 16px;
min-width: 40px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
:root .edit-tool:hover,
.wplace-theme-classic .edit-tool:hover {
background: linear-gradient(135deg, #555 0%, #333 100%);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
transform: translateY(-1px);
}
:root .edit-tool.active,
.wplace-theme-classic .edit-tool.active {
background: var(--wplace-highlight);
color: #000;
border-color: white;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(79, 172, 254, 0.5);
}
/* Specific tool styling to ensure proper click handling */
:root #fillTool,
.wplace-theme-classic #fillTool {
position: relative;
z-index: 10;
pointer-events: auto;
}
:root .edit-toggle,
.wplace-theme-classic .edit-toggle {
background: linear-gradient(135deg, #333 0%, #555 100%);
border: 1px solid rgba(255, 255, 255, 0.2);
color: white;
border-radius: 6px;
padding: 6px 10px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
min-width: 35px;
display: flex;
align-items: center;
justify-content: center;
}
:root .edit-toggle:hover,
.wplace-theme-classic .edit-toggle:hover {
background: linear-gradient(135deg, #555 0%, #333 100%);
transform: translateY(-1px);
}
:root .edit-toggle.active,
.wplace-theme-classic .edit-toggle.active {
background: var(--wplace-highlight);
color: #000;
border-color: white;
box-shadow: 0 0 6px rgba(79, 172, 254, 0.5);
}
:root .edit-slider,
.wplace-theme-classic .edit-slider {
width: 80px;
background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
border-radius: 4px;
height: 6px;
outline: none;
appearance: none;
-webkit-appearance: none;
margin: 0 8px;
}
:root .edit-slider::-webkit-slider-thumb,
.wplace-theme-classic .edit-slider::-webkit-slider-thumb {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: white;
border: 2px solid #4facfe;
cursor: pointer;
transition: all 0.2s ease;
}
:root .edit-slider::-webkit-slider-thumb:hover,
.wplace-theme-classic .edit-slider::-webkit-slider-thumb:hover {
transform: scale(1.2);
}
:root .edit-color-btn,
.wplace-theme-classic .edit-color-btn {
width: 24px;
height: 24px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 4px;
cursor: pointer;
transition: all 0.2s ease;
margin: 2px;
}
:root .edit-color-btn:hover,
.wplace-theme-classic .edit-color-btn:hover {
transform: scale(1.15);
border-color: white;
box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
}
:root .edit-color-btn.active,
.wplace-theme-classic .edit-color-btn.active {
border-color: #4facfe;
box-shadow: 0 0 8px rgba(79, 172, 254, 0.8);
transform: scale(1.15);
}
:root .edit-color-grid,
.wplace-theme-classic .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 3px;
height: 32px;
padding: 2px;
background: rgba(0, 0, 0, 0.2);
border-radius: 4px;
width: 100%;
}
:root .color-display,
.wplace-theme-classic .color-display {
width: 30px;
height: 20px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 4px;
margin-left: 8px;
background: #000000;
}
:root .zoom-btn,
.wplace-theme-classic .zoom-btn {
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
border-radius: 4px;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
font-weight: bold;
}
:root .zoom-btn:hover,
.wplace-theme-classic .zoom-btn:hover {
background: rgba(255, 255, 255, 0.2);
border-color: white;
transform: translateY(-1px);
}
/* Scrollbar styling for color grid */
:root .edit-color-grid::-webkit-scrollbar,
.wplace-theme-classic .edit-color-grid::-webkit-scrollbar {
width: 6px;
}
:root .edit-color-grid::-webkit-scrollbar-track,
.wplace-theme-classic .edit-color-grid::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.1);
border-radius: 3px;
}
:root .edit-color-grid::-webkit-scrollbar-thumb,
.wplace-theme-classic .edit-color-grid::-webkit-scrollbar-thumb {
background: var(--wplace-highlight);
border-radius: 3px;
}
:root .edit-color-grid::-webkit-scrollbar-thumb:hover,
.wplace-theme-classic .edit-color-grid::-webkit-scrollbar-thumb:hover {
background: #4facfe;
}
/* Enhanced Layout for Fullscreen Canvas with Navigation Bar and Bottom Bar */
:root .edit-header,
.wplace-theme-classic .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
min-height: 70px;
}
:root .edit-header-left,
.wplace-theme-classic .edit-header-left {
display: flex;
flex-direction: column;
gap: 4px;
}
:root .edit-header h3,
.wplace-theme-classic .edit-header h3 {
margin: 0;
color: white;
font-size: 18px;
font-weight: 600;
}
:root .edit-instructions,
.wplace-theme-classic .edit-instructions {
color: rgba(255, 255, 255, 0.7);
}
:root .edit-nav-controls,
.wplace-theme-classic .edit-nav-controls {
display: flex;
align-items: center;
gap: 20px;
}
:root .zoom-controls,
.wplace-theme-classic .zoom-controls {
display: flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.05);
padding: 6px 12px;
border-radius: 6px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
:root .zoom-select,
.wplace-theme-classic .zoom-select {
background: linear-gradient(135deg, #333 0%, #555 100%);
border: 1px solid rgba(255, 255, 255, 0.2);
color: white;
border-radius: 4px;
padding: 4px 8px;
font-size: 11px;
cursor: pointer;
min-width: 60px;
}
:root .zoom-select:hover,
.wplace-theme-classic .zoom-select:hover {
background: linear-gradient(135deg, #555 0%, #333 100%);
}
:root .edit-canvas-container,
.wplace-theme-classic .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background:
linear-gradient(45deg, #f0f0f0 25%, transparent 25%),
linear-gradient(-45deg, #f0f0f0 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #f0f0f0 75%),
linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);
background-size: 20px 20px;
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
background-color: #ddd;
}
:root .edit-canvas-wrapper,
.wplace-theme-classic .edit-canvas-wrapper {
position: relative;
transform-origin: center center;
display: inline-block;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
border: 2px solid #333;
background: white;
transition: transform 0.1s ease-out;
image-rendering: pixelated;
}
:root .brush-preview,
.wplace-theme-classic .brush-preview {
position: absolute;
pointer-events: none;
border: 2px solid rgba(255, 255, 255, 0.8);
background: rgba(0, 0, 0, 0.1);
z-index: 1000;
transform-origin: top left;
display: none;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
}
:root .minimap-container,
.wplace-theme-classic .minimap-container {
position: absolute;
top: 16px;
right: 16px;
background: rgba(0, 0, 0, 0.85);
border: 1px solid #666;
border-radius: 6px;
padding: 8px;
z-index: 100;
backdrop-filter: blur(4px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
:root .minimap-header,
.wplace-theme-classic .minimap-header {
color: white;
font-size: 10px;
margin-bottom: 6px;
text-align: center;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
}
:root .minimap-content,
.wplace-theme-classic .minimap-content {
position: relative;
}
:root .minimap-canvas,
.wplace-theme-classic .minimap-canvas {
border: 1px solid #999;
cursor: pointer;
display: block;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
:root .minimap-canvas:hover,
.wplace-theme-classic .minimap-canvas:hover {
border-color: #4facfe;
}
:root .minimap-viewport,
.wplace-theme-classic .minimap-viewport {
position: absolute;
border: 2px solid #ff6b6b;
background: rgba(255, 107, 107, 0.2);
pointer-events: none;
box-shadow: inset 0 0 4px rgba(255, 107, 107, 0.5);
transition: all 0.1s ease;
}
/* Almost Fullscreen Layout Design */
:root .edit-container,
.wplace-theme-classic .edit-container {
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
border-radius: 8px;
box-shadow: 0 15px 60px rgba(0, 0, 0, 0.7);
display: flex;
flex-direction: column;
width: 98vw;
height: 98vh;
max-width: 98vw;
max-height: 98vh;
min-width: 1000px;
min-height: 700px;
overflow: hidden;
backdrop-filter: blur(15px);
border: 1px solid rgba(255, 255, 255, 0.1);
position: fixed;
top: 1vh;
left: 1vw;
z-index: 10000;
}
:root .edit-main,
.wplace-theme-classic .edit-main {
display: flex;
flex: 1;
min-height: 0;
}
:root .edit-canvas-area,
.wplace-theme-classic .edit-canvas-area {
flex: 4;
display: flex;
flex-direction: column;
min-width: 0;
min-height: 0;
background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
}
/* Bottom Bar Styles */
:root .edit-bottom-bar,
.wplace-theme-classic .edit-bottom-bar {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 12px;
background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%);
border-top: 1px solid rgba(255, 255, 255, 0.2);
min-height: 70px;
max-height: 120px;
overflow: visible;
width: 100%;
position: relative;
}
:root .edit-info-section,
.wplace-theme-classic .edit-info-section {
display: flex;
align-items: center;
color: rgba(255, 255, 255, 0.8);
font-size: 10px;
font-family: monospace;
white-space: nowrap;
min-width: 180px;
flex-shrink: 0;
}
:root .edit-current-color,
.wplace-theme-classic .edit-current-color {
display: flex;
align-items: center;
gap: 6px;
color: white;
font-size: 11px;
white-space: nowrap;
flex-shrink: 0;
}
:root .edit-available-colors,
.wplace-theme-classic .edit-available-colors {
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
min-width: 0;
}
:root .edit-available-colors label,
.wplace-theme-classic .edit-available-colors label {
color: white;
font-size: 10px;
font-weight: 600;
margin: 0;
}
:root .color-display,
.wplace-theme-classic .color-display {
width: 24px;
height: 24px;
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 3px;
cursor: pointer;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
flex-shrink: 0;
}
:root .edit-color-grid,
.wplace-theme-classic .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 3px;
max-height: 80px;
overflow: visible;
padding: 4px 0;
justify-content: flex-start;
flex-direction: row;
}
:root .edit-color-grid .color-btn,
.wplace-theme-classic .edit-color-grid .color-btn {
width: 18px;
height: 18px;
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 2px;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
flex-shrink: 0;
}
:root .edit-color-grid .color-btn:hover,
.wplace-theme-classic .edit-color-grid .color-btn:hover {
border-color: rgba(255, 255, 255, 0.6);
transform: scale(1.1);
z-index: 10;
}
:root .edit-color-grid .color-btn.selected,
.wplace-theme-classic .edit-color-grid .color-btn.selected {
border-color: #4facfe;
box-shadow: 0 0 8px rgba(79, 172, 254, 0.5);
transform: scale(1.1);
}
/* Mobile Responsive Adjustments */
@media (max-width: 1024px) {
:root .edit-container,
.wplace-theme-classic .edit-container {
width: 100vw;
height: 100vh;
min-width: 100vw;
min-height: 100vh;
top: 0;
left: 0;
border-radius: 0;
}
:root .edit-nav-controls,
.wplace-theme-classic .edit-nav-controls {
flex-direction: column;
gap: 8px;
}
:root .edit-main-area,
.wplace-theme-classic .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic .edit-toolbar {
width: 60px;
min-width: 60px;
}
:root .minimap-container,
.wplace-theme-classic .minimap-container {
top: 80px;
right: 8px;
transform: scale(0.8);
}
:root .zoom-controls,
.wplace-theme-classic .zoom-controls {
flex-wrap: wrap;
gap: 4px;
}
}
@media (max-width: 768px) {
:root .edit-header,
.wplace-theme-classic .edit-header {
padding: 8px 12px;
flex-direction: column;
gap: 8px;
min-height: 60px;
}
:root .edit-main-area,
.wplace-theme-classic .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-classic .edit-toolbar {
width: 50px;
min-width: 50px;
}
:root .zoom-controls,
.wplace-theme-classic .zoom-controls {
scale: 0.9;
}
:root .minimap-container,
.wplace-theme-classic .minimap-container {
display: none;
}
:root .edit-color-grid .color-btn,
.wplace-theme-classic .edit-color-grid .color-btn {
width: 16px;
height: 16px;
}
}
/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
:root .zoom-btn,
.wplace-theme-classic .zoom-btn {
min-width: 44px;
min-height: 44px;
}
:root .edit-tool,
.wplace-theme-classic .edit-tool {
min-width: 44px;
min-height: 44px;
padding: 12px;
}
:root .edit-color-btn,
.wplace-theme-classic .edit-color-btn {
width: 32px;
height: 32px;
}
}
/* High DPI Display Support */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
:root .edit-canvas,
.wplace-theme-classic .edit-canvas {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
:root .minimap-canvas,
.wplace-theme-classic .minimap-canvas {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
}
/* Animation and Transition Enhancements */
:root .edit-canvas-wrapper,
.wplace-theme-classic .edit-canvas-wrapper {
transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
:root .minimap-viewport,
.wplace-theme-classic .minimap-viewport {
transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1);
}
:root .zoom-btn,
.wplace-theme-classic .zoom-btn {
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
:root .zoom-btn:active,
.wplace-theme-classic .zoom-btn:active {
transform: translateY(1px) scale(0.95);
}
-319
View File
@@ -814,322 +814,3 @@
50% { box-shadow: 0 0 15px var(--wplace-error); }
}
/* Edit Panel Styles for Neon Cyan Theme */
:root .edit-overlay,
.wplace-theme-neon-cyan .edit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(25, 89, 161, 0.95);
z-index: 10001;
backdrop-filter: blur(8px);
}
:root .edit-container,
.wplace-theme-neon-cyan .edit-container {
background: linear-gradient(135deg, #1959A1 0%, #3C74AF 100%);
border-radius: 0;
box-shadow: 0 0 20px rgba(234, 156, 0, 0.3), inset 0 0 20px rgba(234, 156, 0, 0.1);
display: flex;
flex-direction: column;
width: 98vw;
height: 98vh;
max-width: 98vw;
max-height: 98vh;
min-width: 1000px;
min-height: 700px;
overflow: hidden;
border: 3px solid #EA9C00;
position: fixed;
top: 1vh;
left: 1vw;
z-index: 10000;
}
:root .edit-header,
.wplace-theme-neon-cyan .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
background: linear-gradient(135deg, #3C74AF 0%, #538CC0 100%);
border-bottom: 3px solid #EA9C00;
min-height: 70px;
}
:root .edit-header h3,
.wplace-theme-neon-cyan .edit-header h3 {
margin: 0;
color: #81DCF7;
font-size: 18px;
font-weight: 600;
text-shadow: 0 0 10px #EA9C00;
}
:root .edit-main,
.wplace-theme-neon-cyan .edit-main {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-main-area,
.wplace-theme-neon-cyan .edit-main-area {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-toolbar,
.wplace-theme-neon-cyan .edit-toolbar {
width: 80px;
min-width: 80px;
background: rgba(0, 191, 255, 0.1);
border-right: 3px solid #00bfff;
padding: 8px 4px;
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
box-shadow: inset 0 0 20px rgba(0, 191, 255, 0.2);
}
:root .edit-tool-group,
.wplace-theme-neon-cyan .edit-tool-group {
display: flex;
flex-direction: column;
gap: 4px;
width: 100%;
align-items: center;
}
:root .edit-canvas-area,
.wplace-theme-neon-cyan .edit-canvas-area {
flex: 4;
display: flex;
flex-direction: column;
min-width: 0;
min-height: 0;
background: linear-gradient(135deg, #538CC0 0%, #1959A1 100%);
}
:root .edit-canvas-container,
.wplace-theme-neon-cyan .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background:
linear-gradient(45deg, #2a4d6b 25%, transparent 25%),
linear-gradient(-45deg, #2a4d6b 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #2a4d6b 75%),
linear-gradient(-45deg, transparent 75%, #2a4d6b 75%);
background-size: 20px 20px;
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
background-color: #1d3a5c;
}
:root .edit-canvas-wrapper,
.wplace-theme-neon-cyan .edit-canvas-wrapper {
position: relative;
transform-origin: center center;
display: inline-block;
box-shadow: 0 0 20px rgba(234, 156, 0, 0.5);
border: 3px solid #EA9C00;
background: white;
transition: transform 0.1s ease-out;
image-rendering: pixelated;
}
:root .edit-bottom-bar,
.wplace-theme-neon-cyan .edit-bottom-bar {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 12px;
background: linear-gradient(135deg, #3C74AF 0%, #538CC0 100%);
border-top: 3px solid #EA9C00;
min-height: 70px;
max-height: 120px;
overflow: visible;
width: 100%;
position: relative;
flex-shrink: 0;
margin: 0;
}
:root .edit-info-section,
.wplace-theme-neon-cyan .edit-info-section {
display: flex;
align-items: center;
color: rgba(0, 191, 255, 0.8);
font-size: 10px;
font-family: monospace;
white-space: nowrap;
min-width: 180px;
flex-shrink: 0;
}
:root .edit-current-color,
.wplace-theme-neon-cyan .edit-current-color {
display: flex;
align-items: center;
gap: 6px;
margin-left: 12px;
flex-shrink: 0;
}
:root .edit-color-swatch,
.wplace-theme-neon-cyan .edit-color-swatch {
width: 12px;
height: 12px;
border: 1px solid #00bfff;
border-radius: 2px;
flex-shrink: 0;
}
/* Minimap Styles */
:root .minimap-container,
.wplace-theme-neon-cyan .minimap-container {
position: absolute;
top: 16px;
right: 16px;
background: rgba(0, 0, 0, 0.9);
border: 2px solid #00bfff;
border-radius: 6px;
padding: 8px;
z-index: 100;
backdrop-filter: blur(4px);
box-shadow: 0 0 20px rgba(0, 191, 255, 0.3);
}
:root .minimap-header,
.wplace-theme-neon-cyan .minimap-header {
color: #00bfff;
font-size: 10px;
margin-bottom: 6px;
text-align: center;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
text-shadow: 0 0 5px rgba(0, 191, 255, 0.5);
}
:root .minimap-content,
.wplace-theme-neon-cyan .minimap-content {
position: relative;
}
:root .minimap-canvas,
.wplace-theme-neon-cyan .minimap-canvas {
border: 1px solid #00bfff;
cursor: pointer;
display: block;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
:root .minimap-canvas:hover,
.wplace-theme-neon-cyan .minimap-canvas:hover {
border-color: #4facfe;
box-shadow: 0 0 10px rgba(0, 191, 255, 0.5);
}
:root .minimap-viewport,
.wplace-theme-neon-cyan .minimap-viewport {
position: absolute;
border: 2px solid #ff6b6b;
background: rgba(255, 107, 107, 0.2);
pointer-events: none;
}
:root .edit-color-grid,
.wplace-theme-neon-cyan .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 3px;
max-height: 80px;
overflow: visible;
padding: 4px 0;
justify-content: flex-start;
flex-direction: row;
}
:root .edit-color-grid .color-btn,
.wplace-theme-neon-cyan .edit-color-grid .color-btn {
width: 18px;
height: 18px;
border: 2px solid #EA9C00;
border-radius: 0;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
flex-shrink: 0;
box-shadow: 0 0 5px rgba(234, 156, 0, 0.3);
}
:root .edit-color-grid .color-btn:hover,
.wplace-theme-neon-cyan .edit-color-grid .color-btn:hover {
border-color: #81DCF7;
transform: scale(1.1);
z-index: 10;
box-shadow: 0 0 10px rgba(129, 220, 247, 0.5);
}
:root .edit-color-grid .color-btn.selected,
.wplace-theme-neon-cyan .edit-color-grid .color-btn.selected {
border-color: #81DCF7;
box-shadow: 0 0 15px rgba(129, 220, 247, 0.8);
transform: scale(1.1);
}
:root .zoom-controls,
.wplace-theme-neon-cyan .zoom-controls {
display: flex;
align-items: center;
gap: 8px;
background: rgba(234, 156, 0, 0.1);
padding: 6px 12px;
border-radius: 0;
border: 2px solid #EA9C00;
}
:root .zoom-btn,
.wplace-theme-neon-cyan .zoom-btn {
background: rgba(234, 156, 0, 0.1);
border: 2px solid #EA9C00;
color: #81DCF7;
border-radius: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
font-weight: bold;
text-shadow: 0 0 5px #EA9C00;
}
:root .zoom-btn:hover,
.wplace-theme-neon-cyan .zoom-btn:hover {
background: rgba(234, 156, 0, 0.2);
border-color: #81DCF7;
color: #81DCF7;
transform: translateY(-1px);
box-shadow: 0 0 10px rgba(129, 220, 247, 0.5);
}
-318
View File
@@ -880,321 +880,3 @@
}
}
/* Edit Panel Styles for Neon Light Theme */
:root .edit-overlay,
.wplace-theme-neon-light .edit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(224, 224, 225, 0.95);
z-index: 10001;
backdrop-filter: blur(8px);
}
:root .edit-container,
.wplace-theme-neon-light .edit-container {
background: linear-gradient(135deg, #E0E0E1 0%, #FBFBFB 100%);
border-radius: 0;
box-shadow: 0 0 20px rgba(234, 156, 0, 0.3), inset 0 0 20px rgba(234, 156, 0, 0.1);
display: flex;
flex-direction: column;
width: 98vw;
height: 98vh;
max-width: 98vw;
max-height: 98vh;
min-width: 1000px;
min-height: 700px;
overflow: hidden;
border: 3px solid #203C5D;
position: fixed;
top: 1vh;
left: 1vw;
z-index: 10000;
}
:root .edit-header,
.wplace-theme-neon-light .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
background: linear-gradient(135deg, #FBFBFB 0%, #F3F3F3 100%);
border-bottom: 3px solid #203C5D;
min-height: 70px;
}
:root .edit-header h3,
.wplace-theme-neon-light .edit-header h3 {
margin: 0;
color: #203C5D;
font-size: 18px;
font-weight: 600;
text-shadow: 0 0 10px rgba(234, 156, 0, 0.5);
}
:root .edit-main,
.wplace-theme-neon-light .edit-main {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-main-area,
.wplace-theme-neon-light .edit-main-area {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-toolbar,
.wplace-theme-neon-light .edit-toolbar {
width: 80px;
min-width: 80px;
background: rgba(96, 165, 250, 0.1);
border-right: 3px solid #60a5fa;
padding: 8px 4px;
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
box-shadow: inset 0 0 20px rgba(96, 165, 250, 0.2);
}
:root .edit-tool-group,
.wplace-theme-neon-light .edit-tool-group {
display: flex;
flex-direction: column;
gap: 4px;
width: 100%;
align-items: center;
}
:root .edit-canvas-area,
.wplace-theme-neon-light .edit-canvas-area {
flex: 4;
display: flex;
flex-direction: column;
min-width: 0;
min-height: 0;
background: linear-gradient(135deg, #F3F3F3 0%, #E0E0E1 100%);
}
:root .edit-canvas-container,
.wplace-theme-neon-light .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background:
linear-gradient(45deg, #f0f0f0 25%, transparent 25%),
linear-gradient(-45deg, #f0f0f0 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #f0f0f0 75%),
linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);
background-size: 20px 20px;
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
background-color: #ddd;
}
:root .edit-canvas-wrapper,
.wplace-theme-neon-light .edit-canvas-wrapper {
position: relative;
transform-origin: center center;
display: inline-block;
box-shadow: 0 0 20px rgba(234, 156, 0, 0.3);
border: 3px solid #203C5D;
background: white;
transition: transform 0.1s ease-out;
image-rendering: pixelated;
}
:root .edit-bottom-bar,
.wplace-theme-neon-light .edit-bottom-bar {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 12px;
background: linear-gradient(135deg, #FBFBFB 0%, #F3F3F3 100%);
border-top: 3px solid #203C5D;
min-height: 70px;
max-height: 120px;
overflow: visible;
width: 100%;
position: relative;
flex-shrink: 0;
margin: 0;
}
:root .edit-info-section,
.wplace-theme-neon-light .edit-info-section {
display: flex;
align-items: center;
color: rgba(32, 60, 93, 0.9);
font-size: 10px;
font-family: monospace;
white-space: nowrap;
min-width: 180px;
flex-shrink: 0;
}
:root .edit-current-color,
.wplace-theme-neon-light .edit-current-color {
display: flex;
align-items: center;
gap: 6px;
margin-left: 12px;
flex-shrink: 0;
}
:root .edit-color-swatch,
.wplace-theme-neon-light .edit-color-swatch {
width: 12px;
height: 12px;
border: 1px solid #60a5fa;
border-radius: 2px;
flex-shrink: 0;
}
/* Minimap Styles */
:root .minimap-container,
.wplace-theme-neon-light .minimap-container {
position: absolute;
top: 16px;
right: 16px;
background: rgba(255, 255, 255, 0.95);
border: 2px solid #60a5fa;
border-radius: 6px;
padding: 8px;
z-index: 100;
backdrop-filter: blur(4px);
box-shadow: 0 0 20px rgba(96, 165, 250, 0.3);
}
:root .minimap-header,
.wplace-theme-neon-light .minimap-header {
color: #203C5D;
font-size: 10px;
margin-bottom: 6px;
text-align: center;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
}
:root .minimap-content,
.wplace-theme-neon-light .minimap-content {
position: relative;
}
:root .minimap-canvas,
.wplace-theme-neon-light .minimap-canvas {
border: 1px solid #60a5fa;
cursor: pointer;
display: block;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
:root .minimap-canvas:hover,
.wplace-theme-neon-light .minimap-canvas:hover {
border-color: #4facfe;
box-shadow: 0 0 10px rgba(96, 165, 250, 0.5);
}
:root .minimap-viewport,
.wplace-theme-neon-light .minimap-viewport {
position: absolute;
border: 2px solid #ff6b6b;
background: rgba(255, 107, 107, 0.2);
pointer-events: none;
}
:root .edit-color-grid,
.wplace-theme-neon-light .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 3px;
max-height: 80px;
overflow: visible;
padding: 4px 0;
justify-content: flex-start;
flex-direction: row;
}
:root .edit-color-grid .color-btn,
.wplace-theme-neon-light .edit-color-grid .color-btn {
width: 18px;
height: 18px;
border: 2px solid #203C5D;
border-radius: 0;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
flex-shrink: 0;
box-shadow: 0 0 5px rgba(32, 60, 93, 0.3);
}
:root .edit-color-grid .color-btn:hover,
.wplace-theme-neon-light .edit-color-grid .color-btn:hover {
border-color: #ff1493;
transform: scale(1.1);
z-index: 10;
box-shadow: 0 0 10px rgba(255, 20, 147, 0.5);
}
:root .edit-color-grid .color-btn.selected,
.wplace-theme-neon-light .edit-color-grid .color-btn.selected {
border-color: #ff1493;
box-shadow: 0 0 15px rgba(255, 20, 147, 0.8);
transform: scale(1.1);
}
:root .zoom-controls,
.wplace-theme-neon-light .zoom-controls {
display: flex;
align-items: center;
gap: 8px;
background: rgba(32, 60, 93, 0.1);
padding: 6px 12px;
border-radius: 0;
border: 2px solid #203C5D;
}
:root .zoom-btn,
.wplace-theme-neon-light .zoom-btn {
background: rgba(32, 60, 93, 0.1);
border: 2px solid #203C5D;
color: #203C5D;
border-radius: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
font-size: 14px;
font-weight: bold;
text-shadow: 0 0 5px rgba(234, 156, 0, 0.5);
}
:root .zoom-btn:hover,
.wplace-theme-neon-light .zoom-btn:hover {
background: rgba(32, 60, 93, 0.2);
border-color: #ff1493;
color: #ff1493;
transform: translateY(-1px);
box-shadow: 0 0 10px rgba(255, 20, 147, 0.5);
}
-761
View File
@@ -927,764 +927,3 @@
text-shadow: 0 0 8px #00bfff;
}
/* Edit Panel Styles for Neon Theme - Complete Fullscreen Layout */
:root .edit-overlay,
.wplace-theme-neon .edit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(26, 26, 46, 0.95);
z-index: 10001;
backdrop-filter: blur(8px);
}
/* Enhanced Container Layout */
:root .edit-container,
.wplace-theme-neon .edit-container {
background: var(--wplace-primary);
border-radius: 0;
box-shadow: 0 0 30px var(--wplace-text), inset 0 0 30px rgb(0 255 65 / 10%);
display: flex;
flex-direction: column;
width: 98vw;
height: 98vh;
max-width: 98vw;
max-height: 98vh;
min-width: 1000px;
min-height: 700px;
overflow: hidden;
backdrop-filter: blur(15px);
border: 2px solid var(--wplace-text);
position: fixed;
top: 1vh;
left: 1vw;
z-index: 10000;
}
:root .edit-main,
.wplace-theme-neon .edit-main {
display: flex;
flex: 1;
min-height: 0;
}
/* Enhanced Header Layout */
:root .edit-header,
.wplace-theme-neon .edit-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
background: var(--wplace-secondary);
border-bottom: 2px solid var(--wplace-text);
min-height: 70px;
}
:root .edit-header-left,
.wplace-theme-neon .edit-header-left {
display: flex;
flex-direction: column;
gap: 4px;
}
:root .edit-header h3,
.wplace-theme-neon .edit-header h3 {
margin: 0;
color: var(--wplace-text);
font-size: 18px;
font-weight: 600;
text-shadow: 0 0 10px var(--wplace-text);
font-family: var(--wplace-font);
text-transform: uppercase;
}
:root .edit-instructions,
.wplace-theme-neon .edit-instructions {
color: rgba(0, 255, 65, 0.7);
font-family: var(--wplace-font);
font-size: 8px;
text-transform: uppercase;
text-shadow: 0 0 5px var(--wplace-text);
}
:root .edit-nav-controls,
.wplace-theme-neon .edit-nav-controls {
display: flex;
align-items: center;
gap: 20px;
}
/* Zoom Controls */
:root .zoom-controls,
.wplace-theme-neon .zoom-controls {
display: flex;
align-items: center;
gap: 8px;
background: rgba(0, 255, 65, 0.05);
padding: 6px 12px;
border-radius: 0;
border: 2px solid var(--wplace-text);
box-shadow: 0 0 15px var(--wplace-text);
}
:root .zoom-select,
.wplace-theme-neon .zoom-select {
background: var(--wplace-secondary);
border: 2px solid var(--wplace-text);
color: var(--wplace-text);
border-radius: 0;
padding: 4px 8px;
font-size: 11px;
cursor: pointer;
min-width: 60px;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
}
:root .zoom-select:hover,
.wplace-theme-neon .zoom-select:hover {
box-shadow: 0 0 15px var(--wplace-text);
animation: pixel-blink 0.5s infinite;
}
/* Content Layout */
:root .edit-content,
.wplace-theme-neon .edit-content {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
}
:root .edit-main-area,
.wplace-theme-neon .edit-main-area {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
/* Toolbar Styling */
:root .edit-toolbar,
.wplace-theme-neon .edit-toolbar {
width: 80px;
min-width: 80px;
background: var(--wplace-secondary);
border-right: 2px solid var(--wplace-text);
padding: 8px 4px;
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
box-shadow: 0 0 20px var(--wplace-text);
}
:root .edit-canvas-area,
.wplace-theme-neon .edit-canvas-area {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
background: var(--wplace-primary);
position: relative;
overflow: auto;
border-right: 2px solid var(--wplace-text);
}
/* Canvas Container with Neon Background Pattern */
:root .edit-canvas-container,
.wplace-theme-neon .edit-canvas-container {
flex: 1;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-image:
repeating-conic-gradient(rgba(0, 255, 65, 0.08) 0% 25%, transparent 0% 50%) 50% / 20px 20px;
}
:root .edit-canvas,
.wplace-theme-neon .edit-canvas {
border: 2px solid var(--wplace-text);
cursor: crosshair;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
background-image:
repeating-conic-gradient(rgba(0, 255, 65, 0.08) 0% 25%, transparent 0% 50%) 50% / 20px 20px;
box-shadow: 0 0 20px var(--wplace-text);
}
:root .edit-canvas-wrapper,
.wplace-theme-neon .edit-canvas-wrapper {
position: relative;
transform-origin: center center;
display: inline-block;
box-shadow: 0 0 30px var(--wplace-text);
border: 2px solid var(--wplace-text);
background: var(--wplace-primary);
transition: transform 0.1s ease-out;
image-rendering: pixelated;
}
/* Tool Groups */
:root .edit-tool-group,
.wplace-theme-neon .edit-tool-group {
background: rgba(0, 255, 65, 0.05);
border-radius: 0;
padding: 6px 4px;
border: 2px solid var(--wplace-text);
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
width: 100%;
box-shadow: 0 0 15px var(--wplace-text);
}
:root .edit-tool-group h4,
.wplace-theme-neon .edit-tool-group h4 {
color: var(--wplace-text);
margin: 0 0 8px 0;
font-size: 13px;
font-weight: 600;
text-shadow: 0 0 8px var(--wplace-text);
font-family: var(--wplace-font);
text-transform: uppercase;
}
/* Tool Buttons */
:root .edit-tool-btn,
.wplace-theme-neon .edit-tool-btn {
background: var(--wplace-secondary);
border: 2px solid var(--wplace-text);
color: var(--wplace-text);
border-radius: 0;
padding: 8px 12px;
cursor: pointer;
transition: all 0.2s ease;
font-size: 12px;
display: flex;
align-items: center;
gap: 6px;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
text-transform: uppercase;
}
:root .edit-tool-btn:hover,
.wplace-theme-neon .edit-tool-btn:hover {
box-shadow: 0 0 20px var(--wplace-text);
animation: pixel-blink 0.5s infinite;
}
:root .edit-tool-btn.active,
.wplace-theme-neon .edit-tool-btn.active {
background: var(--wplace-text);
color: var(--wplace-primary);
border-color: var(--wplace-text);
box-shadow: 0 0 25px var(--wplace-text);
}
/* Brush Preview */
:root .brush-preview,
.wplace-theme-neon .brush-preview {
position: absolute;
pointer-events: none;
border: 2px solid var(--wplace-text);
background: rgba(0, 255, 65, 0.1);
z-index: 1000;
transform-origin: top left;
display: none;
box-shadow: 0 0 15px var(--wplace-text);
}
/* Color Palette */
:root .edit-color-palette,
.wplace-theme-neon .edit-color-palette {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(24px, 1fr));
gap: 4px;
max-height: 150px;
overflow-y: auto;
}
:root .edit-color-swatch,
.wplace-theme-neon .edit-color-swatch {
width: 24px;
height: 24px;
border: 2px solid var(--wplace-text);
border-radius: 0;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: 0 0 8px var(--wplace-text);
}
:root .edit-color-swatch:hover,
.wplace-theme-neon .edit-color-swatch:hover {
transform: scale(1.1);
box-shadow: 0 0 15px var(--wplace-text);
}
:root .edit-color-swatch.active,
.wplace-theme-neon .edit-color-swatch.active {
border-color: var(--wplace-highlight);
box-shadow: 0 0 20px var(--wplace-highlight);
transform: scale(1.1);
}
/* Brush Size Controls */
:root .edit-brush-size-container,
.wplace-theme-neon .edit-brush-size-container {
display: flex;
flex-direction: column;
gap: 8px;
}
:root .edit-brush-size-slider,
.wplace-theme-neon .edit-brush-size-slider {
width: 100%;
background: var(--wplace-secondary);
border-radius: 0;
height: 6px;
outline: none;
appearance: none;
-webkit-appearance: none;
border: 1px solid var(--wplace-text);
box-shadow: 0 0 10px var(--wplace-text);
}
:root .edit-brush-size-slider::-webkit-slider-thumb,
.wplace-theme-neon .edit-brush-size-slider::-webkit-slider-thumb {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 0;
background: var(--wplace-text);
border: 2px solid var(--wplace-text);
cursor: pointer;
transition: all 0.2s ease;
box-shadow: 0 0 10px var(--wplace-text);
}
:root .edit-brush-size-slider::-webkit-slider-thumb:hover,
.wplace-theme-neon .edit-brush-size-slider::-webkit-slider-thumb:hover {
transform: scale(1.2);
box-shadow: 0 0 20px var(--wplace-text);
}
:root .edit-brush-size-display,
.wplace-theme-neon .edit-brush-size-display {
color: var(--wplace-text);
font-size: 12px;
text-align: center;
background: rgba(0, 255, 65, 0.1);
padding: 4px 8px;
border-radius: 0;
border: 1px solid var(--wplace-text);
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
}
/* Action Buttons */
:root .edit-action-buttons,
.wplace-theme-neon .edit-action-buttons {
display: flex;
gap: 10px;
padding: 10px;
background: var(--wplace-secondary);
border-top: 2px solid var(--wplace-text);
}
:root .edit-btn-primary,
.wplace-theme-neon .edit-btn-primary {
background: var(--wplace-secondary);
color: var(--wplace-success);
border: 2px solid var(--wplace-success);
border-radius: 0;
padding: 10px 20px;
cursor: pointer;
font-weight: bold;
transition: all 0.2s ease;
font-family: var(--wplace-font);
text-shadow: 0 0 8px var(--wplace-success);
text-transform: uppercase;
}
:root .edit-btn-secondary,
.wplace-theme-neon .edit-btn-secondary {
background: var(--wplace-secondary);
color: var(--wplace-text);
border: 2px solid var(--wplace-text);
border-radius: 0;
padding: 10px 20px;
cursor: pointer;
transition: all 0.2s ease;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
text-transform: uppercase;
}
:root .edit-btn-primary:hover,
.wplace-theme-neon .edit-btn-primary:hover {
box-shadow: 0 0 20px var(--wplace-success);
animation: pixel-blink 0.5s infinite;
}
:root .edit-btn-secondary:hover,
.wplace-theme-neon .edit-btn-secondary:hover {
box-shadow: 0 0 15px var(--wplace-text);
animation: pixel-blink 0.5s infinite;
}
/* Zoom Controls */
:root .edit-zoom-controls,
.wplace-theme-neon .edit-zoom-controls {
display: flex;
align-items: center;
gap: 8px;
}
:root .edit-zoom-btn,
.wplace-theme-neon .edit-zoom-btn {
background: var(--wplace-secondary);
border: 2px solid var(--wplace-text);
color: var(--wplace-text);
border-radius: 0;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
}
:root .edit-zoom-btn:hover,
.wplace-theme-neon .edit-zoom-btn:hover {
box-shadow: 0 0 15px var(--wplace-text);
animation: pixel-blink 0.5s infinite;
}
/* Minimap Container & Components */
:root .minimap-container,
.wplace-theme-neon .minimap-container {
width: 200px;
height: 200px;
background: var(--wplace-primary);
border: 2px solid var(--wplace-text);
border-radius: 0;
position: absolute;
top: 80px;
right: 20px;
overflow: hidden;
box-shadow: 0 0 25px var(--wplace-text), inset 0 0 20px rgb(0 255 65 / 10%);
backdrop-filter: blur(10px);
flex-shrink: 0;
z-index: 1000;
}
:root .minimap-header,
.wplace-theme-neon .minimap-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 24px;
background: var(--wplace-secondary);
border-bottom: 1px solid var(--wplace-text);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 600;
color: var(--wplace-text);
z-index: 3;
font-family: var(--wplace-font);
text-transform: uppercase;
text-shadow: 0 0 5px var(--wplace-text);
}
:root .minimap-content,
.wplace-theme-neon .minimap-content {
position: absolute;
top: 24px;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
}
:root .minimap-canvas,
.wplace-theme-neon .minimap-canvas {
position: absolute;
top: 0;
left: 0;
cursor: crosshair;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
background-image:
repeating-conic-gradient(rgba(0, 255, 65, 0.08) 0% 25%, transparent 0% 50%) 50% / 8px 8px;
border: 1px solid var(--wplace-text);
}
:root .minimap-canvas:hover,
.wplace-theme-neon .minimap-canvas:hover {
border-color: var(--wplace-highlight);
box-shadow: 0 0 10px var(--wplace-highlight);
}
:root .minimap-viewport,
.wplace-theme-neon .minimap-viewport {
position: absolute;
border: 2px solid var(--wplace-highlight);
background: rgba(255, 107, 53, 0.1);
pointer-events: none;
z-index: 2;
box-shadow: 0 0 15px var(--wplace-highlight);
}
/* Bottom Bar Styles */
:root .edit-bottom-bar,
.wplace-theme-neon .edit-bottom-bar {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 12px;
background: var(--wplace-secondary);
border-top: 2px solid var(--wplace-text);
min-height: 70px;
max-height: 120px;
overflow: visible;
width: 100%;
position: relative;
}
:root .edit-info-section,
.wplace-theme-neon .edit-info-section {
display: flex;
align-items: center;
color: var(--wplace-text);
font-size: 10px;
font-family: var(--wplace-font);
white-space: nowrap;
min-width: 180px;
flex-shrink: 0;
text-shadow: 0 0 5px var(--wplace-text);
text-transform: uppercase;
}
:root .edit-current-color,
.wplace-theme-neon .edit-current-color {
display: flex;
align-items: center;
gap: 6px;
color: var(--wplace-text);
font-size: 11px;
white-space: nowrap;
flex-shrink: 0;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
text-transform: uppercase;
}
:root .edit-available-colors,
.wplace-theme-neon .edit-available-colors {
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
min-width: 0;
}
:root .edit-available-colors label,
.wplace-theme-neon .edit-available-colors label {
color: var(--wplace-text);
font-size: 10px;
font-weight: 600;
margin: 0;
font-family: var(--wplace-font);
text-shadow: 0 0 5px var(--wplace-text);
text-transform: uppercase;
}
:root .color-display,
.wplace-theme-neon .color-display {
width: 24px;
height: 24px;
border: 2px solid var(--wplace-text);
border-radius: 0;
cursor: pointer;
box-shadow: 0 0 8px var(--wplace-text);
flex-shrink: 0;
}
:root .edit-color-grid,
.wplace-theme-neon .edit-color-grid {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 3px;
max-height: 80px;
overflow: visible;
padding: 4px 0;
justify-content: flex-start;
flex-direction: row;
}
:root .edit-color-grid .color-btn,
.wplace-theme-neon .edit-color-grid .color-btn {
width: 18px;
height: 18px;
border: 2px solid var(--wplace-text);
border-radius: 0;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
flex-shrink: 0;
box-shadow: 0 0 8px var(--wplace-text);
}
:root .edit-color-grid .color-btn:hover,
.wplace-theme-neon .edit-color-grid .color-btn:hover {
transform: scale(1.1);
box-shadow: 0 0 15px var(--wplace-text);
}
:root .edit-color-grid .color-btn.active,
.wplace-theme-neon .edit-color-grid .color-btn.active {
border-color: var(--wplace-highlight);
box-shadow: 0 0 20px var(--wplace-highlight);
transform: scale(1.2);
}
/* Mobile Responsive Adjustments */
@media (max-width: 1024px) {
:root .edit-container,
.wplace-theme-neon .edit-container {
width: 100vw;
height: 100vh;
min-width: 100vw;
min-height: 100vh;
top: 0;
left: 0;
border-radius: 0;
}
:root .edit-nav-controls,
.wplace-theme-neon .edit-nav-controls {
flex-direction: column;
gap: 8px;
}
:root .edit-main-area,
.wplace-theme-neon .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-neon .edit-toolbar {
width: 60px;
min-width: 60px;
}
:root .minimap-container,
.wplace-theme-neon .minimap-container {
top: 80px;
right: 8px;
transform: scale(0.8);
}
:root .zoom-controls,
.wplace-theme-neon .zoom-controls {
flex-wrap: wrap;
gap: 4px;
}
}
@media (max-width: 768px) {
:root .edit-header,
.wplace-theme-neon .edit-header {
padding: 8px 12px;
flex-direction: column;
gap: 8px;
min-height: 60px;
}
:root .edit-main-area,
.wplace-theme-neon .edit-main-area {
flex-direction: row;
}
:root .edit-toolbar,
.wplace-theme-neon .edit-toolbar {
width: 50px;
min-width: 50px;
}
:root .zoom-controls,
.wplace-theme-neon .zoom-controls {
scale: 0.9;
}
:root .minimap-container,
.wplace-theme-neon .minimap-container {
display: none;
}
:root .edit-color-grid .color-btn,
.wplace-theme-neon .edit-color-grid .color-btn {
width: 16px;
height: 16px;
}
}
/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
:root .zoom-btn,
.wplace-theme-neon .zoom-btn {
min-width: 44px;
min-height: 44px;
}
:root .edit-tool,
.wplace-theme-neon .edit-tool {
min-width: 44px;
min-height: 44px;
padding: 12px;
}
:root .edit-color-btn,
.wplace-theme-neon .edit-color-btn {
min-width: 20px;
min-height: 20px;
}
}
/* High DPI Display Optimizations */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
:root .edit-canvas,
.wplace-theme-neon .edit-canvas {
image-rendering: -webkit-optimize-contrast;
image-rendering: pixelated;
}
:root .minimap-canvas,
.wplace-theme-neon .minimap-canvas {
image-rendering: -webkit-optimize-contrast;
image-rendering: pixelated;
}
}