用 OKLCH 与 Tailwind v4 搭一套有温度的配色
放弃 HEX 拍脑袋配色,改用 OKLCH 定义品牌色与中性色,让界面既有辨识度又不刺眼。
放弃 HEX 拍脑袋配色,改用 OKLCH 定义品牌色与中性色,让界面既有辨识度又不刺眼。
setTimeout 为什么不准?Promise 为什么排在 setTimeout 前面?用一张图 + 三段代码讲透事件循环、微任务与宏任务。
LCP 慢?首屏白屏?交互卡顿?一份按「加载-渲染-交互」分段的性能排查清单,每个检查项都有判断标准和优化动作。
从"橘子味"的暖橙极简风,到深色 CRT + 像素切角的新美学,记录一次完整的设计系统重构。
用 low-res 画布 + 字符画出像素游戏素材,固定时间步长跑主循环,状态机管阶段切换——把小游戏动画效率讲清楚。
为什么旧终端机的像素一个字都不会糊?CRT 扫描线、硬偏移阴影、字符画图标——一篇讲复古终端美学的视觉与工程。
从 HTML/CSS/JS 到屏幕上的像素,中间经历了构建 DOM、样式计算、布局、绘制、合成。搞懂渲染流水线,才能真正写出不卡顿的页面。
用判别式字段把联合类型拆干净,配合类型收窄,写出既灵活又安全的状态机 / API 响应处理代码,把运行时的"不可能"提前到编译期。
在 GUI 事件循环中跑 WebSocket 服务,以及跨浏览器交互改造时遇到的几件事。
从 Tailwind v3 升到 v4,三个容易踩的坑:@theme 变量、阴影工具类生成、以及 oklch 色彩空间的适配。
RSC 不是银弹。本文用一个真实博客项目为案例,讲清楚服务端组件、客户端组件、动态渲染的边界,以及那些容易踩的坑。
自己做编辑器?先想清楚要付出什么。对比 contenteditable、Quill、TipTap、Lexical 的取舍,并拆解 TipTap 的扩展机制。
为什么要把 confirm() 换掉、自定义模态框要处理哪些细节(焦点、Esc、可访问性、跨浏览器一致性),以及一套可复用的实现。
frontmatter 解析、正文渲染、自定义插件、性能陷阱——一个博客内容管线的完整实现,从零到可用的每一步都有代码。
站点地图、结构化数据、OG 标签、SSR vs CSR、提交索引——小网站也能做好的 SEO 清单,全是可执行动作。
TipTap 的扩展机制、图片上传接入、以及把 HTML 转 Markdown 存储的取舍,一次讲清楚。
浏览器怎么处理懒加载图、next/image 的占位机制、为什么有些图会"闪烁"、本地图片与远程图该怎么配。一篇把图片优化的底层逻辑讲透的文章。
媒体查询看的是视口,容器查询看的是组件本身;:has() 让 CSS 第一次有了"父选子"的能力。两个特性合起来,组件才能真正自适应。