You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

88 lines
2.7 KiB

.. BadGUI documentation master file, created by
sphinx-quickstart on Sat Sep 27 21:52:16 2025.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
BadGUI Documentation
====================
.. image:: https://img.shields.io/badge/Python-3.8+-blue.svg
:target: https://python.org
:alt: Python Version
.. image:: https://img.shields.io/badge/Framework-Vue.js%203-green.svg
:target: https://vuejs.org
:alt: Vue.js 3
.. image:: https://img.shields.io/badge/UI-Quasar-blue.svg
:target: https://quasar.dev
:alt: Quasar Framework
**BadGUI** is a Python framework that generates Vue.js/Quasar projects using syntax similar to NiceGUI. Instead of running a live server, BadGUI creates a complete, editable Vue.js project that you can further customize and deploy.
Key Features
------------
- **NiceGUI-like syntax**: Write familiar Python code to define your UI
- **Vue.js/Quasar output**: Generates modern, responsive web applications
- **Static project generation**: Creates editable Vue projects, not live servers
- **🚀 Instant Development**: ``bg.dev()`` creates temp build, installs deps, and starts server automatically
- **Component-based**: Modular component system for reusable UI elements
- **Layout system**: Built-in row/column layouts with context managers
- **Multi-page routing**: Create multiple pages with Vue Router integration
- **Styling methods**: NiceGUI-style ``.classes()``, ``.props()``, and ``.style()`` methods
- **Method chaining**: Fluent API for building components
- **Dual workflow**: Instant dev mode OR static project generation
Quick Start
-----------
Installation::
pip install badgui
Basic Usage:
.. code-block:: python
import badgui as bg
# Create a page using context manager
with bg.page("/", "HomePage", "Welcome"):
# Basic components with styling
bg.label("Hello BadGUI!").classes("text-h3 text-primary")
# Styled button with method chaining
bg.button("Click me!").classes("q-btn-primary").props("outline")
# Layout containers
with bg.row().classes("q-gutter-md") as row:
bg.label("Item 1").classes("bg-blue-100 p-4")
bg.label("Item 2").classes("bg-green-100 p-4")
# 🚀 INSTANT DEVELOPMENT - One command does it all!
bg.dev(port=3000) # Creates temp build, installs deps, starts server!
# OR build static project for deployment
# bg.build(output_dir="./my-vue-app")
.. toctree::
:maxdepth: 2
:caption: Contents:
installation
quickstart
development
components
styling
routing
examples
api/modules
Indices and Tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`