- Added
tile
fill mode torio.ImageFill
Component.force_refresh
is now synchronous- Added
tile
fill mode torio.ImageFill
- Colors now use Oklab instead of RGB
- Breaking:
rio.Color.hex
now returns a 6-digit hex code instead of an 8-digit one. Userio.Color.hexa
to get the old behavior. - Dialogs now apply a style by default
rio.Drawer
now sizes itself to not only fit the anchor, but also the drawer contentrio.Popup
now acceptsuser_closable
andmodal
, just like dialogs
- New styles for input boxes: "rounded" and "pill"
- Improved mobile support: Dragging is now much smoother
- Improved tables
rio run
now also works when usingas_fastapi
rio.Dropdown
will now open a fullscreen popup on mobile devicesrio.MediaPlayer
now also triggers theon_playback_end
event when the video loops- experimental support for base-URL
- dialogs!
- dialogs can now store a result value similar to futures
rio.Text.wrap
is nowrio.Text.overflow
. Same for markdown.- removed
rio.Popup.on_open_or_close
. This event never actually fired. rio.Link
can now optionally display an icon- Rio will automatically create basic navigation for you, if your app has more than one page
- Updated button styles: Added
colored-text
and renamedplain
->plain-text
- Methods for creating dialogs are now in
rio.Session
rather thanrio.Component
. - Page rework
- Add
rio.Redirect
- TODO: Automatic page scan
- Add
- New experimental
rio.FilePickerArea
component
- restyled
rio.Switch
- New
experimentalbroken componentAspectRatioContainer
- added gain_focus / lose_focus events to TextInput and NumberInput
.rioignore
has been superseeded by the newproject-files
setting inrio.toml
- values in
rio.toml
are now written in kebab-case instead of all_lower_case. Rio will still recognize the old names and automatically fix them for you. - deprecated
light
parameter ofTheme.from_color
, has been superseded bymode
- Tooltips now default to
position="auto"
- Icons now use
_
instead of-
in their names. This brings them more in line with Python naming conventions - Checkbox restyling
- Buttons now have a smaller minimum size when using a
rio.Component
as content FrostedGlassFill
added (Contributed by MiniTT)- added
@rio.event.on_window_size_change
- popups now default to the "hud" color
- popups and tooltips are no longer cut off by other components
- Add HTML meta tags
- Add functions for reading and writing clipboard contents to the
Session
(Contributed by MiniTT) - The color of drawers is now configurable, and also sets the theme context
- added
Calendar
component - added
DateInput
component - massive dev-tools overhaul
- new (but experimental)
Switcher
component - TextInputs now update their text in real-time
rio run
no longer opens a browserrio.HTML
components now execute embedded<script>
nodes- added
Checkbox
Component FlowContainer
now has a conveniencespacing
parameter which controls bothrow_spacing
andcolumn_spacing
at the same time
deprecations:
rio.Fill
andrio.FillLike
deprecated. Most components only support specific fills, so these have no purpose any moredisplay_controls
parameter ofCodeBlock
component renamed toshow_controls
breaking:
Text.justify
now defaults to"left"
FlowContainer.justify
now defaults to"left"
rio.Theme
is no longer frozen, and can now be modified. This is breaking, because thereplace
method has been removed
- Rectangles now honor the theme's shadow color
- Renamed
Banner.markup
toBanner.markdown
- Removed the "multiline" style from Banners
- Removed
Button.initially_disabled_for
- Added a
text_color
parameter toTheme.from_colors
andTheme.pair_from_colors
rio run
now checks that the installed version of Rio is up-to-date
- New example: multi-page website
- New component: CodeBlock
- UserSettings can now have mutable default values
- Removed "undefined space"