What is Violit?
A reactive framework for building web apps with Python only
Violit is a framework that allows you to build completely reactive web apps with a single Python file, without writing any JavaScript, HTML, or CSS.
Inspired by Streamlit, but uses a fundamentally different rendering architecture that partially updates only changed components (Partial DOM Update) instead of re-executing the entire script.
Partial updates within 50ms for changed components
No JS/HTML/CSS files required
Text, inputs, charts, tables, chat, and more
dark, cyberpunk, vaporwave, etc.
WebSocket-based broadcast
pywebview integrated native window
Minimal Example
Output
Hello, Violit!
This app is built with pure Python.
App Constructor Options
Major parameters available for vl.App().
| Parameter | Type | Default | Description |
|---|---|---|---|
title | str | "Violit App" | App title (Browser tab, Native window title) |
theme | str | "violit_light_jewel" | Theme preset name (20+ built-in presets) |
mode | str | "ws" | "ws" (WebSocket) or "lite" (HTMX based HTTP) |
container_width | str | "800px" | Content max width. "none" for full width |
icon | str | "💎" | App icon (Emoji or .ico file path) |
use_cdn | bool | False | True: Use CDN, False: Local vendor (Offline capable) |
allow_selection | bool | True | Allow text selection |
animation_mode | str | "soft" | Animation mode: "soft" or "hard" |
width | int | 1024 | Native window width (--native mode) |
height | int | 768 | Native window height (--native mode) |
TIP
All vendor libraries (Shoelace, Plotly, AG Grid, etc.) are bundled locally, enabling full offline operation with
use_cdn=False (default).