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.3-cp314-cp314t-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.14tWindows x86-64

nevu_ui-0.8.3-cp314-cp314t-musllinux_1_2_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

nevu_ui-0.8.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

nevu_ui-0.8.3-cp314-cp314-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.14Windows x86-64

nevu_ui-0.8.3-cp314-cp314-musllinux_1_2_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

nevu_ui-0.8.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.8 MB view details)

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

nevu_ui-0.8.3-cp313-cp313-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.13Windows x86-64

nevu_ui-0.8.3-cp313-cp313-musllinux_1_2_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

nevu_ui-0.8.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.8 MB view details)

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

nevu_ui-0.8.3-cp312-cp312-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.12Windows x86-64

nevu_ui-0.8.3-cp312-cp312-musllinux_1_2_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

nevu_ui-0.8.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.9 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.3-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: nevu_ui-0.8.3-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c35cfaefe7b7f926fef8a9a8a2420598c83fff0e88031a026e1dc68e5030ca27
MD5 6f4887d29bdb1bb1ded5a024149e4805
BLAKE2b-256 909b91e6263b725080c1fa90d3aa8af2733df6f89002c5d0ee06f5b848e8c949

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.3-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.3-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6f43584e813018b176caac64261894085b01c5071f3011b9b6f45572e661be2d
MD5 2ea6711bb9c584233ae3a590f3a39f5e
BLAKE2b-256 06a988847a0dae5e812aae98b4afc0bdc32aeaa3e3f0b72c970436509951314b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c18f8256e83f8bcaa6f2fecb23415b8e7b06276acc9098cdf95d5bfc8caa5236
MD5 cde4a53445931ba10fa534ae3d92c1ed
BLAKE2b-256 8c522bd26f7200241d8d3ee93a1c0265cbce2ab09766404b3d90cde357d31973

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: nevu_ui-0.8.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b1607b6fadfed5e478a0ead3a44fa9513468f12f747bfe2a564c8809cc9c3b7a
MD5 a2a81993bc239150e5c95da2d5af1eb2
BLAKE2b-256 5068dd7756bd1260ab5e985f48f90f0de0f1a78d87e3b3f66345a8d99fd184f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.3-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.3-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d915fee8e4fe69bd8b2fd87fbed7a69f10c7fd6f583d805781a907769bb62529
MD5 21a27e4b3e954bcbed2671d7e6daa14f
BLAKE2b-256 d1676f4f06177af32996fb9224de042ec399cd0ed82f69c792f73e3124dc9957

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f5214c5be50d8e99c7604da2213769fc82e5a966db8095fcd59e7ea120e148b
MD5 355f0801a4f372b13486c8bdb06b77f0
BLAKE2b-256 8af50e85b045ef8a7a78e86ff9aec54689cd00638b0fd0f02ea6693b975c22ea

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: nevu_ui-0.8.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nevu_ui-0.8.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5d9262a7a26f195702b769f82cb19fa5b4aa4be6d46d4cfcfd88d38a9cafd712
MD5 308deb7511d2a312cb256a7ececa2e01
BLAKE2b-256 a4e38b955642137fed36fa6ec12cb2216e8c88eab13a877311f9d4a52b6d9bb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.3-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.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f28110832325b621f6254d243db6aad6e4395c4b0f623dc210c508605f1706ee
MD5 eb8332e2fe0cf394c4769ba5a3213254
BLAKE2b-256 8f056ea48262877d8c04d5731c40feecfb53587ea85b9cf0042f12c454644281

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16431782c83eeb58131841844fe898f321b092e745e5f591a287ec1ec7c7029a
MD5 7017fb24873f488a2a5d009439ed756c
BLAKE2b-256 07f87ac8650b9db42ed0a3dfa4d05f997495f648857f0480852dcd6f391182a2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: nevu_ui-0.8.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nevu_ui-0.8.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 906c16deffbf37cd0670a55fcf15223e5e6d13af29b8f8ccb8ec9b8bd81f357e
MD5 35993198f92910d40dae65fb120ae969
BLAKE2b-256 161c30732ff49749466a260d4ecab4bc3eaeaab382c06959e6ba93f5322a3fb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nevu_ui-0.8.3-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.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4531e9fa0cad3f8f0a563ab31c485be22cba759da4ab1d9e8c4b14aab3dc5bc0
MD5 60e42ea7963a4b34c216d8761cdb22fd
BLAKE2b-256 621a30bdf29b4b61556abbd26080f3784d21360056e7262b397ce2a50a21c5e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 273fd584d63aa08ed4b169c7bc49dba7c77e097cfc246f5879476675815f900e
MD5 1360027d16bed7c3434ffc94d9dc9475
BLAKE2b-256 9a9ebd533fbcd82d8f216694d1083cf85e4f16a244054541396d430122244a9a

See more details on using hashes here.

Provenance

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

0.8.5.post2

12 files

0.8.5.post1

12 files

0.8.5

12 files

0.8.4

18 files

This release

0.8.3 This release

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