Ant Design StyleAnt Design Style
快速上手
最佳实践
API
更新日志
⌘ K

Table of Contents

暗色模式下首屏会 “闪” 一下
SSR 解决方案
最佳实践与案例集
样式书写
父子联动的样式书写
CSS Modules 全局样式覆写迁移
主题定制
扩展自定义 Token 类型定义
自定义 antd 组件样式
antd 静态方法的主题失效
主题切换
暗色模式下首屏会 “闪” 一下
组件库研发
🚧 基于 antd v5 二次封装组件库
样式案例
黏土风 UI
样式组件
自定义组件: MacOS 选择器
上一篇
antd 静态方法的主题失效
下一篇
🚧 基于 antd v5 二次封装组件库

相关资源

Ant Design
Ant Design Pro
Ant Design Pro Components
Umi-React 应用开发框架
Dumi-组件/文档研发工具
qiankun-微前端框架

社区

Medium
Twitter
yuqueAnt Design 语雀专栏
Ant Design 知乎专栏
体验科技专栏
seeconfSEE Conf-SEE Conf-蚂蚁体验科技大会

帮助

GitHub
更新日志
讨论

more products更多产品

yuque语雀-知识创作与分享工具
AntVAntV-数据可视化解决方案
EggEgg-企业级 Node.js 框架
kitchenKitchen-Sketch 工具集
xtech蚂蚁体验科技
Copyright © 2022-2024
Made with ❤️ by 蚂蚁集团 - AFX & 数字科技
‌
‌
‌
‌

暗色模式下首屏会 “闪” 一下

在使用 antd-style 时,首屏一般是亮色的。这就会导致暗色模式下,用户的界面先显示亮色主题,再切换到暗色主题。用户感受上就是会 “闪” 一下,体验很差。这一类问题有一个专业术语叫做 FOUC 。

如何解决?

本文预设你已经了解了 antd-style 在 SSG、SSR 下的解决方案。

原理分析:

  1. SSG 产出亮色 HTML;
  2. JS 水合后 cssinjs 运行,重新生成暗色类名与样式;

FOUC 的根本原因是,服务端不知道客户端此时的主题状态。

因此解决思路有两种:

  1. SSR:将用户客户端的主题状态让服务端可以感知,例如使用 query url、cookie 等机制;
  2. 颜色变量抽取为 CSS 变量;

SSR 解决方案

以 next.js App Router 为例:

tsx
tsx