Skip to main content

Nevu UI Intro Banner

alt text

Wiki link (BETA!)

Nevu UI means: Nevu is Eleven times better Versus other UI's User Interface

Brief Description

Nevu UI is a library for simply creating GUIs in Python. Nevu UI aims to provide a set of ready-made, easily customizable components for creating interfaces in games and applications.

Key features:

  • Layouts: Various container options that automatically position elements inside themselves, for example Grid, ScrollableColumn, etc.
  • Widgets: Ready-to-use elements such as buttons, input fields, and labels.
  • Customization: Support for appearance customization via Style, lots of customization options inside Style.
  • Animations: Built-in support for animations via AnimationManager.
  • Declarativeness: Support for declarative interface creation.

Style banner


Style - storage of parameters for appearance customization

  • gradient
    • Gradient is supported in all backends, and there are 2 types of gradient: linear and radial.
  • color_theme
    • Analogous to MaterialDesign, responsible for the visual component of the widget and menu. You can choose from 10+ ready-made themes or create your own theme.
  • font_name/font_size
    • Controls the font size on widgets that contain it.
  • border_width/bw
    • Allows changing the border size.
  • border_radius/br
    • Allows changing the border corner radius.

and so on...


Style banner


Declarativeness and its examples in Nevu UI

  • Declarative approach: Describe your interface declaratively.
    # Specify content directly when creating the layout
    my_grid = Grid(..., content={(1,1): Button(...)})
    
  • Adaptive size system - SizeRules: Allows using relative values to specify the initial height/width of an object instead of pixels. Example of using SizeRule:
    Widget(size = (30*vw, 50*fill))
    
    or you can use %
    Widget(size = (30%vw, 50%fill))
    
    • vh / vw: Percentage of the window's height/width.
    • fillx / filly / fill: Percentage of the parent layout's height/width/size.
    • gc / gcw / gch: Percentage of the grid cell size.
    • Prefix c: can be placed in any SizeRule, it means that the current value will be taken; without the prefix, the original value will be taken.

Built-in animations:

  • 25+ built-in animations
  • Nevu UI has Two types of animations:
    • Start.
    • Continuous.
  • Usage example:
    • Start: widget.animation_manager.add_start_animation(...)
    • Continuous: widget.animation_manager.add_continuous_animation(...)

Parameter system - ParamEngine:

  • ParamEngine is a tool built into all layouts and widgets, it allows you to:
    • Add variables to the object's __init__.
    • Check parameter type during initialization and after.
    • Integrate a parameter into different stages of initialization.
    • Set custom setter and getter.
  • Examples:
    import nevu_ui as ui
    from typing import Unpack, NotRequired
    
    # Create a TypedDict with variables (optional, but looks nice)
    class MyWidgetKwargs(ui.WidgetKwargs):
        my_var: NotRequired[int | float]
    
    class MyWidget(ui.Widget):
        def __init__(self, size: NvVector2 | list, style: Style = default_style, **param_kwargs: Unpack[MyWidgetKwargs]):
            super().__init__(size, style, **param_kwargs)
    
        # Override the function to add parameters (mandatory)
        def _add_params(self):
            super()._add_params()
    
            # Add a parameter (mandatory)
            self._add_param('my_var', int | float)
    
            # You can also add a link to a parameter
            # self._add_param_link('my_var', 'my_var_new_name')
    
            # You can also block a parameter if necessary
            # self._block_param('my_var')
    

Style banner


Dependencies:

Python >= 3.12.*

  • For Building:
    • setuptools >= 61.0
    • Cython
    • numpy
  • For Running:
    • numpy
  • Additional libraries:
    • pygame-ce>=2.3.0
    • raylib
    • pyyaml

Installation via pip

pip install nevu-ui[all]

Style banner


Example1

Example2

Example3


Basic Grid

Declarative Approach

import nevu_ui as ui # Import Nevu UI
import pygame

pygame.init()

class MyGame(ui.Manager): # Create the base of our application
    def __init__(self):
        super().__init__(ui.Window((400, 300), title = "My Game")) # Initialize the manager
        style = ui.Style(borderradius=20, colortheme=ui.ColorThemeLibrary.material3_dark) # Create Style (optional)
        self.menu = ui.Menu(self.window, [100%ui.vw, 100%ui.vh], style = style, # Create a menu
                            layout= ui.Grid([100%ui.vw, 100%ui.vh], row=3, column=3, # Create a grid layout
                                            content = {
                                                (2, 2): ui.Button(lambda: print("You clicked!"), "BUTTON!", [50%ui.fill, 50%ui.gc], style=style) # Create a button
                                            }
                                            )
                            )
    def on_draw(self):
        self.menu.draw() # Draw the menu
    def on_update(self, events):
        self.menu.update() # Update the menu

game = MyGame()
game.run() # Run the finished application

Imperative Approach

import nevu_ui as ui # Import Nevu UI
import pygame

pygame.init()

window = ui.Window((400, 300), title = "My Game") # Create a window

style = ui.Style(borderradius=20, colortheme=ui.ColorThemeLibrary.material3_dark) # Create Style
menu = ui.Menu(window, [100%ui.vw, 100%ui.vh], style=style) # Create a menu
layout = ui.Grid([100%ui.vw, 100%ui.vh], row=3, column=3) # Create a grid layout
layout.add_item(ui.Button(lambda: print("You clicked!"), "BUTTON!", [50%ui.fill, 50%ui.gc], style=style), x = 2, y = 2) # Create a button

menu.layout = layout # Set the menu layout

while True: # Main loop
    events = pygame.event.get() # Get events
    window.update(events) # Update the window
    menu.update() # Update the menu
    menu.draw() # Draw the menu
    pygame.display.update() # Update the screen

Example Result

Example1


Style banner


Current status of Nevu UI.

Layouts (Inheritors of Layout_Type)

(✅ — done, ❌ — not done, 💾 — deprecated/not working)

  • Grid
  • Row
  • Column
  • ScrollableRow
  • ScrollableColumn
  • ColorPicker
  • 💾 Pages
  • 💾 Gallery_Pages
  • StackColumn
  • StackRow
  • CheckBoxGroup
  • Panel

Widgets (Inheritors of Widget)

  • Widget
  • Button
  • Label
  • Input
  • EmptyWidget
  • Tooltip
  • 💾 Gif
  • MusicPlayer (Will be reworked, hopefully)
  • ProgressBar
  • SliderBar
  • ElementSwitcher
  • 💾 FileDialog
  • RectCheckBox
  • Switch

Available Backends

  • Pygame-ce
  • Sdl(Pygame-ce._sdl2)
  • RayLib

Backend Exclusives

  • Ripple effectRaylib exclusive
  • Customizable center and angle of the gradientRaylib exclusive
  • TooltipPygame exclusive

Style banner


Nevu UI is protected by the MIT license


Style banner


Nevu UI is NOT a stable framework, you may encounter many bugs in it.

If you find a bug, please report it in the Issues section


Style banner


Gmail: bebrovgolem@gmail.com

Creator: Nikita A.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

nevu_ui-0.8.5.post3-cp315-cp315t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.15tWindows x86-64

nevu_ui-0.8.5.post3-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

nevu_ui-0.8.5.post3-cp315-cp315-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.15Windows x86-64

nevu_ui-0.8.5.post3-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

nevu_ui-0.8.5.post3-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

nevu_ui-0.8.5.post3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

nevu_ui-0.8.5.post3-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

nevu_ui-0.8.5.post3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

nevu_ui-0.8.5.post3-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

nevu_ui-0.8.5.post3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

nevu_ui-0.8.5.post3-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

nevu_ui-0.8.5.post3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file nevu_ui-0.8.5.post3-cp315-cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 4cfc942b506e5ca5d0c7438c86e2f93605323f57fd3487e77c0489846bfd20cc
MD5 6726bd41c5b5f69f5b8640536607517a
BLAKE2b-256 b5e03c62bd1c0b4ad1add3498af5277c35378fbf818549aba29fbc1a200401dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp315-cp315t-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d843978f67c4c00ef9cc0f2f3f42aece449b3dd73ba18553b4bf43e192760d03
MD5 7f36ae57cc9ca838323ff5a5c73c17c1
BLAKE2b-256 b29127d16e2fdaf4f8c67d91f1ce901638b184918cba66af1922b852e450d5da

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 c0354d25c11a230b8967018c03f9f3f701a2689bba94eb911d40f5d79fa13ab6
MD5 891f0ba7a98faf7b30d512847a2f069b
BLAKE2b-256 ce06f276a96365a4f912d7ba276038659dadb89b2b1fb9e2451083eaa91b8067

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp315-cp315-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1b2f7c98a86b13d46bbab9c5397b2f3aba608f21c53fadab0ca0823978926a4
MD5 39de55a5081a05d1ed1e1c4bbc848a9a
BLAKE2b-256 76aa55b09ec92828098eecff483d91c78605b5bb6382f3696e5973fdebdf6248

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 8fcb831959d575e3f6c38892548cea62e5d475233a04ac1dbabbae330f895ec8
MD5 a19f95ee96b90ac0553772e4c68e62c1
BLAKE2b-256 7bd10c309e2615c14800df08b2aa5a1da42dcdd7ff110b4b7dde2de780f48814

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp314-cp314t-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 720daf57c28c5e9bf0187a73ca195b6e6730ca655fca7d3ab088731e3ffca5f8
MD5 76839281cf3cb83b75845bb67f9ae9c7
BLAKE2b-256 aa490e5890fc4528be840cd12b29d0a9f8c76de53b48ded6509696bea7dd0acf

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 eb97dc29d3258a01a1426db897e27d7cd4a4a2c780832fdfbc360e84d8ba3bc9
MD5 4a76f9bcad024d88ac74318af483890a
BLAKE2b-256 42d661ef0f1e95fb0d5f79e41526a1f4fb5103b395ecb8e8970c64111cdbe252

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp314-cp314-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e19fb8fcfe123e92ea599ba2757e791adf4eccdbb33e180ab8460a7f909836b0
MD5 379e1e032998d2c8738b3f73c6770e02
BLAKE2b-256 f56612aa0deb1d2800af2b20bb0257ea3644e41babbd6df7efd862ccdb44c845

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ea51a292d7c6aeb84fa085702b9a69fe129e7360d42895583826e3062624f89e
MD5 052fbd69c10ed55b1b114804930286bb
BLAKE2b-256 124dc9a9b01c49608c9f990fc46a81e4f247827a2ba58f1699c6d4eef5e4696b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef5269bb8ddd5aa5b311173faa40a9d161b2fb5a169a44f64e84214b390b8864
MD5 efc8e3176cad07f78ebce27a07a49350
BLAKE2b-256 cd525c2b31457bf3bd869b18059546fbc921d1fcb39b8f24d36668de12e25700

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 283f7d3928a13a3f790f56fd95fc956d927c675d41016fc288745f1e46066d2c
MD5 b7baf70a15c7539594be0e71e1dadc4e
BLAKE2b-256 36f84894f129f9c7b443390c460996bec389d1be375b35b8b4a92c5826873af6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nevu_ui-0.8.5.post3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bcbdac15b3d6f18fd183952e811dda1b3dbcc5c19fbc9ed79e870d3155b9ce8
MD5 accb06247e9779860bd6d41025c3378b
BLAKE2b-256 30fccc9befc9603c936635b722f163f57e171411b63f3b0ef563d84f21c440d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on GolemBebrov/nevu-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.8.5.post3 This release

12 files

0.8.5.post2

12 files

0.8.5.post1

12 files

0.8.5

12 files

0.8.4

18 files

0.8.3

12 files

0.8.2.post1

12 files

0.8.2

12 files

0.8.1

12 files

0.8.0.post2

12 files

0.8.0.post1

12 files

0.8.0

12 files

0.7.6

12 files

0.7.5.post1

12 files

0.7.5

12 files

0.7.4.post1

12 files

0.7.4

12 files

0.7.3.post1

12 files

0.7.3

12 files

0.7.2

12 files

0.7.1

12 files

0.7.0.post2

12 files

0.7.0.post1

12 files

0.7.0

12 files

0.6.7

12 files

0.6.6

12 files

0.6.5.post4

12 files

0.6.5.post3

12 files

0.6.5.post2

12 files

0.6.5.post1

12 files

0.6.4.post1

20 files

0.6.4

20 files

0.6.3

20 files

0.6.2

20 files

0.6.1

20 files

0.6.0

20 files

0.5.8

20 files

0.5.7

20 files

0.5.6

20 files

0.5.5

20 files

0.5.4

20 files

0.5.3

20 files

0.5.2

20 files

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