TeachingBubble | R Documentation |
A teaching bubble (TeachingBubble
) brings attention to a new or important feature, with the goal of increasing engagement with the feature. A teaching bubble typically follows a coach mark.
Use teaching bubbles sparingly. Consider how frequently people will see it, and how many they’ll see across their entire experience.
For more details and examples visit the official docs. The R package cannot handle each and every case, so for advanced use cases you need to work using the original docs to achieve the desired result.
TeachingBubble(...)
TeachingBubbleContent(...)
... |
Props to pass to the component. The allowed props are listed below in the Details section. |
ariaDescribedBy string
Defines the element id referencing the element containing the description for the TeachingBubble.
ariaLabelledBy string
Defines the element id referencing the element containing label text for TeachingBubble.
calloutProps ICalloutProps
Properties to pass through for Callout, reference detail properties in ICalloutProps
componentRef IRefObject<ITeachingBubble>
Optional callback to access the ITeachingBubble interface. Use this instead of ref for accessing the public methods and properties of the component.
focusTrapZoneProps IFocusTrapZoneProps
Properties to pass through for FocusTrapZone, reference detail properties in IFocusTrapZoneProps
footerContent string | JSX.Element
Text that will be rendered in the footer of the TeachingBubble. May be rendered alongside primary and secondary buttons.
hasCloseButton boolean
Whether the TeachingBubble renders close button in the top right corner.
hasCloseIcon boolean
hasCondensedHeadline boolean
A variation with smaller bold headline and no margins.
hasSmallHeadline boolean
A variation with smaller bold headline and margins to the body. (hasCondensedHeadline
takes precedence if it is also set to true.)
headline string
A headline for the Teaching Bubble.
illustrationImage IImageProps
An Image for the TeachingBubble.
isWide boolean
Whether or not the TeachingBubble is wide, with image on the left side.
onDismiss (ev?: any) => void
Callback when the TeachingBubble tries to close.
primaryButtonProps IButtonProps
The Primary interaction button
secondaryButtonProps IButtonProps
The Secondary interaction button
styles IStyleFunctionOrObject<ITeachingBubbleStyleProps, ITeachingBubbleStyles>
Call to provide customized styling that will layer on top of the variant rules.
target Target
Element, MouseEvent, Point, or querySelector string that the TeachingBubble should anchor to.
targetElement HTMLElement
theme ITheme
Theme provided by High-Order Component.
Object with shiny.tag
class suitable for use in the UI of a Shiny app.
Teaching bubbles can be used in sequence to walk people through complex, multistep interactions only. And only show one teaching bubble at a time.
A maximum of no more than 3 sequenced teaching bubbles should be used in a single experience.
Sequenced teaching bubbles should have “x of y” text to indicate progress through the sequence. For example, the first teaching bubble in a sequence might be “1 of 3”.)
Always place the primary button on the left, the secondary button just to the right of it.
Show only one primary button that inherits theme color at rest state. In the event there are more than two buttons with equal priority, all buttons should have neutral backgrounds.
A teaching bubble should include:
You have 25 characters (including spaces) to draw people in and get them interested. Limit to one line of text, and use sentence casing (capitalize only the first word and any proper nouns) with no punctuation.
Lead with why the feature is useful rather than describe what it is. What does it make possible? Keep it within 120 characters (including spaces).
Limit button labels to 15 characters (including spaces). Provide people with an explicit action to dismiss the teaching bubble, such as “Got it”. Include a secondary button to give people the option to take action, such as “Show me” or “Edit settings”. When two buttons are needed, make the call-to-action button the primary button and the dismissal button (such as “No thanks”) the secondary button. Use sentence casing (capitalize only the first word and any proper nouns) with no punctuation. On a sequenced teaching bubble, use "Next" for the action button label and "Got it" for the final sequenced teaching bubble action button with text that closes the experience.
If there are additional steps people need to know about, or helpful information they may want to read, consider linking to a help article. Typically, these links are labeled “Learn more” with no punctuation at the end.
library(shiny)
library(shiny.fluent)
ui <- function(id) {
ns <- NS(id)
div(
DefaultButton.shinyInput(
ns("toggleTeachingBubble"),
id = "target",
text = "Toggle TeachingBubble"
),
reactOutput(ns("teachingBubble"))
)
}
server <- function(id) {
moduleServer(id, function(input, output, session) {
showBubble <- reactiveVal(FALSE)
observeEvent(input$toggleTeachingBubble, showBubble(!showBubble()))
output$teachingBubble <- renderReact({
if (showBubble()) {
TeachingBubble(
target = "#target",
headline = "Very useful!"
)
}
})
})
}
if (interactive()) {
shinyApp(ui("app"), function(input, output) server("app"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.