A frozen record of the original landing-pill interaction, retired when the button was rewired to open the "What's on your mind?" dialog directly. Kept because we might want it back — restoring it is a one-line change.
openPicker("new")) — no animation, no inline composer. This page describes what it did before, and exactly how to bring it back.The chats landing showed a single coral Call the panel capsule (#callPill) standing in for the composer (its REST state). Tapping it didn't open a dialog — it morphed the pill into an inline composer (the "What's on your mind?" textarea, #askBox) with a scripted "puck flight", then focused the field and raised the keyboard. Typing there and sending then handed off to the new-chat dialog, flying the text into its describe box.
.arming to the composer (starts transparent) and flip the state class that displays it — body.composer-armed on the landing (the pill hides, #askBox shows)..call-puck is spawned over the pill and collapses from the full capsule to a 40px circle at the capsule's centre; the → glyph rotates out as an ↑ rotates in.Two platform subtleties made it feel right: (a) a per-platform --call-speed multiplier scaled both the JS beat timings and the CSS morph/fade durations — iOS 1× · PC 2× · Android 3× (the flight felt sluggish otherwise); (b) iOS only raises the on-screen keyboard when focus() runs inside the tap gesture, so on iOS the field was focused up-front (the puck rode the rising keyboard) while PC/Android focused after the flight. Tapping away with an empty field folded the composer back to the pill (disarm()).
The whole mechanism is still present in lib/room-ui.html — it's shared with the wide chat-open "convene" pill (#conveneTab), so none of it was deleted: armAndFly(), the body.composer-armed state, the #askBox composer, the .call-puck / .call-pill CSS, and the --call-speed variable all remain. Only the landing pill's click wiring was changed. To restore the morph, swap that one line back:
if (pill) pill.addEventListener("click", () => openPicker("new"));
if (pill) pill.addEventListener("click", () =>
armAndFly(pill, () => document.body.classList.add("composer-armed")));
Find it in lib/room-ui.html in the "Call-the-panel pill" block (search armAndFly(pill). The full armAndFly() implementation lives just above it; the CSS is under the .call-pill / .call-puck / #askBox / .composer-armed rules.
The morph + inline composer added a step and an animation between "I want to start a chat" and the actual describe box. The decision (owner call) was to make the landing pill a plain, instant entry into the "What's on your mind?" dialog — the same dialog the inline composer handed off to anyway — so the intent lands one tap sooner, with no motion to wait through. The inline composer + its morph stay in the codebase for the wide chat-open "convene" affordance and for a possible return here.
lib/room-ui.html (the "Call-the-panel pill" block + armAndFly) · see also Style guide