LiveTemplate Patterns
31 UI patterns demonstrating progressive complexity
Forms & Editing
Click To Edit
— Toggle between view and edit mode
Edit Row
— Inline editing of table rows
Inline Validation
— Server-side field validation as you type
Bulk Update
— Batch checkbox operations
Reset User Input
— Auto-clear forms after submission
File Upload
— Standard and chunked file uploads
Preserving File Inputs
— Retain form values across re-renders
Lists & Data
Delete Row
— Animated row removal
Click To Load
— Append-only pagination
Infinite Scroll
— Auto-load on scroll with IntersectionObserver
Value Select
— Cascading dependent selects
Sortable List
— Drag-and-drop reordering with native HTML5 drag events
Large Table
— 10k-row table with filter, sort, append, update, delete, reset (streaming range)
Search & Filtering
Active Search
— Debounced live search
URL-Preserved Filters
— Bookmarkable filter state via query params
Loading & Progress
Lazy Loading
— Load content after page render via server push
Progress Bar
— WebSocket-pushed progress updates
Async Operations
— Loading/success/error state machine
Dialogs, Tabs & Navigation
Modal Dialog
— Native dialog with command/commandfor
Confirm Dialog
— CSP-compliant confirmation flow
Tabs (HATEOAS)
— Server-driven tabs via SPA navigation
SPA Navigation
— Auto link interception with pushState
Keyboard Shortcuts
— Global keyboard event binding
Visual Feedback
Animations
— Entry animations with lvt-fx:animate
Loading States
— Auto aria-busy and custom loading text
Highlight on Change
— Visual flash on DOM updates
Flash Messages
— Toast notifications via ctx.SetFlash
Real-Time & Multi-User
Multi-User Sync
— Auto-sync across tabs via Sync() handler
Broadcasting
— Cross-connection updates via BroadcastAction
Presence Tracking
— Explicit join/leave with shared state
Reconnection Recovery
— State persistence across disconnects
Live Preview
— Real-time input preview via Change()
Server Push
— Background goroutine pushing updates