Main UI function for the modFrames module. Provides a comprehensive interface for frame comparison, timelapse analysis, and creative journey storytelling for digital artwork creation processes.
Use this function to embed the frames module in your Shiny app's UI. The module includes three sub-modules: timelapse controls for animated playback, frame comparison for side-by-side analysis, and journey insights for marketing-ready storytelling narratives.
This is a **module package** - it requires parent app infrastructure from appPlatform and reactive data context. For standalone development testing, use `inst/app/app.R`.
Value
A `shiny.tag.list` containing the complete module interface:
- CSS
Custom stylesheets for frames module styling
- JavaScript
Bootstrap 5 tooltip initialization
- Dark mode toggle
Fixed position light/dark mode switch
- Timelapse controls
Animation slider with playback metrics
- Frame comparison
Side-by-side comparison with difference view
- Journey insights
Marketing narratives and Plotly visualization
See also
* [modFramesServer()] for the corresponding server function * [playTimelapseUI()] for timelapse sub-module * [compareFramesUI()] for comparison sub-module * [artutils::get_frame_analytics()] for frame_stats data source
Other frames-core:
modFramesServer()
Examples
if (FALSE) { # \dontrun{
# Basic integration in a Shiny app
library(shiny)
library(bslib)
library(modFrames)
ui <- bslib::page_fluid(
modFramesUI("frames")
)
server <- function(input, output, session) {
r <- reactiveValues()
observe({
r$appdata <- artutils::get_appdata(artist_uuid, artwork_uuid)
})
modFramesServer("frames", r)
}
shinyApp(ui, server)
} # }
