Download Latest Version Rio 0.12 source code.zip (5.7 MB) Google Add to Preferred Sources
Home / 0.12
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-12-30 2.7 kB
Rio 0.12 source code.tar.gz 2025-12-30 5.3 MB
Rio 0.12 source code.zip 2025-12-30 5.7 MB
Totals: 3 Items   11.0 MB 0

Rio 0.12 makes it easier than ever to keep your GUI up-to-date with your program state. Previously, components were only rebuilt when their own state changed. But now, Rio keeps track of everything you access in your build function - whether that is the component's own state, session state like active_page_url or window_width, or session attachments. We've also added rio.List (rio.dev), rio.Dict (rio.dev), rio.Set (rio.dev) and rio.Dataclass (rio.dev), which function similar to python's list, dict, set, and @dataclass but will automatically trigger a rebuild when their content changes.

Please note that rio.List, rio.Dict, rio.Set and rio.Dataclass are currently considered "experimental". They are an attempt to solve Rio's problems with mutable data structures, but we would like to collect some usage information and user feedback before we settle on them as the final solution. Please let us know how they work for you!

Changes

  • Components are now rebuilt immediately after a state change, not just after event handlers
  • TextStyle no longer has default values, omitted values are left unchanged instead

Deprecations

  • The CursorStyle enum is deprecated in favor of string literals

Accessibility ♿

  • Added accessibility_role parameter to all components
  • Added 'accessibility_relationship' parameter to Link component
  • Various internal accessibility improvements

Styling 🎨

  • Added text_style parameter to rio.TextInput
  • Fonts can now be loaded directly from Google Fonts via Font.from_google_fonts
  • Fonts can now be loaded from CSS font definitions via Font.from_css_file

Other Additions

  • NumberInput can now evaluate math expressions
  • PointerEventListener can now listen to only specific button events by passing a dict as input
  • KeyEventListener can now listen to only specifc hotkeys by passing a dict as input
  • PointerEventListener and KeyEventListener now support the event_order parameter to control whether events are handled before or after child components
  • Calendar now has a is_sensitive parameter
  • New component: rio.PdfViewer (rio.dev)
  • rio.Image now has a loading animation
  • Added auto_focus parameter to input components
  • Added Session.pick_folder
  • Added rio.HttpOnly (stores user settings in http-only cookies instead of localStorage)

Install 🛠️

Get the latest version from PyPI:

pip install --upgrade rio-ui
Source: README.md, updated 2025-12-30