Skip to content

Releases: posit-dev/py-shinyswatch

v0.9.0

03 Mar 19:14
d4b99ed

Choose a tag to compare

  • The theme picker can now be used with dynamic UI, e.g. shiny.ui.output_ui() and shiny.render.ui(). Be careful when using the theme picker in this way: only one theme picker is allowed in the app at a time. (#51)

  • Update pre-built shinyswatch themes for use with Shiny v1.3.0. In this release, the navbar colors of Bootswatch themes are less opinionated by default and are designed to work well in light and dark modes. To set navbar colors with Shiny v1.3.0, use shiny.ui.navbar_options(). The documentation for ui.navbar_options() includes instructions for setting navbar colors from Bootswatch examples. (#52)

v0.8.0

07 Nov 18:44
b293402

Choose a tag to compare

  • The theme picker's message warning users to include shinyswatch.theme_picker_server() is now correctly hidden if the app takes longer than expected to start up. (#47)

  • shinyswatch now requires Shiny v1.2.0. (#48)

v0.7.0

18 Jul 16:39
04820b9

Choose a tag to compare

Breaking changes

  • shinyswatch now requires shiny v1.0.0 or newer to use the newly-introduced shiny.ui.Theme() class to define themes. As a result, shinyswatch.theme.{name} objects can no longer be added anywhere in the app's UI. Instead, pass a shinyswatch theme to the theme argument of any shiny.ui.page_*() functions (Shiny Core) or to shiny.express.ui.page_opts() (Shiny Express). (#39)

  • The default argument of theme_picker_ui() is now deprecated. Instead, pass the initial theme to the theme argument of any shiny.ui.page_*() functions (Shiny Core) or to shiny.express.ui.page_opts() (Shiny Express). This change separates the initial theme selection from the placement of the theme picker input. (#39)

  • shinyswatch.get_theme_deps() was removed from the package. If needed, use the ._html_dependency() method of the theme object. (#39)

New features

  • As mentioned above, shinyswatch now uses the shiny.ui.Theme() class to define themes, making shinyswatch themes customizable using the .add_defaults(), .add_rules() and other methods of the shiny.ui.Theme() class. Customized themes are recompiled from Sass to CSS, which requires the libsass package. (#39)

  • The theme picker now includes Shiny's default theme (as "shiny") and bare Bootstrap (as "bootstrap") as theme options, in addition to the Bootswatch themes. If the initial app theme is a custom shiny.ui.Theme(), the custom theme is also included in the theme picker options. (#39)

  • The theme picker will now remember the previous theme selection between app uses when the app is re-loaded in the same browser. (#43)

v0.6.1

23 Apr 17:08

Choose a tag to compare

  • Include missing theme picker assets in the package. (#36)

Full Changelog: v0.6.0...v0.6.1

v0.6.0

16 Apr 15:24
a80f6ac

Choose a tag to compare

New features

  • shinyswatch.theme_picker_ui() gains a default argument to set the initial theme. (#22)

Internal changes

  • We've restructured the dependencies used to provide a shinyswatch theme. This change should not affect users of shinyswatch, but it will prevent accidentally including more than one shinyswatch themes on the same page. (#32)

  • The theme picker now transitions between themes more smoothly. That said, we do still recommend using the theme picker only while developing your a

v0.5.1

07 Mar 22:01

Choose a tag to compare

  • Add typed attributes in the theme's color class for stronger type checking.

Full Changelog: v0.5.0...v0.5.1

v0.5.0

07 Mar 21:13

Choose a tag to compare

Breaking changes

  • shinyswatch.get_theme(name) now returns a tagifiable class instance of the theme. This callable class instance may be executed to retrive the html dependencies. To resolve some rare typing issues, either execute the returned theme object to directly use the html dependencies or use shinyswatch.get_theme_deps(name). (#29)
# before
theme_deps = shinyswatch.get_theme("yeti")

# after (option 1)
theme_deps = shinyswatch.get_theme_deps("yeti")
# after (option 2)
theme_obj = shinyswatch.get_theme("yeti")
theme_deps = theme_obj()

New features

  • Themes in shinyswatch.theme are now tagifiable class instances. You no longer need to call the theme as a function, e.g. shinyswatch.theme.yeti. Existing code calling the theme, e.g. shinyswatch.theme.yeti(), will continue to work as the __call__ method retrieves the theme's html dependencies. (#29)

  • shinyswatch.theme's theme object now includes a .colors attribute with the theme's color palette, including colors like body_color, body_bg, primary, secondary, etc. You can use these colors to theme plots, outputs and other UI elements to match the shinyswatch theme. (#29)

Updates

  • Update bootswatch themes to receive page_sidebar updates and require shiny v0.8.1 (#28)

  • Update bootswatch themes to receive posit-dev/py-shiny#1124 updates to fix navbar theming (#26)

Full Changelog: v0.4.2...v0.5.0