mirror of
https://github.com/block/buzz.git
synced 2026-11-04 00:12:02 +00:00
Composer styling now mirrors the rendered Markdown timeline (default variant in shared/ui/markdown.tsx) so what the user sees while typing matches what they see after sending — every block element (p, ul, ol, li, blockquote, pre, hr, h1/h2/h3, inline code, links). Key changes - Inter-block spacing driven by an owl rule (` & > * + * `) using the same Tailwind tokens as the timeline (mt-3, mt-3.5 for headings / blockquote / code-block, mt-4 for hr, mt-1.5 for p+ul/ol). Removes the empty-list height jitter: a freshly toggled ul/ol with no items adds no margin of its own, so the editor only grows when items appear. - Editor wrapper bumped from leading-6 to leading-7 and min-height from 1.5rem to 1.75rem to match the rendered side. - Per-element styles converted to Tailwind utilities via @apply: list-disc/decimal pl-6 space-y-1 marker:text-muted-foreground on ul/ol; my-1 [&_p]:inline on li; bordered/italic blockquote with child-margin owl rules; rounded code-block with border/bg/shadow; inline code with rounded bg-muted; primary underlined links. - Headings (h1/h2/h3) gain proper sizing — only reachable via paste since heading input rules are still disabled in StarterKit, but pasted markdown round-trips correctly now. Behavior change - Shift+Enter now splits into a real new paragraph (splitBlock) instead of inserting a hard break (<br>). Plain Enter still submits. This matches user intuition (Slack/iMessage style) and keeps WYSIWYG — previously the soft-break composer rendering looked tighter than the paragraph spacing the message would receive on send. The hardBreak node is still enabled in StarterKit so pasted markdown containing explicit hard breaks round-trips. Verified: pnpm typecheck, pnpm lint, pnpm build all green.
Sprout
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition