Descubrir herramientas para controlar la apariencia general de la app.
Elementos a personalizar
1. Diseños de página
2. Cómo personalizar la visualización mediante el uso de “temas”
3. Qué hay “detrás” y cómo modificar aspectos visuales
Materiales de interés
Las aplicaciones de Shiny tienen un aspecto predeterminado bastante simple y genérico
Podemos usar herramientas de diseño web para personalizar nuestras aplicaciones independientemente del código de R subyacente :)
Un primer paso es determinar cuál es la disposión espacial de los componentes interactivos que componen la aplicación.
De esta manera podemos hacer que la aplicación sea más:
Hasta ahora todos los ejemplos del libro siguen una disposición de una sola página, construido con fluidPage()
Dentro de ese diseño de página simple se pueden modificar:
Los diseños se crean mediante una jerarquía de llamadas a funciones.
Es clave entender/mantener el espaciado que delimita las jerarquías.
Es un estilo de diseño web que usa unidades relativas para acomodar elementos en la pantalla y mantener siempre los mismos elementos visibles en pantallas de diferentes tamaños.
Organiza todo el contenido en 12 columnas (12 se puede dividir en 2, 3, 4, y 6)
Existen otras opciones (
fillPage()
,fixedPage()
)
El ejemplo anterior de diseño constaba de una única fila de contenido con dos elementos
Por defecto la relación de tamaño de esos elementos es 1/3
Pero se pueden cambiar de manera fluida. Por ejemplo si queremos que la relación sea 1/1:
cada elemento del sidebar ocupa 50%, que equivale a 6 (12/2)
Bajo el capó, sidebarLayout() está construido sobre un diseño flexible de múltiples filas.
Este diseño se puede utilizar directamente para crear aplicaciones visualmente más complejas.
Se crean filas con fluidRow() y columnas dentro de las filas con column().
Aquí el ancho de los paneles se define en el primer elemento de column
.
Muchas veces las applicaciones crecen en complejidad y la cantidad de elementos que se quieren mostrar no entran en una única página.
Por suerte es posible generar la ilusión de numerosas páginas en una única aplicación!
Permite seleccionar y ver una pestaña a la vez. Se declara que sea un tabset con tabsetPanel() y a cada pestaña con tabPanel().
ui <- fluidPage(
tabsetPanel(
tabPanel("Import data",
fileInput("file", "Data", buttonLabel = "Upload..."),
textInput("delim", "Delimiter (leave blank to guess)", ""),
numericInput("skip", "Rows to skip", 0, min = 0),
numericInput("rows", "Rows to preview", 10, min = 1)
),
tabPanel("Set parameters"),
tabPanel("Visualise results")
)
)
Genera una “tabla de contenidos” vertical. Se declara que sea una lista con navlistPanel() y se agregan los títulos y sus pestañas con tabPanel().
Genera una “tabla de contenidos” horizontal. En este caso se llama primero a navbarPage() (en vez de fluidPage) y se agregan pestañas con tabPanel() o menues deplegables con navbarMenu().
La configuración inicial que se aplica a un documento o en este caso, una aplicación.
Determina su estilo visual por defecto
Convenciones y estilos diseñados para distintos fines
Paquete con funciones para cambiar los valores predeterminados
Sigue convenciones bootstrap y nos sirve para elegir apariencias existentes
aplicamos ‘darkly’ de bootswatch con
bslib
ythematic
para aplicarle los valores nuevos a figuras de ggplot, base, lattice, etc.
Identidad visual portatil y simple para Shiny y Quarto
Lenguaje que maneja el diseño y presentación de las páginas web
Puede especificarse:
<style>
)Texto en una caja con relleno de color rosa
Una colección de convenciones HTML, estilos CSS y fragmentos JS agrupados de forma práctica.
Las herramientas para ‘front end’ más usadas
‘Themes’ gratuitos para bootstrap, licencia MIT
Shiny Semantic de Appsilon (ejemplo de contaminación en Polonia)
Fluent UI (ejemplo)
Shiny bulma
Todas las funciones de input, output y layout generan HTML
ctrl+shift+I
Shiny Application layout guide
Taller de Rmarkdown-ReinventarTec 2022
HTML and css for R users - Taller dictado por Albert Rapp