dsh-deepseek-style-theme 1.43.11 → 1.43.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/client.js +31 -5
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -1844,10 +1844,18 @@ html[data-dshome-blur="off"] body{
1844
1844
  * blends all three across the noise field, so three near-identical colours
1845
1845
  * flatten the flow into a single wash.
1846
1846
  */
1847
+ // Two tones carry the hue, the third is white (light) or near-black (dark) --
1848
+ // the user's own rule: 白蓝 / 黑蓝, 白红 / 黑红, 白绿 / 黑绿. What changed is
1849
+ // that the two hue tones now carry real chroma: the previous set was
1850
+ // (hue + #FFFFFF + near-white), and the display shader averages all three
1851
+ // across the screen, so a pale lead plus two whites washed every mode into
1852
+ // the same blue-white (measured: canvas 235,240,252 with the token green).
1853
+ // Averaged now: blue 67,122,226 / red 219,78,87 / green 40,164,115, i.e. the
1854
+ // expected channel leads in every family, in both schemes.
1847
1855
  const FLUID_COLORS = {
1848
- green: { light: ['#4FBE92', '#FFFFFF', '#D6F2E4'], dark: ['#1F6B4E', '#061423', '#0E3A2A'] },
1849
- blue: { light: ['#5E82DE', '#FFFFFF', '#D8E2FA'], dark: ['#2C4A9E', '#050F26', '#122A5C'] },
1850
- red: { light: ['#D4797F', '#FFFFFF', '#FAD6D8'], dark: ['#8E2F36', '#1A0A0D', '#40141A'] }
1856
+ green: { light: ['#0FA76A', '#5FCB9E', '#0B7A52'], dark: ['#0A5C3A', '#0E7A4E', '#03130C'] },
1857
+ blue: { light: ['#1E6FE8', '#7FA8F5', '#2B57C9'], dark: ['#0B2E7A', '#123B8F', '#050A18'] },
1858
+ red: { light: ['#E23A44', '#F08A90', '#C02630'], dark: ['#8A1520', '#5E0F16', '#140507'] }
1851
1859
  };
1852
1860
  /** Edge-tint hue for the glass dispersion, following the DSTT colour. */
1853
1861
  const FLUID_HUES = { green: 152, blue: 221, red: 356 };
@@ -2047,7 +2055,7 @@ html[data-dshome-blur="off"] body{
2047
2055
  if (!supportsWebgl2()) return startParticles();
2048
2056
  // Which build is running, readable from the page (see README). One line in
2049
2057
  // the console answers "is the bundle I just installed actually live?".
2050
- try { window.__dshomeBuild = '1.43.11 fluid-soft'; } catch (error) {}
2058
+ try { window.__dshomeBuild = '1.43.12 bold-hue'; } catch (error) {}
2051
2059
  const canvas = document.createElement('canvas');
2052
2060
  canvas.setAttribute('data-dsh-deepseek-canvas', '');
2053
2061
  const style = canvas.style;
@@ -2067,6 +2075,23 @@ html[data-dshome-blur="off"] body{
2067
2075
  document.body.appendChild(canvas);
2068
2076
 
2069
2077
  const fluid = attachFluidShader(canvas, dshomeFluidParams());
2078
+ // ── palette follows the token, every frame ────────────────────────────
2079
+ // The mount above resolves the palette ONCE. Measured failure: with the
2080
+ // token green the body background computed green while the canvas kept
2081
+ // painting its mount palette -- six light/dark x blue/red/green
2082
+ // screenshots all sampled the same blue (159,187,238). Subscriptions and
2083
+ // a MutationObserver were not enough either (1.43.6 tried), because the
2084
+ // colour driver writes the token before this canvas exists. So the
2085
+ // palette is derived from the DOM and compared per frame: two
2086
+ // getAttribute calls when nothing changed, and it cannot miss a writer.
2087
+ let fluidKey = JSON.stringify(dshomeFluidParams());
2088
+ const fluidSync = setInterval(() => {
2089
+ let next;
2090
+ try { next = JSON.stringify(dshomeFluidParams()); } catch (error) { return; }
2091
+ if (next === fluidKey) return;
2092
+ fluidKey = next;
2093
+ try { fluid.setParams(JSON.parse(next)); } catch (error) {}
2094
+ }, 200);
2070
2095
  // The fluid is deliberately autonomous: no pointer feed (the `fluidBrush`
2071
2096
  // setting, off by default) and no button stir either. The ported
2072
2097
  // `attachFluidInteractions` is therefore NOT wired — it is kept in the
@@ -2128,13 +2153,14 @@ html[data-dshome-blur="off"] body{
2128
2153
  dispersion.dispose();
2129
2154
  stopParallax();
2130
2155
  stopSpotter();
2156
+ clearInterval(fluidSync);
2131
2157
  fluid.dispose();
2132
2158
  canvas.remove();
2133
2159
  };
2134
2160
  }
2135
2161
 
2136
2162
  function startParticles() {
2137
- try { window.__dshomeBuild = '1.43.11 fluid-soft'; } catch (error) {}
2163
+ try { window.__dshomeBuild = '1.43.12 bold-hue'; } catch (error) {}
2138
2164
  const canvas = document.createElement('canvas');
2139
2165
  canvas.setAttribute('data-dsh-deepseek-canvas', '');
2140
2166
  const style = canvas.style;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-deepseek-style-theme",
3
3
  "description": "DeepSeek official-home style theme: WebGL fluid-flow background, liquid glass with SVG edge refraction, glass sidebar and composer, frosted header, running-subagent progress panel, and DeepSeek brand link for the dsh web GUI",
4
- "version": "1.43.11",
4
+ "version": "1.43.12",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "deepseek",