shiny.webawesome follows upstream Web Awesome styling patterns closely.
In practice, there are two main levels to know:
This article gives a short package-specific map and points you back to the upstream Web Awesome docs for the broader styling system.
Web Awesome's theme system is page-oriented, with theme, palette, and brand
classes applied to the <html> element. For example:
wa-palette-defaultwa-theme-default wa-palette-default wa-brand-blueIn shiny.webawesome, the corresponding place to do that is
webawesomePage(class = ...).
This executed example prints the HTML scaffold emitted by a themed
webawesomePage() call:
library(shiny.webawesome) themed_page <- webawesomePage( title = "Themed preview", class = "wa-theme-default wa-palette-default wa-brand-blue", wa_card("Styled preview") ) cat(as.character(themed_page), sep = "\n")
Here is the corresponding full Shiny page pattern:
library(shiny) library(shiny.webawesome) ui <- webawesomePage( title = "Themed page", class = "wa-theme-default wa-palette-default wa-brand-blue", wa_container( class = "wa-stack", style = "max-width: 32rem; margin: 2rem auto;", wa_badge("Beta", appearance = "filled"), wa_card("This page applies Web Awesome classes at the html root.") ) ) server <- function(input, output, session) {} shinyApp(ui, server)
For the bundled non-default themes, webawesomePage() also recognizes the
root classes wa-theme-awesome and wa-theme-shoelace and loads the
matching bundled theme stylesheet automatically.
ui <- webawesomePage( title = "Awesome theme", class = "wa-theme-awesome wa-palette-bright wa-brand-blue", wa_container( style = "max-width: 32rem; margin: 2rem auto;", wa_card("The matching Awesome theme stylesheet is attached automatically.") ) )
For broader upstream theme and palette guidance, consult the upstream Web Awesome theming documentation. The package keeps the control surface upstream-first by treating page-root classes as the main theming hook.
For individual components, the first styling hooks are the standard wrapper
arguments class and style.
wa_card( "Styled card", class = "my-card", style = "max-width: 32rem;" )
That works well for:
When you need additional standard HTML attributes, append them with
htmltools::tagAppendAttributes(). See the Extra Attributes via htmltools
article for that pattern.
Web Awesome also documents a larger design-token system for colors, spacing, typography, shadows, and related styling primitives.
In shiny.webawesome, the intended approach is still upstream-first:
webawesomePage(class = ...)class and style hooksFor example, you can target a custom class and rely on Web Awesome token variables in your own stylesheet:
.my-card { border-color: var(--wa-color-brand-border-normal); box-shadow: var(--wa-shadow-l); padding: var(--wa-space-l); }
This package does not try to wrap the full design-token catalog as a separate R API. The goal is to stay close to upstream so that the Web Awesome styling docs remain directly useful.
webawesomePage(class = ...) for page-level theme, palette, and brand
classes.class and style arguments for ordinary component-level
styling hooks.htmltools when you need extra HTML attributes beyond the wrapper
surface.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.