piapia123
zh

CSS 霓虹灯文字效果

样式

所有处理都在浏览器本地完成,数据不上传服务器

实时预览改上面的参数,这里立刻跟着变
CSS 代码

霓虹感不是「加一层阴影」,而是多层光晕叠出来的。真实的霓虹灯管是:核心一条极亮的细线,周围一层层向外扩散、越来越淡的光。所以 CSS 里要写多条 `text-shadow` —— 贴身的实色一层,然后半径逐层放大、透明度逐层降低,三四层下来才有那种「亮」的感觉。只写一条大阴影的结果是一团糊:看着发光,但不亮。 强度这一个参数同时控制三件事:层数、每层的半径、以及最外层的透明度。没有拆成三个选项让用户自己配 —— 那三者的比例要一起动才好看,分开给的话多数人配出来是糊的。 预览区配的是深色底,这是必需的:霓虹的观感来自高对比(亮字压在暗底上),浅色底上光晕只会让字变脏。真实项目里也一样,这个效果基本只用在深色界面上。

功能

  • 多层 text-shadow 叠加出光晕,层数与半径跟着强度走
  • 灯管色与字色分开调 —— 字色用略带主色的白比纯白更像灯管芯
  • 强度 0–100 一个参数控制层数、半径与透明度
  • 打字即可预览(工具提供文字输入框)
  • 预览区配深色底,霓虹的对比感立即成立
  • 下方给出可复制的 CSS 规则,带 `.neon` 选择器
  • 代码带语法着色,复制按钮一步拿走
  • 全部在浏览器本地计算

使用方法

  1. 在上面的输入框里打几个字
  2. 选灯管颜色,拖强度看光晕扩散的变化
  3. 需要更「亮」就把字色调到接近白,需要更「艳」就跟灯管色拉开对比
  4. 满意后复制 CSS

常见问题

为什么一条 text-shadow 出不来霓虹感?
因为霓虹灯管的观感来自亮度梯度:中心最亮、向外迅速衰减。单条阴影只有一个半径与一个透明度,要么太实(像描边)要么太虚(像糊了)。多层叠加模拟的正是那条衰减曲线:贴身一层不透明、中间层中等透明、外层很低透明 —— 眼睛读到的是「这里有个发光的管子」,而不是「这行字描了边」。
为什么这个效果必须配深色底?
因为对比度。霓虹灯的视觉前提是亮光源在暗环境里,浅色底上光晕会与背景混在一起,字反而变脏、变糊。要放在浅色界面上只能大幅削弱光晕(那就不像霓虹了)。所以工具把预览区的底设成深色 —— 那不是装饰,是这个效果成立的条件之一。
发光文字对可访问性有影响吗?
有,两点要注意。一是对比度:光晕会模糊字的边缘,正文级别的阅读会吃力,所以它适合标题、Logo、装饰性文字,不适合正文;二是有视觉障碍或偏头痛的用户对强发光敏感,而系统里有一个「减少动态效果」的偏好(`prefers-reduced-motion`),它管不到静态发光,但你可以主动提供一个「弱化效果」的开关或在高对比模式下关掉光晕。

相关工具