Description Attributes Methods Examples
Generate CSS from R code. Initialise a new CSS environment with new
,
use rule
to define CSS rules.
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
.
define()
Linne$define(...)
...
Named variables to define.
Define variables.
Self: the Linne
object.
Linne$new()$define(baseColor = "blue")
rule()
Linne$rule(selector, ...)
selector
An object of class selector
as returned by the sel_*
family of functions.
...
Declarations: properties and their values. This accepts
camelcase, e.g.: font-style
or fontStyle
.
Rule
Define a CSS rule.
Self: the Linne
object.
Linne$new()$rule(sel_id("myButton"), color = "blue", fontSize = 50)
build()
Linne$build()
Builds CSS
Builds the CSS from definitions and rules.
Linne$ new()$ define(primary_color = 'red')$ rule( sel_id("myButton"), color = primary_color, fontSize = 50 )$ rule( sel_class("container"), backgroundColor = primary_color )$ build()
get_css()
Linne$get_css(build = TRUE)
build
Whether to build the CSS with the build
method.
Retrieve the CSS
A string.
Linne$new()$rule(sel_id("myId"), fontSize = 20)$get_css()
show_css()
Linne$show_css(build = TRUE)
build
Whether to build the CSS with the build
method.
Prints Generated CSS
Linne$new()$rule(sel_id("myButton"), color = "blue")$show_css()
import()
Linne$import(url)
url
URL to import.
Import
Import from a url or path.
Linne$new()$import('https://fonts.googleapis.com/css2?family=Roboto')
include()
Linne$include(build = TRUE)
build
Whether to build the CSS with the build
method.
Include in Shiny
Includes the CSS in shiny, place the call to this method anywhere in the shiny UI.
htmltools::tags
# 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)
write()
Linne$write(path = "style.css", pretty = FALSE, build = TRUE)
path
Path to file.
pretty
Whether to keep tabs and newlines.
build
Whether to build the CSS with the build
method.
Save
Write the CSS to file.
if(interactive()) Linne$new()$rule(sel_id("id"), fontStyle = "italic")$write("styles.css")
print()
Linne$print()
Prints information on the Linne object.
inject()
Linne$inject(build = TRUE, session = shiny::getDefaultReactiveDomain())
build
Whether to build the CSS with the build
method.
session
A valid shiny session.
Inject CSS
Dynamically inject CSS from the server of a shiny application.
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)
clone()
The objects of this class are cloneable with this method.
Linne$clone(deep = FALSE)
deep
Whether to make a deep clone.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | ## ------------------------------------------------
## 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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.