<p align="center">
<br>
<img width="240" src="logo.png" alt="awesome-shiny-extensions logo">
<br>
<br>
</p>
Awesome Shiny Extensions

A curated list of awesome R and Python packages offering extended UI or
server components to the web framework Shiny.
Your contribution is welcomed. Please create a pull request or issue to
add packages to the list.
<hr>
<hr>
Contents
Theming
An awesome Shiny app often looks different from the default Bootstrap theme.
Generic Theming
- shinythemes - Bootswatch themes (Bootstrap 3) for Shiny.
- shiny.semantic - Fomantic UI (formerly Semantic UI) for Shiny.
- shiny.fluent - Fluent UI for Shiny apps.
- shiny.blueprint - Palantir's Blueprint for Shiny apps.
- shinymaterial - Material Design for Shiny with Materialize.css.
- shinyUIkit - UIkit API for Shiny.
- fullPage - Single page styles for Shiny apps.
- shinybulma - Bulma.io for Shiny.
- shinyChakraUI - Chakra UI for Shiny.
- shinyMetroUi - Metro 4 UI for Shiny.
- shinyNextUI - NextUI for Shiny.
- gridlayout - Build dashboard-style layouts for Shiny and R Markdown using CSS Grid.
- flexlayout - A responsive three-column layout for Shiny. Creates up-to three-column layout where the left and right columns collapse into offcanvas elements on tablets and mobile devices.
Dashboard Theming
Mobile Theming
- miniUI - Widgets and layouts for Shiny apps working on small screens. Designed for creating Shiny Gadgets.
- shinyMobile - Theming Shiny apps with Framework7, a full featured HTML framework for building iOS & Android apps.
Theme Customization
- bslib - Tools for theming Shiny and R Markdown from R via Bootstrap (3 or 4) Sass.
- fresh - Create fresh themes for use in shiny & shinydashboard applications and flexdashboard documents.
- Rnightly - An R wrapper of the JavaScript library Nightly.
- linne - Write CSS in R.
- designer - Shiny UI prototype builder allowing drag and drop UI components before saving the equivalent R code.
UI Components
Frontend UI components for special input/output types.
Bootstrap
- bsplus - Bootstrap 3 addons for Shiny and R Markdown (collapsible elements, accordion panels, accordion-sidebar sets, tooltips, popovers, modals, carousels).
- bsutils - UI utilities for Bootstrap 5 and Shiny.
- litter - Lit components for Shiny.
- ShinyWidgets - Bootstrap 3 custom widgets for Shiny (switches, checkboxes, sweet alerts, slider text, knob inputs, select pickers, search bar, dropdown buttons).
- shinyBS - Bootstrap 3 components for Shiny (alerts, tooltips, popovers, modals, collapsible panels, button upgrades).
- shinyLP - Bootstrap 3 landing pages for Shiny apps.
- shinypanels - Shiny layout with collapsible panels.
- slickR - Carousels for Shiny apps using slick.js.
- spsComps - Additional Bootstrap 3 custom UI components (gallery, panels, buttons, animation and more) and additional Shiny server components (exception catch, validation, etc.).
File Input
Special Input
- shinyTime - A timeInput widget for Shiny.
- shinyDatetimePickers - Datetime pickers for Shiny.
- DateTimeRangePicker - A datetime range picker widget for Shiny.
- shinyMatrix - Matrix input for Shiny.
- shinyCleave - Customized text inputs (phone number, ZIP code, currency, credit card) based on Cleave.js.
- shinySelect - A wrapper of the react-select library that supports grouped, sortable items with Font Awesome icons, KaTeX formulas, and Bootstrap tooltips.
- regexSelect - Enable regular expression searches within a Shiny selectize object.
- cascadeSelect - Cascade select widget for Shiny, useful for selection of hierarchical choices.
- reactCheckbox - Checkbox group input for Shiny, with a head checkbox allowing to check or uncheck all the checkboxes in the group.
- ShinyRatingInput - Star rating inputs for Shiny based on bootstrap-rating.
- algo - Implements the Algolia Places address search auto completion menu on shiny text inputs.
- shinyChakraSlider - Combined slider and number input for Shiny.
- histoslider - A histogram slider input binding for Shiny. Supports creating histograms from numeric, date, and date-time vectors.
- shinynlq - Natural language queries (NLQs) for Shiny as a bslib custom component.
- shinyMultiActionButton - A multi-action button for Shiny.
- NestedMenu - Multi-level dropdown menu selection input.
- codeModules - Shiny modules to import/manipulate/export tabular data, download plots/tables/widgets, and output code with syntax highlighting using highlight.js.
- shiny-highlight-rmarkdown - R code and R Markdown code output syntax highlighting using highlight.js.
Loader
- shinycssloaders - CSS loader animations for Shiny outputs.
- shinycustomloader - Custom css/html or gif/image loaders for Shiny outputs.
- shinybusy - Minimal busy indicator for Shiny apps.
- shiny.emptystate - Empty state components for Shiny.
- shinydisconnect - Show a nice message when a Shiny app disconnects or errors.
- waiter - Splash loading screens for Shiny.
- sever - Customize Shiny's disconnected screen.
- shiny-fcp-loader - Shiny app template with a loading screen that aims to minimize the time to First Contentful Paint (FCP).
- shiny-loading-skeleton - Shiny app template with an animated, fully customizable skeleton loader.
Feedback / Alert / Notification
- shinyFeedback - Display user feedback next to Shiny inputs.
- shinyalert - Create pretty popup messages (modals) in Shiny apps.
- shinytoastr - Notifications for Shiny apps, via toastr.
- shinyToastify - A wrapper of the React-Toastify library for Shiny.
- shinypop - Collection of notifications, confirm dialogs, and alerts for Shiny apps based on noty, notie, push.js, and notiflix.
- shinyvalidate - Add input validation capabilities to Shiny.
- awn - Awesome Notifications for Shiny.
Walkthrough / Tooltip / Help
- rintrojs - Wrapper for Intro.js to create step-by-step introductions and clickable hints.
- tippy - Wrapper for Tippy.js to add tooltips to R Markdown documents or Shiny apps.
- cicerone - Create guided tours for Shiny apps using driver.js.
- shinyhelper - Add Markdown help files to Shiny app elements.
- scrollrevealR - Animate shiny elements when they scroll into view using the scrollrevealjs library.
- faq - Accordion-based FAQ component with expand/collapse control.
- flashCard - HTML widget for creating flippable flash cards.
- prompter - Add tooltips in Shiny apps with 'hint.css'.
Clipboard
- rclipboard - Wrapper for clipboard.js to create copy-to-clipboard buttons for Shiny apps.
Color Picker
- colourpicker - A colour picker tool for Shiny.
- gradientPickerD3 - Interactive color gradient picker based on jquery-gradient-picker.
- gradientInput - Another approach at gradient colour picker, implemented using the
colourpicker
package.
Editor