Fix CSS escaping for icon styles

This commit is contained in:
devmatrix 2026-02-20 19:51:02 +00:00
parent c631d9132e
commit 9d8535aa55
2 changed files with 7 additions and 46 deletions

View File

@ -1,45 +1,6 @@
INFO: Started server process [66120]
INFO: Started server process [67655]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: 192.168.5.30:49722 - "GET /api/status HTTP/1.1" 401 Unauthorized
INFO: 192.168.5.30:49722 - "GET /login HTTP/1.1" 200 OK
INFO: 127.0.0.1:42868 - "GET /favicon.ico HTTP/1.1" 200 OK
INFO: 127.0.0.1:42870 - "GET / HTTP/1.1" 200 OK
/home/devmatrix/projects/fan-controller-v2/web_server.py:153: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
self._sessions[token] = (username, datetime.utcnow() + timedelta(days=7))
INFO: 192.168.5.30:59631 - "POST /api/auth/login HTTP/1.1" 200 OK
INFO: 192.168.5.30:59631 - "GET / HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /icons/server-stack.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:59631 - "GET /icons/fan.svg HTTP/1.1" 200 OK
INFO: 192.168.5.30:60198 - "GET /icons/arrow-right-on-rectangle.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:61475 - "GET /icons/lock-closed.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:60157 - "GET /icons/clock.svg HTTP/1.1" 304 Not Modified
/home/devmatrix/projects/fan-controller-v2/web_server.py:160: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
if datetime.utcnow() > expiry:
2026-02-20 19:46:20,781 - fan_controller - INFO - Loaded config from /home/devmatrix/projects/fan-controller-v2/data/config.json
INFO: 192.168.5.30:61475 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:59908 - "GET /icons/sun.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:60198 - "GET /icons/wifi.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:50885 - "GET /icons/list-bullet.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:60157 - "GET /icons/fire.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:61475 - "GET /icons/adjustments-horizontal.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:59908 - "GET /icons/viewfinder-circle.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:59631 - "GET /icons/chart-bar.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:50885 - "GET /icons/document-text.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:50885 - "GET /favicon.ico HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET / HTTP/1.1" 200 OK
INFO: 192.168.5.30:58311 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /icons/fan.svg HTTP/1.1" 304 Not Modified
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET / HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /api/status HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /login HTTP/1.1" 200 OK
INFO: 192.168.5.30:50885 - "GET /login HTTP/1.1" 200 OK
INFO: 127.0.0.1:38442 - "GET / HTTP/1.1" 200 OK
INFO: 127.0.0.1:36660 - "GET / HTTP/1.1" 200 OK

View File

@ -277,10 +277,10 @@ def get_html(theme="dark"):
transition: all 0.2s;
}}
.status-item:hover {{ transform: translateY(-2px); }}
.status-item .icon { width: 32px; height: 32px; margin: 0 auto 8px; }
.status-item .icon img { width: 100%; height: 100%; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }
.icon-svg { width: 20px; height: 20px; display: inline-block; vertical-align: middle; margin-right: 6px; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }
.icon-logo { width: 32px; height: 32px; display: inline-block; vertical-align: middle; margin-right: 8px; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }
.status-item .icon {{ width: 32px; height: 32px; margin: 0 auto 8px; }}
.status-item .icon img {{ width: 100%; height: 100%; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }}
.icon-svg {{ width: 20px; height: 20px; display: inline-block; vertical-align: middle; margin-right: 6px; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }}
.icon-logo {{ width: 32px; height: 32px; display: inline-block; vertical-align: middle; margin-right: 8px; filter: brightness(0) invert(1); image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; }}
.status-item .label {{ font-size: 0.75rem; color: var(--text-secondary); margin-bottom: 3px; }}
.status-item .value {{ font-size: 1.1rem; font-weight: bold; }}
.status-item .value.good {{ color: var(--accent-success); }}