// demo:clicolor 唯一写法的实景展示,每段说明在前、效果在后。
// 跑法:moon run src/main
///|
fn section(title : String) -> Unit {
println("【" + title + "】")
}
///|
fn main {
section("1 前景:16 色,从常量起步,text 收尾")
println(
@clicolor.black.text("black") +
" " +
@clicolor.red.text("red") +
" " +
@clicolor.green.text("green") +
" " +
@clicolor.yellow.text("yellow") +
" " +
@clicolor.blue.text("blue") +
" " +
@clicolor.magenta.text("magenta") +
" " +
@clicolor.cyan.text("cyan") +
" " +
@clicolor.white.text("white"),
)
println(
@clicolor.bright_black.text("bright_black") +
" " +
@clicolor.bright_red.text("bright_red") +
" " +
@clicolor.bright_green.text("bright_green") +
" " +
@clicolor.bright_yellow.text("bright_yellow") +
" " +
@clicolor.bright_blue.text("bright_blue") +
" " +
@clicolor.bright_magenta.text("bright_magenta") +
" " +
@clicolor.bright_cyan.text("bright_cyan") +
" " +
@clicolor.bright_white.text("bright_white"),
)
section("2 前景 > 背景")
println(
@clicolor.bg_black.text("深色底") +
" " +
@clicolor.red.bg_blue().text("红字蓝底") +
" " +
@clicolor.black.bg_yellow().text("黑黄警示"),
)
section("3 前景 > 背景 > 修饰,固定顺序全叠")
println(
@clicolor.green.bold().underline().text("成功且强调") +
" " +
@clicolor.red.bg_blue().bold().text("全叠"),
)
section("4 无色起步:default 起修饰链")
println(
@clicolor.default.bold().text("bold") +
" " +
@clicolor.default.italic().text("italic") +
" " +
@clicolor.default.underline().text("underline") +
" " +
@clicolor.default.inverse().text("inverse") +
" " +
@clicolor.default.strikethrough().text("strike"),
)
section("5 预设")
println(
@clicolor.error.text("文件缺失") +
" " +
@clicolor.warn.text("磁盘将满") +
" " +
@clicolor.ok.text("部署完成") +
" " +
@clicolor.info.text("提示") +
" " +
@clicolor.dim.text("2026-10-15 07:00"),
)
section("6 真彩色与坏值降级")
println(
@clicolor.default.hex("#FFA500").bold().text("真彩橙") +
" " +
@clicolor.blue.bg_hex("#101010").text("深底") +
" " +
@clicolor.red.hex("#zzz").text("坏值降黑"),
)
section("7 运行期色值:default.hex(c)")
for c in ["#04B575", "#E06C75", "#61AFEF"] {
println(@clicolor.default.bold().hex(c).text("动态色值 " + c))
}
section("8 样式当值复用")
let label = @clicolor.bold.cyan()
println(
label.text("[clicolor]") +
@clicolor.default.text(" 样式是值,可存可传可叠加 ") +
label.underline().text("复用"),
)
section("9 关闭开关:全部原样返回")
let _ = @clicolor.set_enabled(false)
println(
@clicolor.red.bold().text("管道输出,无转义字节") +
" <- 应为纯文本",
)
let _ = @clicolor.set_enabled(true)
println(@clicolor.red.text("恢复后重新上色"))
section("10 OSC 8 超链接")
println(
@clicolor.cyan
.underline()
.text(@clicolor.hyperlink("https://mooncakes.io", "打开 mooncakes")),
)
}