Blackwork
回到顶部

小工具

语言切换、搜索、社交链接和排版等小工具。

小工具

这些是给内容站用的小工具,不是 shadcn 那套基础组件。

LanguageToggleSocialLinks 适合放进 LayoutHeader。本站已经挂了 ScrollToTop

适用场景

  • 页头切换语言
  • 搜索框或命令面板入口
  • GitHub、X、RSS 等品牌图标
  • 和字号阶梯对齐的标题和正文

通用图标仍从 lucide-react 引入,见 图标。品牌图标只放在 SocialLink 里。

语言切换

单个 option 渲染按钮,数组渲染下拉。路由由你自己处理:在每个 option 上传 onClick

语言切换

LanguageToggle

属性类型默认值说明
options必填LanguageToggleOption | LanguageToggleOption[]单个 option 显示按钮,数组显示下拉菜单。
defaultValuestring当前语言,用于选择触发器图标。
titlestring触发器的 tooltip。
ariaLabelstring无障碍名称,默认使用 title。

搜索输入

带前置图标的搜索样式输入框。它本身不会执行查询。

搜索框

SearchInput

属性类型默认值说明
placeholderstring"Search..."原生 input placeholder。
inputRefRefObject<HTMLInputElement>内部 input 的 ref。
inputClassNamestring内部 input 的 class。
searchIconClassNamestring搜索图标的 class。

社交链接

社交链接

SocialLink

属性类型默认值说明
type必填"github" | "x" | "twitter" | "instagram" | "zhihu" | "rss"内置品牌图标,其他类型不会显示内容。
link必填string目标 URL,会在新标签页打开。
labelstringTooltip,默认使用品牌名称。
ariaLabelstring无障碍名称,默认是 Visit {label} in a new tab。

回到顶部

固定在视口右下角。图标按钮必须有无障碍名称。

回到顶部

ScrollToTop

属性类型默认值说明
titlestring按钮的 tooltip。
ariaLabelstring纯图标按钮的无障碍名称。
variantButton variant"ghost"原样传给 Button。

排版

Headinglevel 对应 h1h4Paragraph 是配套的正文样式。

排版

Section title

Body copy for a content page.

Heading

属性类型默认值说明
level1 | 2 | 3 | 41显示 h1 至 h4,并使用对应的字号层级。

外链

在新标签打开,并带上 rel="nofollow noopener noreferrer"

外部链接

快捷搜索

命令面板对话框用的组件。useQuickSearchState 会监听 ⌘K / Ctrl+K。下面的预览用本地 state,避免抢走本站快捷键。

快速搜索

说明

  • SocialLink 只认识 githubxtwitterinstagramzhihurss
  • ScrollToTopposition: fixed。装箱预览时用 className 覆盖。
  • SearchInput 只负责外观,提交或过滤要自己接。
  • 本站页头搜索是 QuickSearchDialog 的消费者,不是另一套组件。