| Linne {linne} | R Documentation |
Linne
Description
Generate CSS from R code. Initialise a new CSS environment with new,
use rule to define CSS rules.
Attributes
There are hundreds of attributes to pass to the three-dot
construct (...), a comprehensive list of them can be found on
w3schools.
Note that Linne accepts camelCase for convenience, e.g.: font-size or fontSize.
Methods
Public methods
Method define()
Usage
Linne$define(...)
Arguments
...Named variables to define.
Details
Define variables.
Returns
Self: the Linne object.
Examples
Linne$new()$define(baseColor = "blue")
Method rule()
Usage
Linne$rule(selector, ...)
Arguments
selectorAn object of class
selectoras returned by thesel_*family of functions....Declarations: properties and their values. This accepts camelcase, e.g.:
font-styleorfontStyle.
Details
Rule
Define a CSS rule.
Returns
Self: the Linne object.
Examples
Linne$new()$rule(sel_id("myButton"), color = "blue", fontSize = 50)
Method build()
Usage
Linne$build()
Details
Builds CSS
Builds the CSS from definitions and rules.
Examples
Linne$
new()$
define(primary_color = 'red')$
rule(
sel_id("myButton"),
color = primary_color,
fontSize = 50
)$
rule(
sel_class("container"),
backgroundColor = primary_color
)$
build()
Method get_css()
Usage
Linne$get_css(build = TRUE)
Arguments
buildWhether to build the CSS with the
buildmethod.
Details
Retrieve the CSS
Returns
A string.
Examples
Linne$new()$rule(sel_id("myId"), fontSize = 20)$get_css()
Method show_css()
Usage
Linne$show_css(build = TRUE)
Arguments
buildWhether to build the CSS with the
buildmethod.
Details
Prints Generated CSS
Examples
Linne$new()$rule(sel_id("myButton"), color = "blue")$show_css()
Method import()
Usage
Linne$import(url)
Arguments
urlURL to import.
Details
Import
Import from a url or path.
Examples
Linne$new()$import('https://fonts.googleapis.com/css2?family=Roboto')
Method include()
Usage
Linne$include(build = TRUE)
Arguments
buildWhether to build the CSS with the
buildmethod.
Details
Include in Shiny
Includes the CSS in shiny, place the call to this method anywhere in the shiny UI.
Returns
Examples
# generate CSS
css <- Linne$
new()$
define(grey = '#c4c4c4')$
rule(
sel_id("myButton"),
backgroundColor = 'red',
fontSize = 20,
color = grey
)$
rule(
sel_class("aClass"),
color = grey
)
# include in an app
library(shiny)
ui <- fluidPage(
css$include(),
h1("Some text", class = "aClass"),
actionButton("myButton", "Am I red?", class = "aClass")
)
server <- function(input, output){
output$myPlot <- renderPlot(plot(cars))
}
if(interactive())
shinyApp(ui, server)
Method write()
Usage
Linne$write(path = "style.css", pretty = FALSE, build = TRUE)
Arguments
pathPath to file.
prettyWhether to keep tabs and newlines.
buildWhether to build the CSS with the
buildmethod.
Details
Save
Write the CSS to file.
Examples
if(interactive())
Linne$new()$rule(sel_id("id"), fontStyle = "italic")$write("styles.css")
Method print()
Usage
Linne$print()
Details
Prints information on the Linne object.
Method inject()
Usage
Linne$inject(build = TRUE, session = shiny::getDefaultReactiveDomain())
Arguments
buildWhether to build the CSS with the
buildmethod.sessionA valid shiny session.
Details
Inject CSS
Dynamically inject CSS from the server of a shiny application.
Examples
library(shiny)
ui <- fluidPage(
useLinne(),
actionButton("change", "Change me!")
)
server <- function(input, output){
linne <- Linne$
new()$
rule(
sel_id("change"),
color = "white",
backgroundColor = "black"
)
observeEvent(input$change, {
linne$inject()
})
}
if(interactive())
shinyApp(ui, server)
Method clone()
The objects of this class are cloneable with this method.
Usage
Linne$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Examples
## ------------------------------------------------
## Method `Linne$define`
## ------------------------------------------------
Linne$new()$define(baseColor = "blue")
## ------------------------------------------------
## Method `Linne$rule`
## ------------------------------------------------
Linne$new()$rule(sel_id("myButton"), color = "blue", fontSize = 50)
## ------------------------------------------------
## Method `Linne$build`
## ------------------------------------------------
Linne$
new()$
define(primary_color = 'red')$
rule(
sel_id("myButton"),
color = primary_color,
fontSize = 50
)$
rule(
sel_class("container"),
backgroundColor = primary_color
)$
build()
## ------------------------------------------------
## Method `Linne$get_css`
## ------------------------------------------------
Linne$new()$rule(sel_id("myId"), fontSize = 20)$get_css()
## ------------------------------------------------
## Method `Linne$show_css`
## ------------------------------------------------
Linne$new()$rule(sel_id("myButton"), color = "blue")$show_css()
## ------------------------------------------------
## Method `Linne$import`
## ------------------------------------------------
Linne$new()$import('https://fonts.googleapis.com/css2?family=Roboto')
## ------------------------------------------------
## Method `Linne$include`
## ------------------------------------------------
# generate CSS
css <- Linne$
new()$
define(grey = '#c4c4c4')$
rule(
sel_id("myButton"),
backgroundColor = 'red',
fontSize = 20,
color = grey
)$
rule(
sel_class("aClass"),
color = grey
)
# include in an app
library(shiny)
ui <- fluidPage(
css$include(),
h1("Some text", class = "aClass"),
actionButton("myButton", "Am I red?", class = "aClass")
)
server <- function(input, output){
output$myPlot <- renderPlot(plot(cars))
}
if(interactive())
shinyApp(ui, server)
## ------------------------------------------------
## Method `Linne$write`
## ------------------------------------------------
if(interactive())
Linne$new()$rule(sel_id("id"), fontStyle = "italic")$write("styles.css")
## ------------------------------------------------
## Method `Linne$inject`
## ------------------------------------------------
library(shiny)
ui <- fluidPage(
useLinne(),
actionButton("change", "Change me!")
)
server <- function(input, output){
linne <- Linne$
new()$
rule(
sel_id("change"),
color = "white",
backgroundColor = "black"
)
observeEvent(input$change, {
linne$inject()
})
}
if(interactive())
shinyApp(ui, server)