length(colors())
[1] 657
Shalom
2023年5月24日
app.R
,安装相应包(bslib包需要从github上安装,安装方式为remotes::install_github('rstudio/bslib')
),app.R
文件内容为:#remotes::install_github('rstudio/bslib')
library(shiny)
library(rclipboard)
library(bslib)
library(tidyverse)
c2hex<-function(color){
my_rgb<-col2rgb(color)
paste(sprintf("#%02X", my_rgb[1,]), sprintf("%02X", my_rgb[2,]), sprintf("%02X", my_rgb[3,]), sep = "")
}
c2rgb<-function(color){
my_rgb<-col2rgb(color)
sprintf("rgb(%s)",paste0(col2rgb(color),collapse = ','))
}
colorUI <- function(id,col) {
ns <- NS(id)
card(
div(style = sprintf("background-color: %s; height: 60px;text-align:center;font-size:20px",c2hex(col)),
class="flex",
col),
card_footer(class="flex",style="font-size:12px",
actionLink(ns('cp_col'),col),
actionLink(ns('cp_hex'),c2hex(col)),
actionLink(ns('cp_rgb'),c2rgb(col))
)
)
}
colorServer <- function(id,col) {
moduleServer(
id,
function(input, output, session) {
observeEvent(input$cp_col,{
clipr::write_clip(col)
showNotification('复制成功', duration = 2)
})
observeEvent(input$cp_hex,{
clipr::write_clip(c2hex(col))
showNotification('复制成功', duration = 2)
})
observeEvent(input$cp_rgb,{
clipr::write_clip(c2rgb(col))
showNotification('复制成功', duration = 2)
})
}
)
}
ui <- page_navbar(
title='R语言颜色',
header = tagList(
rclipboardSetup(),
includeCSS('www/custom.css')
),
nav_panel('Color',
layout_column_wrap(
width = 1/6,
!!!map(colors(),~colorUI(.x,.x))
))
)
server <- function(input, output, session) {
walk(colors(),~colorServer(.x,.x))
}
shinyApp(ui, server)
app.R
同级目录新建www
文件夹,在www
文件夹下新建custom.css
文件,custom.css
文件内容为:在RStudio中打开app.R,
点击右上角Run App
启动应用
查看颜色,点击颜色名可复制相应格式的颜色代码
├── app.R
└── www
└── custom.css
首选本地(在你自己的电脑上)启动该应用
我部署的在线版(不推荐使用),https://slr95.shinyapps.io/color/