A simulated messenger, with a sidebar of conversations, message bubbles, a typing indicator and automatic replies. It runs entirely in the browser.
Open examples/chat/index.html. The demo uses the essential bundle
packages/voodoojs/dist/voodoo.min.js with data-manual, so the component is
registered before V.theme.init() and V.start().
v-foron the conversations, on the messages and on the emoji grid, always with:key.v-showon the counters, on the typing indicator and on the emoji picker.v-transitionwith thefadeandscaleanimations the library already injects.V.nextTickbefore adjustingscrollTop, so the scrolling happens after the list has already been updated in the DOM.@keyup.enteron the text field and@outsideto close the emoji picker.v-model,v-click,v-refand:classacross the rest of the screen.- Message states that move along on their own: sending, sent and read.
All the logic lives in V.component('chat-app', ...). The look combines design
system classes (v-avatar, v-badge, v-input, v-btn) with CSS of its own
written only in the --v-* tokens, so both themes come out of the same code.
Two columns on the desktop, one on the phone, and the animations respect
prefers-reduced-motion.