Element Plus uses a specific set of palettes to specify colors, to
provide a consistent look and feel for the products you build. They are
its CSS variables – --el-color-primary and the rest – and
el_theme() changes them: the brand colours by name
(primary, success, warning,
danger, info), any other through
element =. The swatches below are drawn from the variables
themselves, so they show the theme the page has.
Main Color
The main color of Element Plus is bright and friendly blue. Its
tints, --el-color-primary-light-3 to -light-9,
mix it with white.
swatch <- function(var, label = var, fg = "white", w = 100) {
tags$div(
style = sprintf(
"display: inline-block; width: %dpx; height: 80px; padding: 10px;
vertical-align: top; background: var(%s); color: %s; font-size: 12px",
w,
var,
fg
),
tags$b(label),
tags$br(),
var
)
}
tags$div(
swatch("--el-color-primary", "Brand Color", w = 220),
lapply(c(3, 5, 7, 8, 9), function(i) {
swatch(
paste0("--el-color-primary-light-", i),
paste0("Light ", i),
fg = if (i > 5) "#303133" else "white"
)
}),
swatch("--el-color-primary-dark-2", "Dark 2")
)--el-color-primary
--el-color-primary-light-3
--el-color-primary-light-5
--el-color-primary-light-7
--el-color-primary-light-8
--el-color-primary-light-9
--el-color-primary-dark-2
Secondary Color
Besides the main color, you need to use different scene colors in different scenarios – for example, danger color indicates a dangerous operation.
swatch <- function(var, label = var, fg = "white", w = 160) {
tags$div(
style = sprintf(
"display: inline-block; width: %dpx; height: 80px; padding: 10px; margin: 0 10px 10px 0;
border-radius: 4px; background: var(%s); color: %s; font-size: 12px",
w,
var,
fg
),
tags$b(label),
tags$br(),
var
)
}
tagList(lapply(c("success", "warning", "danger", "info"), function(t) {
swatch(paste0("--el-color-", t), tools::toTitleCase(t))
}))--el-color-success
--el-color-warning
--el-color-danger
--el-color-info
Neutral Color
Neutral colors are for text, background and border colors. Different neutral colors represent the hierarchical structure.
swatch <- function(var, label, fg) {
tags$div(
style = sprintf(
"display: inline-block; width: 160px; height: 60px; padding: 10px; margin: 0 10px 10px 0;
border-radius: 4px; background: var(%s); color: %s; font-size: 12px;
border: 1px solid var(--el-border-color-lighter)",
var,
fg
),
tags$b(label),
tags$br(),
var
)
}
tagList(
tags$div(
swatch("--el-text-color-primary", "Primary Text", "white"),
swatch("--el-text-color-regular", "Regular Text", "white"),
swatch("--el-text-color-secondary", "Secondary Text", "white"),
swatch("--el-text-color-placeholder", "Placeholder Text", "white"),
swatch("--el-text-color-disabled", "Disabled Text", "#303133")
),
tags$div(
swatch("--el-border-color-darker", "Darker Border", "#303133"),
swatch("--el-border-color-dark", "Dark Border", "#303133"),
swatch("--el-border-color", "Base Border", "#303133"),
swatch("--el-border-color-light", "Light Border", "#303133"),
swatch("--el-border-color-lighter", "Lighter Border", "#303133"),
swatch("--el-border-color-extra-light", "Extra Light Border", "#303133")
),
tags$div(
swatch("--el-fill-color-darker", "Darker Fill", "#303133"),
swatch("--el-fill-color", "Base Fill", "#303133"),
swatch("--el-fill-color-light", "Light Fill", "#303133"),
swatch("--el-fill-color-extra-light", "Extra Light Fill", "#303133"),
swatch("--el-bg-color-page", "Page Background", "#303133")
)
)--el-text-color-primary
--el-text-color-regular
--el-text-color-secondary
--el-text-color-placeholder
--el-text-color-disabled
--el-border-color-darker
--el-border-color-dark
--el-border-color
--el-border-color-light
--el-border-color-lighter
--el-border-color-extra-light
--el-fill-color-darker
--el-fill-color
--el-fill-color-light
--el-fill-color-extra-light
--el-bg-color-page