From ac894390f96b8a36df16bb1fb9e2009ca7f568ee Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 23 May 2026 16:00:28 +0000 Subject: [PATCH] gioser-graph: exaggerated thickness & brightness, edges behind with pointer-events:none MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stroke width: 1.5 + w*8.0 (range 3-10px) for dramatic variation - Brightness: w*0.7 factor, low weight = pure blended color, high weight ≈ white - Opacity: 0.40 + w*0.55 (40-95%) - Edges group gets .gb-edge-group { pointer-events: none } so clicks pass to nodes - Visual layer: edges_group (behind) → nodes_group (front) in SVG --- crates/apps/gioser-web/pkg/gioser_web_bg.wasm | Bin 527719 -> 527898 bytes .../gioser/gioser-graph-web/src/lib.rs | 22 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/crates/apps/gioser-web/pkg/gioser_web_bg.wasm b/crates/apps/gioser-web/pkg/gioser_web_bg.wasm index 9e1c7124e5ea52c3a9ad17aff1e8bb815e874e0e..939c2e4bcfa7ff6bfeda86ee5ce83deb10a1630e 100644 GIT binary patch delta 33565 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 diff --git a/crates/modules/gioser/gioser-graph-web/src/lib.rs b/crates/modules/gioser/gioser-graph-web/src/lib.rs index e64b524..bd5e3fd 100644 --- a/crates/modules/gioser/gioser-graph-web/src/lib.rs +++ b/crates/modules/gioser/gioser-graph-web/src/lib.rs @@ -203,6 +203,7 @@ impl GraphWidget { .gb-svg { animation: graph-breathe 5s ease-in-out infinite; }\ .gb-node { transition: filter 250ms ease, opacity 200ms ease; }\ .gb-node:hover { filter: drop-shadow(0 0 14px rgba(255,255,255,0.2)); }\ + .gb-edge-group { pointer-events: none; }\ .gb-line { transition: opacity 400ms ease; }", )); svg.append_child(&style_el).ok(); @@ -214,6 +215,7 @@ impl GraphWidget { .unwrap() .dyn_into() .unwrap(); + edges_group.set_attribute("class", "gb-edge-group").ok(); // Grupo para nodos (con respiración, encima) let nodes_group: web_sys::SvgElement = self @@ -251,19 +253,21 @@ impl GraphWidget { let c2 = color_map.get(edge.target.as_str()).copied().unwrap_or("#888"); let w = edge.weight.unwrap_or(0.7); - // Sin normalización por max — usar weight directamente con más rango - // weight 0.5→0.8 suele ser el rango real; mapeamos a grosor visible - let thick = 0.6 + w * 4.0; // w=0.5→2.6, w=0.9→4.2, w=1.0→4.6 + // EXAGERADO: grosor 1 a 10px, máximo contraste + // weight 0.50 → 3px, weight 0.95 → 9px + let thick = 1.5 + w * 8.0; - // Mezclar colores: 50/50 + brillo según weight + // Color más saturado: mezcla sin gris, cada canal al extremo let blended = blend_colors(c1, c2, 0.5); let (br, bg, bb) = parse_hex(&blended); - let bright_factor = 0.2 + w * 0.5; // más brillo directo - let r = (br as f64 + (255.0 - br as f64) * bright_factor) as u32; - let g = (bg as f64 + (255.0 - bg as f64) * bright_factor) as u32; - let b = (bb as f64 + (255.0 - bb as f64) * bright_factor) as u32; + // Brillo exagerado: peso bajo = color puro; peso alto → blanco + let bright_factor = w * 0.7; + let r = (br as f64 + (255.0 - br as f64) * bright_factor).min(255.0) as u32; + let g = (bg as f64 + (255.0 - bg as f64) * bright_factor).min(255.0) as u32; + let b = (bb as f64 + (255.0 - bb as f64) * bright_factor).min(255.0) as u32; - let alpha = 0.15 + w * 0.75; + // Opacidad: peso bajo = 40%, peso alto = 95% + let alpha = 0.40 + w * 0.55; let line: SvgLineElement = self .document