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.
- Inspired by: awesome-react-components and awesome-rshiny.
- Please send pull requests: contributing guide and code of conduct.
- A special thanks to all the package authors for making the world a better place!
Contents
- Theming
- UI Components
- Bootstrap
- File Input
- Special Input
- Loader
- Feedback / Alert / Notification
- Walkthrough / Tooltip / Help
- Clipboard
- Color Picker
- Editor
- Chat
- Table
- Drawers
- Drag and Drop
- Text
- Image / Audio / Video
- Icon Font
- Image Comparison
- Code Diff
- Calendar
- Notebooks
- Animation Effects
- i18n
- React
- Vue.js
- Advanced Interactivity
- Visualization
- Frameworks
- Backend
- Deploy
- Developer Tools
- Miscellaneous
- Shiny for Python
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
- shinydashboard - Shiny dashboarding framework based on AdminLTE 2.
- shinydashboardPlus - Additional AdminLTE 2 components for shinydashboard.
- gentelellaShiny - Bootstrap 3 Gentelella theme for Shiny dashboards.
- semantic.dashboard - Fomantic UI for Shiny dashboards.
- bs4Dash - Bootstrap 4 Shiny dashboards using AdminLTE 3.
- argonDash - Bootstrap 4 Argon template for Shiny dashboards.
- tablerDash - Tabler dashboard template for Shiny with Bootstrap 4.
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
- shinyFiles - A server-side file system viewer for Shiny.
- directoryInput - Shiny input widget for selecting directories.
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.