Skip to contents

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`.

Usage

modFramesUI(id)

Arguments

id

Character. Shiny namespace ID for the module instance. Used by [shiny::NS()] to create unique element IDs. Must match between UI and Server calls for proper module binding. Convention: use lowercase descriptive name (e.g., "frames", "replay").

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)
} # }