dsh-deepseek-style-theme 1.43.7 → 1.43.8

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 +58 -13
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -1837,18 +1837,63 @@ html[data-dshome-blur="off"] body{
1837
1837
  }
1838
1838
 
1839
1839
  /**
1840
- * Fluid palette per DSTT colour. The site ships `#8AA3D6` plus two pure
1841
- * whites, which reads as one faint blue meander — legible on deepseek.com
1842
- * but far too quiet to carry a colour token, so each entry here uses a
1843
- * stronger lead and a genuinely different third tone: the display shader
1844
- * blends all three across the noise field, so three near-identical colours
1845
- * flatten the flow into a single wash.
1840
+ * Fluid palette per DSTT colour, built the way the upstream fluid builds its
1841
+ * own: three tones off ONE hue with high saturation and a lightness ramp
1842
+ * (dsh-theme-mineradio's `fluidToneColors`).
1843
+ *
1844
+ * This replaces hand-picked hex triples, and the measurement is why. On the
1845
+ * live page, with the colour token green, the canvas read 235,240,252 while
1846
+ * the CSS background behind it read 233,242,241: the light green set
1847
+ * (#4FBE92 / #FFFFFF / #D6F2E4) is three near-white tones, and three
1848
+ * near-white tones average into a wash in which the eye reads the blue
1849
+ * channel. Hiding the canvas turned the page green instantly -- the canvas
1850
+ * was painting the wash over it. Upstream's lead tone is hsl(hue, 1, .27..),
1851
+ * i.e. genuinely saturated, which is what makes a hue swap visible.
1852
+ *
1853
+ * Hues stay the site's own (FLUID_HUES below).
1846
1854
  */
1847
- 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'] }
1851
- };
1855
+ const FLUID_DEPTH = { light: 22, dark: 26 };
1856
+
1857
+ /** hsl -> #rrggbb, same shape as the upstream helper. */
1858
+ function fluidHsl(h, s, l) {
1859
+ const hue = ((h % 360) + 360) % 360;
1860
+ const c = (1 - Math.abs(2 * l - 1)) * s;
1861
+ const x = c * (1 - Math.abs(((hue / 60) % 2) - 1));
1862
+ const m = l - c / 2;
1863
+ const seg = Math.floor(hue / 60) % 6;
1864
+ const rgb = seg === 0 ? [c, x, 0]
1865
+ : seg === 1 ? [x, c, 0]
1866
+ : seg === 2 ? [0, c, x]
1867
+ : seg === 3 ? [0, x, c]
1868
+ : seg === 4 ? [x, 0, c]
1869
+ : [c, 0, x];
1870
+ return '#' + rgb.map((v) => Math.round((v + m) * 255).toString(16).padStart(2, '0')).join('');
1871
+ }
1872
+
1873
+ /**
1874
+ * The three fluid tones for one hue. `depth` is upstream's knob: 0 is the
1875
+ * deepest and most saturated, 100 the palest. The dark scheme walks the same
1876
+ * ramp so the flow still reads as a dark shell.
1877
+ */
1878
+ function fluidToneColors(dark, hue, depth) {
1879
+ const d = Math.min(1, Math.max(0, depth / 100));
1880
+ const ramp = (deep, mid, pale) => (d < 0.5
1881
+ ? deep + (mid - deep) * d / 0.5
1882
+ : mid + (pale - mid) * (d - 0.5) / 0.5);
1883
+ if (dark) {
1884
+ return [
1885
+ fluidHsl(hue, 0.85, ramp(0, 0.46, 0.62)),
1886
+ fluidHsl(hue, 0.9, ramp(0, 0.305, 0.45)),
1887
+ fluidHsl(hue, 0.5, ramp(0, 0.075, 0.1))
1888
+ ];
1889
+ }
1890
+ return [
1891
+ fluidHsl(hue, 1, ramp(0.27, 0.45, 0.9)),
1892
+ fluidHsl(hue, 0.55, 0.86),
1893
+ fluidHsl(hue, 0.25, 0.955)
1894
+ ];
1895
+ }
1896
+
1852
1897
  /** Edge-tint hue for the glass dispersion, following the DSTT colour. */
1853
1898
  const FLUID_HUES = { green: 152, blue: 221, red: 356 };
1854
1899
 
@@ -1880,8 +1925,8 @@ html[data-dshome-blur="off"] body{
1880
1925
  }
1881
1926
  /** The whole fluid parameter set for the current DSTT colour and scheme. */
1882
1927
  function dshomeFluidParams() {
1883
- const palette = FLUID_COLORS[dshomeColor()];
1884
- const pick = dshomeDark() ? palette.dark : palette.light;
1928
+ const dark = dshomeDark();
1929
+ const pick = fluidToneColors(dark, FLUID_HUES[dshomeColor()], dark ? FLUID_DEPTH.dark : FLUID_DEPTH.light);
1885
1930
  // `mouseFeed` is ours, not upstream's: false keeps the cursor from
1886
1931
  // writing a wake into the flow field (see the DSTT `fluidBrush` setting).
1887
1932
  return { ...SITE_FLUID_PARAMS, color1: pick[0], color2: pick[1], color3: pick[2], mouseFeed: dsttBrush() };
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.7",
4
+ "version": "1.43.8",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "deepseek",