diff --git a/src/meshcore_hub/web/static/css/app.css b/src/meshcore_hub/web/static/css/app.css index 8f6b6e3..bfcb72f 100644 --- a/src/meshcore_hub/web/static/css/app.css +++ b/src/meshcore_hub/web/static/css/app.css @@ -25,6 +25,7 @@ --color-messages: oklch(0.75 0.18 180); /* teal */ --color-map: oklch(0.8471 0.199 83.87); /* yellow (matches btn-warning) */ --color-members: oklch(0.72 0.17 50); /* orange */ + --color-neutral: oklch(0.3 0.01 250); /* subtle dark grey */ } /* Light mode: darker section colors for contrast on light backgrounds */ @@ -35,6 +36,7 @@ --color-messages: oklch(0.55 0.18 180); --color-map: oklch(0.58 0.16 45); --color-members: oklch(0.55 0.18 25); + --color-neutral: oklch(0.85 0.01 250); } /* ========================================================================== @@ -90,6 +92,34 @@ color: #fff !important; } +/* ========================================================================== + Panel Glow + Radial color glow from bottom-right corner. + Set --panel-color on the element for a section-tinted glow. + ========================================================================== */ + +.panel-glow { + background-image: + radial-gradient( + ellipse at 80% 80%, + color-mix(in oklch, var(--panel-color, transparent) 15%, transparent), + transparent 70% + ); +} + +.panel-glow.panel-glow-tl { + background-image: + radial-gradient( + ellipse at 20% 20%, + color-mix(in oklch, var(--panel-color, transparent) 15%, transparent), + transparent 70% + ); +} + +.panel-solid { + background-color: color-mix(in oklch, var(--panel-color, transparent) 10%, oklch(var(--b1))); +} + /* ========================================================================== Scrollbar Styling ========================================================================== */ diff --git a/src/meshcore_hub/web/static/js/spa/pages/advertisements.js b/src/meshcore_hub/web/static/js/spa/pages/advertisements.js index b4ec765..b5efcfb 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/advertisements.js +++ b/src/meshcore_hub/web/static/js/spa/pages/advertisements.js @@ -160,7 +160,7 @@ ${content}`, container); }); renderPage(html` -
+
diff --git a/src/meshcore_hub/web/static/js/spa/pages/dashboard.js b/src/meshcore_hub/web/static/js/spa/pages/dashboard.js index 5c7173b..bc9285d 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/dashboard.js +++ b/src/meshcore_hub/web/static/js/spa/pages/dashboard.js @@ -45,7 +45,7 @@ function renderRecentAds(ads) { if (!ads || ads.length === 0) { return html`

No advertisements recorded yet.

`; } - const rows = ads.map(ad => { + const rows = ads.slice(0, 5).map(ad => { const friendlyName = ad.tag_name || ad.name; const displayName = friendlyName || (ad.public_key.slice(0, 12) + '...'); const keyLine = friendlyName @@ -98,7 +98,7 @@ function renderChannelMessages(channelMessages) {
`; }); - return html`
+ return html`

${iconChannel('h-6 w-6')} @@ -148,7 +148,7 @@ export async function render(container, params, router) { ${topCount > 0 ? html`
${showNodes ? html` -
+
${iconNodes('h-8 w-8')}
@@ -158,7 +158,7 @@ ${topCount > 0 ? html`
` : nothing} ${showAdverts ? html` -
+
${iconAdvertisements('h-8 w-8')}
@@ -168,7 +168,7 @@ ${topCount > 0 ? html`
` : nothing} ${showMessages ? html` -
+
${iconMessages('h-8 w-8')}
@@ -180,7 +180,7 @@ ${topCount > 0 ? html`
${showNodes ? html` -
+

${iconNodes('h-5 w-5')} @@ -194,7 +194,7 @@ ${topCount > 0 ? html`

` : nothing} ${showAdverts ? html` -
+

${iconAdvertisements('h-5 w-5')} @@ -208,7 +208,7 @@ ${topCount > 0 ? html`

` : nothing} ${showMessages ? html` -
+

${iconMessages('h-5 w-5')} @@ -225,7 +225,7 @@ ${topCount > 0 ? html` ${bottomCount > 0 ? html`
${showAdverts ? html` -
+

${iconAdvertisements('h-6 w-6')} diff --git a/src/meshcore_hub/web/static/js/spa/pages/home.js b/src/meshcore_hub/web/static/js/spa/pages/home.js index 868c04f..589242a 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/home.js +++ b/src/meshcore_hub/web/static/js/spa/pages/home.js @@ -67,7 +67,7 @@ export async function render(container, params, router) { const showActivityChart = showAdvertSeries || showMessageSeries; litRender(html` -
+
@@ -111,7 +111,7 @@ export async function render(container, params, router) { ${showStats ? html`
${features.nodes !== false ? html` -
+
${iconNodes('h-8 w-8')}
@@ -121,7 +121,7 @@ export async function render(container, params, router) {
` : nothing} ${features.advertisements !== false ? html` -
+
${iconAdvertisements('h-8 w-8')}
@@ -131,7 +131,7 @@ export async function render(container, params, router) {
` : nothing} ${features.messages !== false ? html` -
+
${iconMessages('h-8 w-8')}
diff --git a/src/meshcore_hub/web/static/js/spa/pages/map.js b/src/meshcore_hub/web/static/js/spa/pages/map.js index 7739da2..a0b5599 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/map.js +++ b/src/meshcore_hub/web/static/js/spa/pages/map.js @@ -174,7 +174,7 @@ export async function render(container, params, router) {
-
+
diff --git a/src/meshcore_hub/web/static/js/spa/pages/messages.js b/src/meshcore_hub/web/static/js/spa/pages/messages.js index 7866634..738eba5 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/messages.js +++ b/src/meshcore_hub/web/static/js/spa/pages/messages.js @@ -139,7 +139,7 @@ ${content}`, container); }); renderPage(html` -
+
diff --git a/src/meshcore_hub/web/static/js/spa/pages/nodes.js b/src/meshcore_hub/web/static/js/spa/pages/nodes.js index 3bc291f..1cdc936 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/nodes.js +++ b/src/meshcore_hub/web/static/js/spa/pages/nodes.js @@ -133,7 +133,7 @@ ${content}`, container); }); renderPage(html` -
+