Files
Linux_post_install/dashboard/static/css/custom.css
T
Your Name 99085adc76 feat: add web dashboard with slide-in drawer navigation
- Flask backend with 23 API routes (entertainment, telegram, docker, system)
- Alpine.js + Tailwind CSS dark-mode SPA with 4 tabs
- pos-dashboard CLI tool with port/config management
- Mobile slide-in drawer with swipe-to-close
- Sticky header stays pinned on scroll
- Tab completion fixes for category-less tools
- POST /api/telegram/commands endpoint for adding commands
2026-08-18 11:54:41 -04:00

93 lines
3.3 KiB
CSS

/*
* Homelab Dashboard — Custom styles
*
* Beyond Tailwind: animations, scrollbars, safe-area, htmx indicators.
* This file is the design authority for non-utility CSS (see 03-DESIGN-SPEC §10).
*/
/* ── Animations ─────────────────────────────────────────────────────────────── */
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
animation: fadeInUp 0.3s ease-out forwards;
opacity: 0;
}
@keyframes badgePop {
0% { transform: scale(1); }
50% { transform: scale(1.1); }
100% { transform: scale(1); }
}
.animate-badge-pop {
animation: badgePop 0.3s ease-out;
}
/* ── Safe area padding for notched phones ───────────────────────────────────── */
main {
padding-bottom: calc(4rem + env(safe-area-inset-bottom));
}
@media (min-width: 1024px) {
main { padding-bottom: 0; }
}
/* ── Alpine.js cloak ────────────────────────────────────────────────────────── */
[x-cloak] { display: none !important; }
/* ── Scrollbar styling (dark) ───────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #475569; }
/* Firefox */
* {
scrollbar-width: thin;
scrollbar-color: #334155 transparent;
}
/* ── Reduced motion ─────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
/* ── htmx loading indicator ─────────────────────────────────────────────────── */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator { display: block; }
.htmx-settling .htmx-indicator { display: none; }
/* ── Focus visible (keyboard users only) ────────────────────────────────────── */
:focus:not(:focus-visible) { outline: none; }
:focus-visible {
outline: 2px solid #06b6d4;
outline-offset: 2px;
}
/* ── Line clamp utility ─────────────────────────────────────────────────────── */
.line-clamp-1 {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.line-clamp-2 {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}