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

Uploaded CPython 3.15tWindows x86-64

nevu_ui-0.8.5.post1-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

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

nevu_ui-0.8.5.post1-cp315-cp315-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.15Windows x86-64

nevu_ui-0.8.5.post1-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.3 MB view details)

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

nevu_ui-0.8.5.post1-cp314-cp314t-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.14tWindows x86-64

nevu_ui-0.8.5.post1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

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

nevu_ui-0.8.5.post1-cp314-cp314-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.14Windows x86-64

nevu_ui-0.8.5.post1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.3 MB view details)

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

nevu_ui-0.8.5.post1-cp313-cp313-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.13Windows x86-64

nevu_ui-0.8.5.post1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

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

nevu_ui-0.8.5.post1-cp312-cp312-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.12Windows x86-64

nevu_ui-0.8.5.post1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.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.post1-cp315-cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 02b8a79e00971ff88fdefe9630829fb51c8572d06c824e0182c761ef4396d380
MD5 fe19d2c96d906668e02856a9b16b3162
BLAKE2b-256 311daa67d29c0cdd832ac154a5f698e969bfb8150ad2e68e7492a6e3e09bde24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed2ccbd862368df8bc45d92a51855647d8dccf996fb276d2431f14a9ef06a100
MD5 bf9ac2fbca8bf9cca1b7389ab1abf93f
BLAKE2b-256 dd319350c70fd58ba2334d3202efdf7fdb166159abd2ca9844d2700e5ab7e3a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 1678000c139850d33855710f20c148ea669c9ef9ffb2e3018df430bdc2c11de8
MD5 f1a01c5cd255cbfaff40875f829c058e
BLAKE2b-256 93b2648330c8f0157f0d60717bddb67a05e127a2f438e329dcd9654dc4b47357

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e77a4de1eff716424e65ec1d8f7525efa43f942875ea18ec53be1c2342be40a
MD5 91fc9a00a05474da8ae6c357ef3d0572
BLAKE2b-256 702ef7fe4eea3c25f080b74ba4710fc458ebfd12ab2e7e38db013c1c5ade28d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 26ae7187a59ffbbeb526f7c178ab49499ddc461e1169411a15e431af3882f05b
MD5 6f531aa04df5862cc4be7378adc7d2a2
BLAKE2b-256 973402918a2804aa472d5fa4292497274f3ff1909b33daed8896e8e90c3c3c51

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f66703ca48be00aad099abfaa60fec9fbc8f83ace5bf212b368700e625d37d4
MD5 4208ba8202316d0b7cde2914a7de70dc
BLAKE2b-256 e74d0ed36d89d76304c4b1789d1ac9d4804b48ec5c6f75c8d1f6a099a330af67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 83e7e8fb1a50c6981a8fdee92ec670c66752289f8653dbbdfccd514f5a4c6e2b
MD5 8f3637b0ec514eaecd2eeb7181dc77c4
BLAKE2b-256 36f1c654b9310521c9f6ebe2aae76c3f9fca5f3a66880039e85a349574740749

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a56c53e7859557beef9ea33d823c7c0be1df550e36879c638aea0903966d435
MD5 ca7e15675be73cc5054bcf07a39debb6
BLAKE2b-256 068670540f78e04fee5be036c3eab213185b8adf1393d3469bf3bbf69613b173

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 baecdd513b35adba4d03450f2da15838f33488ad93fa68bd056e2a73ed751feb
MD5 d1b7ba11e7785a021afb7a5001d2b305
BLAKE2b-256 b4736694a897b243b2c85d6f959a46f7f55e2652a585a33fca93f3a54ea3238a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0a966c7eac5df6fc82855bccac4541b23f4ffbf7140f12f42c9f2f990f4f38ef
MD5 1e8edd42510d0701bb650bd3465d57cf
BLAKE2b-256 8f3f0f71d5f2f77d930e350cc686a448ae579f0e8e6933cfb45f84974a5564b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 592df0630e2bf099fe201f99e0c9a5a2a50f8e670cf6d9fd7a4d8c05f30a9752
MD5 fce44c22c9f35bfec8021bdc9411abe4
BLAKE2b-256 347d9e61133d7383888343a8ecdda06752cd53afa69a2372375c967d1313a745

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nevu_ui-0.8.5.post1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 518e2e9d2b76dc609167a3da4e84154ed268190b032dc42a91c9d35c8969b28b
MD5 9282e1f22ca4f1cfdb226836339ff92d
BLAKE2b-256 c566f8dbec5af619ae5e1b9572ad63567b895e601cab51ddc75f6da00a7dfd50

See more details on using hashes here.

Provenance

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

This release

0.8.5.post1 This release

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