Skip to content

Commit 1bb5171

Browse files
committed
Visual polish inspired by OpenClaw: noise texture, gradient text, glow effects, section dividers
- Add noise texture overlay to all pages for subtle grain - Apply gradient text to hero heading and features title - Add gradient section dividers between major sections on homepage - Enhance hero terminal, stat cards, and CTA box with glow shadows - Rewrite shared CSS with stronger glass morphism nav, card hover glows, gradient footer border, smoother cubic-bezier animations, and shimmer keyframes - Add light mode adjustments for new visual effects
1 parent 3ae12c0 commit 1bb5171

File tree

4 files changed

+73
-30
lines changed

4 files changed

+73
-30
lines changed

css/style.css

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
--max-w:1160px;
1717
--nav-h:64px;
1818
--term-bg:#1a1a24;
19+
--glow-sm:0 0 20px rgba(199,70,52,.15);
20+
--glow-md:0 0 40px rgba(199,70,52,.12);
1921
}
2022
/* Light theme */
2123
[data-theme="light"]{
@@ -25,6 +27,8 @@
2527
--text:#1a1a2e;--text-dim:#5a5a70;--text-muted:#8a8a9e;
2628
--green:#1a8a4a;--blue:#2a6ac0;
2729
--term-bg:#1a1a24;
30+
--glow-sm:0 0 20px rgba(199,70,52,.08);
31+
--glow-md:0 0 40px rgba(199,70,52,.06);
2832
}
2933
/* Keep terminal areas dark in light mode */
3034
[data-theme="light"] .cmd-code,
@@ -42,32 +46,42 @@
4246
[data-theme="light"] .hero-terminal{background:#1a1a24;border-color:#2a2a38}
4347
[data-theme="light"] .hero-term-bar{background:#2a2a34;border-color:#2a2a38}
4448
[data-theme="light"] .hero-term-title{color:#5a5a6e}
45-
[data-theme="light"] .nav{background:rgba(244,244,247,.88);border-bottom-color:var(--border)}
49+
[data-theme="light"] .nav{background:rgba(244,244,247,.82);border-bottom-color:var(--border)}
4650
[data-theme="light"] .nav-links a:hover{color:var(--text)}
4751
[data-theme="light"] .nav-cta{color:#fff!important}
52+
[data-theme="light"] .noise-overlay{opacity:.03}
4853
html{scroll-behavior:smooth;font-size:15px;scroll-padding-top:80px}
4954
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.65;
5055
overflow-x:hidden;min-height:100vh;padding-top:var(--nav-h)}
5156
a{color:var(--red);text-decoration:none;transition:color .2s}
5257
a:hover{color:var(--red-glow)}
5358
img{max-width:100%;display:block}
59+
60+
/* === NOISE TEXTURE OVERLAY === */
61+
.noise-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
62+
background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
63+
background-repeat:repeat;background-size:256px 256px}
64+
65+
/* === SCROLLBAR === */
5466
::-webkit-scrollbar{width:5px}
5567
::-webkit-scrollbar-track{background:var(--bg2)}
5668
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}
5769
::-webkit-scrollbar-thumb:hover{background:var(--red)}
5870

5971
/* === NAV === */
6072
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:1000;
61-
background:rgba(10,10,14,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
62-
border-bottom:1px solid var(--border);transition:box-shadow .3s}
63-
.nav.scrolled{box-shadow:0 4px 30px rgba(0,0,0,.4)}
73+
background:rgba(10,10,14,.75);backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);
74+
border-bottom:1px solid rgba(255,255,255,.06);transition:box-shadow .3s,border-color .3s}
75+
.nav.scrolled{box-shadow:0 4px 30px rgba(0,0,0,.4);border-bottom-color:var(--border)}
6476
.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 24px;height:100%;
6577
display:flex;align-items:center;justify-content:space-between}
6678
.nav-logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:1.05rem;
67-
color:var(--text);letter-spacing:.5px;text-decoration:none}
79+
color:var(--text);letter-spacing:.5px;text-decoration:none;transition:opacity .2s}
80+
.nav-logo:hover{opacity:.85}
6881
.nav-logo .logo-icon{width:32px;height:32px;background:var(--red);border-radius:8px;
6982
display:flex;align-items:center;justify-content:center;font-family:var(--display);
70-
font-size:.8rem;font-weight:900;color:#fff;letter-spacing:-1px}
83+
font-size:.8rem;font-weight:900;color:#fff;letter-spacing:-1px;
84+
box-shadow:0 2px 12px rgba(199,70,52,.3)}
7185
.nav-logo span{color:var(--red)}
7286
.nav-links{display:flex;align-items:center;gap:4px}
7387
.nav-links a{padding:8px 16px;font-size:.85rem;color:var(--text-dim);border-radius:8px;
@@ -77,82 +91,103 @@ img{max-width:100%;display:block}
7791
.nav-links a.active{color:var(--red);background:rgba(199,70,52,.12)}
7892
.nav-links a.active::after{content:'';display:none}
7993
.nav-cta{background:var(--red);color:#fff!important;padding:8px 20px!important;
80-
border-radius:8px!important;font-weight:600!important;font-size:.82rem!important}
81-
.nav-cta:hover{background:var(--red-glow)!important}
94+
border-radius:8px!important;font-weight:600!important;font-size:.82rem!important;
95+
box-shadow:0 2px 12px rgba(199,70,52,.25);transition:all .25s!important}
96+
.nav-cta:hover{background:var(--red-glow)!important;box-shadow:0 4px 20px rgba(199,70,52,.35)!important;
97+
transform:translateY(-1px)!important}
8298
.nav-hamburger{display:none;background:none;border:none;color:var(--text);font-size:1.4rem;cursor:pointer;padding:8px}
8399
.nav-actions{display:flex;align-items:center;gap:6px}
84100
.nav-toggle{background:var(--bg3);border:1px solid var(--border);border-radius:8px;
85101
padding:6px 10px;font-size:.78rem;color:var(--text-dim);cursor:pointer;transition:all .2s;
86102
font-family:var(--font);display:flex;align-items:center;gap:4px;white-space:nowrap}
87-
.nav-toggle:hover{border-color:var(--red);color:var(--text)}
103+
.nav-toggle:hover{border-color:var(--red);color:var(--text);box-shadow:var(--glow-sm)}
88104
[data-theme="light"] .nav-toggle{background:var(--card)}
89105

90106
/* === CONTAINER === */
91107
.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}
92108
.section{padding:80px 0}
93109
.section-sm{padding:50px 0}
94110

111+
/* === GRADIENT TEXT UTILITY === */
112+
.grad-text{background:linear-gradient(135deg,var(--red-glow),var(--accent2));
113+
-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
114+
95115
/* === COMMON TYPOGRAPHY === */
96116
.section-eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:3px;color:var(--red);
97-
font-weight:600;margin-bottom:12px}
117+
font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:10px}
118+
.section-eyebrow::before{content:'';width:24px;height:1px;background:var(--red)}
119+
.section-center .section-eyebrow{justify-content:center}
120+
.section-center .section-eyebrow::before{display:none}
98121
.section-title{font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:900;color:var(--text);line-height:1.3;margin-bottom:12px}
99122
.section-desc{font-size:1rem;color:var(--text-dim);max-width:600px;line-height:1.7;font-weight:300}
100123
.section-center{text-align:center}
101124
.section-center .section-desc{margin:0 auto}
102125

103126
/* === BUTTONS === */
104127
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:10px;
105-
font-size:.9rem;font-weight:600;cursor:pointer;transition:all .25s;border:none;
106-
font-family:var(--font);text-decoration:none}
107-
.btn-primary{background:var(--red);color:#fff}
108-
.btn-primary:hover{background:var(--red-glow);color:#fff;transform:translateY(-1px);box-shadow:0 8px 30px rgba(199,70,52,.25)}
128+
font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s;border:none;
129+
font-family:var(--font);text-decoration:none;position:relative}
130+
.btn-primary{background:var(--red);color:#fff;box-shadow:0 4px 20px rgba(199,70,52,.2)}
131+
.btn-primary:hover{background:var(--red-glow);color:#fff;transform:translateY(-2px);
132+
box-shadow:0 8px 30px rgba(199,70,52,.35)}
109133
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border-light)}
110-
.btn-ghost:hover{border-color:var(--red);color:var(--text);transform:translateY(-1px)}
134+
.btn-ghost:hover{border-color:var(--red);color:var(--text);transform:translateY(-2px);
135+
box-shadow:var(--glow-sm)}
111136
.btn-sm{padding:8px 18px;font-size:.82rem;border-radius:8px}
112137

113138
/* === CARDS === */
114139
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
115-
padding:28px 24px;transition:all .3s}
116-
.card:hover{border-color:var(--border-light);transform:translateY(-2px);
117-
box-shadow:0 8px 30px rgba(0,0,0,.12)}
140+
padding:28px 24px;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative}
141+
.card:hover{border-color:rgba(199,70,52,.3);transform:translateY(-3px);
142+
box-shadow:0 12px 40px rgba(0,0,0,.15),var(--glow-sm)}
143+
[data-theme="light"] .card:hover{box-shadow:0 12px 40px rgba(0,0,0,.08),0 0 20px rgba(199,70,52,.06)}
118144

119145
/* === TAGS === */
120146
.tag{display:inline-flex;align-items:center;background:var(--bg3);border:1px solid var(--border);
121147
border-radius:6px;padding:5px 12px;font-size:.78rem;color:var(--text-dim);font-weight:500;transition:all .2s}
122-
.tag:hover{border-color:var(--red);color:var(--text)}
148+
.tag:hover{border-color:var(--red);color:var(--text);box-shadow:var(--glow-sm)}
123149
.tag-red{border-color:var(--border-red);color:var(--red-glow);background:rgba(199,70,52,.06)}
124150

125151
/* === GRID BACKGROUNDS === */
126152
.bg-grid{position:relative}
127153
.bg-grid::after{content:'';position:absolute;inset:0;
128154
background-image:linear-gradient(rgba(199,70,52,.03) 1px,transparent 1px),
129155
linear-gradient(90deg,rgba(199,70,52,.03) 1px,transparent 1px);
130-
background-size:50px 50px;pointer-events:none;z-index:0}
156+
background-size:50px 50px;pointer-events:none;z-index:0;
157+
mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,black 30%,transparent 70%);
158+
-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,black 30%,transparent 70%)}
131159
.bg-grid>*{position:relative;z-index:1}
132160
.bg-glow-top{position:relative}
133161
.bg-glow-top::before{content:'';position:absolute;top:-200px;left:50%;transform:translateX(-50%);
134162
width:800px;height:500px;background:radial-gradient(ellipse,rgba(199,70,52,.08),transparent 70%);
135163
pointer-events:none}
136164

165+
/* === SECTION DIVIDER === */
166+
.section-divider{height:1px;border:none;margin:0;
167+
background:linear-gradient(90deg,transparent,var(--border-light) 20%,var(--border) 50%,var(--border-light) 80%,transparent)}
168+
137169
/* === FOOTER === */
138-
.footer{border-top:1px solid var(--border);padding:40px 0}
170+
.footer{border-top:none;padding:50px 0 40px;position:relative}
171+
.footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
172+
background:linear-gradient(90deg,transparent,rgba(199,70,52,.3) 30%,rgba(199,70,52,.4) 50%,rgba(199,70,52,.3) 70%,transparent)}
139173
.footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
140174
.footer-brand .footer-logo{font-weight:900;font-size:1.1rem;color:var(--text);margin-bottom:8px}
141175
.footer-brand .footer-logo span{color:var(--red)}
142176
.footer-brand p{font-size:.82rem;color:var(--text-muted);line-height:1.6}
143177
.footer-col h4{font-size:.78rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);
144178
font-weight:600;margin-bottom:14px}
145-
.footer-col a{display:block;font-size:.85rem;color:var(--text-dim);padding:4px 0;transition:color .2s}
146-
.footer-col a:hover{color:var(--red-glow)}
179+
.footer-col a{display:block;font-size:.85rem;color:var(--text-dim);padding:4px 0;transition:all .2s}
180+
.footer-col a:hover{color:var(--red-glow);padding-left:4px}
147181
.footer-bottom{border-top:1px solid var(--border);margin-top:30px;padding-top:20px;
148182
display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
149183
.footer-bottom span{font-size:.75rem;color:var(--text-muted)}
150184

151185
/* === ANIMATIONS === */
152-
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
186+
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
153187
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
154188
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
155-
.anim-up{animation:fadeUp .6s ease both}
189+
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
190+
.anim-up{animation:fadeUp .7s cubic-bezier(.4,0,.2,1) both}
156191
.anim-d1{animation-delay:.1s}.anim-d2{animation-delay:.2s}.anim-d3{animation-delay:.3s}.anim-d4{animation-delay:.4s}
157192

158193
/* === BACK TO TOP === */
@@ -183,4 +218,5 @@ img{max-width:100%;display:block}
183218
.section{padding:50px 0}
184219
.btn{padding:10px 22px;font-size:.85rem}
185220
.nav-toggle{padding:5px 8px;font-size:.72rem}
221+
.section-eyebrow::before{width:16px}
186222
}

docs.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
</style>
7777
</head>
7878
<body>
79+
<div class="noise-overlay"></div>
7980
<div id="nav"></div>
8081
<div class="container">
8182
<div class="doc-layout">

generator.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
</style>
8686
</head>
8787
<body>
88+
<div class="noise-overlay"></div>
8889
<div id="nav"></div>
8990
<!-- GENERATOR HEADER -->
9091
<section class="gen-hero"><div class="container">

index.html

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
.hero-term-body .t-cmt{color:var(--text-muted);font-style:italic;opacity:.6}
4040
.hero-term-body .t-w{color:#fff}.hero-term-body .t-sl{color:var(--text-muted);opacity:.5}
4141
.hero-terminal{background:var(--term-bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;
42-
box-shadow:0 20px 60px rgba(0,0,0,.4)}
42+
box-shadow:0 20px 60px rgba(0,0,0,.4),var(--glow-md)}
4343
.hero-term-body .cursor{display:inline-block;width:8px;height:16px;background:var(--red);
4444
vertical-align:text-bottom;margin-left:2px;animation:blink-cursor .8s step-end infinite}
4545
@keyframes blink-cursor{0%,100%{opacity:1}50%{opacity:0}}
@@ -50,7 +50,7 @@
5050
.stats{padding:30px 0 60px}
5151
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
5252
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:24px;text-align:center;transition:all .3s}
53-
.stat-card:hover{border-color:var(--border-red);transform:translateY(-2px)}
53+
.stat-card:hover{border-color:var(--border-red);transform:translateY(-2px);box-shadow:var(--glow-sm)}
5454
.stat-num{font-family:var(--display);font-size:2rem;font-weight:900;color:var(--red);margin-bottom:4px}
5555
.stat-label{font-size:.8rem;color:var(--text-muted);font-weight:400}
5656

@@ -100,7 +100,7 @@
100100
/* CTA */
101101
.cta-section{text-align:center;padding:80px 0}
102102
.cta-box{background:linear-gradient(135deg,rgba(199,70,52,.08),rgba(199,70,52,.02));
103-
border:1px solid var(--border-red);border-radius:var(--r-xl);padding:60px 40px;position:relative;overflow:hidden}
103+
border:1px solid var(--border-red);border-radius:var(--r-xl);padding:60px 40px;position:relative;overflow:hidden;box-shadow:var(--glow-md)}
104104
.cta-box::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;
105105
background:radial-gradient(ellipse at center,rgba(199,70,52,.04),transparent 50%);pointer-events:none}
106106
.cta-box h2{font-size:1.8rem;font-weight:900;color:var(--text);margin-bottom:12px;position:relative}
@@ -119,6 +119,7 @@
119119
</style>
120120
</head>
121121
<body>
122+
<div class="noise-overlay"></div>
122123
<!-- NAV -->
123124
<div id="nav"></div>
124125

@@ -128,7 +129,7 @@
128129
<div class="hero-inner">
129130
<div class="hero-left">
130131
<div class="hero-badge anim-up"><span class="dot"></span> <span data-i18n="heroBadge">一键安装 &middot; 生产就绪</span></div>
131-
<h1 class="anim-up anim-d1"><span data-i18n="heroTitle">Oracle 数据库<br><span>一键自动化</span>安装</span></h1>
132+
<h1 class="anim-up anim-d1 grad-text"><span data-i18n="heroTitle">Oracle 数据库<br><span>一键自动化</span>安装</span></h1>
132133
<p class="hero-desc anim-up anim-d2" data-i18n="heroDesc">从操作系统配置到数据库创建,全流程自动化。支持单机、ASM、RAC 三种部署架构,覆盖 Oracle 11g 至 26ai 全版本,兼容 20+ 主流 Linux 发行版。</p>
133134
<div class="hero-btns anim-up anim-d3">
134135
<a href="generator.html" class="btn btn-primary" data-i18n="btnGen">命令生成器 &rarr;</a>
@@ -157,6 +158,7 @@ <h1 class="anim-up anim-d1"><span data-i18n="heroTitle">Oracle 数据库<br><spa
157158
</div>
158159
</section>
159160

161+
<hr class="section-divider">
160162
<!-- STEPS -->
161163
<section class="section-sm">
162164
<div class="container">
@@ -184,11 +186,12 @@ <h4 data-i18n="step3t">执行命令</h4>
184186
</div>
185187
</section>
186188

189+
<hr class="section-divider">
187190
<!-- FEATURES -->
188191
<section class="section bg-glow-top">
189192
<div class="container">
190193
<div class="section-eyebrow reveal" data-i18n="featEye">核心特性</div>
191-
<div class="section-title reveal" data-i18n="featTitle">为什么选择 OracleShellInstall</div>
194+
<div class="section-title reveal grad-text" data-i18n="featTitle">为什么选择 OracleShellInstall</div>
192195
<p class="section-desc reveal" data-i18n="featSub">经过数百次生产环境验证,专为 DBA 打造的自动化安装方案</p>
193196
<div class="feat-grid">
194197
<div class="card feat-card reveal"><div class="feat-icon">&#9889;</div><div><h4 data-i18n="feat1t">全自动化安装</h4><p data-i18n="feat1d">一条命令完成 OS 参数配置、依赖安装、用户创建、软件安装、数据库创建全流程</p></div></div>
@@ -203,6 +206,7 @@ <h4 data-i18n="step3t">执行命令</h4>
203206
</div>
204207
</section>
205208

209+
<hr class="section-divider">
206210
<!-- MODES -->
207211
<section class="section-sm">
208212
<div class="container">
@@ -234,6 +238,7 @@ <h4 data-i18n="mode3t">RAC 集群模式</h4>
234238
</div>
235239
</section>
236240

241+
<hr class="section-divider">
237242
<!-- VERSIONS & OS -->
238243
<section class="section">
239244
<div class="container">

0 commit comments

Comments
 (0)