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.

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

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.2.tar.gz (4.4 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.2-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nicegui_extras-0.2.tar.gz
Algorithm Hash digest
SHA256 bd7b212c35a4af93df2874e55e7ae3679f2b2e2d24f0c090f0d0a234f7fcf84b
MD5 929bedf852041960287db5f9702188c6
BLAKE2b-256 5a27c00581b4f73d105be4da3a099079f1a5b0c979cd9c138447a88d9dbfd3b8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for nicegui_extras-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 34f668e81b3e2531a3ed1410787570031463f341adfe198505328843b605f153
MD5 46f9ab15cfb1ed3d36e188a7b8db39f9
BLAKE2b-256 73904c328839ef2007e200e408064aadee51cd116bd877d5032e9dab39ed5b40

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