Skip to main content

A collection of CSS and utility helpers for NiceGUI

Project description

NiceGUI-Extras

NiceGUI-Extras is a helper package for NiceGUI that provides ready-to-use UI enhancements and utilities to make your NiceGUI apps more beautiful and flexible.


✨ Features

✅ Right-to-left (RTL) layout support
✅ Sticky top navigation menu
✅ Link-to-button converter
✅ Animated dialogs
✅ Scroll disabling utility


🚀 Installation

pip install nicegui-extras

💡 How to Use

🧩 In nicegui_extras.utils

Right-to-left Persian layout

from nicegui_extras.utils import farsi_rtl

farsi_rtl()  # enables RTL and Vazir font automatically

Disable page scrolling

from nicegui_extras.utils import no_scroll

no_scroll()  # disables scrolling on page

🎨 In nicegui_extras.style

Link as button

from nicegui_extras.style import link_button

def link_button(text: str, url: str, new_tab: bool = False):
    """Create a link styled as a button."""
    classes = 'q-btn q-btn-item non-selectable no-outline q-btn--flat q-btn--rectangle'
    return ui.link(text, url, new_tab=new_tab).classes(classes)

Usage:

link_button('Visit Site', 'https://nicegui.io', new_tab=True)

💬 Animated dialog (CSS class)

For now, you can use this class directly to make a dialog animated and blurred:

animated_dialog = 'backdrop-filter="blur(8px) brightness(20%)"'

Example:

ui.dialog().props(animated_dialog)

📌 Sticky menu row

To create a sticky top menu, use:

menu_row = '''
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #222;
    color: white;
    padding: 10px;
    z-index: 1000;
'''

Example:

with ui.row().style(menu_row):
    ui.label('My Menu')

🧠 Example App

from nicegui import ui
from nicegui_extras.utils import farsi_rtl, no_scroll
from nicegui_extras.style import link_button, menu_row

farsi_rtl()
no_scroll()

with ui.row().style(menu_row):
    ui.label('Main Menu')

link_button('Home', '/home')

ui.run()

🧑‍💻 Author

Created by Ali Heydari — a Python developer and NiceGUI enthusiast. More features like improved dark mode and ready-made themes are coming soon!


📜 License

MIT License © 2025 Ali Heydari


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

nicegui_extras-0.1.1.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

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

nicegui_extras-0.1.1-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file nicegui_extras-0.1.1.tar.gz.

File metadata

  • Download URL: nicegui_extras-0.1.1.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for nicegui_extras-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b85ba028cbe2e6cafbef928b72c83449fea8a8af4b55048a829c7e9eabb59599
MD5 f72defcde7916c76806e358941acc8a3
BLAKE2b-256 594bdb305b87e762b42b1f7779ac30fc20551fb484ff8910a8d644e808d1ef30

See more details on using hashes here.

File details

Details for the file nicegui_extras-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: nicegui_extras-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for nicegui_extras-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 59751e602c03c490de8d1b93eef31cabe2f69e788e186dbda3c1450c7ca41475
MD5 2594d1de6926bfda84daafd15400beea
BLAKE2b-256 de3a86bab759c50391ecc0bb4635d2e713562e0cf622ab3f64025aa909ad6bca

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