diff --git a/themes/default/views/home.blade.php b/themes/default/views/home.blade.php index 1a2880c8d..f6174f45c 100644 --- a/themes/default/views/home.blade.php +++ b/themes/default/views/home.blade.php @@ -126,6 +126,54 @@ pointer-events: none; } +/* Animated floating particles */ +.hero-particles { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; +} + +.hero-particle { + position: absolute; + width: 10px; + height: 10px; + background: rgba(255, 255, 255, 0.15); + border-radius: 50%; + animation: float-particle linear infinite; +} + +.hero-particle:nth-child(1) { left: 10%; animation-duration: 20s; animation-delay: 0s; width: 8px; height: 8px; } +.hero-particle:nth-child(2) { left: 20%; animation-duration: 25s; animation-delay: -5s; width: 12px; height: 12px; } +.hero-particle:nth-child(3) { left: 30%; animation-duration: 18s; animation-delay: -2s; width: 6px; height: 6px; } +.hero-particle:nth-child(4) { left: 40%; animation-duration: 22s; animation-delay: -7s; width: 10px; height: 10px; } +.hero-particle:nth-child(5) { left: 50%; animation-duration: 28s; animation-delay: -3s; width: 14px; height: 14px; } +.hero-particle:nth-child(6) { left: 60%; animation-duration: 19s; animation-delay: -9s; width: 8px; height: 8px; } +.hero-particle:nth-child(7) { left: 70%; animation-duration: 24s; animation-delay: -4s; width: 11px; height: 11px; } +.hero-particle:nth-child(8) { left: 80%; animation-duration: 21s; animation-delay: -6s; width: 7px; height: 7px; } +.hero-particle:nth-child(9) { left: 90%; animation-duration: 26s; animation-delay: -8s; width: 9px; height: 9px; } +.hero-particle:nth-child(10) { left: 15%; animation-duration: 23s; animation-delay: -1s; width: 13px; height: 13px; } + +@keyframes float-particle { + 0% { + transform: translateY(100vh) rotate(0deg); + opacity: 0; + } + 10% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + transform: translateY(-100vh) rotate(720deg); + opacity: 0; + } +} + .hero-content { position: relative; z-index: 1; @@ -180,6 +228,30 @@ animation: title-fade-in 0.8s ease-out; } +.hero-title-highlight { + display: inline-block; + position: relative; +} + +.hero-title-highlight::after { + content: ''; + position: absolute; + bottom: 0.1em; + left: 0; + right: 0; + height: 0.15em; + background: linear-gradient(90deg, rgba(255,255,255,0.8), rgba(255,255,255,0.4)); + border-radius: 2px; + transform: scaleX(0); + animation: underline-reveal 0.8s ease-out 0.5s forwards; +} + +@keyframes underline-reveal { + to { + transform: scaleX(1); + } +} + @keyframes title-fade-in { from { opacity: 0; @@ -358,6 +430,94 @@ .status-value { font-size: 1.25rem; font-weight: 700; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.status-live-dot { + width: 8px; + height: 8px; + background: #10b981; + border-radius: 50%; + animation: live-pulse 2s ease-in-out infinite; + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); +} + +@keyframes live-pulse { + 0%, 100% { + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); + } + 50% { + box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); + } +} + +.uptime-bar { + width: 40px; + height: 4px; + background: rgba(255, 255, 255, 0.2); + border-radius: 2px; + position: relative; + overflow: hidden; +} + +.uptime-bar::after { + content: ''; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 99.9%; + background: linear-gradient(90deg, #10b981, #34d399); + border-radius: 2px; + animation: uptime-fill 2s ease-out forwards; +} + +@keyframes uptime-fill { + from { width: 0; } + to { width: 99.9%; } +} + +.support-indicator { + width: 8px; + height: 8px; + background: #06b6d4; + border-radius: 50%; + position: relative; +} + +.support-indicator::before, +.support-indicator::after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border-radius: 50%; + border: 1px solid #06b6d4; + animation: support-wave 2s ease-out infinite; +} + +.support-indicator::before { + animation-delay: 0s; +} + +.support-indicator::after { + animation-delay: 1s; +} + +@keyframes support-wave { + 0% { + width: 8px; + height: 8px; + opacity: 1; + } + 100% { + width: 24px; + height: 24px; + opacity: 0; + } } /* Features Grid */ @@ -603,6 +763,92 @@ color: var(--color-text-base); } +/* Mini Network Chart */ +.mini-chart { + display: flex; + align-items: flex-end; + gap: 2px; + height: 24px; + margin-top: var(--spacing-sm); +} + +.mini-chart-bar { + flex: 1; + background: linear-gradient(to top, var(--color-primary), var(--color-primary-light)); + border-radius: 2px 2px 0 0; + transition: height 0.3s ease; + min-height: 4px; + animation: chart-grow 0.8s ease-out forwards; + transform-origin: bottom; +} + +@keyframes chart-grow { + from { + transform: scaleY(0); + } + to { + transform: scaleY(1); + } +} + +.mini-chart-bar:nth-child(1) { animation-delay: 0.1s; } +.mini-chart-bar:nth-child(2) { animation-delay: 0.15s; } +.mini-chart-bar:nth-child(3) { animation-delay: 0.2s; } +.mini-chart-bar:nth-child(4) { animation-delay: 0.25s; } +.mini-chart-bar:nth-child(5) { animation-delay: 0.3s; } +.mini-chart-bar:nth-child(6) { animation-delay: 0.35s; } +.mini-chart-bar:nth-child(7) { animation-delay: 0.4s; } +.mini-chart-bar:nth-child(8) { animation-delay: 0.45s; } + +/* Activity Indicator */ +.activity-dots { + display: flex; + gap: 4px; + align-items: center; +} + +.activity-dot { + width: 6px; + height: 6px; + background: var(--color-success); + border-radius: 50%; + animation: activity-blink 1.5s ease-in-out infinite; +} + +.activity-dot:nth-child(1) { animation-delay: 0s; } +.activity-dot:nth-child(2) { animation-delay: 0.3s; } +.activity-dot:nth-child(3) { animation-delay: 0.6s; } + +@keyframes activity-blink { + 0%, 100% { opacity: 0.3; transform: scale(0.8); } + 50% { opacity: 1; transform: scale(1); } +} + +/* Connection Line Animation */ +.connection-line { + position: relative; + height: 2px; + background: var(--color-border); + margin: var(--spacing-sm) 0; + overflow: hidden; +} + +.connection-line::after { + content: ''; + position: absolute; + top: 0; + left: -30%; + width: 30%; + height: 100%; + background: linear-gradient(90deg, transparent, var(--color-primary), transparent); + animation: connection-flow 2s linear infinite; +} + +@keyframes connection-flow { + 0% { left: -30%; } + 100% { left: 100%; } +} + .progress-bar { height: 10px; background: var(--color-bg-tertiary); @@ -1528,6 +1774,121 @@ height: 44px; } } + +/* Tooltip System */ +[data-tooltip] { + position: relative; + cursor: help; +} + +[data-tooltip]::before, +[data-tooltip]::after { + position: absolute; + opacity: 0; + visibility: hidden; + transition: var(--transition-smooth); + z-index: 100; + pointer-events: none; +} + +[data-tooltip]::before { + content: attr(data-tooltip); + bottom: calc(100% + 10px); + left: 50%; + transform: translateX(-50%) translateY(10px); + padding: 0.5rem 0.75rem; + background: var(--color-text-base); + color: var(--color-bg-base); + font-size: 0.8125rem; + font-weight: 500; + white-space: nowrap; + border-radius: var(--radius-sm); + box-shadow: var(--shadow-lg); +} + +[data-tooltip]::after { + content: ''; + bottom: calc(100% + 4px); + left: 50%; + transform: translateX(-50%); + border: 6px solid transparent; + border-top-color: var(--color-text-base); +} + +[data-tooltip]:hover::before, +[data-tooltip]:hover::after { + opacity: 1; + visibility: visible; +} + +[data-tooltip]:hover::before { + transform: translateX(-50%) translateY(0); +} + +/* Glow Ring Animation for Important Elements */ +.glow-ring { + position: relative; +} + +.glow-ring::before { + content: ''; + position: absolute; + inset: -3px; + background: linear-gradient(45deg, var(--color-primary), var(--color-primary-light), var(--color-info), var(--color-primary)); + background-size: 400% 400%; + border-radius: inherit; + opacity: 0; + z-index: -1; + animation: glow-rotate 3s ease infinite; + transition: opacity 0.3s ease; +} + +.glow-ring:hover::before { + opacity: 1; +} + +@keyframes glow-rotate { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } +} + +/* Typing Cursor Effect */ +.typing-cursor::after { + content: '|'; + animation: blink-cursor 1s step-end infinite; + color: white; + margin-left: 2px; +} + +@keyframes blink-cursor { + 0%, 50% { opacity: 1; } + 51%, 100% { opacity: 0; } +} + +/* Spotlight Effect on Cards */ +.spotlight-card { + position: relative; + overflow: hidden; +} + +.spotlight-card::before { + content: ''; + position: absolute; + top: var(--y, 50%); + left: var(--x, 50%); + width: 200px; + height: 200px; + background: radial-gradient(circle, rgba(59, 130, 246, 0.15) 0%, transparent 70%); + transform: translate(-50%, -50%); + pointer-events: none; + opacity: 0; + transition: opacity 0.3s ease; +} + +.spotlight-card:hover::before { + opacity: 1; +}
+ +
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1915,7 +2439,7 @@

- Experience Powerful Hosting + Experience Powerful Hosting

@@ -1940,7 +2464,7 @@

-
+
@@ -1949,11 +2473,14 @@
System Status
-
All Operational
+
+ + All Operational +
-
+
@@ -1963,11 +2490,11 @@
Active Nodes
-
{{ \App\Models\Server::count() }}
+
{{ \App\Models\Server::count() }}
-
+
@@ -1975,11 +2502,14 @@
Uptime
-
99.9%
+
+ + 99.9% +
-
+
@@ -1990,7 +2520,10 @@
Support
-
24/7
+
+ + 24/7 +