feat(frontend): add favicon.svg
This commit is contained in:
parent
cb42cce041
commit
628d14a79a
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,4 +3,5 @@ sdkconfig
|
||||
sdkconfig.old
|
||||
main/frontend.h
|
||||
main/setup_frontend.h
|
||||
main/favicon_svg.h
|
||||
managed_components/
|
||||
|
||||
32
assets/favicon.svg
Normal file
32
assets/favicon.svg
Normal file
@ -0,0 +1,32 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
|
||||
<defs>
|
||||
<style>
|
||||
/* Light theme (default) */
|
||||
.gauge-stroke { stroke: #1A1A1A; }
|
||||
.gauge-fill { fill: #1A1A1A; }
|
||||
.danger-zone { fill: #E53935; opacity: 0.85; }
|
||||
|
||||
/* Dark theme via media query */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.gauge-stroke { stroke: #E8E8E8; }
|
||||
.gauge-fill { fill: #E8E8E8; }
|
||||
.danger-zone { fill: #FF6B6B; opacity: 0.9; }
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<circle cx="50" cy="50" r="45" fill="none" class="gauge-stroke" stroke-width="3.5" stroke-linecap="round"/>
|
||||
|
||||
<rect x="44" y="90" width="12" height="10" class="gauge-fill" rx="1.5"/>
|
||||
<polygon points="47,100 53,100 56,106 44,106" class="gauge-fill"/>
|
||||
|
||||
<line x1="18" y1="50" x2="26" y2="50" class="gauge-stroke" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<line x1="50" y1="13" x2="50" y2="21" class="gauge-stroke" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<line x1="82" y1="50" x2="74" y2="50" class="gauge-stroke" stroke-width="2.5" stroke-linecap="round"/>
|
||||
|
||||
<path d="M 74,50 A 24,24 0 0,1 66,71 L 60,65 A 18,18 0 0,0 66,50 Z" class="danger-zone"/>
|
||||
|
||||
<line x1="50" y1="52" x2="62" y2="40" class="gauge-stroke" stroke-width="3" stroke-linecap="round"/>
|
||||
|
||||
<circle cx="50" cy="52" r="3.5" class="gauge-fill"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<title>IoT Pump controller</title>
|
||||
<style>
|
||||
:root {
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<title>Wi-Fi Setup · Controller</title>
|
||||
<style>
|
||||
* {
|
||||
@ -12,7 +13,7 @@
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
min-height: 100dvh;
|
||||
background: radial-gradient(circle at 20% 30%, #121826, #0b0f17);
|
||||
font-family: 'Segoe UI', 'Inter', system-ui, -apple-system, 'Roboto', sans-serif;
|
||||
display: flex;
|
||||
|
||||
2
justfile
2
justfile
@ -16,6 +16,8 @@ build:
|
||||
sed -i '1i\static const ' main/frontend.h
|
||||
xxd -i assets/setup.html > main/setup_frontend.h
|
||||
sed -i '1i\static const ' main/setup_frontend.h
|
||||
xxd -i assets/favicon.svg > main/favicon_svg.h
|
||||
sed -i '1i\static const ' main/favicon_svg.h
|
||||
idf.py build
|
||||
|
||||
|
||||
|
||||
10
main/main.c
10
main/main.c
@ -30,8 +30,10 @@
|
||||
#include "lwip/inet.h"
|
||||
|
||||
#include "sdkconfig.h"
|
||||
|
||||
#include "frontend.h"
|
||||
#include "setup_frontend.h"
|
||||
#include "favicon_svg.h"
|
||||
|
||||
// ============================================================================
|
||||
// Configuration validation
|
||||
@ -619,8 +621,8 @@ static app_error_t mdns_init_service(void) {
|
||||
// ============================================================================
|
||||
|
||||
static esp_err_t favicon_get_handler(httpd_req_t *req) {
|
||||
httpd_resp_set_status(req, "204 No Content");
|
||||
httpd_resp_send(req, NULL, 0);
|
||||
httpd_resp_set_type(req, "image/svg+xml");
|
||||
httpd_resp_send(req, (const char*)assets_favicon_svg, assets_favicon_svg_len);
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
@ -993,7 +995,7 @@ static app_error_t http_server_start(void) {
|
||||
|
||||
httpd_uri_t uris[] = {
|
||||
{.uri = "/", .method = HTTP_GET, .handler = root_get_handler},
|
||||
{.uri = "/favicon.ico", .method = HTTP_GET, .handler = favicon_get_handler},
|
||||
{.uri = "/favicon.svg", .method = HTTP_GET, .handler = favicon_get_handler},
|
||||
{.uri = "/pressure", .method = HTTP_GET, .handler = current_pressure_handler},
|
||||
{.uri = "/state", .method = HTTP_GET, .handler = pump_state_handler},
|
||||
{.uri = "/thresholds", .method = HTTP_GET, .handler = get_thresholds_handler},
|
||||
@ -1020,7 +1022,7 @@ static app_error_t setup_http_server_start(void) {
|
||||
|
||||
httpd_uri_t uris[] = {
|
||||
{.uri = "/", .method = HTTP_GET, .handler = setup_get_handler},
|
||||
{.uri = "/favicon.ico", .method = HTTP_GET, .handler = favicon_get_handler},
|
||||
{.uri = "/favicon.svg", .method = HTTP_GET, .handler = favicon_get_handler},
|
||||
{.uri = "/settings", .method = HTTP_POST, .handler = setup_set_settings_handler},
|
||||
{.uri = "/wifi_list", .method = HTTP_GET, .handler = setup_get_wifi_list_handler},
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user