Files
ai-tool-station-20260928221103/css/style.css
T

238 lines
5.3 KiB
CSS

:root {
--bg: #0b0d17;
--bg-2: #12142400;
--card: #151827;
--card-hover: #1c2033;
--border: #262a3d;
--text: #e8eaf2;
--muted: #8a90a8;
--primary: #6d5efc;
--primary-2: #22d3ee;
--accent: #ff5c8a;
--radius: 14px;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: radial-gradient(1200px 600px at 20% -10%, #1a1f3a 0%, transparent 60%),
radial-gradient(900px 500px at 100% 0%, #1e2a4a 0%, transparent 55%),
var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif;
min-height: 100vh;
-webkit-font-smoothing: antialiased;
}
.topbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 24px;
border-bottom: 1px solid var(--border);
backdrop-filter: blur(10px);
position: sticky;
top: 0;
z-index: 10;
background: rgba(11, 13, 23, 0.7);
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.logo { font-size: 22px; }
.brand-name { letter-spacing: 0.3px; }
.container {
max-width: 1080px;
margin: 0 auto;
padding: 40px 20px 80px;
}
.hero { text-align: center; margin-bottom: 40px; }
.hero h1 {
font-size: clamp(28px, 5vw, 44px);
margin: 0 0 12px;
font-weight: 800;
letter-spacing: -0.5px;
}
.hero .grad {
background: linear-gradient(90deg, var(--primary), var(--primary-2));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.hero p { color: var(--muted); margin: 0; font-size: 16px; }
.tools-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 16px;
}
.tool-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 20px;
cursor: pointer;
transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
text-align: left;
color: var(--text);
font: inherit;
}
.tool-card:hover {
background: var(--card-hover);
border-color: #3a3f5c;
transform: translateY(-3px);
}
.tool-icon { font-size: 26px; display: block; margin-bottom: 10px; }
.tool-name { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.tool-desc { font-size: 13px; color: var(--muted); line-height: 1.5; }
.panel {
margin-top: 32px;
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 24px;
box-shadow: var(--shadow);
}
.panel-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.panel-head h2 { margin: 0; font-size: 20px; }
.panel-desc { color: var(--muted); margin: 0 0 16px; font-size: 14px; }
.input-box {
width: 100%;
min-height: 140px;
resize: vertical;
background: #0f1220;
color: var(--text);
border: 1px solid var(--border);
border-radius: 10px;
padding: 14px;
font-size: 14px;
line-height: 1.6;
font-family: inherit;
outline: none;
transition: border-color 0.15s ease;
}
.input-box:focus { border-color: var(--primary); }
.actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 14px 0;
}
.primary-btn, .ghost-btn {
border-radius: 10px;
padding: 10px 16px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: all 0.15s ease;
border: 1px solid transparent;
font-family: inherit;
}
.primary-btn {
background: linear-gradient(90deg, var(--primary), #8b7dff);
color: white;
box-shadow: 0 6px 18px rgba(109, 94, 252, 0.35);
}
.primary-btn:hover { filter: brightness(1.08); }
.primary-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.ghost-btn {
background: transparent;
color: var(--text);
border-color: var(--border);
}
.ghost-btn:hover { background: #1b1f33; border-color: #3a3f5c; }
.output {
background: #0f1220;
border: 1px dashed var(--border);
border-radius: 10px;
padding: 16px;
min-height: 80px;
font-size: 14px;
line-height: 1.7;
white-space: pre-wrap;
word-break: break-word;
color: #d6d9e6;
}
.footer {
text-align: center;
color: var(--muted);
font-size: 13px;
padding: 24px;
border-top: 1px solid var(--border);
}
/* Modal */
.modal {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.55);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
z-index: 100;
}
.modal-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 24px;
width: 100%;
max-width: 420px;
box-shadow: var(--shadow);
}
.modal-card h3 { margin: 0 0 6px; }
.hint { color: var(--muted); font-size: 13px; margin: 0 0 16px; }
.modal-card label {
display: block;
font-size: 13px;
color: var(--muted);
margin-bottom: 12px;
}
.modal-card input {
display: block;
width: 100%;
margin-top: 6px;
background: #0f1220;
color: var(--text);
border: 1px solid var(--border);
border-radius: 8px;
padding: 10px 12px;
font-size: 14px;
outline: none;
font-family: inherit;
}
.modal-card input:focus { border-color: var(--primary); }
.modal-actions {
display: flex;
gap: 10px;
justify-content: flex-end;
margin-top: 8px;
}
@media (max-width: 520px) {
.container { padding: 24px 14px 60px; }
.panel { padding: 18px; }
.actions { flex-direction: column; }
.primary-btn, .ghost-btn { width: 100%; text-align: center; }
}