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.post2-cp315-cp315t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.15tWindows x86-64

nevu_ui-0.8.5.post2-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.post2-cp315-cp315-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.15Windows x86-64

nevu_ui-0.8.5.post2-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.post2-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

nevu_ui-0.8.5.post2-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.post2-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

nevu_ui-0.8.5.post2-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.post2-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

nevu_ui-0.8.5.post2-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.post2-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

nevu_ui-0.8.5.post2-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.post2-cp315-cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 75bcf58ecfb8ec8b539258a8981705f77ec75205fb441bc64c17b48849a944dd
MD5 cc7cd227fe4c673dd30217169ab5cb5a
BLAKE2b-256 ea9062d0ed2d05a462f47ad68df06154688d9ee158e49d6fe8e7597225dba81d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20d43f22331f5c97b35647cc0c34279e923e1427e2b407f0a054fe9c96677eda
MD5 597716b265a6c37229c1397e147bab9f
BLAKE2b-256 e5aafedad6b56fef2a7698fb6fb597e6d1c307698c781544b6348fa9b72a1198

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 9943032b78dcbdfca7718f2092c2c6730dd74fc84bbab0e6819061bdb9186d45
MD5 c1578c270d801bc327788ba242bc8593
BLAKE2b-256 c8db0edd30606d466070b120d2fe7c3c1ff6af68eba8e67d846895e1385fdae4

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97cdad3148e8c702b16babf7d1bc9821e3da46b66857b92946d4ac6b0ec13f73
MD5 d3e4b34339d89f57807ab92e42fc61d5
BLAKE2b-256 a6c09a960127bb4ae75ee5b8b93cddc1bf758844aa4f9e081842ae11071f29a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 6b7b9bc693ace6b613ab1e84c7d6768860a3f63f931814c5fb865026392ec672
MD5 ede104c2dca3968a1d99ab00fb568a04
BLAKE2b-256 3c5ce53323358de78f452618ca28af6920cd6ab5c75da094dc7d11d3e60f9d9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55f225a580cde28cc4d9428a734a623f93dd9bf2435f61f8ef8ac63e2618b9bf
MD5 30bad843ae8b2f73af7a435251accdba
BLAKE2b-256 dfee9bb1df71cb6c60f8e69f61828cd8659d5992b5bda56617392f827ae2fd97

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c381206d41b1da285707a8092785484dcbeb24a0f0ca9d580f8ed3432f9d93e5
MD5 1834946258e1db5f2cb8ba5a3cf17db8
BLAKE2b-256 b389bef1b86230410804a5abe442b2577fcff40414252690941c7f4a0b6fc0f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f697f40ba565f31df4649d4e3c090204ce16a6fb21400ba9820229b59969134e
MD5 e43db10c05463fbf6fc03322f06bd9f5
BLAKE2b-256 dbe17ab201e263d1b33c646dbf4b6aab38d65434a2949de41e5dfb277f508970

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 55bd30d3edfd353b04f5110908235d9417f62c5b34d8bcfc2066c4997fa2acb2
MD5 bae87e7cf5aa772f2695f82314f73d60
BLAKE2b-256 bfb0109d498ed587a5662f1c3f7746a77baf6ed16c88962e7a2f948416354677

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57168eb380f8aee4e68325a5589c2960751c53d0aa2cbe93e8ba1ce20de8f034
MD5 119898ba680bbf6799fe3fa896d27cbb
BLAKE2b-256 056533a213c84d75f5fb68ea1a66bb233d282682d73b4059323934c6686cf8e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e4568cd83c608a6c4a13fe3018e0819ea09f3140be8bad14d7f63cc1de228523
MD5 b6708520e68ff51b132807cfeab6ba0d
BLAKE2b-256 4b6b428e1334df2f962e3fdae269accc95157835e9b5390c8e817c218b2f256b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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.post2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5042a90215243c059f4e4526671913e1f19bf3256675af6361b17a5628b2ab65
MD5 4e075c8419ab7e7bc8c91688e4be401b
BLAKE2b-256 cb8671766571e74f9a731fc5ad93b4a8eaf0d4b6208a94134bbe309b755b18a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.5.post2-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

0.8.5.post3

12 files

This release

0.8.5.post2 This release

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