Skip to main content

A responsive, Python-only UI engine for rapid dashboards

Project description

🌑 web-in-python-lol Engine

A lightweight, Python-only UI engine designed for building rapid dashboards and web interfaces without touching HTML, CSS, or JavaScript. Built on top of a standard HTTP server with zero external Python dependencies.

✨ Features

  • Python-Native: Write your entire UI in pure Python classes.
  • Zero Dependencies: Uses only the standard library (http.server, sqlite3, etc.).
  • Hot Reloading: Automatic page refreshes when the database state changes.
  • Built-in Persistence: SQLite3 backend integrated directly into the WebApp class.
  • Responsive by Default: Modern flexbox/grid components that work on mobile and desktop.
  • Lucide Icons: Integrated professional SVG icons out of the box.

🚀 Quick Start

1. Installation

pip install web-in-python-lol

2. Create your first App

from Engine.core import WebApp, Container, Card, Text, Button, Navbar

# Initialize the App
app = WebApp(name="MyDashboard")

@app.page("/")
def home(instance, params):
    return [
        Navbar("App", [("Home", "/"), ("Settings", "/settings")]),
        Container([
            Card([
                Text("Welcome to ShadowUI").font_size("24px").weight("bold"),
                Text("Building UIs in Python has never been this easy."),
                Button("Get Started").m_top("20px")
            ])
        ])
    ]

if __name__ == "__main__":
    app.start(port=8080)

🛠 Component Toolkit

ShadowUI provides a declarative way to build layouts. Every component supports method chaining for styling.

Component Description
Container Centers content with a max-width (ideal for main pages).
Row / Column Flexbox-based layouts for horizontal or vertical stacking.
Grid Responsive CSS Grid for cards and galleries.
Card A styled container with borders and padding.
Navbar Responsive navigation bar with mobile hamburger menu support.
Icon Embed 1,000+ professional icons via Lucide.

💾 Database & State

includes a thread-safe SQLite wrapper. Use it to store settings or app state that triggers auto-reloads.

# Save data
app.store("user_theme", "dark")

# Fetch data
theme = app.fetch("user_theme", default="light")

📱 Mobile Support

includes a built-in "hamburger" menu system. When the screen width drops below 768px, the Navbar automatically collapses into a mobile-friendly toggle.


🤝 Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

web_in_python_lol-0.2.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

web_in_python_lol-0.2.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file web_in_python_lol-0.2.0.tar.gz.

File metadata

  • Download URL: web_in_python_lol-0.2.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for web_in_python_lol-0.2.0.tar.gz
Algorithm Hash digest
SHA256 176ac700b062c8fa6a52bb16b16eb2815f61bc25e6cfb06ffc99f411a9b5bc69
MD5 7f95f7409c44adabece0e374f26f40c3
BLAKE2b-256 8e3b804ab66f1003eb848c56dfd122a75c22eb47c1d56d0e1cbc40bfc28c7ea2

See more details on using hashes here.

File details

Details for the file web_in_python_lol-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for web_in_python_lol-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39f141cdb814c65a28fb5346ef2615827afaffe9f9f3e464fe04a22ba53795f9
MD5 e02e26a428b7238a7c6ea2f8ef26d1c9
BLAKE2b-256 291c9817d5c1238f97004784bde9737db576401bcc5453daaaa9459b7577be07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page