This is useful for content that you may wish to be hidden when the page is initialized, but that can be revealed (and subsequently hidden) by clicking a button or a link.

bs_collapse(id, content = NULL, show = FALSE)

bs_attach_collapse(tag, id_collapse)


character, unique id for the collapsible <div/>
character (HTML) or htmltools::tagList, content for the collapsible <div/>
logical, indicates if collapsible <div/> is shown when page is initialized
htmltools::tag, button or link to which to attach a collapsible <div/>
character, id of the collapsible <div/> to attach


htmltools::tag, <div/>
htmltools::tag, modified copy of tag (button or link)


There are two parts to this system:

  1. A collapsible <div/>, created using bs_collapse()
  2. At least one button (<button/>) or link (<a/>) to which the id of the collapsible <div/> is attached, using bs_attach_collapse()

The verb attach is used to signify that we are attaching the id of our collapsible <div/> to the tag in question (a button or a link). Note that you can attach the id of a collapsible <div/> to more than one button or link.

It is your responsibility to ensure that id is unique among HTML elements in your page. If you have non-unique id's, strange things may happen to your page.

See also


library("htmltools") bs_collapse(id = "id_yeah", tags$p("Yeah Yeah Yeah"))
#> <div class="collapse" id="id_yeah"> #> <p>Yeah Yeah Yeah</p> #> </div>
tags$button(type = "button", class = "btn btn-default", "She Loves You") %>% bs_attach_collapse("id_yeah")
#> <button type="button" class="btn btn-default" data-toggle="collapse" data-target="#id_yeah">She Loves You</button>