KAIROS.WORKSPACE
技术宇宙 / ONLINE

Archive

归档

按发布时间组织的全部文章。年份可从锚点直达,时间线上每个节点都是一次沉淀。

202632 篇

无障碍不是一次审计,是一串可自动化的断言

把键盘可达、焦点可见、对比度、live region、reduced-motion 从"上线前人工点一遍"变成可回归的自动化检查清单。

让动画跑在合成层:transform/opacity 与 layout thrash 的边界

前端动效性能的核心是只动 GPU 能独立处理的属性。讲清 transform/opacity 为何安全、哪些属性会触发布局重排、以及读写分离避免强制同步布局。

文章页图片的懒加载与淡入:不制造布局偏移的做法

正文图片用 loading=lazy + decode=async 延迟解码,配合占位尺寸与淡入,兼顾性能与体验,并处理失败与 reduced-motion。

剪贴板 API 的现实:安全上下文、权限与失败反馈

navigator.clipboard 在非 HTTPS、无焦点、权限拒绝下的行为差异,以及为复制按钮补齐成功与失败双反馈的实践模式。

一个可访问的命令面板:从快捷键到焦点管理的全清单

实现 Ctrl/Cmd+K 命令面板时的键盘协议、combobox 语义、焦点陷阱与恢复、移动端适配和加载态处理的完整检查清单。

内容一致性校验:把坏数据挡在构建期而不是发布后

个人内容站如何在构建阶段用脚本校验 frontmatter、slug 引用、日期逻辑、阅读时长与关联关系,形成可持续的内容卫生机制。

CSS 级联层实战:为什么 @layer 能救回你的工具类

用 @layer 调停基础样式与工具类的优先级之争:未分层规则为何总是赢家,如何用 base 层修正级联,以及哪些规则应该留在层外。

容器查询落地:让卡片在自己的容器里决定布局

@container 把"响应式"从视口级细化到组件级。以文章卡片在单列/双列/侧栏多场景复用为例,讲查询条件、回退策略与迁移边界。

CSS 自定义属性做主题系统:一套变量驱动全站换肤

用 RGB 三元组自定义属性构建分层主题变量,实现零重排的整站强调色切换,并把用户选择持久化到本地。

暗色主题下的对比度:为什么"看着还行"往往不合格

暗色 UI 里低对比文字、彩色强调按钮、以及级联层导致的样式覆盖如何悄悄违反 WCAG 对比度,附定位与量化修复。

力导向图最小实现:在原生 Canvas 上写一个物理引擎

不引库做出可拖拽的知识图谱星图:斥力、弹簧、向心力三股力量如何配平,缩放平移的坐标换算,以及 reduced-motion 下的静态降级。

表单校验的分层:HTML 属性、JS 增强与服务端最终判定

邮箱订阅、评论这类表单如何做三层校验——原生属性守底线、JS 提升体验、服务端权威判定,避免"前端校验即安全"的常见误区。

一份配置,两个世界:服务端模块如何喂给内联脚本

用 JSON script 载荷把服务端模块里的配置、规则表传给浏览器内联脚本,避免在 Astro 项目中把同一份数据手抄两遍。

Lighthouse 分数怎么读:从类别分到可执行的修复

Performance/A11y/Best-Practices/SEO 四个类别分背后的审计项如何映射到具体修复:对比度、表单标签、控制台错误与指标类洞察的定位方法。

本地优先的工具站设计:让输入永远不离开浏览器

浏览器端开发者工具的隐私架构怎么做:无后端处理、状态留在本地存储、错误不外泄,以及如何用构建期索引替代服务端搜索。

localStorage 的 schema 版本化:命名、迁移与可回退

浏览器本地存储跨版本演进的最佳实践——统一命名、读写分离、迁移而非破坏、提供一键清理,避免旧用户数据变成幽灵 bug。

长内容换行三件套:inline code、nowrap 胶囊与时间线轨道

移动端横向溢出常由三类"固有宽度"内容撑破容器——无空格长代码、white-space:nowrap 标签、未设 minmax(0) 的网格轨道,逐一给出修复。

渐进增强不是口号:把"关掉 JS 也能用"落成检查项

以静态优先博客为例,给出每个交互组件的无 JS 基线设计法——原生表单、真实链接、服务端渲染内容,把渐进增强从信念变成可验收的清单。

让前端"看得懂"限流:429/503 的退避与文案分工

当接口返回 429 或 503,前端该重试、等待还是提示?讲清按状态码分流、指数退避、Retry-After 利用与"用户可修复 vs 不可修复"的文案设计。

发布前的最后一道程序:用脚本自动化"人工走查"

把死链扫描、禁用术语检查、关键路由冒烟固化成可在 CI 与发布前重复执行的运行时门禁脚本,替代不可靠的手工点击。

自部署站点的响应头底线:HSTS、CSP 与缓存分层怎么配

面向 Node standalone + Nginx 反代的个人站点,梳理一份可落地的安全响应头清单:各头的作用、顺序、坑与验证方法。

一个该进 sitemap、一个不该进:结果页与详情页的收录边界

哪些 URL 该进 sitemap、哪些不该——从参数化结果页、SSR 借数据、noindex 策略三条线,讲清个人站的收录卫生。

SSR 页面为什么不该向自己发 HTTP 请求:回环依赖与文件直读

分析 SSR 页面在运行时 fetch 自身站点静态文件的隐性风险,给出按候选根目录直读 public 产物、HTTP 兜底并区分空数据与数据不可用的实现模式。

构建期搜索索引:一个 20KB 的 JSON 为什么够用了

中小内容站不需要搜索引擎——讲清构建期生成扁平 JSON 索引 + 浏览器端过滤的设计:结构、字段取舍、更新链路与失效边界。

把状态放进地址栏:搜索、筛选与可分享 URL 的最小实现

用 URLSearchParams 与 history.replaceState 给纯前端检索加可分享、可回退、可刷新恢复的状态,避免后退丢词与空白输入框的经典缺陷。

View Transitions 在多模板博客里的实战分层

用 Astro ClientRouter 做页面过渡时,如何按"全局底座 / 页面专属 / 组件内部"三层管理动画生命周期,避免监听器泄漏和动画叠加。

字体加载的取舍:CLS、FOUT 与"其实你不需要自定义字体"

Web 字体如何造成布局偏移与文本闪烁,font-display/size-adjust/预加载的组合拳,以及系统字体栈在内容站上的合理性论证。

Astro 内容系统如何承载长期写作

用 Content Collections 把文章元数据、草稿状态和构建期路由统一管理。

开发者实验室的工具优先级

从 JSON、时间戳、URL 和 Base64 开始,先覆盖高频本地工具场景。

面向宝塔部署的 Astro SSR 思路

Astro Node Adapter、PM2 和 Nginx 反向代理可以组成清晰的自部署路径。

内容健康检查应该覆盖什么

SEO、草稿泄漏、重复 slug 和图片 alt 是博客公开发布前的基础门禁。

程序员博客的写作工作流

把技术文章、踩坑记录和项目复盘拆成不同节奏,降低长期更新成本。