FreeLattice · Celeste reading home

Public, free to read, reuse, and adapt — Kirk Patrick Miller's notice for this edition. Not a patent grant.

FLINT_NEXT_TREE_GLOW_2B_v0.1.txt · c03

baa3fa793e · words 1047 · characters 17915–25224

Previous section · Next section

Exact section text · Full source · Source index

Archive pages whose extracted text matched this section: 1457, 1458. Unmatched pages stay on the source record with the checked page method. They are not guessed into a section.

No topic tag was earned for this page under the recorded evidence rule.

 { float: right; color: var(--muted); font-size: 0.72rem; font-style: italic; }
     blockquote { border-left: 2px solid var(--lavender); padding-left: 14px; color: var(--muted); font-style: italic; margin: 12px 0; }
     a { color: var(--lavender); }
diff --git a/docs/library/TREE_GLOW_v0.md b/docs/library/TREE_GLOW_v0.md
index 79ed663..1ee345f 100644
--- a/docs/library/TREE_GLOW_v0.md
+++ b/docs/library/TREE_GLOW_v0.md
@@ -39,3 +39,16 @@ From Hypha's persona walks (2026-09-30), most harmful first:
 - The picker's "not yet" sits above the later seats at 1280.
 - Zoomed home: the light legend leaves "Garden Galaxy / you are in the garden", and "galaxies" stays inside the edge. Zoomed Nursery: the egg fits, the sentence wraps, Begin is in view; on a phone the hop lights rest dim behind it.
 - A quiet Chat remount (a mind was remembered) no longer pulls the page down to Send.
+
+## Glow 2b: a hint more frost, readable doors, honest chairs (v-tree-glow-2b-v0)
+
+**Temperature:** the glass mists a little when a light opens, and every word she needs is big enough and bright enough to read.
+
+- A hint more frost behind an open place (2px blur, a little tint), a stronger tint where frosted glass is missing, and a calm opaque face for reduced transparency.
+- Header "Chat" and "galaxies" (12px, 2.45 : 1) and "shared shoulder" (9.9px, 1.97 : 1) are 14px and about 9 to 10 : 1. The shoulder rests under places other than the Gathering, where it sat on "the garden" and took no tap anyway.
+- "Desktop" / "FreeLattice Desktop" / "install" links are moon-blue on night (12.6 : 1, was 1.83 to 2.08 : 1).
+- A sleeping Send says "Send sleeps until a mind is remembered in Settings." beside it; sleeping Ask and Run say the same for the benches. The sleeping row dims, the reason does not.
+- "Change" shows only on a seated chair.
+- Code mirrors (code-nursery and five more) wrap long paths on a phone instead of scrolling sideways.
+
+Later (not in 2b): the rest of Hypha's contrast list (`CONTRAST.md`, 67 pairs under 4.5 : 1 and 132 under 14px), as one sweep with Kirk's eye on the night palette.
diff --git a/docs/modules/garden-rooms.css b/docs/modules/garden-rooms.css
index 7cfa1b8..7cb4d9d 100644
--- a/docs/modules/garden-rooms.css
+++ b/docs/modules/garden-rooms.css
@@ -6399,3 +6399,122 @@ html.flc-hide-galaxy #gardenContainer {
   border-color: rgba(232, 196, 104, 0.6);
   color: #e8c468;
 }
+
+/* v-tree-glow-2b-v0: Tree glow 2b, a hint more frost, readable doors, honest chairs.
+   Layer, never delete. Words stay. Lights stay. Only glass, ink and size move. */
+
+/* (1) A hint more frost when a light is tapped. The glass sits under every place's own
+   tint (z-index -1 inside the veil), so each place keeps its gradient. */
+#place-veil.is-open::before {
+  content: "";
+  position: fixed;
+  inset: 0;
+  z-index: -1;
+  pointer-events: none;
+  background: rgba(12, 10, 26, 0.1);
+  -webkit-backdrop-filter: blur(2px) saturate(1.05);
+  backdrop-filter: blur(2px) saturate(1.05);
+}
+@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
+  /* no frosted glass in this browser: a little more tint instead */
+  #place-veil.is-open::before { background: rgba(12, 10, 26, 0.24); }
+}
+@media (prefers-reduced-transparency: reduce) {
+  #place-veil.is-open::before {
+    -webkit-backdrop-filter: none;
+    backdrop-filter: none;
+    background: rgba(12, 10, 26, 0.62);
+  }
+}
+
+/* (2) "FreeLattice Desktop" and "install" were browser blue on night (1.83 : 1).
+   Moon-blue, underlined, the same before and after a visit. */
+#place-veil .core-note a,
+#place-veil .core-note a:visited,
+#place-veil [data-mind-status] a,
+#place-veil [data-mind-status] a:visited {
+  color: #9fd6ff;
+  text-decoration: underline;
+  text-underline-offset: 2px;
+}
+#place-veil .core-note a:hover,
+#place-veil .core-note a:focus-visible,
+#place-veil [data-mind-status] a:hover,
+#place-veil [data-mind-status] a:focus-visible {
+  color: #e8c468;
+}
+
+/* (3) Header "Chat" and "galaxies" were 12px at 2.45 : 1 on every page, and
+   "shared shoulder" 9.9px at 1.97 : 1. Both are 14px and above 4.5 : 1 now. */
+#garden-header nav,
+#garden-header nav a,
+#garden-header nav summary,
+#garden-header nav .thread-word {
+  font-size: 0.875rem;
+}
+#garden-header nav a,
+#garden-header nav summary,
+#garden-header nav .thread-word {
+  color: rgba(214, 222, 238, 0.86);
+}
+#shared-shoulder {
+  font-size: 0.875rem;
+  letter-spacing: 0.03em;
+  color: rgba(214, 222, 238, 0.8);
+}
+#shared-shoulder a:hover,
+#shared-shoulder a:focus-visible {
+  color: #c4b5fd;
+}
+@media (max-width: 340px) {
+  /* zoomed hands: the words are already large on the glass; keep them inside the edge */
+  #garden-header nav,
+  #garden-header nav a,
+  #garden-header nav summary,
+  #garden-header nav .thread-word {
+    font-size: 0.8rem;
+  }
+  #shared-shoulder { font-size: 0.75rem; }
+}
+
+/* (4) A sleeping Send, Ask or Run says why, right beside it, in readable ink. */
+.thread-send-why,
+.workshop-act-why {
+  margin: 6px 0 0;
+  font-family: Georgia, 'Times New Roman', serif;
+  font-size: 0.875rem;
+  line-height: 1.4;
+  color: rgba(226, 232, 244, 0.86);
+}
+.thread-send-why[hidden],
+.workshop-act-why[hidden] { display: none; }
+
+/* (5) "Change" showed on every empty chair: its own display:block won over [hidden]. */
+.core-chair-change[hidden] { display: none !important; }
+/* the sleeping compose dimmed its whole box, so its glass let the words behind show
+   through and the reason would have dimmed too. Dim the sleeping row, keep the glass. */
+.thread-compose.is-closed { opacity: 1; }
+.thread-compose.is-closed > :not(.thread-send-why) { opacity: 0.5; }
+@media (max-width: 640px) {
+  /* phone Gathering card: a sleeping Send row offers nothing to tap and sat on the
+     Settings door; the card says why instead, under the Settings door. */
+  #place-veil.is-core #room-chat .thread-compose.is-closed {
+    position: static;
+  }
+  #place-veil.is-core #room-chat .thread-compose.is-closed .thread-compose-row {
+    display: none;
+  }
+  #place-veil.is-core #room-chat:has(.thread-compose.is-closed) {
+    max-height: 9.25rem;
+  }
+  #place-veil.is-core #room-chat .thread-compose.is-closed .thread-send-why {
+    margin-top: 2px;
+    font-size: 0.875rem;
+  }
+}
+/* the larger shoulder sat on "the garden" over Workshop. Under an open place it was
+   behind the glass and took no tap anyway; it rests there (the Gathering keeps it). */
+html:has(#place-veil.is-open:not(.is-core)) #shared-shoulder {
+  visibility: hidden;
+}
+
diff --git a/docs/modules/garden-thread.js b/docs/modules/garden-thread.js
index 13b1031..f2794a5 100644
--- a/docs/modules/garden-thread.js
+++ b/docs/modules/garden-thread.js
@@ -571,6 +571,12 @@
     row.appendChild(input);
     row.appendChild(sendBtn);
     form.appendChild(row);
+    // v-tree-glow-2b-v0: a sleeping Send says why, right under it, where the eye already is.
+    // (The input's own label says the same for a screen reader.)
+    var sendWhy = el('p', 'thread-send-why', 'Send sleeps until a mind is remembered in Settings.');
+    sendWhy.id = 'thread-send-why-' + Math.random().toString(36).slice(2, 8);
+    sendWhy.hidden = true;
+    form.appendChild(sendWhy);