From 5712068902f5c73a0bc5eab63a9f073a6f91f079 Mon Sep 17 00:00:00 2001 From: Eureka Self Date: Tue, 10 Nov 2026 13:18:59 +0000 Subject: [PATCH 1/8] nemesis: Meta's logo, chromeless plates and card, sky-led theme, denser terrain, scene style picker - Logo: Meta's white matte (2026-11-09) as the UI mark; icons are the mark on a night-sky tile. Dark ink on Noonday Sky. - Plates (title bars, lists, composer) and the sign-in card: blur with a light sky tint (PLATE_TINT 0.45), never opaque. - auto sky picks the theme from the resolved sky: day light mode, night dark mode, dusk the dark-ink crossover. - Terrain grid 768/2048 full, 512/1024 low, 256/1024 still. - Temporary Background group (Terrain, Ridges) in the sky menu, also on the sign-in card. Co-Authored-By: Claude Opus 5.5 --- public/favicon.ico | Bin 2338 -> 9308 bytes public/res/android/android-chrome-144x144.png | Bin 3096 -> 9669 bytes public/res/android/android-chrome-192x192.png | Bin 4140 -> 13156 bytes public/res/android/android-chrome-256x256.png | Bin 5684 -> 17958 bytes public/res/android/android-chrome-36x36.png | Bin 817 -> 2038 bytes public/res/android/android-chrome-384x384.png | Bin 9055 -> 27702 bytes public/res/android/android-chrome-48x48.png | Bin 1039 -> 2914 bytes public/res/android/android-chrome-512x512.png | Bin 12620 -> 37581 bytes public/res/android/android-chrome-72x72.png | Bin 1528 -> 4503 bytes public/res/android/android-chrome-96x96.png | Bin 2022 -> 6234 bytes public/res/apple/apple-touch-icon-114x114.png | Bin 2340 -> 7505 bytes public/res/apple/apple-touch-icon-120x120.png | Bin 2472 -> 7923 bytes public/res/apple/apple-touch-icon-144x144.png | Bin 3096 -> 9669 bytes public/res/apple/apple-touch-icon-152x152.png | Bin 3212 -> 10236 bytes public/res/apple/apple-touch-icon-167x167.png | Bin 3555 -> 11346 bytes public/res/apple/apple-touch-icon-180x180.png | Bin 3884 -> 12230 bytes public/res/apple/apple-touch-icon-57x57.png | Bin 1188 -> 3474 bytes public/res/apple/apple-touch-icon-60x60.png | Bin 1261 -> 3629 bytes public/res/apple/apple-touch-icon-72x72.png | Bin 1528 -> 4503 bytes public/res/apple/apple-touch-icon-76x76.png | Bin 1606 -> 4748 bytes public/res/svg/ratatoskr.svg | 16 +----- src/app/features/scene/BackgroundScene.tsx | 9 +++- src/app/features/scene/SkyStateControl.tsx | 51 +++++++++++++++++- src/app/features/scene/sceneStyle.ts | 28 ++++++++++ src/app/features/scene/skyPlate.css.ts | 6 ++- src/app/features/scene/skyPlate.ts | 8 +++ src/app/features/scene/skyTheme.ts | 4 +- .../features/scene/terrain/terrainWorld.ts | 6 +-- src/app/pages/auth/AuthLayout.tsx | 2 + src/app/pages/auth/styles.css.ts | 29 +++++++--- 30 files changed, 127 insertions(+), 32 deletions(-) create mode 100644 src/app/features/scene/sceneStyle.ts diff --git a/public/favicon.ico b/public/favicon.ico index cfce994377be2daa71cd95204142fc269980eb34..bda9855c959e04e31aef615055c68fa7df9e1805 100644 GIT binary patch literal 9308 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 delta 2245 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 diff --git a/public/res/android/android-chrome-144x144.png b/public/res/android/android-chrome-144x144.png index d76ed356c9aeb674b40950163dbd422d61b84ade..2dfde532d8801012b8a38a176b80aef5cc5239e7 100644 GIT binary patch literal 9669 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 Hu0mjfyJ31P literal 3096 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 Hu0mjfJf7~C delta 795 zcmV+$1LXYn53vT2BYy(;NklZL|2h`x@@(JZ^0 zliOyieaOR)-7_c4`7$$S&YX(MWmT}0RPnz7%0OkHB@MJ%rGEhR3I%m8n|)D%HW-u; zbuk%sucMks79eJ&0y^qcaNMZ|w^fxF==lLHgqzekZIXf3>6I|vrG=@ZI!;eKT4JaD z9=(8zqwpQW^r-#MnC7{nfY38y7{1VJG@y8=9wz)OOb0CR)N6*x9uu)4R7pS>B0j*h z-vG&zHu6l{#DAXhH)!)8 zy@@oyx6ugvN{qnIi5Lu@Y6H7LVp5BNK3{C60-+t}qdOVcRi_mIeY~-cz@#-kauqDB zaq&Wy)|5{VuY1iI;X)7nczK%xir?#(zU@ubikwN!*SoMi>&`-bxY7!@yqm}_EU6Ch zi(=xKk$(y^Kd>z)464~&ScT3DbbbdztwRFuL>yF)EId93Ut&FEd}QM)d4TXB%~^{E zcT-{biJZD0Drl=01XM|>)?cG;4k&fql>vmF;RB&2!%q2tu)gqtuzs5-ZrK=K5&VnJpUVv@-(RKLx7%dmqEw1;0hb1|MyO-p6DGl2c`%GEk}d Z4HWs9wKCfirC)VK(#! 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 literal 9055 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 P00000NkvXXu0mjf*S({W literal 12620 zcmeHt`8(9#`~P{)48}fX8I@(Usbpy*>kQKJDocrEr$X5(*%I?qNl{TLm24@yvhU2a z$QlaSjYMP{5o4Q~@6qf1d0*G}PxxHd=a=Dno^#*lKKHrT$2oUQjSmS6tQP6o z-~<2|_%8=HY2K<}jgi^;ype4BQkk>4vaiFHyfAKJ0{#3P5LB%;N& z(3{672Qa)p(A`D*j42dC^$qduoAV4+#doVYh=m9rS+~{P^arN=8Z#Xa%FSHjPOdaOp0$#vu&ttWF#sKnXTPtI zw7?8r9eP-r%~~vboIm`Q=NB}Z+izq59{KIg{-9CQ|Kn{OS)QtMSPlV{lSMoG)&ciB z&vnLf-0NtwIz^AcoSXgy2Nr6i?imr~kgfT=q*A10M(g9N4!L z5HR)Q#Z1N>V<2Pz0O7F&%Mn56>6e!#ms|PK-Kzq0dw=A~2mRsrJu#?&*2i5e z<^cu3yDC}AvMieCD!P-#WXQa1dn@+~dd%$>Wr3_be)yJVOGR1uN z^O=l$*vF$`@F1S+vET-HH~2AV8{)vfpN@Y5k@aSQ4v&Mlo={l1zofiCMV|DrimITA zw1`3-?M?2-njV~*43VE_morr6ns4rfj(fn&Sx8l$)LTVWpKA{N`$bFY`(KU?hs<&a<_?@S}FC zicGsIN?B**A$qs;uficEy>_ed{&dSd8u`ONy?+W7UaHReMh^UT{b$gw`$Z=E@8e@U)H!Ju^#RStD zxNoSRdtkt(d^F7ez3BJ4d)^V5r#?ITkg!QLAm+j4KnL4pPTwewqK-ig=3jXj7Bwlb zFMR-t*w3$pK>97TjP-ZBo;YwQE2^6lxWi;QIj_SlQ(Sth`x7Y^h<}S} zjEqc+uvIq?OuYQB!5jd!w+ovB{Kw?ZHdl)k5Vq>uPMp9a+b5R&UWx%o|19U+v@~m} z#*uj=`+6ExA-+98lycgqkS`?Npw?D1DZ*G*tAp_+Q_g>YKfRiWuLeMndGU%Fd^_Hl(md0Pml%rKN%Le$K^27VB@ z62htbzip=@@BB}c@Fm_QOonWShQQ4lYv%h(0j~IPslPXS{3uUz1UV zI?%nf(pJ;N)3QVARvF!V--SR2v;R^SbomsIy&Sz43f`=HV{AJxhDVHg{zd?20{D8) z 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 B{%rsN diff --git a/public/res/android/android-chrome-72x72.png b/public/res/android/android-chrome-72x72.png index 32d5d51646aed74aa40cb39a4af3161802fb74d2..7aa6caab1206aa1727999a4e983d1d909f52102c 100644 GIT binary patch literal 4503 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 delta 1511 zcmVw*C@BjlSb{c*nOwX)#W}H?)nIM^? zj0vgfIUvAc5hEk4jV)7)CTnC^BgE`GW&y0{fRIA6aLm!Pa=E-eSRed+dkOupvz*4d zDrl%JM&~-BG}2K@XWNQW*11{9906)f1eM`9fy5s8`+pr}G|_W2P42tJRzK~ErGWAj z5KP!9AZFqs^G3zO10z~^V9Wx<;jP84Rx)KkGSM@>yNrH)=?+5^dn+@pIVnhkHKjos z-;Z;((KzC>H3M5q-Kt+r?ICZX=}ID*jJku?k`n_!*r&- z!n+iMhkw|?0R$@?rr!q}jmWb4QKrfk4+R~=Vd_{@JokWLuDs|$N@aq>boGsfv`E4} zDx2sTYAdJi`Y?Unnd(*FbSCB=5O&5qKmfo41YLQpF70#JiJN~99!>@hpycJ{QGb6w zZQatC_C6wUP61&@%u6p3944!ATcb$YYqrG4z?0P)%iJhUtz z_>uMVW-n6ln(eDYv@W)U4sD8f4+y2%4M5Pv-W4gIH}`8YU@r94(AAH7=&$eIr+>yj zHT1_Q3k}T zVom_1nDx%(H1c#z%75T9JUG+mhbR$^`wI}H3JAjP8e4>ko=TXOO;lat;jxdX)xa)U8Bkxf zBRE#U*xlGUX9XxAXjbvCDsZL`uFDz>n$lc=aSVtz?tq`j!kK;N0lM&9Rn~wWsVT}C z97ljK!^yT`g{~aBTM5MFqZ4}h543D#1;pnusK zU!@qtJMQ5P&CKZ~3&*ad`19PcBqXFl$~E%^bN$2nYKcQ9A)4if~5eD?kCkY-m(4ew8WjvtPU_1qjCNOF$yC=2bKq zK)i8=SpexvKu~WTzc;f>HJK7G1Am8AG~WUec@cz}j}?;0q_O9b1q2;$jrtQ%K;fhn zhldQ%wPVe~@~#4CPkqF{fC3VRZH^{v5HULvjW<+M%#GoEP64Uj6*6FTMY({iyJtIH z{OI|d!Ep_c6G&s7#auw5xieF5d&~R)ZTxu&2=|^vfIfSy)L=MFG~cGrq+CRi=Ya5E=Rq=mdk6OpGeN>@Zr-l<6(A;j z-vR)Tau9B*+NBKMlUet_0_0a|KpKz+qycF_K9&Zg0ck)QkOt&q{R`aM)sM=ki4Fh& N002ovPDHLkV1h$`;%5K= diff --git a/public/res/android/android-chrome-96x96.png b/public/res/android/android-chrome-96x96.png index 5da68e4b8978211d33d8d3a21d5701e642b0932f..5ab44fe9df1da828a7a2aa029aa72cb745219a61 100644 GIT binary patch literal 6234 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 Eg34HaWdHyG delta 2009 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
    yNan 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 Hu0mjfyJ31P literal 3096 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 diff --git a/public/res/apple/apple-touch-icon-167x167.png b/public/res/apple/apple-touch-icon-167x167.png index 3f26f91b57890d8ad2c7327b6c3c2badd7970d2c..963c024d6a1bc63f6ea8168c590f84ed03a5c091 100644 GIT binary patch literal 11346 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 KLTbRSul@(HS$PEj diff --git a/public/res/apple/apple-touch-icon-57x57.png b/public/res/apple/apple-touch-icon-57x57.png index 2e2081f5f6c211a342eb4f6e27e6e25eeda7f0e3..5cad75b275f1666ab48515772539ca73305ce64a 100644 GIT binary patch delta 3473 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 delta 1169 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 delta 1242 zcmV<01SR{e9PJ5^BYy<6NklyjoN`h7~)u0VV z(wY_{+Mp&%Jn+a?u?8ch#e=q9LB$_RX{#WJkWw$udZD6GlxU1sZDUPU?5~e}C%((< z?EAj+PG)vzo6HYi!tDFboBix_yw7`#@?~bxNYW^`zkmnq0e^eI9?PfjkUK{@_&@10&kcRpu4N`xw_h% zr-2U@7=lGvJAdL<-)83ejswGzB3QjT=LeOn&0~|A zW$N8j5q~#FvoR~j2TWm)HWgDwMg~QrQEIEni)%|Nu&B^@xMh+lFg!s24l7D#l?IjE zcTr`IX5|ZO%Hlr9`zZ$&#jjDw;Kpgn47jhOie7eg(3=}S(tkZC>Fw=f+VgL#Bbv3X zmar)WHYPCC;TTs2`}*=h4b-SP)m56CXJ(F0Uw>ezXMIuZJ>&$8`~9ayT;OMW>bbDc zsh@XHX(5u|*wh0fA*ljC?x>8tcW!xzx>l44E&TYKnL=P_+LX!3OxT@h3@n?6Re>Q@SfhIb9)Fk2D6s{r42+DZT2_kGzjyACswxPv zUVj=?Ut`+__DNPssHV(d2M&KieOn_#f^`biGO%djuM)?9eK%VP4$~15meIPd0LvEt zvU-|jXfx1((>r3x3B|^f-Gd>3dfOFX2(_@)`55kOW?5d5fsD+cQFprnEOP66YeO_} zsGbY_Vt=g^w*S~V;e7k*{2r~(;;MXifPbeHh^Hr!mCb-ztt=9(Y-jyz3)p9I=ff;v z0Y(N3!2?_cmRT8vh0(QT7Dho~1`M}$6&S*%oGP>oSQfu}VAo=p36+;@%N8r6KX=X? z%+iPIZ3DZOrBz+qs0Uy2S4OgBAXE3R?T*3P0`@8FRqHJ-Dmcu5cdh*_eSob%_kV7# z;6lS?MX=AWAEmNTVR`}k-Y*}`j$y8~j<@XA9UGTB3hNlK?|mY}&Ik`26&m)juN(%(K{eXxdDKL2CGB*-Nm*K0}02U(3PbH z)VI4%+m*ca)okJMY1#sd#DismwNuZwlnC3MxX_YvU|eT_wRnfz>iCJmBFj4|urC10L>r2TWBkZ1(EZ6#xJL07*qoM6N<$ Eg6OnkE&u=k diff --git a/public/res/apple/apple-touch-icon-72x72.png b/public/res/apple/apple-touch-icon-72x72.png index 32d5d51646aed74aa40cb39a4af3161802fb74d2..7aa6caab1206aa1727999a4e983d1d909f52102c 100644 GIT binary patch literal 4503 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 delta 1511 zcmVw*C@BjlSb{c*nOwX)#W}H?)nIM^? zj0vgfIUvAc5hEk4jV)7)CTnC^BgE`GW&y0{fRIA6aLm!Pa=E-eSRed+dkOupvz*4d zDrl%JM&~-BG}2K@XWNQW*11{9906)f1eM`9fy5s8`+pr}G|_W2P42tJRzK~ErGWAj z5KP!9AZFqs^G3zO10z~^V9Wx<;jP84Rx)KkGSM@>yNrH)=?+5^dn+@pIVnhkHKjos z-;Z;((KzC>H3M5q-Kt+r?ICZX=}ID*jJku?k`n_!*r&- z!n+iMhkw|?0R$@?rr!q}jmWb4QKrfk4+R~=Vd_{@JokWLuDs|$N@aq>boGsfv`E4} zDx2sTYAdJi`Y?Unnd(*FbSCB=5O&5qKmfo41YLQpF70#JiJN~99!>@hpycJ{QGb6w zZQatC_C6wUP61&@%u6p3944!ATcb$YYqrG4z?0P)%iJhUtz z_>uMVW-n6ln(eDYv@W)U4sD8f4+y2%4M5Pv-W4gIH}`8YU@r94(AAH7=&$eIr+>yj zHT1_Q3k}T zVom_1nDx%(H1c#z%75T9JUG+mhbR$^`wI}H3JAjP8e4>ko=TXOO;lat;jxdX)xa)U8Bkxf zBRE#U*xlGUX9XxAXjbvCDsZL`uFDz>n$lc=aSVtz?tq`j!kK;N0lM&9Rn~wWsVT}C z97ljK!^yT`g{~aBTM5MFqZ4}h543D#1;pnusK zU!@qtJMQ5P&CKZ~3&*ad`19PcBqXFl$~E%^bN$2nYKcQ9A)4if~5eD?kCkY-m(4ew8WjvtPU_1qjCNOF$yC=2bKq zK)i8=SpexvKu~WTzc;f>HJK7G1Am8AG~WUec@cz}j}?;0q_O9b1q2;$jrtQ%K;fhn zhldQ%wPVe~@~#4CPkqF{fC3VRZH^{v5HULvjW<+M%#GoEP64Uj6*6FTMY({iyJtIH z{OI|d!Ep_c6G&s7#auw5xieF5d&~R)ZTxu&2=|^vfIfSy)L=MFG~cGrq+CRi=Ya5E=Rq=mdk6OpGeN>@Zr-l<6(A;j z-vR)Tau9B*+NBKMlUet_0_0a|KpKz+qycF_K9&Zg0ck)QkOt&q{R`aM)sM=ki4Fh& N002ovPDHLkV1h$`;%5K= diff --git a/public/res/apple/apple-touch-icon-76x76.png b/public/res/apple/apple-touch-icon-76x76.png index 1164b72d4d511247bb3685036e3858b7de7aa3cd..1448098d13759d4c902b5288fce71e367cf64e37 100644 GIT binary patch literal 4748 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 delta 1590 zcmV-62Fdx1CB_VpBYy@BNkl_ttFlQorT6j%lXnLSLs{Wag4hdF!q z?mg$;Jqvf2^Wr<;?qRQd_&uL<7Nw@7k(Rs`&G&yG(WHTCV1F8zr=)>tU>caGq=9K* z8knb~foWhGm}~j(Sh6sI)#Rnq^K1N$ex^Lj`OhR3u#dN7(_>YcQtM$^XE$aUTF}6t zO{E#a^{_0qenA3*WibE{07hF2p!{06rYC`|DM+V-_Xp_xj%>R6c#ffSZCSLp&QHP2 z*n+Pa*t-u|gMYwlc#mJ(P$;&@IRzHDa|sPK2WBBf6JWXpX9mWg@mY|?E%Q3rxHl)j z0PCGlmJk-x=bhOUDtG=DA8HIlfPesqLF3~VuS07C-T?-elZC}==e^F-y&2di9XWJ) zdp>>h#BzFjO92fu=F?Z*%jmOhxt35p0Sv#i8(6%HI)4QQP*-*YX{^7D#-CkbscTOc z(-)n2VbJCs7+ewV6$>y();;k{!=mg!nFX)_tU6P=0w!x+qfZsk*zQug_GDhvHOQ`_ z=fT}%LGc>hRYI5AbChOESHSqv!Ab!1>ybM8VJAl$G|Fc(}k7=I6N$-Td%dy4}C#L@oZ#!aZJFVx*~O%(lM~E>P%Z$a6v0r zJT$nfjB9Qz&yE=u^hT&~{(y;!)M(bl>$j7Q5$=f+#r&*etp(ChM!JGj=wD3rwKa6K zH80}*K$@Ds?--b<_PRN=K?n?**k2>GvX6R7q88^3d3``X4 zWneLxUDIr3PTX!_eXaov0zC8kyVmA;511%^nKga9KH@X@e$#2JI@x_6?cY{QR}VGQ z^?~Z-0|uG1CZ-!sfz4dlLH~Svf&Lx67^dGx2I$!4VyX?M(Ootpp@ag4Bw?=0*t5=e z1b>CFZe2PM0g4xMQ=cy-Ie?+eFlS8EdU#g%s-?EDZX9l~g#|qlT5kYL@hwgcV9-x{ zE5beptrseMQCTrD*dhc5?d)n-0!ukCWIZ>)&_>N>+McEK<1_Nr{a>HHY71-X@_EYk z=gc24Q61(67~GPTCF6VKClU~{;h!H4T7SZt_}~<+tgKK5%M~zDrH?A!4YaY{C5~b7 z`uXM6G=1(-BV*$0cl*{EZmklQD`2A0j!bJ5VPUU7K-ZrucMZ!d#6DH6P|UzKlw{Zf zLjZRQ3~f@ZkiPCKGm6uqfZAQ6n1Nw-rLsM`In<=YssJorRuvO4NVHSrB#ybUE`P); ztJhJtc@h}f7gcWQ1Qde#-(Q}Y&4S2|C|=q77&dwmm}u$>w?wHRf;DrZK^hkNLaWjN zJtPk;-fro7n@u#=m&uk>hij!^O`h6pTbu$Kn@*@4M=J#;8db|w{lDy6DFw`G5@8nV zuW^NA9Ob}d_9hX~?SS2Q@opiksejWQQvD*JdKwsn-5yaavm05<027UG!djuh7H1TaZ67FOO@OOk5*>L0F#B4Fu)MYL>V(0w8;ajlmdhMK3uJCloJ)s(OQQlq%OeBp%@h4` zhZPrKOrnVfukU;FZLJK!Tm-D7uqd&CrQXh-B5PwOt8wtn&dTg|hdM(oa{?>wz<6-5 zI0g@p@I4xM{`BFQ2lI`ytbbM~rbqWwgtbXC?;W8lFExd&eXA|YIF}!fTWoU*Oh$e8 zSf8`!g=6N%?CWT&?K+&gPI_Qgw>ZqgadOP=FNPw|@%|7$Q- zcZztyT9Y0agwxJj%QKDZE^sRd-{UoNT*ANcI$H+;l-*6Yqyv@+(l5X?Fb&L8(!ew@ o4a`&0z%(!o%u~|9G_d&UKc&>qycpq$2><{907*qoM6N<$f+NBE)&Kwi diff --git a/public/res/svg/ratatoskr.svg b/public/res/svg/ratatoskr.svg index 3ca98122..1092ffc4 100644 --- a/public/res/svg/ratatoskr.svg +++ b/public/res/svg/ratatoskr.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + diff --git a/src/app/features/scene/BackgroundScene.tsx b/src/app/features/scene/BackgroundScene.tsx index 10785a5f..0c8d0fb3 100644 --- a/src/app/features/scene/BackgroundScene.tsx +++ b/src/app/features/scene/BackgroundScene.tsx @@ -1,8 +1,9 @@ -import React, { useEffect, useRef } from 'react'; +import React, { useEffect, useMemo, useRef } from 'react'; import { useClientConfig } from '../../hooks/useClientConfig'; import { getFallbackSession } from '../../state/sessions'; import { mountBackgroundScene } from './host'; import { readCapabilities, resolveTier } from './tier'; +import { getSceneStyleOverride } from './sceneStyle'; import './sceneShell.css'; /** Set on while a scene runs, so signed-out screens can let it show through. */ @@ -16,7 +17,11 @@ export const SCENE_ACTIVE_ATTRIBUTE = 'data-scene'; * Tier 'off' renders nothing and loads nothing. */ export function BackgroundScene() { - const config = useClientConfig().backgroundScene; + const configured = useClientConfig().backgroundScene; + const config = useMemo(() => { + const style = getSceneStyleOverride(); + return configured && style ? { ...configured, style } : configured; + }, [configured]); const enabled = resolveTier(config, readCapabilities(navigator)) !== 'off'; const canvasRef = useRef(null); diff --git a/src/app/features/scene/SkyStateControl.tsx b/src/app/features/scene/SkyStateControl.tsx index 5a9d84d6..4e67bd81 100644 --- a/src/app/features/scene/SkyStateControl.tsx +++ b/src/app/features/scene/SkyStateControl.tsx @@ -1,9 +1,29 @@ import React, { MouseEventHandler, useState } from 'react'; -import { Box, config, Icon, IconButton, Icons, Menu, MenuItem, PopOut, RectCords, Text } from 'folds'; +import { + Box, + config, + Icon, + IconButton, + Icons, + Menu, + MenuItem, + PopOut, + RectCords, + Text, +} from 'folds'; import FocusTrap from 'focus-trap-react'; import { stopPropagation } from '../../utils/keyboard'; import { useSkyState } from '../../hooks/useSkyState'; import { SKY_STATES, setSkyState, type SkyState } from './skyState'; +import { useClientConfig } from '../../hooks/useClientConfig'; +import { + getSceneStyleOverride, + SERVED_SCENE_STYLES, + setSceneStyle, + type ServedSceneStyle, +} from './sceneStyle'; + +const STYLE_LABEL: Record = { terrain: 'Terrain', ridge: 'Ridges' }; const LABEL: Record = { auto: 'Auto', @@ -19,6 +39,9 @@ const LABEL: Record = { export function SkyStateControl() { const state = useSkyState(); const [cords, setCords] = useState(); + const configuredStyle = useClientConfig().backgroundScene?.style; + const sceneStyle: ServedSceneStyle = + getSceneStyleOverride() ?? (configuredStyle === 'terrain' ? 'terrain' : 'ridge'); const open: MouseEventHandler = (evt) => { setCords(evt.currentTarget.getBoundingClientRect()); @@ -62,6 +85,32 @@ export function SkyStateControl() { ))} + + Background + + {SERVED_SCENE_STYLES.map((st) => ( + { + setCords(undefined); + if (st !== sceneStyle) setSceneStyle(st); + }} + after={sceneStyle === st ? : undefined} + > + + {STYLE_LABEL[st]} + + + ))} diff --git a/src/app/features/scene/sceneStyle.ts b/src/app/features/scene/sceneStyle.ts new file mode 100644 index 00000000..7c31233e --- /dev/null +++ b/src/app/features/scene/sceneStyle.ts @@ -0,0 +1,28 @@ +// Temporary: which background the viewer picked (terrain or ridges), kept in one localStorage key so the two scenes we +// serve can be compared on any device. Absent, the client config's backgroundScene.style decides. +import type { SceneStyle } from './tier'; + +export type ServedSceneStyle = Extract; +export const SERVED_SCENE_STYLES: readonly ServedSceneStyle[] = ['terrain', 'ridge']; +export const SCENE_STYLE_KEY = 'ratatoskr.sceneStyle'; + +export function getSceneStyleOverride(): ServedSceneStyle | undefined { + try { + const v = localStorage.getItem(SCENE_STYLE_KEY); + return SERVED_SCENE_STYLES.includes(v as ServedSceneStyle) + ? (v as ServedSceneStyle) + : undefined; + } catch { + return undefined; + } +} + +/** Store the pick and reload, so the scene host mounts the other scene from a clean page. */ +export function setSceneStyle(s: ServedSceneStyle): void { + try { + localStorage.setItem(SCENE_STYLE_KEY, s); + } catch { + return; + } + window.location.reload(); +} diff --git a/src/app/features/scene/skyPlate.css.ts b/src/app/features/scene/skyPlate.css.ts index a3c0c567..db168251 100644 --- a/src/app/features/scene/skyPlate.css.ts +++ b/src/app/features/scene/skyPlate.css.ts @@ -7,7 +7,7 @@ import { MembersDrawer } from '../room/MembersDrawer.css'; import { CallStatus } from '../call-status/styles.css'; import { RoomViewFollowing } from '../room/RoomViewFollowing.css'; import { RoomViewTyping } from '../room/RoomViewTyping.css'; -import { SKY_PLATE_FALLBACK } from './skyPlate'; +import { PLATE_TINT, SKY_PLATE_FALLBACK } from './skyPlate'; // Over the scene (html[data-scene]) the signed-in shell is clear (sceneShell.css.ts), so text // outside a chat bubble would sit on bare sky, which a sky state can make light, dark or both @@ -47,7 +47,9 @@ const within = (ancestor: string) => plateRegions.map((r) => `${ancestor} ${r.startsWith('#root') ? '' : '#root '}${r}`).join(', '); globalStyle(within(scene), { - backgroundColor: fill, + // Blur with a light tint toward the sky, like the chat bubbles; never an opaque slab (PLATE_TINT). + backgroundColor: [fill, `color-mix(in srgb, ${fill} ${PLATE_TINT * 100}%, transparent)`], + backdropFilter: 'blur(12px)', color: text, // Themed ink was chosen for the clear shell; inside the plate every token reads the plate's. vars: { diff --git a/src/app/features/scene/skyPlate.ts b/src/app/features/scene/skyPlate.ts index 353134ab..b82a3026 100644 --- a/src/app/features/scene/skyPlate.ts +++ b/src/app/features/scene/skyPlate.ts @@ -18,3 +18,11 @@ export const SKY_PLATE_FALLBACK = { * on, the worst link contrast is 5.0 at Dusk, 5.7 at Day and 11.2 at Night. */ export const FOOTER_TINT = 0.82; + +/** + * How much of the plate's fill (--sky-bubble) is mixed over the blurred scene behind a plate (title bars, lists, the + * composer, the sign-in card). Meta, 2026-11-09: "The app shouldn't need chrome, and where it does help for readability it + * should be like the chat bubbles, blur with a bit of tint towards the background color. If that's not working, the fix + * is in the background, not covering it up." + */ +export const PLATE_TINT = 0.45; diff --git a/src/app/features/scene/skyTheme.ts b/src/app/features/scene/skyTheme.ts index 4ab3f43a..dbd46501 100644 --- a/src/app/features/scene/skyTheme.ts +++ b/src/app/features/scene/skyTheme.ts @@ -10,7 +10,7 @@ // derived outside this code (src/sky/skyTokens.js). Midnight Sky's link is derived there against the lightest Night sky // (4.53 on it, 5.43 on the darkest). The plate (skyPlate.css.ts) is still in the shell, pending // its removal. -import type { FixedSkyState, SkyState } from './skyState'; +import { resolveSkyState, type FixedSkyState, type SkyState } from './skyState'; export type SkyThemeId = 'midnight-sky' | 'noonday-sky'; @@ -21,4 +21,4 @@ const BY_STATE: Record = { }; export const skyThemeId = (state: SkyState): SkyThemeId | undefined => - state === 'auto' ? undefined : BY_STATE[state]; + BY_STATE[resolveSkyState(state)]; diff --git a/src/app/features/scene/terrain/terrainWorld.ts b/src/app/features/scene/terrain/terrainWorld.ts index 7296025b..64f18970 100644 --- a/src/app/features/scene/terrain/terrainWorld.ts +++ b/src/app/features/scene/terrain/terrainWorld.ts @@ -11,9 +11,9 @@ export const TERRAIN = { span: 3000, hmax: 256 }; * under shading read from the height map shows as hard-edged facets and stepped crests. */ export const GRID = { - still: { grid: 192, tex: 512 }, - low: { grid: 320, tex: 1024 }, - full: { grid: 384, tex: 1024 }, + still: { grid: 256, tex: 1024 }, + low: { grid: 512, tex: 1024 }, + full: { grid: 768, tex: 2048 }, } as const; /** The camera: at the patch centre, above the highest peak, turning slowly and looking a little down. */ diff --git a/src/app/pages/auth/AuthLayout.tsx b/src/app/pages/auth/AuthLayout.tsx index c53e5a65..0d5c9406 100644 --- a/src/app/pages/auth/AuthLayout.tsx +++ b/src/app/pages/auth/AuthLayout.tsx @@ -21,6 +21,7 @@ import { import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback'; import { LOGIN_PATH, REGISTER_PATH, RESET_PASSWORD_PATH } from '../paths'; import RatatoskrSVG from '../../../../public/res/svg/ratatoskr.svg'; +import { SkyStateControl } from '../../features/scene/SkyStateControl'; import { ServerPicker } from './ServerPicker'; import { AutoDiscoveryAction, autoDiscovery } from '../../cs-api'; import { SpecVersionsLoader } from '../../components/SpecVersionsLoader'; @@ -137,6 +138,7 @@ export function AuthLayout() { Ratatoskr logo Ratatoskr + diff --git a/src/app/pages/auth/styles.css.ts b/src/app/pages/auth/styles.css.ts index fc47dd79..f16617e8 100644 --- a/src/app/pages/auth/styles.css.ts +++ b/src/app/pages/auth/styles.css.ts @@ -1,6 +1,6 @@ import { globalStyle, style } from '@vanilla-extract/css'; import { DefaultReset, color, config, toRem } from 'folds'; -import { FOOTER_TINT } from '../../features/scene/skyPlate'; +import { FOOTER_TINT, PLATE_TINT } from '../../features/scene/skyPlate'; export const AuthLayout = style({ minHeight: '100%', @@ -27,13 +27,16 @@ export const AuthCard = style({ export const AuthLogo = style([ DefaultReset, { - width: toRem(26), - height: toRem(26), + width: toRem(32), + height: toRem(32), borderRadius: '50%', }, ]); +// The mark is white (Meta's matte); on the light sky theme it takes the dark ink instead. +globalStyle('body.noonday-sky img[src*="ratatoskr"]', { filter: 'brightness(0.18)' }); + export const AuthHeader = style({ padding: `0 ${config.space.S400}`, borderBottomWidth: config.borderWidth.B300, @@ -67,22 +70,35 @@ export const AuthFooter = style({ // made for their own grounds, not this card; Dark and Butter already use the same hsl(213 100% 80%). // The card is also made shorter so it leaves more of the scene visible on a phone. const scene = ':root[data-scene]'; +const tint = `color-mix(in srgb, var(--sky-bubble, #0d1a26) ${FOOTER_TINT * 100}%, transparent)`; globalStyle(`${scene} ${AuthLayout}`, { backgroundColor: 'transparent', backgroundImage: 'none', }); globalStyle(`${scene} ${AuthCard}`, { - backgroundColor: 'var(--sky-bubble, #0d1a26)', + // Meta, 2026-11-09: no chrome; where readability needs help, the chat-bubble treatment (blur with a tint toward the + // background), and if that is not enough the fix goes in the background, not in a plate. Same tint as the footer band. + backgroundColor: [ + 'var(--sky-bubble, #0d1a26)', + `color-mix(in srgb, var(--sky-bubble, #0d1a26) ${PLATE_TINT * 100}%, transparent)`, + ], + backdropFilter: 'blur(12px)', color: 'var(--sky-bubble-text, #b7c7d9)', borderRadius: config.radii.R500, - // A faint inner edge, so a pane this clear still reads as a surface. - borderColor: 'rgba(183, 199, 217, 0.14)', + border: 'none', + boxShadow: 'none', }); globalStyle(`${scene} body:not(.gamecult-theme) ${AuthCard}`, { vars: { '--tc-link': '#99c7ff' }, }); globalStyle(`${scene} ${AuthHeader}`, { backgroundColor: 'transparent', + borderBottomWidth: 0, + boxShadow: 'none', +}); +globalStyle(`${scene} #root header.${AuthHeader}`, { + backgroundColor: 'transparent', + backdropFilter: 'none', }); globalStyle(`${scene} ${AuthCardContent}`, { paddingTop: config.space.S500, @@ -99,7 +115,6 @@ const FADE_Y = 'linear-gradient(to bottom, transparent, #000 16px, #000 calc(100% - 16px), transparent)'; const FADE_X = 'linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 24px), transparent)'; -const tint = `color-mix(in srgb, var(--sky-bubble, #0d1a26) ${FOOTER_TINT * 100}%, transparent)`; globalStyle(`${scene} ${AuthFooter}`, { paddingTop: config.space.S500, paddingBottom: config.space.S500, -- 2.47.3 From fcabaee59ed17a552e198a06a5b01e9e10f319da Mon Sep 17 00:00:00 2001 From: Eureka Self Date: Tue, 10 Nov 2026 13:22:41 +0000 Subject: [PATCH 2/8] nemesis: chromeless buttons, chips and room list; plates only on the composer and plain messages Co-Authored-By: Claude Opus 5.5 --- src/app/components/nav/styles.css.ts | 9 +++---- src/app/features/scene/BackgroundScene.tsx | 1 + src/app/features/scene/sceneButtons.css.ts | 28 ++++++++++++++++++++++ src/app/features/scene/skyPlate.css.ts | 18 +++++++------- 4 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 src/app/features/scene/sceneButtons.css.ts diff --git a/src/app/components/nav/styles.css.ts b/src/app/components/nav/styles.css.ts index feee3276..e5db6c47 100644 --- a/src/app/components/nav/styles.css.ts +++ b/src/app/components/nav/styles.css.ts @@ -5,10 +5,11 @@ import { surfaceInk } from '../../features/scene/sceneShell.css'; // Wash strengths over the scene: rows and labels are faint, and hover, selected and pressed rows // are three distinct steps above them. -const SCRIM_LABEL = '12%'; -const SCRIM_ROW = '16%'; -const SCRIM_HOVER = '26%'; -const SCRIM_SELECTED = '36%'; +// Meta, 2026-11-09: "this UI needs no chrome". Rows and labels are bare ink on the scene; hover and selection keep a faint wash. +const SCRIM_LABEL = '0%'; +const SCRIM_ROW = '0%'; +const SCRIM_HOVER = '14%'; +const SCRIM_SELECTED = '22%'; const SCRIM_PRESSED = '48%'; export const NavCategory = style([ diff --git a/src/app/features/scene/BackgroundScene.tsx b/src/app/features/scene/BackgroundScene.tsx index 0c8d0fb3..c447b4f0 100644 --- a/src/app/features/scene/BackgroundScene.tsx +++ b/src/app/features/scene/BackgroundScene.tsx @@ -5,6 +5,7 @@ import { mountBackgroundScene } from './host'; import { readCapabilities, resolveTier } from './tier'; import { getSceneStyleOverride } from './sceneStyle'; import './sceneShell.css'; +import './sceneButtons.css'; /** Set on while a scene runs, so signed-out screens can let it show through. */ export const SCENE_ACTIVE_ATTRIBUTE = 'data-scene'; diff --git a/src/app/features/scene/sceneButtons.css.ts b/src/app/features/scene/sceneButtons.css.ts new file mode 100644 index 00000000..301d5671 --- /dev/null +++ b/src/app/features/scene/sceneButtons.css.ts @@ -0,0 +1,28 @@ +import { globalStyle } from '@vanilla-extract/css'; + +// Meta, 2026-11-10: "buttons are big and ugly, too, they don't need chrome either". Over the scene a folds Button or +// Chip is its label in the page's ink, with a faint wash on hover and focus. Menus and dialogs (#portalContainer) keep +// folds' look. The selectors are folds' hashed recipe base classes (Button epr39zd, Chip _1bv8u1w6). +const scene = ':root[data-scene] #root'; +const controls = [`${scene} .epr39zd`, `${scene} ._1bv8u1w6`].join(', '); +globalStyle(controls, { + backgroundColor: 'transparent', + boxShadow: 'none', + border: 'none', + outline: 'none', + color: 'inherit', +}); +globalStyle( + [ + `${scene} .epr39zd:hover`, + `${scene} .epr39zd:focus-visible`, + `${scene} ._1bv8u1w6:hover`, + `${scene} ._1bv8u1w6:focus-visible`, + ].join(', '), + { backgroundColor: 'color-mix(in srgb, currentColor 12%, transparent)' } +); +globalStyle(`${scene} .epr39zd`, { + fontWeight: 700, + textDecoration: 'underline', + textUnderlineOffset: '0.25em', +}); diff --git a/src/app/features/scene/skyPlate.css.ts b/src/app/features/scene/skyPlate.css.ts index db168251..4472b98e 100644 --- a/src/app/features/scene/skyPlate.css.ts +++ b/src/app/features/scene/skyPlate.css.ts @@ -24,20 +24,18 @@ export const SkyPlate = style({}); // A recipe's first class is its base style. const base = (recipe: () => string) => `.${recipe().split(' ')[0]}`; +// Meta, 2026-11-09: no chrome. Title bars, the room list, list pages, the drawer and the bars over the composer are bare +// ink on the sky (dusk is allowed to be low contrast: it is the crossover between the light and dark inks). +void PageNavContent; +void PageContent; +void MembersDrawer; +void RoomViewTyping; +void RoomViewFollowing; export const plateRegions = [ `.${SkyPlate}`, - // Title bars: the room header, the room list's header, every page header. - '#root header', - // The room list, and the pages that are lists (explore, inbox, search). - `.${PageNavContent}`, - `.${PageContent}`, - // The composer, the members drawer, and the call status bar. + // The composer and the call status bar. `.${Editor}`, - `.${MembersDrawer}`, `.${CallStatus}`, - // The bars over the composer. - `.${RoomViewTyping}`, - base(RoomViewFollowing), // A message that is not a bubble (Modern, Compact) is plain text on the scene. `${base(MessageBase)}:not(:has(.${BubbleContent}))`, ]; -- 2.47.3 From c4689299ca191648a7694dab05d03182634deab0 Mon Sep 17 00:00:00 2001 From: Eureka Self Date: Tue, 10 Nov 2026 13:46:51 +0000 Subject: [PATCH 3/8] nemesis: tab icon and notification icon are the night-sky tile (unread and highlight add a dot), not the white UI mark Co-Authored-By: Claude Opus 5.5 --- public/res/svg/ratatoskr-favicon-highlight.svg | 1 + public/res/svg/ratatoskr-favicon-unread.svg | 1 + public/res/svg/ratatoskr-favicon.svg | 1 + public/res/svg/ratatoskr-highlight.svg | 17 ----------------- public/res/svg/ratatoskr-unread.svg | 17 ----------------- src/app/pages/client/ClientNonUIFeatures.tsx | 14 +++++++------- 6 files changed, 10 insertions(+), 41 deletions(-) create mode 100644 public/res/svg/ratatoskr-favicon-highlight.svg create mode 100644 public/res/svg/ratatoskr-favicon-unread.svg create mode 100644 public/res/svg/ratatoskr-favicon.svg delete mode 100644 public/res/svg/ratatoskr-highlight.svg delete mode 100644 public/res/svg/ratatoskr-unread.svg diff --git a/public/res/svg/ratatoskr-favicon-highlight.svg b/public/res/svg/ratatoskr-favicon-highlight.svg new file mode 100644 index 00000000..f9a95e82 --- /dev/null +++ b/public/res/svg/ratatoskr-favicon-highlight.svg @@ -0,0 +1 @@ + diff --git a/public/res/svg/ratatoskr-favicon-unread.svg b/public/res/svg/ratatoskr-favicon-unread.svg new file mode 100644 index 00000000..f5bcb7d8 --- /dev/null +++ b/public/res/svg/ratatoskr-favicon-unread.svg @@ -0,0 +1 @@ + diff --git a/public/res/svg/ratatoskr-favicon.svg b/public/res/svg/ratatoskr-favicon.svg new file mode 100644 index 00000000..0c7cc393 --- /dev/null +++ b/public/res/svg/ratatoskr-favicon.svg @@ -0,0 +1 @@ + diff --git a/public/res/svg/ratatoskr-highlight.svg b/public/res/svg/ratatoskr-highlight.svg deleted file mode 100644 index 661442d4..00000000 --- a/public/res/svg/ratatoskr-highlight.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/public/res/svg/ratatoskr-unread.svg b/public/res/svg/ratatoskr-unread.svg deleted file mode 100644 index 69a08c95..00000000 --- a/public/res/svg/ratatoskr-unread.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/app/pages/client/ClientNonUIFeatures.tsx b/src/app/pages/client/ClientNonUIFeatures.tsx index db3eefc2..62385769 100644 --- a/src/app/pages/client/ClientNonUIFeatures.tsx +++ b/src/app/pages/client/ClientNonUIFeatures.tsx @@ -3,9 +3,9 @@ import React, { ReactNode, useCallback, useEffect, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; import { RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk'; import { roomToUnreadAtom, unreadEqual, unreadInfoToUnread } from '../../state/room/roomToUnread'; -import LogoSVG from '../../../../public/res/svg/ratatoskr.svg'; -import LogoUnreadSVG from '../../../../public/res/svg/ratatoskr-unread.svg'; -import LogoHighlightSVG from '../../../../public/res/svg/ratatoskr-highlight.svg'; +import FaviconSVG from '../../../../public/res/svg/ratatoskr-favicon.svg'; +import FaviconUnreadSVG from '../../../../public/res/svg/ratatoskr-favicon-unread.svg'; +import FaviconHighlightSVG from '../../../../public/res/svg/ratatoskr-favicon-highlight.svg'; import NotificationSound from '../../../../public/sound/notification.ogg'; import InviteSound from '../../../../public/sound/invite.ogg'; import { notificationPermission, setFavicon } from '../../utils/dom'; @@ -67,9 +67,9 @@ function FaviconUpdater() { }); if (notification) { - setFavicon(highlight ? LogoHighlightSVG : LogoUnreadSVG); + setFavicon(highlight ? FaviconHighlightSVG : FaviconUnreadSVG); } else { - setFavicon(LogoSVG); + setFavicon(FaviconSVG); } }, [roomToUnread]); @@ -89,8 +89,8 @@ function InviteNotifications() { const notify = useCallback( (count: number) => { const noti = new window.Notification('Invitation', { - icon: LogoSVG, - badge: LogoSVG, + icon: FaviconSVG, + badge: FaviconSVG, body: `You have ${count} new invitation request.`, silent: true, }); -- 2.47.3 From 0fe41efb9b2a4f0fe3326eb682d366877f471084 Mon Sep 17 00:00:00 2001 From: Eureka Self Date: Tue, 10 Nov 2026 13:51:26 +0000 Subject: [PATCH 4/8] nemesis: Persona poses on by default; Safari 14 polyfills (Array.at/findLast, Object.hasOwn, structuredClone) and -webkit-backdrop-filter Co-Authored-By: Claude Opus 5.5 --- src/app/features/scene/skyPlate.css.ts | 1 + src/app/pages/auth/styles.css.ts | 3 ++ src/app/state/settings.ts | 2 +- src/index.tsx | 1 + src/polyfills.ts | 72 ++++++++++++++++++++++++++ 5 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 src/polyfills.ts diff --git a/src/app/features/scene/skyPlate.css.ts b/src/app/features/scene/skyPlate.css.ts index 4472b98e..f97efe26 100644 --- a/src/app/features/scene/skyPlate.css.ts +++ b/src/app/features/scene/skyPlate.css.ts @@ -48,6 +48,7 @@ globalStyle(within(scene), { // Blur with a light tint toward the sky, like the chat bubbles; never an opaque slab (PLATE_TINT). backgroundColor: [fill, `color-mix(in srgb, ${fill} ${PLATE_TINT * 100}%, transparent)`], backdropFilter: 'blur(12px)', + WebkitBackdropFilter: 'blur(12px)', color: text, // Themed ink was chosen for the clear shell; inside the plate every token reads the plate's. vars: { diff --git a/src/app/pages/auth/styles.css.ts b/src/app/pages/auth/styles.css.ts index f16617e8..2341fe80 100644 --- a/src/app/pages/auth/styles.css.ts +++ b/src/app/pages/auth/styles.css.ts @@ -83,6 +83,7 @@ globalStyle(`${scene} ${AuthCard}`, { `color-mix(in srgb, var(--sky-bubble, #0d1a26) ${PLATE_TINT * 100}%, transparent)`, ], backdropFilter: 'blur(12px)', + WebkitBackdropFilter: 'blur(12px)', color: 'var(--sky-bubble-text, #b7c7d9)', borderRadius: config.radii.R500, border: 'none', @@ -99,6 +100,7 @@ globalStyle(`${scene} ${AuthHeader}`, { globalStyle(`${scene} #root header.${AuthHeader}`, { backgroundColor: 'transparent', backdropFilter: 'none', + WebkitBackdropFilter: 'none', }); globalStyle(`${scene} ${AuthCardContent}`, { paddingTop: config.space.S500, @@ -120,6 +122,7 @@ globalStyle(`${scene} ${AuthFooter}`, { paddingBottom: config.space.S500, backgroundColor: ['var(--sky-bubble, #0d1a26)', tint], backdropFilter: 'blur(12px)', + WebkitBackdropFilter: 'blur(12px)', maskImage: `${FADE_Y}, ${FADE_X}`, maskComposite: 'intersect', color: 'var(--sky-bubble-text, #b7c7d9)', diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 2b48fb59..1031141f 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -85,7 +85,7 @@ const defaultSettings: Settings = { encUrlPreview: false, showHiddenEvents: false, legacyUsernameColor: false, - poseBubbles: false, + poseBubbles: true, showNotifications: true, isNotificationSounds: true, diff --git a/src/index.tsx b/src/index.tsx index c2461fe8..6c7a3bc2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,4 +1,5 @@ /* eslint-disable import/first */ +import './polyfills'; import './preview-demo/seed'; import React from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 00000000..2f018c4b --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,72 @@ +/* eslint-disable no-extend-native, func-names */ +// Safari 14 (iPadOS 14) lacks these; the bundle (ours and matrix-js-sdk) calls them at runtime. Safari 15.4 has all. +// Loaded first by src/index.tsx. Each is installed only when missing. + +function at(this: ArrayLike, n: number): T | undefined { + const len = this.length; + const i = Math.trunc(n) || 0; + const k = i < 0 ? len + i : i; + return k < 0 || k >= len ? undefined : this[k]; +} +if (!Array.prototype.at) Object.defineProperty(Array.prototype, 'at', { value: at, writable: true, configurable: true }); +if (!String.prototype.at) + Object.defineProperty(String.prototype, 'at', { value: at, writable: true, configurable: true }); + +if (!(Array.prototype as unknown as Record).findLast) + Object.defineProperty(Array.prototype, 'findLast', { + value: function (this: T[], fn: (v: T, i: number, a: T[]) => unknown, thisArg?: unknown) { + for (let i = this.length - 1; i >= 0; i -= 1) if (fn.call(thisArg, this[i], i, this)) return this[i]; + return undefined; + }, + writable: true, + configurable: true, + }); +if (!(Array.prototype as unknown as Record).findLastIndex) + Object.defineProperty(Array.prototype, 'findLastIndex', { + value: function (this: T[], fn: (v: T, i: number, a: T[]) => unknown, thisArg?: unknown) { + for (let i = this.length - 1; i >= 0; i -= 1) if (fn.call(thisArg, this[i], i, this)) return i; + return -1; + }, + writable: true, + configurable: true, + }); + +if (!(Object as unknown as Record).hasOwn) + Object.defineProperty(Object, 'hasOwn', { + value: (o: object, k: PropertyKey) => Object.prototype.hasOwnProperty.call(o, k), + writable: true, + configurable: true, + }); + +// Structured clone for the data the client clones: plain objects, arrays, Map, Set, Date, RegExp, typed arrays, with cycles. +if (typeof (globalThis as { structuredClone?: unknown }).structuredClone !== 'function') { + const clone = (v: unknown, seen: Map): unknown => { + if (v === null || typeof v !== 'object') return v; + if (seen.has(v)) return seen.get(v); + if (v instanceof Date) return new Date(v.getTime()); + if (v instanceof RegExp) return new RegExp(v.source, v.flags); + if (ArrayBuffer.isView(v)) return (v as unknown as { slice: () => unknown }).slice(); + if (v instanceof ArrayBuffer) return v.slice(0); + if (v instanceof Map) { + const m = new Map(); + seen.set(v, m); + v.forEach((val, key) => m.set(clone(key, seen), clone(val, seen))); + return m; + } + if (v instanceof Set) { + const s = new Set(); + seen.set(v, s); + v.forEach((val) => s.add(clone(val, seen))); + return s; + } + const out: Record | unknown[] = Array.isArray(v) ? [] : {}; + seen.set(v, out); + Object.keys(v).forEach((k) => { + (out as Record)[k] = clone((v as Record)[k], seen); + }); + return out; + }; + (globalThis as { structuredClone?: unknown }).structuredClone = (v: unknown) => clone(v, new Map()); +} + +export {}; -- 2.47.3 From 9d3343bb316c4d8acc8b12acd51be1863cfcf643 Mon Sep 17 00:00:00 2001 From: Void Date: Tue, 10 Nov 2026 13:53:22 +0000 Subject: [PATCH 5/8] nemesis/demo: tests follow the new numbers; Ridge retries a zero-size start skyTheme: auto resolves to the clock's theme; the plate pins now assert the chromeless shell (only composer, call bar, call view and plain messages are plates). terrainWorld: ceilings for the 512/768 grids; still grid 256 -> 320 so its quads stay within two height texels at the nearest ground (the test is unchanged). skyPlate.css: drop the void-import placeholders. Ridge: a scene started with no area no longer throws on drawImage or returns null; it builds on the first resize that gives it one. Co-Authored-By: Claude Sonnet 5.5 --- src/app/features/scene/ridge/Ridge.test.ts | 24 ++++++++++++++ src/app/features/scene/ridge/Ridge.ts | 14 +++++++-- src/app/features/scene/skyPlate.css.ts | 9 ------ src/app/features/scene/skyTheme.test.ts | 31 +++++++++++++------ .../scene/terrain/terrainWorld.test.ts | 9 ++++-- .../features/scene/terrain/terrainWorld.ts | 2 +- 6 files changed, 66 insertions(+), 23 deletions(-) diff --git a/src/app/features/scene/ridge/Ridge.test.ts b/src/app/features/scene/ridge/Ridge.test.ts index 3aecad12..711054f6 100644 --- a/src/app/features/scene/ridge/Ridge.test.ts +++ b/src/app/features/scene/ridge/Ridge.test.ts @@ -437,6 +437,30 @@ describe('createRidgeScene', () => { expect(parent.children.some((c: any) => c === readout)).toBe(false); }); + it('a scene started at zero size paints nothing, then builds on the first non-zero resize', async () => { + const { parent, canvas } = host(); + canvas.clientWidth = 0; + canvas.clientHeight = 0; + (window as any).innerWidth = 0; + (window as any).innerHeight = 0; + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY }); + expect(s).not.toBeNull(); + expect(parent.children).toEqual([canvas]); + expect(draws).toHaveLength(0); + // Still zero: a resize does not paint either. + window.dispatchEvent(new Event('resize')); + await new Promise((r) => setTimeout(r, 300)); + expect(parent.children).toEqual([canvas]); + (window as any).innerWidth = 400; + (window as any).innerHeight = 800; + window.dispatchEvent(new Event('resize')); + await new Promise((r) => setTimeout(r, 300)); + expect(parent.children.slice(1)).toHaveLength(LAYERS.length); + expect(draws.filter((d) => d === 'sky')).toHaveLength(1); + s!.dispose(); + expect(parent.children).toEqual([canvas]); + }); + it('dispose cancels the loop, the animations and the layers', () => { const { parent, canvas } = host(); const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; diff --git a/src/app/features/scene/ridge/Ridge.ts b/src/app/features/scene/ridge/Ridge.ts index eae0df08..d2312aaf 100644 --- a/src/app/features/scene/ridge/Ridge.ts +++ b/src/app/features/scene/ridge/Ridge.ts @@ -180,9 +180,18 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { built = undefined; }; - /** Bake the sky, then the layers. Returns false when a 2D context is missing. */ + /** True while the host has no area to paint (a scene started in a hidden or collapsed container). */ + const hasNoArea = () => { + const { w, h, scale } = viewSize(); + const size = layerSize(w, h, scale); + return size.period < 1 || size.height < 1 || Math.round(h * scale) < 1; + }; + + /** Bake the sky, then the layers. Returns false when a 2D context is missing or there is no area yet. */ const build = (): boolean => { teardownLayers(); + // A zero-size canvas throws on drawImage; wait for the first resize that gives the host an area. + if (hasNoArea()) return false; const { w, h, scale } = viewSize(); const size = layerSize(w, h, scale); canvas.width = size.period; @@ -343,7 +352,8 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { raf = requestAnimationFrame(tick); }; - if (!build()) return null; + // No area yet is not a failure: the resize listener below builds once the host has one. + if (!build() && !hasNoArea()) return null; if (probe) { readout = document.createElement('div'); Object.assign(readout.style, { diff --git a/src/app/features/scene/skyPlate.css.ts b/src/app/features/scene/skyPlate.css.ts index 4472b98e..c231527c 100644 --- a/src/app/features/scene/skyPlate.css.ts +++ b/src/app/features/scene/skyPlate.css.ts @@ -1,12 +1,8 @@ import { globalStyle, style } from '@vanilla-extract/css'; import { color, config } from 'folds'; import { MessageBase, BubbleContent } from '../../components/message/layout/layout.css'; -import { PageContent, PageNavContent } from '../../components/page/style.css'; import { Editor } from '../../components/editor/Editor.css'; -import { MembersDrawer } from '../room/MembersDrawer.css'; import { CallStatus } from '../call-status/styles.css'; -import { RoomViewFollowing } from '../room/RoomViewFollowing.css'; -import { RoomViewTyping } from '../room/RoomViewTyping.css'; import { PLATE_TINT, SKY_PLATE_FALLBACK } from './skyPlate'; // Over the scene (html[data-scene]) the signed-in shell is clear (sceneShell.css.ts), so text @@ -26,11 +22,6 @@ const base = (recipe: () => string) => `.${recipe().split(' ')[0]}`; // Meta, 2026-11-09: no chrome. Title bars, the room list, list pages, the drawer and the bars over the composer are bare // ink on the sky (dusk is allowed to be low contrast: it is the crossover between the light and dark inks). -void PageNavContent; -void PageContent; -void MembersDrawer; -void RoomViewTyping; -void RoomViewFollowing; export const plateRegions = [ `.${SkyPlate}`, // The composer and the call status bar. diff --git a/src/app/features/scene/skyTheme.test.ts b/src/app/features/scene/skyTheme.test.ts index 3229cf36..80bc0423 100644 --- a/src/app/features/scene/skyTheme.test.ts +++ b/src/app/features/scene/skyTheme.test.ts @@ -39,11 +39,17 @@ describe('skyThemeId', () => { expect(skyThemeId('night')).toBe('midnight-sky'); }); - it('picks none for auto, at any hour: auto never overrides a signed-in theme', () => { + it('picks the theme of the state auto resolves to, at any hour', () => { [0, 6, 12, 18, 23].forEach((h) => { setSkyClock(() => atStandardTime(h, 10)); - expect(skyThemeId('auto')).toBeUndefined(); + const id = skyThemeId('auto'); + expect(id).toBeDefined(); + expect(id).toBe(skyThemeId(getResolvedSkyState())); }); + setSkyClock(() => atStandardTime(12)); + expect(skyThemeId('auto')).toBe('noonday-sky'); + setSkyClock(() => atStandardTime(0)); + expect(skyThemeId('auto')).toBe('midnight-sky'); setSkyClock(); }); @@ -145,19 +151,26 @@ describe('regions that sit on the plate', () => { // and link of that plate are pinned above; this pins who is on it. const on = (cls: string) => expect(plateRegions).toContain(cls); - it('plates the composer, the members drawer, the call status bar and the call view', () => { + it('plates the composer, the call status bar and the call view', () => { on(`.${Editor}`); - on(`.${MembersDrawer}`); on(`.${CallStatus}`); on(`.${SkyPlate}`); }); - it('plates the room list, list pages, typing and Following bars and every header', () => { - on(`.${PageNavContent}`); - on(`.${PageContent}`); - on(`.${RoomViewTyping}`); - on('#root header'); + it('plates a message that is not a bubble, and nothing else of the signed-in shell', () => { expect(plateRegions.some((r) => r.includes(':not(:has('))).toBe(true); + expect(plateRegions).toHaveLength(4); + }); + + // Meta, 2026-11-09: no chrome. These are bare ink on the sky, not plates. + it('leaves title bars, the room list, list pages, the drawer and the bars over the composer bare', () => { + [ + `.${MembersDrawer}`, + `.${PageNavContent}`, + `.${PageContent}`, + `.${RoomViewTyping}`, + '#root header', + ].forEach((cls) => expect(plateRegions).not.toContain(cls)); }); }); diff --git a/src/app/features/scene/terrain/terrainWorld.test.ts b/src/app/features/scene/terrain/terrainWorld.test.ts index 78ab2700..70a9d763 100644 --- a/src/app/features/scene/terrain/terrainWorld.test.ts +++ b/src/app/features/scene/terrain/terrainWorld.test.ts @@ -41,8 +41,13 @@ describe('grid', () => { }); it('each tier fits a 32-bit index and the cheap tiers stay cheap', () => { - // 205k at 320 quads: a guess at what a phone carries (SwiftShader only, no phone frame time), kept as a ceiling so a bigger grid is a deliberate change. - expect(triangleCount(GRID.low.grid)).toBeLessThan(210000); + // 524k at 512 quads (low), 1.18M at 768 (full): Meta asked for denser terrain on 2026-11-10, up from 205k at 320. No + // phone frame time is measured (SwiftShader only); kept as a ceiling so a bigger grid is a deliberate change. + expect(triangleCount(GRID.low.grid)).toBeLessThan(540000); + expect(triangleCount(GRID.full.grid)).toBeLessThan(1200000); + (['still', 'low', 'full'] as const).forEach((t) => + expect((GRID[t].grid + 1) ** 2).toBeLessThan(2 ** 32) + ); expect(GRID.full.grid).toBeGreaterThan(GRID.low.grid); expect(GRID.still.tex).toBeLessThanOrEqual(GRID.low.tex); }); diff --git a/src/app/features/scene/terrain/terrainWorld.ts b/src/app/features/scene/terrain/terrainWorld.ts index 64f18970..82a16bfb 100644 --- a/src/app/features/scene/terrain/terrainWorld.ts +++ b/src/app/features/scene/terrain/terrainWorld.ts @@ -11,7 +11,7 @@ export const TERRAIN = { span: 3000, hmax: 256 }; * under shading read from the height map shows as hard-edged facets and stepped crests. */ export const GRID = { - still: { grid: 256, tex: 1024 }, + still: { grid: 320, tex: 1024 }, low: { grid: 512, tex: 1024 }, full: { grid: 768, tex: 2048 }, } as const; -- 2.47.3 From c657d686152aa8c8cb470cc0181b4ffe827323aa Mon Sep 17 00:00:00 2001 From: Void Date: Tue, 10 Nov 2026 14:03:21 +0000 Subject: [PATCH 6/8] PR #65 steward ruling: user themes win over auto; focus ring; logo on light themes skyThemeId('auto') is undefined again as on dev. sceneThemeId follows the resolved sky for auto only while a scene is on and the person chose no theme (signed-out pages pass none); useResolvedSkyState changes as the clock crosses so theme classes re-render. Scene buttons and chips keep a focus-visible outline. The white mark takes the dark filter through a LogoMark class on every themed under any prism-light theme (favicon and notification icons are files and keep the white mark). Background picker is hidden without a backgroundScene config. Ridge comment states what hasNoArea covers. Co-Authored-By: Claude Sonnet 5.5 --- src/app/components/logo/logoMark.css.ts | 9 ++++ src/app/features/scene/SkyStateControl.tsx | 59 ++++++++++++---------- src/app/features/scene/ridge/Ridge.ts | 2 +- src/app/features/scene/sceneButtons.css.ts | 6 ++- src/app/features/scene/skyTheme.test.ts | 57 +++++++++++++++++---- src/app/features/scene/skyTheme.ts | 19 ++++++- src/app/features/settings/about/About.tsx | 2 + src/app/hooks/useSkyState.ts | 20 +++++++- src/app/hooks/useTheme.ts | 27 ++++++---- src/app/pages/auth/AuthLayout.tsx | 7 ++- src/app/pages/auth/styles.css.ts | 3 -- src/app/pages/client/WelcomePage.tsx | 11 +++- src/app/state/settings.ts | 4 +- 13 files changed, 167 insertions(+), 59 deletions(-) create mode 100644 src/app/components/logo/logoMark.css.ts diff --git a/src/app/components/logo/logoMark.css.ts b/src/app/components/logo/logoMark.css.ts new file mode 100644 index 00000000..4c967088 --- /dev/null +++ b/src/app/components/logo/logoMark.css.ts @@ -0,0 +1,9 @@ +import { globalStyle, style } from '@vanilla-extract/css'; + +/** + * The Ratatoskr mark is white on transparent (Meta's matte). On any light theme (they all carry `prism-light`) a class + * of this name darkens it to the dark ink; put it on every that shows the mark on a themed surface. The favicon and + * notification icons are files the browser draws and cannot take it. + */ +export const LogoMark = style({}); +globalStyle(`body.prism-light .${LogoMark}`, { filter: 'brightness(0.18)' }); diff --git a/src/app/features/scene/SkyStateControl.tsx b/src/app/features/scene/SkyStateControl.tsx index 4e67bd81..b664dc07 100644 --- a/src/app/features/scene/SkyStateControl.tsx +++ b/src/app/features/scene/SkyStateControl.tsx @@ -39,7 +39,8 @@ const LABEL: Record = { export function SkyStateControl() { const state = useSkyState(); const [cords, setCords] = useState(); - const configuredStyle = useClientConfig().backgroundScene?.style; + const backgroundScene = useClientConfig().backgroundScene; + const configuredStyle = backgroundScene?.style; const sceneStyle: ServedSceneStyle = getSceneStyleOverride() ?? (configuredStyle === 'terrain' ? 'terrain' : 'ridge'); @@ -85,32 +86,36 @@ export function SkyStateControl() { ))} - - Background - - {SERVED_SCENE_STYLES.map((st) => ( - { - setCords(undefined); - if (st !== sceneStyle) setSceneStyle(st); - }} - after={sceneStyle === st ? : undefined} - > - - {STYLE_LABEL[st]} - - - ))} + {backgroundScene && ( + <> + + Background + + {SERVED_SCENE_STYLES.map((st) => ( + { + setCords(undefined); + if (st !== sceneStyle) setSceneStyle(st); + }} + after={sceneStyle === st ? : undefined} + > + + {STYLE_LABEL[st]} + + + ))} + + )} diff --git a/src/app/features/scene/ridge/Ridge.ts b/src/app/features/scene/ridge/Ridge.ts index d2312aaf..69a88864 100644 --- a/src/app/features/scene/ridge/Ridge.ts +++ b/src/app/features/scene/ridge/Ridge.ts @@ -180,7 +180,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { built = undefined; }; - /** True while the host has no area to paint (a scene started in a hidden or collapsed container). */ + /** True while there is nothing to paint on: the canvas has no client size and the window itself is 0 x 0 (`viewSize` falls back to the window). */ const hasNoArea = () => { const { w, h, scale } = viewSize(); const size = layerSize(w, h, scale); diff --git a/src/app/features/scene/sceneButtons.css.ts b/src/app/features/scene/sceneButtons.css.ts index 301d5671..5c96e71b 100644 --- a/src/app/features/scene/sceneButtons.css.ts +++ b/src/app/features/scene/sceneButtons.css.ts @@ -9,7 +9,6 @@ globalStyle(controls, { backgroundColor: 'transparent', boxShadow: 'none', border: 'none', - outline: 'none', color: 'inherit', }); globalStyle( @@ -21,6 +20,11 @@ globalStyle( ].join(', '), { backgroundColor: 'color-mix(in srgb, currentColor 12%, transparent)' } ); +// A visible keyboard focus ring in the control's own ink, on top of the hover wash. +globalStyle([`${scene} .epr39zd:focus-visible`, `${scene} ._1bv8u1w6:focus-visible`].join(', '), { + outline: '2px solid currentColor', + outlineOffset: '2px', +}); globalStyle(`${scene} .epr39zd`, { fontWeight: 700, textDecoration: 'underline', diff --git a/src/app/features/scene/skyTheme.test.ts b/src/app/features/scene/skyTheme.test.ts index 80bc0423..18435ae6 100644 --- a/src/app/features/scene/skyTheme.test.ts +++ b/src/app/features/scene/skyTheme.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { atStandardTime } from './standardTime.testkit'; import { baked } from '../../../sky/baked'; import { AA, NIGHT_SKY_LIGHTEST, contrast, luminance } from '../../../sky/skyTokens.js'; @@ -9,10 +9,15 @@ import { MembersDrawer } from '../room/MembersDrawer.css'; import { RoomViewTyping } from '../room/RoomViewTyping.css'; import { FOOTER_TINT, SKY_PLATE_FALLBACK } from './skyPlate'; import { SkyPlate, plateRegions } from './skyPlate.css'; -import { getResolvedSkyState, setSkyClock, skyBackdrop } from './skyState'; +import { + getResolvedSkyState, + setSkyClock, + skyBackdrop, + subscribe as subscribeSky, +} from './skyState'; import type { SkyBackdrop } from './skyState'; import type { FixedSkyState } from './skyBand'; -import { skyThemeId } from './skyTheme'; +import { sceneThemeId, skyThemeId } from './skyTheme'; const SKY = { 'midnight-sky': baked.midnight, 'noonday-sky': baked.noonday } as const; const fixed = (['day', 'dusk', 'night'] as const).flatMap((s) => { @@ -39,17 +44,47 @@ describe('skyThemeId', () => { expect(skyThemeId('night')).toBe('midnight-sky'); }); - it('picks the theme of the state auto resolves to, at any hour', () => { + it('picks none for auto, at any hour: auto never overrides a signed-in theme', () => { [0, 6, 12, 18, 23].forEach((h) => { setSkyClock(() => atStandardTime(h, 10)); - const id = skyThemeId('auto'); - expect(id).toBeDefined(); - expect(id).toBe(skyThemeId(getResolvedSkyState())); + expect(skyThemeId('auto')).toBeUndefined(); }); - setSkyClock(() => atStandardTime(12)); - expect(skyThemeId('auto')).toBe('noonday-sky'); - setSkyClock(() => atStandardTime(0)); - expect(skyThemeId('auto')).toBe('midnight-sky'); + setSkyClock(); + }); + + describe('sceneThemeId, the theme the page wears', () => { + it('a fixed state always picks its theme, whatever the scene or the person chose', () => { + [true, false].forEach((scene) => + [true, false].forEach((chose) => { + expect(sceneThemeId('day', 'night', scene, chose)).toBe('noonday-sky'); + expect(sceneThemeId('night', 'day', scene, chose)).toBe('midnight-sky'); + }) + ); + }); + + it('auto follows the resolved sky only while a scene is on and the person chose no theme', () => { + expect(sceneThemeId('auto', 'day', true, false)).toBe('noonday-sky'); + expect(sceneThemeId('auto', 'dusk', true, false)).toBe('noonday-sky'); + expect(sceneThemeId('auto', 'night', true, false)).toBe('midnight-sky'); + expect(sceneThemeId('auto', 'day', false, false)).toBeUndefined(); + expect(sceneThemeId('auto', 'day', true, true)).toBeUndefined(); + }); + }); + + it('the resolved sky a hook subscribes to changes as the clock crosses, so theme classes follow', () => { + vi.useFakeTimers(); + let hour = 12; + setSkyClock(() => atStandardTime(hour, 10)); + const seen: string[] = []; + const off = subscribeSky((s) => seen.push(s)); + expect(getResolvedSkyState()).toBe('day'); + hour = 0; + setSkyClock(() => atStandardTime(hour, 10)); + vi.advanceTimersByTime(61_000); + expect(seen).toEqual(['night']); + expect(getResolvedSkyState()).toBe('night'); + off(); + vi.useRealTimers(); setSkyClock(); }); diff --git a/src/app/features/scene/skyTheme.ts b/src/app/features/scene/skyTheme.ts index dbd46501..3d427cb2 100644 --- a/src/app/features/scene/skyTheme.ts +++ b/src/app/features/scene/skyTheme.ts @@ -10,7 +10,7 @@ // derived outside this code (src/sky/skyTokens.js). Midnight Sky's link is derived there against the lightest Night sky // (4.53 on it, 5.43 on the darkest). The plate (skyPlate.css.ts) is still in the shell, pending // its removal. -import { resolveSkyState, type FixedSkyState, type SkyState } from './skyState'; +import type { FixedSkyState, SkyState } from './skyState'; export type SkyThemeId = 'midnight-sky' | 'noonday-sky'; @@ -21,4 +21,19 @@ const BY_STATE: Record = { }; export const skyThemeId = (state: SkyState): SkyThemeId | undefined => - BY_STATE[resolveSkyState(state)]; + state === 'auto' ? undefined : BY_STATE[state]; + +/** + * The theme the page wears: a fixed sky state always picks its theme; 'auto' follows the resolved sky (`resolved`, the + * clock's state) only while a scene is on and the person has not chosen a theme of their own, and otherwise picks none. + * Signed-out pages choose no theme, so they pass `userChoseTheme: false`. + */ +export const sceneThemeId = ( + state: SkyState, + resolved: FixedSkyState, + sceneOn: boolean, + userChoseTheme: boolean +): SkyThemeId | undefined => { + if (state !== 'auto') return BY_STATE[state]; + return sceneOn && !userChoseTheme ? BY_STATE[resolved] : undefined; +}; diff --git a/src/app/features/settings/about/About.tsx b/src/app/features/settings/about/About.tsx index 6b304965..9ec74305 100644 --- a/src/app/features/settings/about/About.tsx +++ b/src/app/features/settings/about/About.tsx @@ -4,6 +4,7 @@ import { Page, PageContent, PageHeader } from '../../../components/page'; import { SequenceCard } from '../../../components/sequence-card'; import { SequenceCardStyle } from '../styles.css'; import { SettingTile } from '../../../components/setting-tile'; +import { LogoMark } from '../../../components/logo/logoMark.css'; import RatatoskrSVG from '../../../../../public/res/svg/ratatoskr.svg'; import { clearCacheAndReload } from '../../../../client/initMatrix'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; @@ -37,6 +38,7 @@ export function About({ requestClose }: AboutProps) { Ratatoskr logo useSyncExternalStore(subscribe, getSkyState); + +/** The sky being drawn: day, dusk or night. Unlike the choice it changes as the clock crosses, so it re-renders. */ +export const useResolvedSkyState = (): FixedSkyState => + useSyncExternalStore(subscribe, getResolvedSkyState); + +/** Whether a background scene runs on this device and config (the tier the scene host will mount). */ +export const useSceneOn = (): boolean => + resolveTier(useClientConfig().backgroundScene, readCapabilities(navigator)) !== 'off'; diff --git a/src/app/hooks/useTheme.ts b/src/app/hooks/useTheme.ts index 00ac1ee9..60f89757 100644 --- a/src/app/hooks/useTheme.ts +++ b/src/app/hooks/useTheme.ts @@ -10,10 +10,10 @@ import { } from '../../colors.css'; import '../../gamecult.css'; import '../../sky.css'; -import { settingsAtom } from '../state/settings'; +import { defaultThemeId, settingsAtom } from '../state/settings'; import { useSetting } from '../state/hooks/settings'; -import { skyThemeId } from '../features/scene/skyTheme'; -import { useSkyState } from './useSkyState'; +import { sceneThemeId } from '../features/scene/skyTheme'; +import { useResolvedSkyState, useSceneOn, useSkyState } from './useSkyState'; export enum ThemeKind { Light = 'light', @@ -102,20 +102,29 @@ export const useSystemThemeKind = (): ThemeKind => { return themeKind; }; -/** The theme the sky state asks for, or undefined while it is 'auto': auto never overrides a person's theme. */ -export const useSkyTheme = (): Theme | undefined => { - const id = skyThemeId(useSkyState()); - return id === NoondaySkyTheme.id ? NoondaySkyTheme : id && MidnightSkyTheme; -}; +const toTheme = (id: ReturnType): Theme | undefined => + id === NoondaySkyTheme.id ? NoondaySkyTheme : id && MidnightSkyTheme; + +/** A theme the person chose: the system scheme, or one other than the default. A saved Midnight Sky is the default. */ +const chosenTheme = (useSystemTheme: boolean, themeId?: string) => + useSystemTheme || (themeId !== undefined && themeId !== defaultThemeId); + +/** The theme the sky asks for on a page with no theme of its own (signed out), or undefined for none. */ +export const useSkyTheme = (): Theme | undefined => + toTheme(sceneThemeId(useSkyState(), useResolvedSkyState(), useSceneOn(), false)); export const useActiveTheme = (): Theme => { - const skyTheme = useSkyTheme(); + const sky = useSkyState(); + const resolved = useResolvedSkyState(); + const sceneOn = useSceneOn(); const systemThemeKind = useSystemThemeKind(); const themes = useThemes(); const [systemTheme] = useSetting(settingsAtom, 'useSystemTheme'); const [themeId] = useSetting(settingsAtom, 'themeId'); const [lightThemeId] = useSetting(settingsAtom, 'lightThemeId'); const [darkThemeId] = useSetting(settingsAtom, 'darkThemeId'); + // A person's own theme wins over 'auto'; a fixed sky state is itself a choice and wins over the theme. + const skyTheme = toTheme(sceneThemeId(sky, resolved, sceneOn, chosenTheme(systemTheme, themeId))); if (skyTheme) return skyTheme; diff --git a/src/app/pages/auth/AuthLayout.tsx b/src/app/pages/auth/AuthLayout.tsx index 0d5c9406..49c7b774 100644 --- a/src/app/pages/auth/AuthLayout.tsx +++ b/src/app/pages/auth/AuthLayout.tsx @@ -21,6 +21,7 @@ import { import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback'; import { LOGIN_PATH, REGISTER_PATH, RESET_PASSWORD_PATH } from '../paths'; import RatatoskrSVG from '../../../../public/res/svg/ratatoskr.svg'; +import { LogoMark } from '../../components/logo/logoMark.css'; import { SkyStateControl } from '../../features/scene/SkyStateControl'; import { ServerPicker } from './ServerPicker'; import { AutoDiscoveryAction, autoDiscovery } from '../../cs-api'; @@ -135,7 +136,11 @@ export function AuthLayout() {
    - Ratatoskr logo + Ratatoskr logo Ratatoskr diff --git a/src/app/pages/auth/styles.css.ts b/src/app/pages/auth/styles.css.ts index f16617e8..56ee090f 100644 --- a/src/app/pages/auth/styles.css.ts +++ b/src/app/pages/auth/styles.css.ts @@ -34,9 +34,6 @@ export const AuthLogo = style([ }, ]); -// The mark is white (Meta's matte); on the light sky theme it takes the dark ink instead. -globalStyle('body.noonday-sky img[src*="ratatoskr"]', { filter: 'brightness(0.18)' }); - export const AuthHeader = style({ padding: `0 ${config.space.S400}`, borderBottomWidth: config.borderWidth.B300, diff --git a/src/app/pages/client/WelcomePage.tsx b/src/app/pages/client/WelcomePage.tsx index 74869c3f..8b63af73 100644 --- a/src/app/pages/client/WelcomePage.tsx +++ b/src/app/pages/client/WelcomePage.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Box, Button, Icon, Icons, Text, config, toRem } from 'folds'; import { Page, PageHero, PageHeroSection } from '../../components/page'; +import { LogoMark } from '../../components/logo/logoMark.css'; import RatatoskrSVG from '../../../../public/res/svg/ratatoskr.svg'; export function WelcomePage() { @@ -14,7 +15,15 @@ export function WelcomePage() { > } + icon={ + Ratatoskr logo + } title="Welcome to Ratatoskr" subTitle={ diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 2b48fb59..9ca2496f 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -58,8 +58,10 @@ export interface Settings { soundscapeVoiceCap: number; } +export const defaultThemeId = 'midnight-sky'; + const defaultSettings: Settings = { - themeId: 'midnight-sky', + themeId: defaultThemeId, useSystemTheme: false, lightThemeId: undefined, darkThemeId: undefined, -- 2.47.3 From 814fa4b3ab0f6848d6902a637b70a9d7907a67b7 Mon Sep 17 00:00:00 2001 From: Void Date: Tue, 10 Nov 2026 14:05:42 +0000 Subject: [PATCH 7/8] Diagnostic overlays (?probe=1, ?tierlabel=1) only where allowed; footer band test knows the Safari prefix debugOverlaysAllowed: a dev build, a VITE_PREVIEW_DEMO build, or backgroundScene.debugOverlays in the client config. A production visitor adding the query string gets neither the frame readout nor the tier label. footerBand.test pins -webkit-backdrop-filter (live commit 0fe41efb) and that it blurs as the standard one. Co-Authored-By: Claude Sonnet 5.5 --- src/app/features/scene/debugOverlays.test.ts | 49 +++++++++++++++++++ src/app/features/scene/debugOverlays.ts | 15 ++++++ src/app/features/scene/index.ts | 6 ++- src/app/features/scene/ridge/Ridge.test.ts | 13 ++++- src/app/features/scene/ridge/Ridge.ts | 7 ++- src/app/features/scene/terrain/Terrain.ts | 9 ++-- .../features/scene/terrain/tierLabel.test.ts | 12 +++-- src/app/features/scene/terrain/tierLabel.ts | 18 ++++--- src/app/features/scene/tier.ts | 2 + src/app/pages/auth/footerBand.test.ts | 10 +++- 10 files changed, 123 insertions(+), 18 deletions(-) create mode 100644 src/app/features/scene/debugOverlays.test.ts create mode 100644 src/app/features/scene/debugOverlays.ts diff --git a/src/app/features/scene/debugOverlays.test.ts b/src/app/features/scene/debugOverlays.test.ts new file mode 100644 index 00000000..e1a4e61e --- /dev/null +++ b/src/app/features/scene/debugOverlays.test.ts @@ -0,0 +1,49 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { debugOverlaysAllowed, overlayRequested } from './debugOverlays'; + +let search = ''; +beforeEach(() => { + search = ''; + vi.stubGlobal('window', { + get location() { + return { search }; + }, + }); +}); +afterEach(() => { + vi.unstubAllGlobals(); + vi.unstubAllEnvs(); +}); + +describe('debugOverlaysAllowed', () => { + it('a production build allows nothing by default', () => { + vi.stubEnv('DEV', false); + vi.stubEnv('VITE_PREVIEW_DEMO', ''); + expect(debugOverlaysAllowed(undefined)).toBe(false); + expect(debugOverlaysAllowed({ tier: 'full' })).toBe(false); + expect(debugOverlaysAllowed({ tier: 'full', debugOverlays: false })).toBe(false); + }); + + it('a dev build, a demo preview build or an explicit config flag allows them', () => { + vi.stubEnv('DEV', true); + expect(debugOverlaysAllowed(undefined)).toBe(true); + vi.stubEnv('DEV', false); + vi.stubEnv('VITE_PREVIEW_DEMO', '1'); + expect(debugOverlaysAllowed(undefined)).toBe(true); + vi.stubEnv('VITE_PREVIEW_DEMO', ''); + expect(debugOverlaysAllowed({ debugOverlays: true })).toBe(true); + }); +}); + +describe('overlayRequested', () => { + it('needs both the query and the permission', () => { + search = '?probe=1'; + expect(overlayRequested('probe', true)).toBe(true); + expect(overlayRequested('probe', false)).toBe(false); + expect(overlayRequested('tierlabel', true)).toBe(false); + search = '?tierlabel=1'; + expect(overlayRequested('tierlabel', true)).toBe(true); + search = ''; + expect(overlayRequested('probe', true)).toBe(false); + }); +}); diff --git a/src/app/features/scene/debugOverlays.ts b/src/app/features/scene/debugOverlays.ts new file mode 100644 index 00000000..a02d9e92 --- /dev/null +++ b/src/app/features/scene/debugOverlays.ts @@ -0,0 +1,15 @@ +import type { BackgroundSceneConfig } from './tier'; + +/** + * Whether the page URL may switch on the scene's diagnostic overlays (`?probe=1` frame readout, `?tierlabel=1` path + * label). Only a dev build, a demo preview build (VITE_PREVIEW_DEMO=1), or a config that says `debugOverlays: true` + * allows it; a production visitor adding a query string gets nothing. + */ +export const debugOverlaysAllowed = (config: BackgroundSceneConfig | undefined): boolean => + import.meta.env?.DEV === true || + import.meta.env?.VITE_PREVIEW_DEMO === '1' || + config?.debugOverlays === true; + +/** The page URL asks for this overlay (`?name=1`), and the overlays are allowed. */ +export const overlayRequested = (name: 'probe' | 'tierlabel', allowed: boolean): boolean => + allowed && new URLSearchParams(window.location.search).get(name) === '1'; diff --git a/src/app/features/scene/index.ts b/src/app/features/scene/index.ts index 73377440..bc041672 100644 --- a/src/app/features/scene/index.ts +++ b/src/app/features/scene/index.ts @@ -1,5 +1,6 @@ import type { Scene, SceneOptions } from './Scene'; import { BackgroundSceneConfig, Capabilities, SceneTier, resolveTier } from './tier'; +import { debugOverlaysAllowed } from './debugOverlays'; import { getSkyState, subscribe } from './skyState'; import type { SkyState } from './skyState'; @@ -17,7 +18,7 @@ export type StartOptions = Omit { let createScene: (o: SceneOptions) => Scene | null; @@ -82,7 +83,8 @@ export async function startBackgroundScene( ): Promise { const tier = resolveTier(config, capabilities); if (tier === 'off') return null; - const build = (state: SkyState) => create(config, { ...options, tier }, state); + const debug = debugOverlaysAllowed(config); + const build = (state: SkyState) => create(config, { ...options, tier, debug }, state); const state = getSkyState(); const key0 = config?.style === 'raymarch' ? null : await skyKey(config, state); const first = await build(state); diff --git a/src/app/features/scene/ridge/Ridge.test.ts b/src/app/features/scene/ridge/Ridge.test.ts index 711054f6..adee2717 100644 --- a/src/app/features/scene/ridge/Ridge.test.ts +++ b/src/app/features/scene/ridge/Ridge.test.ts @@ -428,7 +428,7 @@ describe('createRidgeScene', () => { it('?probe=1 keeps the rAF loop alive and shows median and p95', () => { search = '?probe=1'; const { parent, canvas } = host(); - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, debug: true })!; const readout = parent.children[parent.children.length - 1]; runFrames(16.7, 300); expect(rafQueue.length).toBe(1); // still sampling @@ -437,6 +437,17 @@ describe('createRidgeScene', () => { expect(parent.children.some((c: any) => c === readout)).toBe(false); }); + it('?probe=1 does nothing where the overlays are not allowed: no readout, the loop ends', () => { + search = '?probe=1'; + const { parent, canvas } = host(); + const before = parent.children.length; + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; + expect(parent.children.length).toBe(before + LAYERS.length); + runFrames(16.7, 300); + expect(rafQueue.length).toBe(0); + s.dispose(); + }); + it('a scene started at zero size paints nothing, then builds on the first non-zero resize', async () => { const { parent, canvas } = host(); canvas.clientWidth = 0; diff --git a/src/app/features/scene/ridge/Ridge.ts b/src/app/features/scene/ridge/Ridge.ts index 69a88864..fd40a967 100644 --- a/src/app/features/scene/ridge/Ridge.ts +++ b/src/app/features/scene/ridge/Ridge.ts @@ -1,4 +1,5 @@ import type { Scene, SceneOptions } from '../Scene'; +import { overlayRequested } from '../debugOverlays'; import { FrameSampler, FrameStats } from './probe'; import { skyColours, SkyColours, Srgb } from './skyColour'; import { activeAt, drawStars, drawTwinkle as paintTwinkle, makeStars, Star } from './stars'; @@ -14,8 +15,10 @@ import { } from './ridgeWorld'; export type RidgeOptions = Pick & { - /** Show the rAF median/p95 readout. Default: the page URL has `?probe=1`. */ + /** Show the rAF median/p95 readout. Default: the page URL has `?probe=1`, where `debug` allows it. */ probe?: boolean; + /** The diagnostic overlays may be asked for by URL (debugOverlays.ts). Default: no. */ + debug?: boolean; /** Each time the readout would update, and once with `still` when the fallback fires. */ onProbe?: (s: FrameStats & { still: boolean }) => void; /** The sky's colours; default `skyColours()`, the one function to replace with Void's sun.js. */ @@ -151,7 +154,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { const parent = canvas.parentElement; if (!parent) return null; const sky = opts.sky ?? skyColours(); - const probe = opts.probe ?? new URLSearchParams(window.location.search).get('probe') === '1'; + const probe = opts.probe ?? overlayRequested('probe', opts.debug === true); const reducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)'); let built: Built | undefined; diff --git a/src/app/features/scene/terrain/Terrain.ts b/src/app/features/scene/terrain/Terrain.ts index b697927b..a1807305 100644 --- a/src/app/features/scene/terrain/Terrain.ts +++ b/src/app/features/scene/terrain/Terrain.ts @@ -22,6 +22,7 @@ import { SKY_FRAG, } from './terrainShaders'; import { createTerrainStars } from './terrainStars'; +import { overlayRequested } from '../debugOverlays'; import { showTierLabel } from './tierLabel'; export type TerrainOptions = Pick< @@ -36,8 +37,10 @@ export type TerrainOptions = Pick< band?: SkyBand; /** Terrain seed: the height map is sampled at an offset taken from it. Default 0. */ seed?: number; - /** Show the rAF median/p95 readout (plus triangle count). Default: the page URL has `?probe=1`. */ + /** Show the rAF median/p95 readout (plus triangle count). Default: the page URL has `?probe=1`, where `debug` allows it. */ probe?: boolean; + /** The diagnostic overlays (readout, tier label) may be asked for by URL (debugOverlays.ts). Default: no. */ + debug?: boolean; onProbe?: (s: FrameStats & { still: boolean; triangles: number }) => void; }; @@ -89,7 +92,7 @@ export function createTerrainScene(opts: TerrainOptions): Scene | null { const tier = opts.tier ?? 'full'; if (tier === 'off') return null; const { canvas } = opts; - const probe = opts.probe ?? new URLSearchParams(window.location.search).get('probe') === '1'; + const probe = opts.probe ?? overlayRequested('probe', opts.debug === true); const gl = canvas.getContext('webgl2', { antialias: false, alpha: false, @@ -395,7 +398,7 @@ export function createTerrainScene(opts: TerrainOptions): Scene | null { }); canvas.parentElement.appendChild(readout); } - const removeLabel = showTierLabel(canvas, tier); + const removeLabel = showTierLabel(canvas, tier, opts.debug === true); if (still) settleToStill(); else wake(); if (!still && !moving()) draw(0); diff --git a/src/app/features/scene/terrain/tierLabel.test.ts b/src/app/features/scene/terrain/tierLabel.test.ts index 3e9f3a48..e3f18871 100644 --- a/src/app/features/scene/terrain/tierLabel.test.ts +++ b/src/app/features/scene/terrain/tierLabel.test.ts @@ -29,21 +29,27 @@ afterEach(() => vi.unstubAllGlobals()); describe('showTierLabel', () => { it('adds nothing in a normal build', () => { - expect(showTierLabel(canvas(true), 'full')).toBeNull(); + expect(showTierLabel(canvas(true), 'full', true)).toBeNull(); expect(appended).toHaveLength(0); }); it('names the path on screen when asked with ?tierlabel=1, and removes itself', () => { search = '?tierlabel=1'; - const remove = showTierLabel(canvas(true), 'sky-only'); + const remove = showTierLabel(canvas(true), 'sky-only', true); expect(appended).toHaveLength(1); expect(appended[0].textContent).toBe('terrain · sky-only'); remove!(); expect(appended[0].remove).toHaveBeenCalled(); }); + it('ignores ?tierlabel=1 where the overlays are not allowed (a production page)', () => { + search = '?tierlabel=1'; + expect(showTierLabel(canvas(true), 'full', false)).toBeNull(); + expect(appended).toHaveLength(0); + }); + it('has nowhere to go without a parent', () => { search = '?tierlabel=1'; - expect(showTierLabel(canvas(false), 'full')).toBeNull(); + expect(showTierLabel(canvas(false), 'full', true)).toBeNull(); }); }); diff --git a/src/app/features/scene/terrain/tierLabel.ts b/src/app/features/scene/terrain/tierLabel.ts index 0b2c79ec..4afc8a69 100644 --- a/src/app/features/scene/terrain/tierLabel.ts +++ b/src/app/features/scene/terrain/tierLabel.ts @@ -1,13 +1,19 @@ +import { overlayRequested } from '../debugOverlays'; + // A tiny label naming which terrain path is on screen ('full', 'low', 'still', or 'sky-only' where WebGL2 is missing), -// so a screenshot of a preview says what it shows. Built into preview builds only (VITE_PREVIEW_DEMO=1), or by `?tierlabel=1`. -const wanted = (): boolean => - import.meta.env?.VITE_PREVIEW_DEMO === '1' || - new URLSearchParams(window.location.search).get('tierlabel') === '1'; +// so a screenshot of a preview says what it shows. Built into preview builds (VITE_PREVIEW_DEMO=1), or by `?tierlabel=1` +// where the diagnostic overlays are allowed (debugOverlays.ts). +const wanted = (allowed: boolean): boolean => + import.meta.env?.VITE_PREVIEW_DEMO === '1' || overlayRequested('tierlabel', allowed); /** Adds the label to the canvas's parent; returns its remover, or null when no label is wanted. */ -export function showTierLabel(canvas: HTMLCanvasElement, text: string): (() => void) | null { +export function showTierLabel( + canvas: HTMLCanvasElement, + text: string, + allowed: boolean +): (() => void) | null { const parent = canvas.parentElement; - if (!parent || !wanted()) return null; + if (!parent || !wanted(allowed)) return null; const el = document.createElement('div'); el.textContent = `terrain · ${text}`; Object.assign(el.style, { diff --git a/src/app/features/scene/tier.ts b/src/app/features/scene/tier.ts index 4a976081..ba338f37 100644 --- a/src/app/features/scene/tier.ts +++ b/src/app/features/scene/tier.ts @@ -24,6 +24,8 @@ export type SceneStyle = 'ridge' | 'raymarch' | 'terrain'; export interface BackgroundSceneConfig { tier?: SceneTier; style?: SceneStyle; + /** Let the page URL switch on the diagnostic overlays (`?probe=1`, `?tierlabel=1`) in a production build. Default: no. */ + debugOverlays?: boolean; } export function readCapabilities(nav: Navigator): Capabilities { diff --git a/src/app/pages/auth/footerBand.test.ts b/src/app/pages/auth/footerBand.test.ts index 9d196200..97febbbb 100644 --- a/src/app/pages/auth/footerBand.test.ts +++ b/src/app/pages/auth/footerBand.test.ts @@ -43,9 +43,17 @@ describe('the sign-in footer band, as emitted', () => { ]); }); - it('declares exactly these properties, so nothing else (a shadow, a prefixed override) rides along', async () => { + it('declares exactly these properties, so nothing else (a shadow, a stray override) rides along', async () => { const [rule] = declarations(await emitted(), over); + // -webkit-backdrop-filter is the one prefixed property, for Safari 14; it must blur exactly as the standard one does. + const blur = (prop: string) => + rule + .find((d) => d.startsWith(`${prop}:`)) + ?.split(':')[1] + .trim(); + expect(blur('-webkit-backdrop-filter')).toBe(blur('backdrop-filter')); expect(rule.map((d) => d.slice(0, d.indexOf(':'))).sort()).toEqual([ + '-webkit-backdrop-filter', 'backdrop-filter', 'background-color', 'background-color', -- 2.47.3 From 48d6d171daa7505127170aa1b40afbaca2e91909 Mon Sep 17 00:00:00 2001 From: Void Date: Tue, 10 Nov 2026 14:09:00 +0000 Subject: [PATCH 8/8] Sky-only tier label follows the overlay gate; tests pin the door's debug forwarding Co-Authored-By: Claude Sonnet 5.5 --- .../scene/terrain/TerrainSky2D.test.ts | 36 +++++++++++++++++++ .../features/scene/terrain/TerrainSky2D.ts | 7 ++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/app/features/scene/terrain/TerrainSky2D.test.ts b/src/app/features/scene/terrain/TerrainSky2D.test.ts index c3a95d69..d85d8f01 100644 --- a/src/app/features/scene/terrain/TerrainSky2D.test.ts +++ b/src/app/features/scene/terrain/TerrainSky2D.test.ts @@ -168,6 +168,42 @@ describe('createTerrainSkyScene', () => { }); }); +describe('the sky-only tier label', () => { + const labels = (parentAppend: ReturnType) => + parentAppend.mock.calls.filter(([e]) => e?.textContent === 'terrain · sky-only'); + + it('shows for ?tierlabel=1 only where the overlays are allowed', () => { + search = '?tierlabel=1'; + const off = canvasWith(); + createTerrainSkyScene({ canvas: off.canvas, tier: 'low' })!.dispose(); + expect(labels(off.parentAppend)).toHaveLength(0); + const on = canvasWith(); + createTerrainSkyScene({ canvas: on.canvas, tier: 'low', debug: true })!.dispose(); + expect(labels(on.parentAppend)).toHaveLength(1); + }); + + it('the door allows it from the config flag, and not from a plain production config', async () => { + vi.stubEnv('DEV', false); + vi.stubEnv('VITE_PREVIEW_DEMO', ''); + search = '?tierlabel=1'; + const plain = canvasWith(); + ( + await startBackgroundScene({ tier: 'low', style: 'terrain' }, {}, { canvas: plain.canvas }) + )?.dispose(); + expect(labels(plain.parentAppend)).toHaveLength(0); + const flagged = canvasWith(); + ( + await startBackgroundScene( + { tier: 'low', style: 'terrain', debugOverlays: true }, + {}, + { canvas: flagged.canvas } + ) + )?.dispose(); + expect(labels(flagged.parentAppend)).toHaveLength(1); + vi.unstubAllEnvs(); + }); +}); + describe('startBackgroundScene, terrain style', () => { it('without WebGL2 mounts the sky on the same canvas instead of returning null', async () => { const { canvas, painted } = canvasWith({ gl: null }); diff --git a/src/app/features/scene/terrain/TerrainSky2D.ts b/src/app/features/scene/terrain/TerrainSky2D.ts index 71bc7a78..4653d470 100644 --- a/src/app/features/scene/terrain/TerrainSky2D.ts +++ b/src/app/features/scene/terrain/TerrainSky2D.ts @@ -9,7 +9,10 @@ import { CAMERA, view } from './terrainWorld'; export const SKY_WIDTH = 96; /** The sky of the terrain scene without WebGL2: the camera's first frame of `skyColour`, once, on a 2D canvas, with the star layer on top. */ -export type TerrainSkyOptions = Pick; +export type TerrainSkyOptions = Pick< + TerrainOptions, + 'canvas' | 'tier' | 'sky' | 'sun' | 'band' | 'debug' +>; /** * Same contract as `createTerrainScene`. Paints the terrain scene's sky (the CPU twin of its sky shader, from the @@ -69,7 +72,7 @@ export function createTerrainSkyScene(opts: TerrainSkyOptions): Scene | null { }; window.addEventListener('resize', onResize); paint(); - const removeLabel = showTierLabel(canvas, 'sky-only'); + const removeLabel = showTierLabel(canvas, 'sky-only', opts.debug === true); return { login() { -- 2.47.3