diff --git a/webui/index.html b/webui/index.html index dd89a5bc..1fd1df4b 100644 --- a/webui/index.html +++ b/webui/index.html @@ -837,7 +837,7 @@ - +

Quick Actions

diff --git a/webui/static/style.css b/webui/static/style.css index 75c53d83..df0752c8 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -59815,22 +59815,43 @@ body.reduce-effects .dash-card::after { } .dashboard-action-grid { + position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 14px; overflow: hidden; + isolation: isolate; background: + radial-gradient(circle at 50% -20%, rgba(var(--accent-rgb), 0.16), transparent 44%), linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.025)), rgba(255, 255, 255, 0.035); box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), - 0 12px 28px rgba(0,0,0,0.16); + 0 12px 28px rgba(0,0,0,0.16), + 0 0 0 1px rgba(var(--accent-rgb), 0.04); +} + +.dashboard-action-grid::before { + content: ''; + position: absolute; + inset: 0 0 auto; + height: 2px; + background: linear-gradient(90deg, + transparent, + rgba(var(--accent-rgb), 0.4), + rgb(var(--accent-light-rgb)), + rgba(var(--accent-rgb), 0.4), + transparent); + opacity: 0.85; + pointer-events: none; + z-index: 2; } .dashboard-action-lane { position: relative; + z-index: 1; min-width: 0; min-height: 126px; display: flex; @@ -59841,7 +59862,7 @@ body.reduce-effects .dash-card::after { padding: 16px; border: 0; background: - radial-gradient(circle at 22% 10%, var(--lane-glow), transparent 42%), + radial-gradient(circle at var(--lane-glow-x, 22%) 10%, var(--lane-glow), transparent 42%), rgba(255, 255, 255, 0.032); color: rgba(255, 255, 255, 0.88); cursor: pointer; @@ -59866,11 +59887,16 @@ body.reduce-effects .dash-card::after { .dashboard-action-lane:hover, .dashboard-action-lane:focus-visible { background: - radial-gradient(circle at 22% 10%, var(--lane-glow-strong), transparent 46%), + radial-gradient(circle at var(--lane-glow-x, 22%) 10%, var(--lane-glow-strong), transparent 46%), rgba(255, 255, 255, 0.06); transform: translateY(-1px); } +.dashboard-action-lane:focus-visible { + outline: 2px solid rgba(var(--accent-rgb), 0.55); + outline-offset: -4px; +} + .dashboard-action-lane:hover::after, .dashboard-action-lane:focus-visible::after { border-color: var(--lane-border); @@ -59878,24 +59904,27 @@ body.reduce-effects .dash-card::after { } .dashboard-action-lane.tools { - --lane-glow: rgba(56, 189, 248, 0.18); - --lane-glow-strong: rgba(56, 189, 248, 0.3); - --lane-border: rgba(56, 189, 248, 0.28); - --lane-accent: #7dd3fc; + --lane-glow-x: 18%; + --lane-glow: rgba(var(--accent-rgb), 0.12); + --lane-glow-strong: rgba(var(--accent-rgb), 0.22); + --lane-border: rgba(var(--accent-rgb), 0.26); + --lane-accent: rgb(var(--accent-light-rgb)); } .dashboard-action-lane.auto-sync { - --lane-glow: rgba(34, 197, 94, 0.16); - --lane-glow-strong: rgba(34, 197, 94, 0.28); - --lane-border: rgba(34, 197, 94, 0.26); - --lane-accent: #86efac; + --lane-glow-x: 50%; + --lane-glow: rgba(var(--accent-rgb), 0.18); + --lane-glow-strong: rgba(var(--accent-rgb), 0.3); + --lane-border: rgba(var(--accent-rgb), 0.34); + --lane-accent: rgb(var(--accent-light-rgb)); } .dashboard-action-lane.automations { - --lane-glow: rgba(168, 85, 247, 0.18); - --lane-glow-strong: rgba(168, 85, 247, 0.3); - --lane-border: rgba(168, 85, 247, 0.28); - --lane-accent: #d8b4fe; + --lane-glow-x: 82%; + --lane-glow: rgba(var(--accent-rgb), 0.12); + --lane-glow-strong: rgba(var(--accent-rgb), 0.22); + --lane-border: rgba(var(--accent-rgb), 0.26); + --lane-accent: rgb(var(--accent-light-rgb)); } .dashboard-action-icon { @@ -59905,10 +59934,12 @@ body.reduce-effects .dash-card::after { align-items: center; justify-content: center; border-radius: 11px; - background: rgba(255, 255, 255, 0.07); - border: 1px solid rgba(255, 255, 255, 0.11); + background: rgba(var(--accent-rgb), 0.1); + border: 1px solid rgba(var(--accent-rgb), 0.18); color: var(--lane-accent); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.08), + 0 0 16px rgba(var(--accent-rgb), 0.08); } .dashboard-action-label { @@ -59936,6 +59967,7 @@ body.reduce-effects .dash-card::after { color: var(--lane-accent); font-size: 11px; font-weight: 800; + letter-spacing: 0.01em; } .dashboard-action-arrow::after {