Redesign homepage: Palantir dark theme, Dell branding, RSS feeds, DB connection tiles

This commit is contained in:
Lakehouse Admin
2026-05-19 19:01:38 +02:00
parent a6cdb75733
commit a896699c0c
65 changed files with 735 additions and 299 deletions
+258 -159
View File
@@ -1,201 +1,300 @@
/* Refined Cyberpunk / Palantir Theme */
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&family=Montserrat:wght@400;600;700&display=swap');
/* ATC Lakehouse — Palantir dark + Dell orange */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
:root {
--neon-blue: #00f3ff;
--neon-purple: #9d00ff;
--neon-green: #00ff66;
--neon-pink: #ff007f;
--neon-yellow: #ffea00;
--neon-orange: #ff6600;
--bg-dark: #050810;
--card-bg-light: rgba(20, 27, 45, 0.85);
--card-bg-dark: rgba(10, 15, 28, 0.6);
--bg-deep: #06080c;
--bg-main: #0a0e14;
--bg-card: #121820;
--bg-card-hover: #181f2a;
--border: rgba(74, 158, 255, 0.12);
--border-hover: rgba(232, 117, 42, 0.45);
--text: #e8ecf1;
--text-muted: #8b9cb3;
--accent-blue: #4a9eff;
--accent-orange: #e8752a;
--accent-orange-glow: rgba(232, 117, 42, 0.25);
--dell-blue: #007db8;
}
* {
font-family: 'Inter', system-ui, sans-serif !important;
}
body {
background-color: var(--bg-dark) !important;
background-image:
radial-gradient(circle at 20% 40%, rgba(0, 243, 255, 0.05) 0%, transparent 50%),
radial-gradient(circle at 80% 60%, rgba(157, 0, 255, 0.05) 0%, transparent 50%) !important;
font-family: 'Montserrat', sans-serif !important;
color: #f1f5f9 !important;
line-height: 1.5;
background: radial-gradient(ellipse 120% 80% at 50% -20%, rgba(0, 125, 184, 0.08), transparent),
radial-gradient(ellipse 80% 50% at 100% 0%, rgba(232, 117, 42, 0.06), transparent),
var(--bg-main) !important;
color: var(--text) !important;
min-height: 100vh;
}
/* Hide default homepage elements that make it look standard */
header { border-bottom: 1px solid rgba(255,255,255,0.03) !important; }
/* ── Header / widgets row ── */
#information-widgets,
.information-widget-container {
background: linear-gradient(180deg, #0d1219 0%, rgba(18, 24, 32, 0.98) 100%) !important;
border-bottom: 2px solid transparent !important;
border-image: linear-gradient(90deg, var(--dell-blue), var(--accent-orange), var(--dell-blue)) 1 !important;
padding: 14px 28px !important;
}
header {
background: transparent !important;
border: none !important;
}
header h1 {
font-size: 1.35rem !important;
font-weight: 700 !important;
background: linear-gradient(90deg, #fff 30%, var(--accent-orange) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.information-widget-greeting {
color: var(--text) !important;
}
.information-widget-greeting .text-theme-800 {
color: var(--accent-orange) !important;
font-weight: 600 !important;
}
.information-widget-greeting .text-theme-500 {
color: var(--text-muted) !important;
font-size: 0.75rem !important;
}
.information-widget-logo img,
.information-widget-logo svg {
max-height: 48px !important;
width: auto !important;
filter: drop-shadow(0 0 14px var(--accent-orange-glow));
}
.information-widget-search input {
background: var(--bg-deep) !important;
border: 1px solid var(--border) !important;
border-radius: 8px !important;
color: var(--text) !important;
}
.information-widget-search input:focus {
border-color: var(--accent-orange) !important;
box-shadow: 0 0 0 2px var(--accent-orange-glow) !important;
}
main {
padding: 24px 28px 48px !important;
max-width: 1720px !important;
margin: 0 auto !important;
}
.services-group {
margin-bottom: 32px !important;
}
.services-group > div:first-child,
.services-group h2 {
font-size: 0.72rem !important;
font-weight: 700 !important;
text-transform: uppercase !important;
letter-spacing: 0.14em !important;
color: var(--accent-orange) !important;
margin-bottom: 14px !important;
padding-bottom: 8px !important;
border-bottom: 2px solid transparent !important;
border-image: linear-gradient(90deg, var(--accent-orange), var(--accent-blue), transparent) 1 !important;
}
.services-group ul,
.services-group > div:last-child {
display: grid !important;
grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)) !important;
gap: 12px !important;
list-style: none !important;
padding: 0 !important;
margin: 0 !important;
}
/* Database sections — wider tiles, always show connection strings */
.services-group:has(h2) ul .service:has(.service-description) {
min-height: 168px !important;
}
/* The Cards - Sleek and Tight */
.service {
background: linear-gradient(135deg, var(--card-bg-light) 0%, var(--card-bg-dark) 100%) !important;
border: 1px solid rgba(255, 255, 255, 0.05) !important;
border-left: 3px solid rgba(255, 255, 255, 0.1) !important;
border-radius: 6px 12px 12px 6px !important;
padding: 12px 16px !important;
margin-bottom: 16px !important;
transition: all 0.3s ease !important;
box-shadow: 0 4px 12px rgba(0,0,0,0.4) !important;
backdrop-filter: blur(10px) !important;
flex-direction: column !important;
align-items: center !important;
text-align: center !important;
background: var(--bg-card) !important;
border: 1px solid var(--border) !important;
border-radius: 12px !important;
padding: 16px 12px 14px !important;
min-height: 132px !important;
transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s !important;
position: relative !important;
overflow: visible !important;
}
.service::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--dell-blue), var(--accent-orange));
opacity: 0;
transition: opacity 0.2s;
border-radius: 12px 12px 0 0;
}
.service:hover {
transform: translateY(-2px) translateX(4px) !important;
background: linear-gradient(135deg, rgba(30, 41, 65, 0.95) 0%, rgba(15, 23, 42, 0.8) 100%) !important;
border-color: rgba(255, 255, 255, 0.15) !important;
background: var(--bg-card-hover) !important;
border-color: var(--border-hover) !important;
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.4), 0 0 24px var(--accent-orange-glow) !important;
transform: translateY(-4px) !important;
z-index: 2 !important;
}
/* Typography */
.service-name {
font-family: 'Fira Code', monospace !important;
font-size: 1.05rem !important;
font-weight: 600 !important;
letter-spacing: 0.5px !important;
color: #ffffff !important;
.service:hover::before {
opacity: 1;
}
.service-description {
font-size: 0.8rem !important;
color: #94a3b8 !important;
margin-top: 4px !important;
}
/* THE ICONS - Smaller and perfectly proportioned */
.service-icon {
width: 3.2rem !important;
height: 3.2rem !important;
min-width: 3.2rem !important;
background: rgba(0, 0, 0, 0.25) !important;
border-radius: 10px !important;
width: 52px !important;
height: 52px !important;
min-width: 52px !important;
margin: 0 0 10px 0 !important;
padding: 8px !important;
margin-right: 16px !important;
border-radius: 12px !important;
background: linear-gradient(145deg, rgba(0, 125, 184, 0.12), rgba(232, 117, 42, 0.08)) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
transition: all 0.3s ease !important;
box-shadow: inset 0 0 10px rgba(0,0,0,0.5) !important;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07);
}
.service-icon img,
.service-icon img,
.service-icon svg {
width: 100% !important;
height: 100% !important;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)) saturate(130%) brightness(1.1) !important;
transition: all 0.3s ease !important;
object-fit: contain !important;
filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}
.service:hover .service-icon {
background: rgba(255, 255, 255, 0.05) !important;
transform: scale(1.08) !important;
box-shadow: inset 0 0 15px rgba(255,255,255,0.05) !important;
.service-name {
font-size: 0.84rem !important;
font-weight: 600 !important;
color: var(--text) !important;
line-height: 1.25 !important;
margin-bottom: 6px !important;
width: 100% !important;
}
.service:hover .service-icon svg,
.service:hover .service-icon img {
filter: drop-shadow(0 0 8px currentColor) saturate(150%) brightness(1.2) !important;
.service-description {
font-family: 'JetBrains Mono', monospace !important;
font-size: 0.56rem !important;
line-height: 1.5 !important;
color: #7d8fa8 !important;
white-space: pre-wrap !important;
word-break: break-word !important;
width: 100% !important;
text-align: left !important;
padding: 0 4px !important;
}
/* Icon colors based on services.yaml */
.mdi-apache-kafka, .si-apachekafka { color: #E02014 !important; }
.mdi-database-sync, .si-apachedebezium { color: #4ECDC4 !important; }
.mdi-star-four-points, .si-apachespark { color: #E25A1C !important; }
.si-trino { color: #DD00A1 !important; }
.si-mongodb { color: #47A248 !important; }
.si-postgresql { color: #4169E1 !important; }
.si-apachecassandra { color: #1287B1 !important; }
.si-mysql { color: #4479A1 !important; }
.si-neo4j { color: #008CC1 !important; }
.mdi-database-cloud, .si-minio { color: #00d2ff !important; }
.mdi-server-network { color: #b500ff !important; }
.si-apacheairflow { color: #017CEE !important; }
.mdi-chart-bar, .si-apachesuperset { color: #6c5ce7 !important; }
.si-elasticsearch { color: #005571 !important; }
.si-kibana { color: #F04E98 !important; }
.si-grafana { color: #F46800 !important; }
.si-proxmox { color: #E57000 !important; }
.si-git { color: #F05032 !important; }
.mdi-account-group, .si-openldap { color: #0984e3 !important; }
.mdi-rss { color: #f59e0b !important; }
/* Group Headers - Tighter and more professional */
.services-group > div.flex.items-center.justify-between.mb-2 {
border-bottom: 1px solid rgba(255,255,255,0.1) !important;
padding-bottom: 8px !important;
margin-bottom: 16px !important;
/* DB / API tiles: show full connection info */
.service:not([href]) .service-description,
.service[href=""] .service-description {
max-height: none !important;
color: #9aadc4 !important;
}
.services-group .text-theme-700.dark\:text-theme-200.text-lg.font-bold {
font-family: 'Montserrat', sans-serif !important;
font-weight: 700 !important;
font-size: 1.15rem !important;
text-transform: uppercase !important;
letter-spacing: 2px !important;
.service:hover .service-description {
max-height: none !important;
color: #b8c8dc !important;
}
/* --- COLUMN GLOW EFFECTS (Borders & Headers only) --- */
/* 1. Data Pipeline (Blue) */
.services-group:nth-child(1) .service { border-left-color: var(--neon-blue) !important; }
.services-group:nth-child(1) .service:hover { box-shadow: -5px 0 15px rgba(0, 243, 255, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(1) .text-lg.font-bold { color: var(--neon-blue) !important; text-shadow: 0 0 10px rgba(0, 243, 255, 0.3) !important; }
/* 2. Source Systems (Purple) */
.services-group:nth-child(2) .service { border-left-color: var(--neon-purple) !important; }
.services-group:nth-child(2) .service:hover { box-shadow: -5px 0 15px rgba(157, 0, 255, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(2) .text-lg.font-bold { color: var(--neon-purple) !important; text-shadow: 0 0 10px rgba(157, 0, 255, 0.3) !important; }
/* 3. Storage (Green) */
.services-group:nth-child(3) .service { border-left-color: var(--neon-green) !important; }
.services-group:nth-child(3) .service:hover { box-shadow: -5px 0 15px rgba(0, 255, 102, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(3) .text-lg.font-bold { color: var(--neon-green) !important; text-shadow: 0 0 10px rgba(0, 255, 102, 0.3) !important; }
/* 4. Orchestration (Pink) */
.services-group:nth-child(4) .service { border-left-color: var(--neon-pink) !important; }
.services-group:nth-child(4) .service:hover { box-shadow: -5px 0 15px rgba(255, 0, 127, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(4) .text-lg.font-bold { color: var(--neon-pink) !important; text-shadow: 0 0 10px rgba(255, 0, 127, 0.3) !important; }
/* 5. Analytics (Yellow) */
.services-group:nth-child(5) .service { border-left-color: var(--neon-yellow) !important; }
.services-group:nth-child(5) .service:hover { box-shadow: -5px 0 15px rgba(255, 234, 0, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(5) .text-lg.font-bold { color: var(--neon-yellow) !important; text-shadow: 0 0 10px rgba(255, 234, 0, 0.3) !important; }
/* 6. Management (Orange) */
.services-group:nth-child(6) .service { border-left-color: var(--neon-orange) !important; }
.services-group:nth-child(6) .service:hover { box-shadow: -5px 0 15px rgba(255, 102, 0, 0.15), 0 4px 12px rgba(0,0,0,0.5) !important; }
.services-group:nth-child(6) .text-lg.font-bold { color: var(--neon-orange) !important; text-shadow: 0 0 10px rgba(255, 102, 0, 0.3) !important; }
/* --- 7. RSS FEEDS (Compact Layout) --- */
.services-group:nth-child(7) .service {
border-left-color: #64748b !important;
padding: 8px 12px !important;
margin-bottom: 10px !important;
background: rgba(15, 23, 42, 0.4) !important;
box-shadow: none !important;
.status-status-healthy,
.status-dot-green {
background: #3dd68c !important;
box-shadow: 0 0 8px rgba(61, 214, 140, 0.5) !important;
}
.services-group:nth-child(7) .service:hover {
background: rgba(30, 41, 59, 0.8) !important;
box-shadow: -3px 0 10px rgba(100, 116, 139, 0.2) !important;
.status-status-unhealthy,
.status-dot-red {
background: #f87171 !important;
}
.services-group:nth-child(7) .service-icon {
width: 2rem !important;
height: 2rem !important;
min-width: 2rem !important;
padding: 5px !important;
margin-right: 12px !important;
border-radius: 6px !important;
.ping {
position: absolute !important;
top: 8px !important;
right: 8px !important;
font-size: 0.55rem !important;
margin: 0 !important;
}
.services-group:nth-child(7) .service-name {
font-size: 0.9rem !important;
font-family: 'Inter', sans-serif !important;
font-weight: 500 !important;
}
.services-group:nth-child(7) .service-description {
.information-widget-resources {
font-size: 0.75rem !important;
margin-top: 2px !important;
color: var(--text-muted) !important;
}
.services-group:nth-child(7) .text-lg.font-bold {
color: #94a3b8 !important;
text-shadow: none !important;
font-size: 1rem !important;
footer {
opacity: 0.45;
border-top: 1px solid var(--border) !important;
}
/* Live feed widgets */
.services-group:has(.service-widget) ul {
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
}
.services-group:has(.service-widget) .service {
min-height: 220px !important;
align-items: stretch !important;
}
.service-widget {
background: var(--bg-deep) !important;
border-radius: 8px !important;
border: 1px solid var(--border) !important;
margin-top: 10px !important;
padding: 8px 10px !important;
max-height: 200px !important;
overflow-y: auto !important;
width: 100% !important;
text-align: left !important;
}
.service-widget::-webkit-scrollbar {
width: 4px;
}
.service-widget::-webkit-scrollbar-thumb {
background: var(--accent-orange);
border-radius: 4px;
}
.service-widget a,
.service-widget li a {
color: var(--accent-blue) !important;
font-size: 0.65rem !important;
line-height: 1.4 !important;
display: block !important;
padding: 3px 0 !important;
}
.service-widget a:hover {
color: var(--accent-orange) !important;
}
.service-widget li {
border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
padding: 4px 0 !important;
}
.information-widget-openmeteo {
color: var(--text-muted) !important;
font-size: 0.8rem !important;
}