space-fetch / static /style.css
Orion-zhen's picture
space fetch
0404756
/* Global Styles */
:root {
--bg-color: #0d1117;
--card-bg: rgba(22, 27, 34, 0.7);
--text-primary: #e6edf3;
--text-secondary: #8b949e;
--accent-color: #58a6ff;
--success-color: #3fb950;
--warning-color: #d29922;
--danger-color: #f85149;
--border-color: #30363d;
--gpu-color: #76e191;
--font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'JetBrains Mono', monospace;
}
body {
margin: 0;
padding: 0;
background-color: var(--bg-color);
color: var(--text-primary);
font-family: var(--font-heading);
line-height: 1.6;
min-height: 100vh;
overflow-x: hidden;
}
/* Background Effects */
.background-effects {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
overflow: hidden;
}
.gradient-orb {
position: absolute;
border-radius: 50%;
filter: blur(100px);
opacity: 0.15;
animation: float 20s infinite ease-in-out;
}
.orb-1 {
top: -10%;
left: -10%;
width: 600px;
height: 600px;
background: radial-gradient(circle, #58a6ff, #1f6feb);
}
.orb-2 {
bottom: -10%;
right: -10%;
width: 700px;
height: 700px;
background: radial-gradient(circle, #7e3ddb, #a371f7);
animation-delay: -5s;
}
.orb-3 {
top: 40%;
left: 40%;
width: 500px;
height: 500px;
background: radial-gradient(circle, #3fb950, #2ea043);
animation-delay: -10s;
}
@keyframes float {
0%, 100% { transform: translate(0, 0); }
33% { transform: translate(50px, -50px); }
66% { transform: translate(-30px, 30px); }
}
/* Container */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 2rem;
}
/* Header */
.header {
text-align: center;
margin-bottom: 4rem;
animation: fadeIn 1s ease-out;
}
.logo h1 {
font-size: 3rem;
margin: 0;
background: linear-gradient(135deg, #fff 0%, #a5d6ff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
display: inline-block;
}
.logo-icon {
font-size: 3rem;
margin-right: 1rem;
vertical-align: middle;
}
.tagline {
color: var(--text-secondary);
font-size: 1.2rem;
margin-top: 0.5rem;
}
/* Sections */
.section {
margin-bottom: 4rem;
animation: slideUp 0.8s ease-out;
}
.section-title {
font-size: 1.8rem;
margin-bottom: 1.5rem;
display: flex;
align-items: center;
border-bottom: 1px solid var(--border-color);
padding-bottom: 1rem;
}
.section-title .icon {
margin-right: 0.8rem;
}
/* Cards */
.card, .hardware-card, .benchmark-card, .score-card {
background: var(--card-bg);
backdrop-filter: blur(10px);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 1.5rem;
transition: transform 0.2s, box-shadow 0.2s;
}
.card:hover, .hardware-card:hover, .benchmark-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
border-color: var(--accent-color);
}
/* Hardware Grid */
.hardware-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.hardware-card {
display: flex;
flex-direction: column;
}
.hardware-icon {
font-size: 2rem;
margin-bottom: 1rem;
}
.hardware-content h3 {
margin: 0 0 0.5rem 0;
color: var(--text-secondary);
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 1px;
}
.hardware-value {
font-size: 1.2rem;
font-weight: 600;
margin-bottom: 0.5rem;
}
.hardware-details {
margin-top: auto;
font-size: 0.85rem;
color: var(--text-secondary);
line-height: 1.4;
}
/* Progress Bars */
.progress-bar {
width: 100%;
height: 6px;
background: rgba(255, 255, 255, 0.1);
border-radius: 3px;
margin: 0.5rem 0;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: var(--accent-color);
border-radius: 3px;
transition: width 1s ease-in-out;
}
.gpu-fill {
background: var(--gpu-color);
}
/* System Info List */
.info-row {
display: flex;
justify-content: space-between;
padding: 0.5rem 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.info-label {
color: var(--text-secondary);
}
.info-value {
font-family: var(--font-mono);
color: var(--accent-color);
}
/* Benchmarks */
.benchmark-controls {
display: flex;
gap: 1rem;
margin-bottom: 2rem;
}
.btn {
padding: 0.8rem 1.5rem;
border-radius: 6px;
border: none;
font-weight: 600;
cursor: pointer;
display: flex;
align-items: center;
transition: all 0.2s;
}
.btn-primary {
background: var(--accent-color);
color: #fff;
}
.btn-primary:hover {
background: #3a8cf0;
transform: scale(1.02);
}
.btn-secondary {
background: rgba(255, 255, 255, 0.1);
color: var(--text-primary);
}
.btn-secondary:hover {
background: rgba(255, 255, 255, 0.15);
}
.btn-icon {
margin-right: 0.5rem;
}
.btn-mini {
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
color: var(--text-primary);
padding: 0.3rem 0.8rem;
border-radius: 4px;
font-size: 0.8rem;
cursor: pointer;
transition: all 0.2s;
}
.btn-mini:hover {
background: var(--accent-color);
border-color: var(--accent-color);
}
.btn-mini:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.benchmark-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 1.5rem;
}
.benchmark-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.benchmark-header h3 {
margin: 0;
display: flex;
align-items: center;
font-size: 1.1rem;
}
.benchmark-icon {
margin-right: 0.5rem;
}
.benchmark-placeholder {
color: var(--text-secondary);
text-align: center;
padding: 2rem 0;
font-style: italic;
}
/* Benchmark Result Items */
.bench-result-item {
margin-bottom: 1rem;
}
.bench-label {
display: flex;
justify-content: space-between;
margin-bottom: 0.3rem;
font-size: 0.9rem;
}
.bench-score {
font-family: var(--font-mono);
color: var(--warning-color);
}
.bench-value {
color: var(--success-color);
font-weight: 500;
}
/* Animations */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.loading-spinner {
display: inline-block;
width: 20px;
height: 20px;
border: 3px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
border-top-color: var(--accent-color);
animation: spin 1s ease-in-out infinite;
margin-right: 0.5rem;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Skeleton Loading */
.skeleton {
animation: pulse 1.5s infinite;
}
.skeleton-line {
height: 20px;
background: rgba(255, 255, 255, 0.05);
border-radius: 4px;
margin-bottom: 0.5rem;
}
.skeleton-line.short {
width: 60%;
}
@keyframes pulse {
0% { opacity: 0.6; }
50% { opacity: 1; }
100% { opacity: 0.6; }
}
/* Responsive */
@media (max-width: 768px) {
.header h1 {
font-size: 2rem;
}
.hardware-grid, .benchmark-grid {
grid-template-columns: 1fr;
}
}