Skip to main content

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.

Downloads


✨ Features

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


🚀 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 that stays fixed at the top of the page and keeps content visible below it, use the following helper:

from nicegui_extras.layout import menu_row

with menu_row(side='left', height='70px'):
    ui.button('Home')
    ui.button('Docs')
    ui.button('GitHub')
    
ui.label('Page content starts here...')

This will create a top menu bar that:

  • stays fixed when scrolling
  • aligns all items from the left side
  • automatically adds margin so that other elements do not overlap with the menu

📌 Centered Fullscreen Column

To create a full-screen column where all child elements are perfectly centered both vertically and horizontally, use the ccolumn context manager:

from nicegui_extras.layout import ccolumn
from nicegui import ui

with ccolumn(
    classes='bg-neutral-900 gap-4',
    style='border:1px solid #444;'
):
    ui.icon('home')
    ui.label('Centered content')
    ui.button('Click me')

🧠 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

Metadata

Release files for nicegui-extras 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nicegui-extras 0.2
File Size Uploaded Provenance
nicegui_extras-0.2.tar.gz 4.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nicegui-extras 0.2
File Interpreter ABI Platform
nicegui_extras-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 kB

Release files / nicegui_extras-0.2.tar.gz

Download URL nicegui_extras-0.2.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bd7b212c35a4af93df2874e55e7ae3679f2b2e2d24f0c090f0d0a234f7fcf84b
BLAKE2b-256 checksum
How to use checksums
5a27c00581b4f73d105be4da3a099079f1a5b0c979cd9c138447a88d9dbfd3b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / nicegui_extras-0.2-py3-none-any.whl

Download URL nicegui_extras-0.2-py3-none-any.whl
Size 5.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34f668e81b3e2531a3ed1410787570031463f341adfe198505328843b605f153
BLAKE2b-256 checksum
How to use checksums
73904c328839ef2007e200e408064aadee51cd116bd877d5032e9dab39ed5b40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Security for nicegui-extras 0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page