mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 11:36:17 +00:00
Update AppImage
This commit is contained in:
@@ -1,13 +1,11 @@
|
|||||||
@tailwind base;
|
@import "tailwindcss";
|
||||||
@tailwind components;
|
@import "tw-animate-css";
|
||||||
@tailwind utilities;
|
|
||||||
|
@custom-variant dark (&:is(.dark *));
|
||||||
|
|
||||||
/* ===================== */
|
|
||||||
/* Light Mode (default) */
|
|
||||||
/* ===================== */
|
|
||||||
:root {
|
:root {
|
||||||
--background: oklch(1 0 0); /* blanco */
|
--background: oklch(1 0 0); /* blanco */
|
||||||
--foreground: oklch(0.145 0 0); /* casi negro */
|
--foreground: oklch(0.145 0 0); /* casi negro */
|
||||||
|
|
||||||
--card: oklch(1 0 0);
|
--card: oklch(1 0 0);
|
||||||
--card-foreground: var(--foreground);
|
--card-foreground: var(--foreground);
|
||||||
@@ -15,14 +13,14 @@
|
|||||||
--popover: var(--card);
|
--popover: var(--card);
|
||||||
--popover-foreground: var(--foreground);
|
--popover-foreground: var(--foreground);
|
||||||
|
|
||||||
--primary: oklch(0.205 0 0); /* gris oscuro */
|
--primary: oklch(0.205 0 0); /* gris oscuro */
|
||||||
--primary-foreground: oklch(0.985 0 0); /* blanco */
|
--primary-foreground: oklch(0.985 0 0); /* blanco */
|
||||||
|
|
||||||
--secondary: oklch(0.97 0 0);
|
--secondary: oklch(0.97 0 0);
|
||||||
--secondary-foreground: var(--primary);
|
--secondary-foreground: var(--primary);
|
||||||
|
|
||||||
--muted: oklch(0.97 0 0);
|
--muted: oklch(0.97 0 0);
|
||||||
--muted-foreground: oklch(0.556 0 0); /* gris medio */
|
--muted-foreground: oklch(0.556 0 0); /* gris medio */
|
||||||
|
|
||||||
--accent: oklch(0.97 0 0);
|
--accent: oklch(0.97 0 0);
|
||||||
--accent-foreground: var(--primary);
|
--accent-foreground: var(--primary);
|
||||||
@@ -50,14 +48,18 @@
|
|||||||
--sidebar-accent-foreground: var(--primary);
|
--sidebar-accent-foreground: var(--primary);
|
||||||
--sidebar-border: var(--border);
|
--sidebar-border: var(--border);
|
||||||
--sidebar-ring: var(--ring);
|
--sidebar-ring: var(--ring);
|
||||||
|
|
||||||
|
/* Added layout variables for header and navigation positioning */
|
||||||
|
--header-height: 88px;
|
||||||
|
--content-padding: 160px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===================== */
|
/* ===================== */
|
||||||
/* Dark Mode (gris) */
|
/* Dark Mode (gris) */
|
||||||
/* ===================== */
|
/* ===================== */
|
||||||
.dark {
|
.dark {
|
||||||
--background: oklch(0.22 0 0); /* gris oscuro */
|
--background: oklch(0.22 0 0); /* gris oscuro */
|
||||||
--foreground: oklch(0.97 0 0); /* blanco/gris claro */
|
--foreground: oklch(0.97 0 0); /* blanco/gris claro */
|
||||||
|
|
||||||
--card: oklch(0.24 0 0);
|
--card: oklch(0.24 0 0);
|
||||||
--card-foreground: var(--foreground);
|
--card-foreground: var(--foreground);
|
||||||
@@ -65,7 +67,7 @@
|
|||||||
--popover: var(--card);
|
--popover: var(--card);
|
||||||
--popover-foreground: var(--foreground);
|
--popover-foreground: var(--foreground);
|
||||||
|
|
||||||
--primary: oklch(0.83 0 0); /* casi blanco */
|
--primary: oklch(0.83 0 0); /* casi blanco */
|
||||||
--primary-foreground: var(--background);
|
--primary-foreground: var(--background);
|
||||||
|
|
||||||
--secondary: oklch(0.28 0 0);
|
--secondary: oklch(0.28 0 0);
|
||||||
@@ -84,8 +86,8 @@
|
|||||||
--input: var(--border);
|
--input: var(--border);
|
||||||
--ring: oklch(0.55 0 0);
|
--ring: oklch(0.55 0 0);
|
||||||
|
|
||||||
--chart-1: oklch(0.60 0.20 255);
|
--chart-1: oklch(0.6 0.2 255);
|
||||||
--chart-2: oklch(0.70 0.16 165);
|
--chart-2: oklch(0.7 0.16 165);
|
||||||
--chart-3: oklch(0.76 0.19 70);
|
--chart-3: oklch(0.76 0.19 70);
|
||||||
--chart-4: oklch(0.63 0.25 305);
|
--chart-4: oklch(0.63 0.25 305);
|
||||||
--chart-5: oklch(0.66 0.24 20);
|
--chart-5: oklch(0.66 0.24 20);
|
||||||
@@ -100,6 +102,63 @@
|
|||||||
--sidebar-ring: var(--ring);
|
--sidebar-ring: var(--ring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Added media query for mobile layout variables */
|
||||||
|
@media (max-width: 1023px) {
|
||||||
|
:root {
|
||||||
|
--header-height: 140px;
|
||||||
|
--content-padding: 220px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@theme inline {
|
||||||
|
/* optional: --font-sans, --font-serif, --font-mono if they are applied in the layout.tsx */
|
||||||
|
--color-background: var(--background);
|
||||||
|
--color-foreground: var(--foreground);
|
||||||
|
--color-card: var(--card);
|
||||||
|
--color-card-foreground: var(--card-foreground);
|
||||||
|
--color-popover: var(--popover);
|
||||||
|
--color-popover-foreground: var(--popover-foreground);
|
||||||
|
--color-primary: var(--primary);
|
||||||
|
--color-primary-foreground: var(--primary-foreground);
|
||||||
|
--color-secondary: var(--secondary);
|
||||||
|
--color-secondary-foreground: var(--secondary-foreground);
|
||||||
|
--color-muted: var(--muted);
|
||||||
|
--color-muted-foreground: var(--muted-foreground);
|
||||||
|
--color-accent: var(--accent);
|
||||||
|
--color-accent-foreground: var(--accent-foreground);
|
||||||
|
--color-destructive: var(--destructive);
|
||||||
|
--color-destructive-foreground: var(--destructive-foreground);
|
||||||
|
--color-border: var(--border);
|
||||||
|
--color-input: var(--input);
|
||||||
|
--color-ring: var(--ring);
|
||||||
|
--color-chart-1: var(--chart-1);
|
||||||
|
--color-chart-2: var(--chart-2);
|
||||||
|
--color-chart-3: var(--chart-3);
|
||||||
|
--color-chart-4: var(--chart-4);
|
||||||
|
--color-chart-5: var(--chart-5);
|
||||||
|
--radius-sm: calc(var(--radius) - 4px);
|
||||||
|
--radius-md: calc(var(--radius) - 2px);
|
||||||
|
--radius-lg: var(--radius);
|
||||||
|
--radius-xl: calc(var(--radius) + 4px);
|
||||||
|
--color-sidebar: var(--sidebar);
|
||||||
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
||||||
|
--color-sidebar-primary: var(--sidebar-primary);
|
||||||
|
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
||||||
|
--color-sidebar-accent: var(--sidebar-accent);
|
||||||
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||||
|
--color-sidebar-border: var(--sidebar-border);
|
||||||
|
--color-sidebar-ring: var(--sidebar-ring);
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer base {
|
||||||
|
* {
|
||||||
|
@apply border-border outline-ring/50;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
@apply bg-background text-foreground;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ===================== */
|
/* ===================== */
|
||||||
/* Base layer */
|
/* Base layer */
|
||||||
/* ===================== */
|
/* ===================== */
|
||||||
@@ -113,10 +172,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Foco accesible */
|
/* Foco accesible */
|
||||||
:is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus {
|
:is(button, [role="button"], a, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus {
|
||||||
@apply outline-none;
|
@apply outline-none;
|
||||||
}
|
}
|
||||||
:is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible {
|
:is(button, [role="button"], a, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
|
||||||
@apply ring-2;
|
@apply ring-2;
|
||||||
--tw-ring-color: var(--ring);
|
--tw-ring-color: var(--ring);
|
||||||
--tw-ring-opacity: 0.5; /* equivalente al /50 */
|
--tw-ring-opacity: 0.5; /* equivalente al /50 */
|
||||||
|
|||||||
@@ -133,11 +133,11 @@ export function ProxmoxDashboard() {
|
|||||||
const handleScroll = () => {
|
const handleScroll = () => {
|
||||||
const currentScrollY = window.scrollY
|
const currentScrollY = window.scrollY
|
||||||
|
|
||||||
if (currentScrollY < 50) {
|
if (currentScrollY < 10) {
|
||||||
// Show navigation when near top
|
// Always show navigation when at the very top
|
||||||
setShowNavigation(true)
|
setShowNavigation(true)
|
||||||
} else if (currentScrollY > lastScrollY && currentScrollY > 100) {
|
} else if (currentScrollY > lastScrollY && currentScrollY > 80) {
|
||||||
// Scrolling down - hide navigation (only after 100px)
|
// Scrolling down - hide navigation (only after 80px)
|
||||||
setShowNavigation(false)
|
setShowNavigation(false)
|
||||||
} else if (currentScrollY < lastScrollY) {
|
} else if (currentScrollY < lastScrollY) {
|
||||||
// Scrolling up - show navigation
|
// Scrolling up - show navigation
|
||||||
@@ -228,7 +228,7 @@ export function ProxmoxDashboard() {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<header className="border-b border-border bg-card sticky top-0 z-50 shadow-sm">
|
<header className="border-b border-border bg-card fixed top-0 left-0 right-0 z-50 shadow-sm">
|
||||||
<div className="container mx-auto px-4 md:px-6 py-4 md:py-4">
|
<div className="container mx-auto px-4 md:px-6 py-4 md:py-4">
|
||||||
{/* Logo and Title */}
|
{/* Logo and Title */}
|
||||||
<div className="flex items-start justify-between gap-3">
|
<div className="flex items-start justify-between gap-3">
|
||||||
@@ -317,13 +317,11 @@ export function ProxmoxDashboard() {
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className={`sticky bg-background border-b border-border transition-transform duration-300 ease-in-out ${
|
className={`fixed left-0 right-0 bg-background border-b border-border transition-transform duration-300 ease-in-out z-40 ${
|
||||||
showNavigation ? "translate-y-0" : "-translate-y-[calc(100%+1px)]"
|
showNavigation ? "translate-y-0" : "-translate-y-full"
|
||||||
}`}
|
}`}
|
||||||
style={{
|
style={{
|
||||||
top: "0",
|
top: "var(--header-height, 88px)",
|
||||||
zIndex: 40,
|
|
||||||
marginTop: "0",
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="container mx-auto px-4 md:px-6 pt-4 md:pt-6 pb-4">
|
<div className="container mx-auto px-4 md:px-6 pt-4 md:pt-6 pb-4">
|
||||||
@@ -475,7 +473,10 @@ export function ProxmoxDashboard() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="container mx-auto px-4 md:px-6 py-4 md:py-6">
|
<div
|
||||||
|
className="container mx-auto px-4 md:px-6 py-4 md:py-6"
|
||||||
|
style={{ paddingTop: "var(--content-padding, 160px)" }}
|
||||||
|
>
|
||||||
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4 md:space-y-6">
|
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4 md:space-y-6">
|
||||||
<TabsContent value="overview" className="space-y-4 md:space-y-6 mt-0">
|
<TabsContent value="overview" className="space-y-4 md:space-y-6 mt-0">
|
||||||
<SystemOverview key={`overview-${componentKey}`} />
|
<SystemOverview key={`overview-${componentKey}`} />
|
||||||
|
|||||||
Reference in New Issue
Block a user