为博客园注入现代 UI 体验:shadcn 皮肤上线

背景

tona-shadcn 是基于 tona 和现代 UI 组件系统 shadcn/ui 的博客园皮肤实现,它让传统博客园主题具备一致的设计语言、深色模式支持和响应式布局能力。其价值在于将成熟设计组件与博客园生态结合,为内容创作者提供既专业又现代的阅读体验。

使用方式

  1. 进入博客园后台「设置」页面;
  2. 博客皮肤选择「Custom」;
  3. 勾选「禁用模板默认CSS」,并填入此 CSS文件 中的代码;
  4. 在「页首 HTML」中填写以下内容(可根据自身需求修改),完成后保存即可生效。
html 复制代码
<script>
    const bio = `
- 我是一名**前端工程师**,练习时长两年半!**,xxxxx。
- 熟悉 **Next.js**、**Umi**、**React**、**TypeScript**​ 等前端技术,能够构建高质量、以用户为中心的应用。
- [Tona](https://github.com/guangzan/tona) 的创建者:专为博客园设计的皮肤开发框架。
  - 在 [Github](https://github.com/guangzan/tona) 上获得 **200+ stars**
  - [文档](https://www.yuque.com/r/awescnb/books) 有 **180k+ 阅读量**
- 为 [VueUse](https://vueuse.org/)、[Windi CSS](https://windicss.org/) 做过一点微小的贡献。
`;

  const BASE_URL = "https://blog-static.cnblogs.com/files/guangzan/";

  const groups = [
    {
      group: "技术栈",
      items: [
        {
          title: "TypeScript",
          href: "https://www.typescriptlang.org/",
          categories: ["Language"],
          lightIcon: `${BASE_URL}typescript.svg`,
        },
      ],
    },
    {
      group: "我喜爱的工具",
      items: [
        {
          title: "Git",
          href: "https://git-scm.com/",
          categories: ["Tools"],
          lightIcon: `${BASE_URL}git.svg`,
        },
      ],
    },
  ];

  window.opts = {
    theme: {
      avatar: 'https://pic.cnblogs.com/avatar/1501373/20200819130243.png',
    },
    about: {
      enable: true,
      bio,
      tags: [
        'Frontend Engineer',
        '热爱创造的用户体验工程师',
      ]
    },
    itemGroups: {
      enable: true,
      groups,
    },
  };
</script>
<script src="https://blog-static.cnblogs.com/files/guangzan/shadcn.js?t=1770370892" fetchpriority="high" defer></script>

设计与实现

Inspired by tailwindcss.com/ui.shadcn.com/voidzero.dev/chanhdai.com.

  • Preact:使用 Preact 轻量级视图库。
  • Tailwind CSS:使用 Tailwind CSS 编写样式。
  • Base UI:使用 Base UI 作为组件原语。
  • shadcn/ui:使用 shadcn/ui 设计体系。

参考资料

相关推荐
雨雨雨雨雨别下啦8 小时前
【OpenHarmony北向开发】ArkTS基础教学
typescript·arkts·openharmonys
ZoeLandia10 小时前
TypeScript 01:类型注解与类型推断
前端·javascript·typescript
ZoeLandia11 小时前
TypeScript 02:interface、type 与类型收窄
前端·typescript
行者-全栈开发12 小时前
华为云码道 CodeArts 实测:让 AI 用纯 TypeScript 写一个确定性回放的塔防小游戏「熵减特勤局」
typescript·小游戏·canvas·ecs·ai 编程·华为云码道·codearts 代码智能体
mbshqqb1 天前
TypeScript基础教程之同步生成器
前端·javascript·typescript
濮水大叔2 天前
Cabloy 双引擎架构详解:Vona 与 Zova 是如何协作的
typescript·node.js·全栈
前端大斗师2 天前
「大于 1000」把 1000 元那单也算进去了:我在 Vue3 订单页对了 10 句话
前端·人工智能·typescript·大模型·原力计划
GlobalAIagent2 天前
外贸站上线前的技术自查清单:漏一项询盘可能消失
google·typescript·ar·go语言·seo
半糖程序员2 天前
从零构建 Agent(11):压缩过长的上下文
typescript·agent
whi2 天前
一个小工具,解决了一个困扰 Vue 开发者多年的类型检查难题
vue.js·typescript