Loading...
Introduction

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.

Fast Updates

Partial updates within 50ms for changed components

Pure Python

No JS/HTML/CSS files required

70+ Widgets

Text, inputs, charts, tables, chat, and more

20+ Themes

dark, cyberpunk, vaporwave, etc.

Real-time Sync

WebSocket-based broadcast

Desktop App

pywebview integrated native window

Quick Start

Minimal Example

Output

Hello, Violit!

This app is built with pure Python.

hello.py
import violit as vl

app = vl.App(title="My App")

app.text("Hello, Violit!")
app.text("This app is built with pure Python.")

app.run()

App Constructor Options

Major parameters available for vl.App().

ParameterTypeDefaultDescription
titlestr"Violit App"App title (Browser tab, Native window title)
themestr"violit_light_jewel"Theme preset name (20+ built-in presets)
modestr"ws""ws" (WebSocket) or "lite" (HTMX based HTTP)
container_widthstr"800px"Content max width. "none" for full width
iconstr"💎"App icon (Emoji or .ico file path)
use_cdnboolFalseTrue: Use CDN, False: Local vendor (Offline capable)
allow_selectionboolTrueAllow text selection
animation_modestr"soft"Animation mode: "soft" or "hard"
widthint1024Native window width (--native mode)
heightint768Native window height (--native mode)
app = vl.App(
    title="My Dashboard",
    theme="cyberpunk",
    container_width="960px",
    icon="🚀",
    use_cdn=False,          # Offline capable
    animation_mode="soft",  # Soft transitions
)
TIP
All vendor libraries (Shoelace, Plotly, AG Grid, etc.) are bundled locally, enabling full offline operation with use_cdn=False (default).