• Stars
    star
    794
  • Rank 54,963 (Top 2 %)
  • Language
    R
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

shinyWidgets : Extend widgets available in shiny

shinyWidgets

Extend widgets available in shiny

version cranlogs cran checks Coverage Status AppVeyor build status R-CMD-check

Overview

This package provide custom widgets and other components to enhance your shiny applications.

You can replace classical checkboxes with switch button, add colors to radio buttons and checkbox group, use buttons as radio or checkboxes. Each widget has an update method to change the value of an input from the server.

Installation

Install from CRAN with:

install.packages("shinyWidgets")

Or install the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("dreamRs/shinyWidgets")

Demo

A gallery application is included in the package. Once installed, use the following command to launch it:

shinyWidgets::shinyWidgetsGallery()

A live version is available here : http://shinyapps.dreamrs.fr/shinyWidgets

Widgets

Single checkbox

  • Bootstrap switch

Turn checkboxes into toggle switches :

switchInput

switchInput(inputId = "id", value = TRUE)
  • Material switch

Turn checkboxes into toggle switches :

materialSwitch

materialSwitch(inputId = "id", label = "Primary switch", status = "danger")
  • Pretty checkbox
prettyCheckbox(
  inputId = "id", label = "Check me!", icon = icon("check")
)
  • Pretty switch
prettySwitch(
  inputId = "id",
  label = "Switch:",
  fill = TRUE, 
  status = "primary"
)
  • Pretty toggle
prettyToggle(
  inputId = "id",
  label_on = "Checked!",
  label_off = "Unchecked..."
)

Checkboxes and radio buttons

  • Bootstrap buttons

checkboxGroupButtons

checkboxGroupButtons( # or radioGroupButtons
  inputId = "id",
  label = "Choice: ",
  choices = c("A", "B", "C")
)
  • Pretty checkbox group and radio buttons
prettyCheckboxGroup( # or prettyRadioButtons
  inputId = "id",
  label = "Choice",
  choices = c("A", "B", "c"),
  outline = TRUE,
  plain = TRUE,
  status = "primary",
  icon = icon("check")
)

Select menu

  • Bootstrap select picker

Select menu with lot of configurations options available:

pickerInput

pickerInput(
  inputId = "id", 
  label = "Select:", 
  choices = month.name, 
  options = pickerOptions(
    actionsBox = TRUE, 
    size = 10,
    selectedTextFormat = "count > 3"
  ), 
  multiple = TRUE
)
  • Virtual select

Select menu that can support long list of choices:

virtualSelectInput

virtualSelectInput(
  inputId = "id",
  label = "Select:",
  choices = list(
    "Spring" = c("March", "April", "May"),
    "Summer" = c("June", "July", "August"),
    "Autumn" = c("September", "October", "November"),
    "Winter" = c("December", "January", "February")
  ),
  showValueAsTags = TRUE,
  search = TRUE,
  multiple = TRUE
)

Date picker

  • Air Datepicker

Date (or month or year) picker with lot of options and a timepicker integrated :

airDatepickerInput

airDatepickerInput(
  inputId = "id",
  label = "Select:",
  placeholder = "Placeholder",
  multiple = 5, 
  clearButton = TRUE
)

Sliders

  • Slider with Text

Slider with strings, to pass whatever you want:

sliderText

sliderTextInput(
  inputId = "id", 
  label = "Choice:", 
  grid = TRUE, 
  force_edges = TRUE,
  choices = c(
    "Strongly disagree",
    "Disagree",
    "Neither agree nor disagree", 
    "Agree", 
    "Strongly agree"
  )
)
  • noUiSlider

A range slider that can be colored, have more than two handles and positioned vertically (among other things):

noUiSliderInput

noUiSliderInput(
  inputId = "id",
  label = "Select:",
  min = 0, 
  max = 600,
  value = c(100, 220, 400),
  tooltips = TRUE,
  step = 1
)

Tree

  • Tree check

Select value(s) in a hierarchical structure:

treeInput

treeInput(
  inputId = "ID2",
  label = "Select cities:",
  choices = create_tree(cities),
  returnValue = "text",
  closeDepth = 1
)

Text

  • Search

A text input only triggered by hitting 'Enter' or clicking search button :

search_input

searchInput(
  inputId = "id", 
  label = "Enter your search :", 
  placeholder = "This is a placeholder", 
  btnSearch = icon("search"), 
  btnReset = icon("remove"), 
  width = "100%"
)

Other functionnalities

Sweet Alert

Show an alert message to the user to provide some feedback, via sweetalert2 library:

sendSweetAlert

See examples in ?show_alert.

Request confirmation from the user :

confirmSweetAlert

See examples in ?ask_confirmation.

Dropdown button

Hide input in a button :
dropdown_off dropdown_on

dropdownButton(
  tags$h3("List of Input"),
  selectInput(inputId = 'xcol', label = 'X Variable', choices = names(iris)),
  selectInput(inputId = 'ycol', label = 'Y Variable', choices = names(iris), selected = names(iris)[[2]]),
  sliderInput(inputId = 'clusters', label = 'Cluster count', value = 3, min = 1, max = 9),
  circle = TRUE,
  status = "danger", 
  icon = icon("gear"), width = "300px",
  tooltip = tooltipOptions(title = "Click to see inputs !")
)

See also ?dropMenu()

More Repositories

1

esquisse

RStudio add-in to make plots interactively with ggplot2
R
1,719
star
2

fresh

Fresh shiny themes
SCSS
221
star
3

billboarder

πŸ“Š R Htmlwidget for billboard.js
R
172
star
4

prefixer

Prefix function with their namespace & other development tools
R
140
star
5

shinybusy

Minimal busy indicator for Shiny apps
R
137
star
6

apexcharter

πŸ“Š R Htmlwidget for ApexCharts.js
R
135
star
7

datamods

Shiny modules to import data into an application or addin
R
127
star
8

gfonts

πŸ”€ Offline Google Fonts for rmarkdown and shiny
R
112
star
9

shinyapps

Some Shiny applications
R
99
star
10

shinylogs

Logs for Shiny apps
R
96
star
11

colorscale

Create a color scale from a single color
R
80
star
12

shufflecards

✨ Create magical grid layouts in Shiny & Markdown
R
80
star
13

toastui

R htmlwidgets for ToastUI libraries: grid, calendar and chart
R
75
star
14

r2d3maps

r2d3 experiment to draw maps in D3
R
73
star
15

tuicalendr

πŸ“† R htmlwidget for tui-calendar
R
54
star
16

topogram

R htmlwidget for cartogram-chart
R
51
star
17

shinypop

Collection of notifications, confirm dialogs and alerts for 'Shiny' applications
JavaScript
50
star
18

addinit

Initialize & structure an 'RStudio' Project
R
50
star
19

viewxl

'RStudio' addin to open data.frame(s) in Excel
R
47
star
20

wired

Wired elements in Shiny
JavaScript
47
star
21

shinytreeview

Hierarchical tree input for Shiny apps
R
40
star
22

memory-hex

Hex Memory Game in Shiny
R
33
star
23

sqlquery

Htmlwidget to write SQL queries
JavaScript
31
star
24

capture

Take screenshots in Shiny apps
JavaScript
29
star
25

particlesjs

Particles.js for Shiny apps & rmarkdown
R
26
star
26

timelineschart

Htmlwidget for timelines-chart
R
26
star
27

jstools

Tools to work with JavaScript and CSS files
JavaScript
24
star
28

flexpivot

Simple frequency table
R
23
star
29

weather

Weather icons in ggplot2, shiny and rmarkdown
SCSS
20
star
30

phosphoricons

Phosphor Icons for R
R
19
star
31

where

πŸ“ Cities database and a game!
R
16
star
32

d3.format

R interface for d3.format
R
16
star
33

shinyvs

Virtual Select widget for shiny apps
R
16
star
34

resizer

Simulate screen resolution for Shiny apps
R
15
star
35

tuichartr

πŸ“Š R htmlwidget for tui-chart
R
14
star
36

grillade

Grid sytem for shiny apps or rmarkdown and to create htmlwidgets matrix
R
13
star
37

rte.data

Access data from RTE API
R
10
star
38

tweets-transports

Analyse des tweets des lignes de transport parisien
R
9
star
39

bar

R Htmlwidget for proportions-chart JavaScript library
JavaScript
9
star
40

shinywb

Interface to WinBox JavaScript library to use in shiny applications
R
8
star
41

talks

πŸ’¬ Slides for dreamRs talks
5
star
42

france-power-grid

French housing connected to the electricity grid
R
4
star
43

luciole

Luciole font for R. a new typeface developed explicitly for visually impaired people
R
2
star
44

nlpr.fr

Client for 'NLP.js' for Natural Language Operations in French
R
2
star
45

uPlot-r

R htmlwidget for Β΅Plot.js
R
1
star
46

rr2018addins

Exemples d'add-ins RStudio pour les rencontres R 2018
R
1
star