8534 字
43 分钟
进阶写作与Tailwind CSS实践
2025-11-27
2025-12-01

我的博客集成了 Tailwind CSS,那么我就可以直接写带 Tailwind 类的 HTML。下面大多以炫技为主,你喜欢的话,复制直接拿来用就好了。



流光渐变文字#

LEVEL UP YOUR CODE
<div class="not-prose text-center my-8">
<span class="text-5xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-purple-400 via-pink-500 to-red-500 animate-pulse">
LEVEL UP YOUR CODE
</span>
</div>
  • 原理:利用 bg-clip-text 把背景裁切成文字形状,加上 animate-pulse 让它呼吸闪烁。
  • not-prose 是 Tailwind Typography 插件的一个类,用来防止博客默认的文章样式干扰自定义设计。

毛玻璃卡片#

🎮 电脑环境配置

  • ✅ CPU: AMD Ryzen 7500F
  • ✅ GPU: RTX 4060 Ti 16G
<div class="not-prose relative my-8 p-6 rounded-2xl overflow-hidden shadow-xl
border border-gray-300/50 dark:border-white/20
bg-white/60 dark:bg-black/20 backdrop-blur-xl">
<div class="absolute -top-10 -right-10 w-32 h-32 bg-blue-500/20 rounded-full blur-2xl"></div>
<div class="absolute -bottom-10 -left-10 w-32 h-32 bg-purple-500/20 rounded-full blur-2xl"></div>
<div class="relative z-10">
<h3 class="text-xl font-bold mb-2 flex items-center gap-2 text-gray-900 dark:text-white">
🎮 电脑环境配置
</h3>
<ul class="space-y-2 text-sm text-gray-700 dark:text-gray-300">
<li class="flex items-center">✅ CPU: AMD Ryzen 7500F</li>
<li class="flex items-center">✅ GPU: RTX 4060 Ti 16G</li>
</ul>
</div>
</div>
  • :利用 backdrop-filter: blur 实现磨砂玻璃质感。

伪终端窗口#

cxz-terminal — -zsh
~ npm run build
> Astro v4.0.0
> Building client...
✓ Completed in 1.45s
<div class="not-prose my-6 rounded-lg overflow-hidden bg-[#1e1e1e] shadow-2xl border border-gray-700 font-mono text-sm">
<div class="bg-[#2d2d2d] px-4 py-2 flex items-center gap-2 border-b border-gray-700">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
<div class="ml-2 text-gray-400 text-xs">cxz-terminal — -zsh</div>
</div>
<div class="p-4 text-gray-300">
<div class="flex">
<span class="text-green-400 mr-2">➜</span>
<span class="text-blue-400 mr-2">~</span>
<span class="typing-effect">npm run build</span>
</div>
<div class="mt-2 text-gray-500">
> Astro v4.0.0<br>
> Building client...<br>
<span class="text-green-400">✓ Completed in 1.45s</span>
</div>
</div>
</div>

折叠框#

⚠️ 警告:包含《传送门》结局剧透
The cake is a lie. 蛋糕是个谎言,GLaDOS 其实一直都知道...
<details class="not-prose group my-4 bg-red-500/10 border border-red-500/20 rounded-lg open:bg-red-500/5 transition-all duration-300">
<summary class="cursor-pointer p-4 font-bold text-red-500 flex justify-between items-center select-none">
<span>⚠️ 警告:包含《传送门》结局剧透</span>
<span class="group-open:rotate-180 transition-transform duration-300">▼</span>
</summary>
<div class="p-4 pt-0 text-gray-600 dark:text-gray-300 border-t border-red-500/10 mt-2">
The cake is a lie. 蛋糕是个谎言,GLaDOS 其实一直都知道...
</div>
</details>
  • :利用 HTML5 原生的 detailssummary 标签,不需要 JS 就能做折叠效果。

嵌入3D模型#

👆 点击并拖拽查看 3D 模型

鼠标拖拽旋转,滚轮可以缩放

<div class="not-prose my-8 w-full h-[450px] rounded-2xl overflow-hidden shadow-[0_20px_50px_rgba(8,_112,_184,_0.4)] border border-blue-500/30 relative group bg-black">
<div class="absolute inset-0 flex items-center justify-center bg-black/40 group-hover:bg-transparent transition-all duration-500 pointer-events-none z-10">
<span class="text-white/80 border border-white/30 px-4 py-2 rounded-full backdrop-blur-md text-sm group-hover:opacity-0 transition-opacity">
点击并拖拽查看3D模型
</span>
</div>
<iframe
title="Sci-Fi Drone"
frameborder="0"
allowfullscreen
mozallowfullscreen="true"
webkitallowfullscreen="true"
allow="autoplay; fullscreen; xr-spatial-tracking"
xr-spatial-tracking
execution-while-out-of-viewport
execution-while-not-rendered
web-share
src="https://sketchfab.com/models/ebea8df5042d447fa3ae2c45de3056fd/embed?autostart=0&ui_theme=dark&dnt=1"
class="w-full h-full"
>
</iframe>
</div>
<p class="text-center text-sm opacity-60 -mt-4 mb-8">鼠标拖拽旋转,滚轮可以缩放</p>
  • :看看代码的话,不用我说你也应该知道怎么调整和修改。

技能属性卡#

利用 Tailwind 的 Group Hover 特性实现交互。

💪

STRENGTH (力量)

A+

精通 C++ 与底层架构,能扛住高并发压力。

AGILITY (敏捷)

S

快速学习新技术,代码交付速度极快。

🧠

INTELLECT (智力)

A

擅长算法设计与复杂系统架构分析。

<div class="not-prose my-10 grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="group relative bg-slate-800 p-6 rounded-xl overflow-hidden border-2 border-red-900 hover:border-red-500 transition-all duration-300 hover:-translate-y-2 hover:shadow-[0_10px_30px_rgba(239,68,68,0.5)]">
<div class="absolute -right-4 -bottom-4 text-9xl text-red-500/10 group-hover:text-red-500/20 transition-all group-hover:rotate-12">💪</div>
<h3 class="text-2xl font-bold text-red-500 mb-2">STRENGTH (力量)</h3>
<div class="text-4xl font-black text-white mb-4">A+</div>
<div class="w-full bg-slate-700 h-3 rounded-full overflow-hidden">
<div class="h-full bg-gradient-to-r from-red-800 to-red-500 w-[90%] group-hover:animate-pulse"></div>
</div>
<p class="text-slate-400 text-sm mt-4">精通 C++ 与底层架构,能扛住高并发压力。</p>
</div>
<div class="group relative bg-slate-800 p-6 rounded-xl overflow-hidden border-2 border-emerald-900 hover:border-emerald-500 transition-all duration-300 hover:-translate-y-2 hover:shadow-[0_10px_30px_rgba(16,185,129,0.5)]">
<div class="absolute -right-4 -bottom-4 text-9xl text-emerald-500/10 group-hover:text-emerald-500/20 transition-all group-hover:rotate-12">⚡</div>
<h3 class="text-2xl font-bold text-emerald-500 mb-2">AGILITY (敏捷)</h3>
<div class="text-4xl font-black text-white mb-4">S</div>
<div class="w-full bg-slate-700 h-3 rounded-full overflow-hidden">
<div class="h-full bg-gradient-to-r from-emerald-800 to-emerald-500 w-[98%] group-hover:animate-pulse"></div>
</div>
<p class="text-slate-400 text-sm mt-4">快速学习新技术,代码交付速度极快。</p>
</div>
<div class="group relative bg-slate-800 p-6 rounded-xl overflow-hidden border-2 border-blue-900 hover:border-blue-500 transition-all duration-300 hover:-translate-y-2 hover:shadow-[0_10px_30px_rgba(59,130,246,0.5)]">
<div class="absolute -right-4 -bottom-4 text-9xl text-blue-500/10 group-hover:text-blue-500/20 transition-all group-hover:rotate-12">🧠</div>
<h3 class="text-2xl font-bold text-blue-500 mb-2">INTELLECT (智力)</h3>
<div class="text-4xl font-black text-white mb-4">A</div>
<div class="w-full bg-slate-700 h-3 rounded-full overflow-hidden">
<div class="h-full bg-gradient-to-r from-blue-800 to-blue-500 w-[85%] group-hover:animate-pulse"></div>
</div>
<p class="text-slate-400 text-sm mt-4">擅长算法设计与复杂系统架构分析。</p>
</div>
</div>
  • 悬停反馈:鼠标放上去时,卡片上浮 (hover:-translate-y-2),边框变亮,底部出现对应颜色的光晕 (hover:shadow-[...])。
  • 细节动画:进度条在悬停时会呼吸闪烁 (group-hover:animate-pulse),背景的大图标会旋转 (group-hover:rotate-12)。

动态加载条#

用来表示进度的动态元素。

> 正在初始化神经链接...

STATUS: CONNECTING 85% COMPLETE
<div class="not-prose my-8 p-6 bg-[#1a1b26] rounded-xl border border-gray-800 relative overflow-hidden">
<div class="absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-cyan-500 to-transparent animate-[shimmer_2s_infinite_linear]" style="background-size: 200% 100%;"></div>
<h4 class="text-cyan-400 mb-4 font-mono flex items-center">
<span class="inline-block w-2 h-2 bg-cyan-400 rounded-full mr-2 animate-ping"></span>
> 正在初始化神经链接...
</h4>
<div class="relative w-full h-4 bg-gray-900/50 rounded-full overflow-hidden border border-gray-700/50 backdrop-blur">
<style>
@keyframes load-progress {
0% { width: 5%; }
100% { width: 85%; }
}
</style>
<div class="h-full bg-gradient-to-r from-cyan-600 via-blue-500 to-purple-600 rounded-full relative"
style="animation: load-progress 3s ease-out forwards; width: 85%;">
<div class="absolute right-0 top-0 h-full w-10 bg-white/50 blur-[10px]"></div>
</div>
</div>
<div class="flex justify-between text-xs font-mono text-cyan-300/50 mt-2">
<span>STATUS: CONNECTING</span>
<span>85% COMPLETE</span>
</div>
</div>
  • 组合动画:使用了自定义动画 shimmer(通过内联 style 模拟流光),进度条使用了 CSS @keyframes 实现从短变长的加载效果。
  • 呼吸灯:使用了 animate-ping 做了一个呼吸的指示灯,进度条尖端加了高光模糊,增加了质感。

拟物化机械键盘按键#

快捷键:

+ +

<div class="not-prose my-8 p-8 bg-gray-100 dark:bg-slate-800 rounded-xl flex items-center justify-center gap-4 flex-wrap border border-gray-200 dark:border-gray-700">
<style>
.kbd-key {
background: linear-gradient(to bottom, #f9fafb, #e5e7eb);
color: #374151;
border: 1px solid #d1d5db;
box-shadow: 0 4px 0 #9ca3af, 0 5px 5px rgba(0,0,0,0.1);
transition: all 0.1s;
}
/* 暗色模式适配 */
.dark .kbd-key {
background: linear-gradient(to bottom, #374151, #1f2937);
color: #e5e7eb;
border: 1px solid #4b5563;
box-shadow: 0 4px 0 #111827, 0 5px 5px rgba(0,0,0,0.3);
}
/* 按下效果 */
.kbd-key:active {
transform: translateY(4px);
box-shadow: 0 0 0 #9ca3af, inset 0 2px 4px rgba(0,0,0,0.1);
}
.dark .kbd-key:active {
box-shadow: 0 0 0 #111827, inset 0 2px 4px rgba(0,0,0,0.3);
}
</style>
<span class="text-gray-500 dark:text-gray-400 text-sm font-bold mr-2">快捷键:</span>
<button class="kbd-key px-4 py-2 rounded-lg font-mono font-bold text-lg cursor-pointer select-none">CTRL</button>
<span class="text-gray-400">+</span>
<button class="kbd-key px-4 py-2 rounded-lg font-mono font-bold text-lg cursor-pointer select-none">ALT</button>
<span class="text-gray-400">+</span>
<button class="kbd-key px-4 py-2 rounded-lg font-mono font-bold text-lg cursor-pointer select-none">DEL</button>
</div>

代码文件名条#

src/components/GameEngine.cpp
C++
<div class="not-prose mt-6 -mb-2 bg-slate-800 rounded-t-lg border-b border-slate-700 flex justify-between items-center px-4 py-2 text-xs text-slate-300 font-mono">
<div class="flex items-center gap-2">
<svg class="w-4 h-4 text-yellow-400" fill="currentColor" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>
<span>src/components/GameEngine.cpp</span>
</div>
<span class="text-slate-500">C++</span>
</div>

数据面板#

SYSTEM STATUS_

UID: 9527-TK
CPU LOAD
32%
MEMORY12.4 GB
NETWORK UPLINK
Stable750 Mbps
<div class="not-prose my-12 relative group">
<div class="absolute -inset-1 bg-gradient-to-r from-cyan-500 to-blue-600 rounded-xl blur-xl opacity-30 group-hover:opacity-50 transition duration-1000 group-hover:duration-200"></div>
<div class="relative p-6 bg-[#0a0a0a]/80 backdrop-blur-xl rounded-xl border border-cyan-500/30 shadow-[inset_0_0_20px_rgba(6,182,212,0.2)] overflow-hidden">
<div class="absolute inset-0 bg-[linear-gradient(rgba(6,182,212,0.1)_1px,transparent_1px)] bg-[size:100%_4px] pointer-events-none"></div>
<div class="flex justify-between items-center mb-6 border-b border-cyan-500/20 pb-2">
<h3 class="text-cyan-400 font-mono text-lg tracking-wider flex items-center"><span class="inline-block w-2 h-2 bg-cyan-400 rounded-full mr-2 animate-pulse shadow-[0_0_10px_#22d3ee]"></span>SYSTEM STATUS_</h3>
<span class="text-xs text-cyan-300/50 font-mono">UID: 9527-TK</span></div>
<div class="grid grid-cols-2 gap-6 relative z-10">
<div class="flex flex-col"><span class="text-cyan-300/60 text-xs font-mono mb-1">CPU LOAD</span><div class="flex items-end"><span class="text-3xl font-bold text-white font-mono mr-2">32%</span><div class="h-6 w-24 bg-cyan-900/50 rounded-sm overflow-hidden flex items-end gap-[2px] p-[2px]"><div class="h-[30%] w-1 bg-cyan-400"></div><div class="h-[50%] w-1 bg-cyan-400"></div><div class="h-[80%] w-1 bg-cyan-400 animate-pulse"></div><div class="h-[40%] w-1 bg-cyan-400"></div><div class="h-[60%] w-1 bg-cyan-400"></div></div></div></div>
<div class="flex flex-col"><span class="text-cyan-300/60 text-xs font-mono mb-1">MEMORY</span><span class="text-3xl font-bold text-white font-mono">12.4 <span class="text-lg text-cyan-400">GB</span></span></div>
<div class="col-span-2"><span class="text-cyan-300/60 text-xs font-mono mb-1">NETWORK UPLINK</span><div class="w-full h-2 bg-cyan-900/50 rounded-full overflow-hidden relative"><div class="absolute inset-y-0 left-0 bg-gradient-to-r from-cyan-500 to-blue-500 w-[75%] shadow-[0_0_10px_#22d3ee]"><div class="absolute right-0 top-0 h-full w-4 bg-white/80 blur-sm"></div></div></div><div class="flex justify-between text-xs font-mono text-cyan-300/50 mt-1"><span>Stable</span><span>750 Mbps</span></div></div></div>
<div class="absolute bottom-0 right-0 w-4 h-4 border-b-2 border-r-2 border-cyan-500/50"></div><div class="absolute bottom-0 left-0 w-4 h-4 border-b-2 border-l-2 border-cyan-500/50"></div>
</div>
</div>

动态警报横幅#

⚠️

Warning: Breaking Changes

即将到来的 V2.0 版本将重构核心 API。请务必查看迁移指南,否则你的项目可能会崩溃。

<div class="not-prose my-8 rounded-lg overflow-hidden relative border-2 border-yellow-500/50 shadow-[0_0_20px_rgba(234,179,8,0.3)]">
<style>
@keyframes scroll-stripes {
0% { background-position: 0 0; }
100% { background-position: 50px 0; }
}
.hazard-stripes {
/* 使用 repeating-linear-gradient 创建斜条纹 */
background-image: repeating-linear-gradient(
-45deg,
#eab308, /* 黄色 */
#eab308 20px,
#000000 20px, /* 黑色 */
#000000 40px
);
background-size: 200% 200%;
animation: scroll-stripes 1s linear infinite;
}
</style>
<div class="hazard-stripes absolute inset-0 opacity-20 z-0"></div>
<div class="relative z-10 bg-[#1a1a1a]/90 p-4 flex items-center gap-4 backdrop-blur-sm">
<div class="h-12 w-12 flex-shrink-0 bg-yellow-500 text-black rounded flex items-center justify-center font-bold text-2xl shadow-lg">
⚠️
</div>
<div>
<h4 class="text-yellow-500 font-bold text-lg uppercase tracking-wider mb-1">Warning: Breaking Changes</h4>
<p class="text-yellow-100/80 text-sm">
即将到来的 V2.0 版本将重构核心 API。请务必查看迁移指南,否则你的项目可能会崩溃。
</p>
</div>
</div>
</div>

解密效果#

[LOCKED DATA]

> 宝箱密码:卷死了喵

<div class="not-prose my-8 inline-block group cursor-pointer">
<style>.secret-blur{filter:blur(6px);letter-spacing:0.2em;opacity:0.6;transition:all 0.5s cubic-bezier(0.4,0,0.2,1);user-select:none;background:#1e293b;color:transparent;text-shadow:0 0 10px rgba(255,255,255,0.5);}.group:hover .secret-blur{filter:blur(0px);letter-spacing:normal;opacity:1;background:transparent;color:#4ade80;text-shadow:none;}.group:hover .secret-container{animation:text-flash 0.5s ease-out;}@keyframes text-flash{0%{text-shadow:0 0 30px #4ade80,0 0 10px white;color:white;}100%{text-shadow:none;color:#4ade80;}}</style>
<div class="secret-container relative px-4 py-2 bg-slate-800 border border-slate-700 rounded overflow-hidden">
<div class="absolute inset-0 flex items-center justify-center text-slate-500/30 group-hover:hidden font-mono">[LOCKED DATA]</div>
<p class="secret-blur font-mono font-bold text-lg relative z-10">> 宝箱密码:xxxx</p>
</div>
</div>

数学绘图#

这里的具体代码我就不贴了,仅做展示。

3D绘图曲面

Initializing Physics Engine...

动态图表

热力图

网络拓扑图

桑基图

预测置信区间图

雷达图


闪卡#

Cyberdeck Unit

LEGENDARY / HARDWARE

<div class="not-prose my-12 flex justify-center perspective-1000">
<div class="holo-card relative w-[300px] h-[420px] rounded-xl bg-[#1c1c1c] transition-all duration-100 ease-out preserve-3d cursor-pointer group shadow-2xl">
<div class="absolute inset-0 rounded-xl overflow-hidden bg-gradient-to-br from-purple-900 via-blue-900 to-black z-10 border border-white/20">
<div class="absolute inset-0 bg-[linear-gradient(rgba(0,255,255,0.1)_1px,transparent_1px),linear-gradient(90deg,rgba(0,255,255,0.1)_1px,transparent_1px)] bg-[size:20px_20px] opacity-30"></div>
<div class="absolute bottom-0 inset-x-0 p-6 bg-gradient-to-t from-black to-transparent">
<h3 class="text-2xl font-bold text-white mb-1 text-shadow-[0_0_10px_rgba(0,255,255,0.5)]">Cyberdeck Unit</h3>
<p class="text-cyan-400 text-sm font-mono">LEGENDARY / HARDWARE</p>
</div>
</div>
<div class="holo-glare absolute inset-0 rounded-xl z-20 mix-blend-color-dodge opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none" style="transform: translateZ(2px);"></div>
<div class="absolute inset-0 rounded-xl z-30 border-2 border-white/0 group-hover:border-cyan-400/50 transition-colors duration-300 pointer-events-none"></div>
</div>
<script>
(function(){
// 使用 IIFE 确保变量隔离
const card = document.currentScript.previousElementSibling;
const glare = card.querySelector('.holo-glare');
if (!card || !glare) return;
// 鼠标移动事件
card.addEventListener('mousemove', (e) => {
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
// 计算旋转角度(增加了一点灵敏度)
const rotateX = ((y - centerY) / centerY) * -18;
const rotateY = ((x - centerX) / centerX) * 18;
// 应用卡片 3D 旋转
card.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale3d(1.02, 1.02, 1.02)`;
// 计算流光位置和颜色 (动态彩虹色)
const angle = Math.atan2(y - centerY, x - centerX) * (180 / Math.PI);
glare.style.background = `linear-gradient(${angle}deg, rgba(255,255,255,0.1), rgba(0,255,255,0.3), rgba(255,0,255,0.3), rgba(255,255,255,0.1)), radial-gradient(circle at ${x}px ${y}px, rgba(255,255,255,0.8) 0%, transparent 60%)`;
});
// 鼠标离开重置
card.addEventListener('mouseleave', () => {
card.style.transform = 'perspective(1000px) rotateX(0) rotateY(0) scale3d(1, 1, 1)';
glare.style.background = 'none';
});
})();
</script>
<style>
/* 补充一些必要的 CSS 样式来确保 3D 效果 */
.preserve-3d { transform-style: preserve-3d; }
.perspective-1000 { perspective: 1000px; }
</style>
</div>

实时行情滚动条#

Loading Market Data...
<div class="not-prose my-8 w-full overflow-hidden bg-[#0d1117] border-y border-gray-800 relative">
<div class="absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-10 mix-blend-overlay pointer-events-none"></div>
<div class="flex animate-[marquee_20s_linear_infinite] hover:[animation-play-state:paused] items-center whitespace-nowrap py-3" id="crypto-ticker-track">
<span class="text-gray-500 font-mono mx-4">Loading Market Data...</span>
</div>
<style>
@keyframes marquee { 0% { transform: translateX(0%); } 100% { transform: translateX(-50%); } }
.crypto-item { display: inline-flex; align-items: center; margin: 0 1.5rem; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.crypto-symbol { color: #8b949e; font-weight: bold; margin-right: 0.5rem; }
.crypto-price { color: #e6edf3; font-weight: bold; margin-right: 0.5rem; }
.crypto-change-up { color: #3fb950; } .crypto-change-down { color: #f85149; }
</style>
<script>
(function(){
var track = document.getElementById('crypto-ticker-track');
if(!track) return;
fetch('https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=10&page=1&sparkline=false&price_change_percentage=24h')
.then(r => r.json())
.then(data => {
var html = '';
data.forEach(coin => {
var isUp = coin.price_change_percentage_24h >= 0;
var changeClass = isUp ? 'crypto-change-up' : 'crypto-change-down';
var sign = isUp ? '+' : '';
html += `<div class="crypto-item">
<img src="${coin.image}" class="w-5 h-5 mr-2 grayscale brightness-125">
<span class="crypto-symbol">${coin.symbol.toUpperCase()}</span>
<span class="crypto-price">$${coin.current_price.toLocaleString()}</span>
<span class="${changeClass}">${sign}${coin.price_change_percentage_24h.toFixed(2)}%</span>
</div>`;
});
track.innerHTML = html + html; // 复制一份用于无缝滚动
}).catch(e => { track.innerHTML = '<span class="text-red-500 mx-4">Failed to load data. API limit may be reached.</span>'; });
})();
</script>
</div>

仿钱包连接#

<div class="not-prose my-12 flex justify-center">
<div class="relative group cursor-pointer">
<div class="absolute -inset-0.5 bg-gradient-to-r from-pink-600 to-purple-600 rounded-lg blur opacity-75 group-hover:opacity-100 transition duration-1000 group-hover:duration-200 animate-tilt"></div>
<button id="web3-connect-btn" class="relative px-8 py-4 bg-black rounded-lg leading-none flex items-center divide-x divide-gray-600 text-gray-100 transition-all hover:bg-gray-900">
<span class="flex items-center space-x-3 pr-4">
<svg class="h-6 w-6 text-pink-500 animate-pulse" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/></svg>
<span id="btn-text" class="font-bold font-mono tracking-wider text-lg">CONNECT WALLET</span>
</span>
<span class="pl-4 text-pink-400 transition-colors group-hover:text-gray-100 font-mono text-sm" id="btn-status">Web3 Ready</span>
</button>
</div>
<script>
(function(){
var btn = document.getElementById('web3-connect-btn');
var textSpan = document.getElementById('btn-text');
var statusSpan = document.getElementById('btn-status');
var isConnected = false;
btn.addEventListener('click', function() {
if (!isConnected) {
textSpan.innerHTML = '0x1F9...8A2B';
statusSpan.innerHTML = '<span class="text-green-500">● Connected</span>';
btn.classList.add('border-green-500/50');
isConnected = true;
} else {
textSpan.innerHTML = 'CONNECT WALLET';
statusSpan.innerHTML = 'Web3 Ready';
btn.classList.remove('border-green-500/50');
isConnected = false;
}
});
})();
</script>
<style>
@keyframes tilt { 0%, 50%, 100% { transform: rotate(0deg); } 25% { transform: rotate(0.5deg); } 75% { transform: rotate(-0.5deg); } }
.animate-tilt { animation: tilt 5s infinite linear; }
</style>
</div>

NOTE

我已经沉浸在自己的艺术里了,后面就是玩,不贴源代码了。

ETH/USDT● BINANCE REALTIME
--
BTC LIVE TRADES● CONNECTED
Binance WS
Price(USDT)Amount(BTC)Time
MARKET SENTIMENT LOADING...
FEAR & GREED API
Current Index ...
Fear (0) Neutral (50) Greed (100)
Next Update
--:--:--
Index Value
--
Sentiment
--
MARKET OVERVIEWLIVE DATA
BitcoinBTC
Loading...
--%
EthereumETH
Loading...
--%
BNBBNB
Loading...
--%
SolanaSOL
Loading...
--%
Market Cap
Loading...
24h Vol
Loading...
Dominance
Loading...

LIVE MARKET ASSETS

Data from Binance API

进阶写作与Tailwind CSS实践
https://ababcat927.github.io/posts/语言基础/文章进阶玩法/
作者
AbabCat
发布于
2025-11-27
许可协议
MIT

部分信息可能已经过时