JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
jxct_ui_system.h
См. документацию.
1#pragma once
2#ifdef TEST_BUILD
3#include "../test/stubs/esp32_stubs.h"
4#else
5#include <Arduino.h>
6#endif
7
8// ========================================
9// JXCT UI DESIGN SYSTEM v2.3.1
10// Единая система дизайна для веб-интерфейса
11// ========================================
12
13// 🎨 ЦВЕТОВАЯ ПАЛИТРА
14#define UI_COLOR_PRIMARY "#4CAF50" // Основной зеленый
15#define UI_COLOR_PRIMARY_HOVER "#45a049" // Зеленый при наведении
16#define UI_COLOR_SECONDARY "#2196F3" // Синий для второстепенных кнопок
17#define UI_COLOR_SECONDARY_HOVER "#0b7dda" // Синий при наведении
18#define UI_COLOR_DANGER "#F44336" // Красный для опасных действий
19#define UI_COLOR_DANGER_HOVER "#d32f2f" // Красный при наведении
20#define UI_COLOR_WARNING "#FFC107" // Желтый для предупреждений
21#define UI_COLOR_SUCCESS "#4CAF50" // Зеленый для успеха
22#define UI_COLOR_TEXT "#333" // Основной текст
23#define UI_COLOR_TEXT_LIGHT "#666" // Светлый текст
24#define UI_COLOR_BG "#f5f5f5" // Фон страницы
25#define UI_COLOR_BORDER "#ddd" // Границы элементов
26
27// 📱 РАЗМЕРЫ И ОТСТУПЫ
28#define UI_CONTAINER_MAX_WIDTH "1000px"
29#define UI_SECTION_PADDING "15px"
30#define UI_BUTTON_PADDING "8px 16px"
31#define UI_INPUT_PADDING "10px"
32#define UI_BORDER_RADIUS "6px"
33
34// 🔤 ТИПОГРАФИКА
35#define UI_FONT_FAMILY "Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
36#define UI_FONT_SIZE_BASE "16px"
37#define UI_FONT_SIZE_SMALL "14px"
38#define UI_FONT_SIZE_H1 "22px"
39#define UI_FONT_SIZE_H2 "18px"
40
41// 🖱️ АНИМАЦИИ
42#define UI_TRANSITION_FAST "0.2s ease"
43#define UI_TRANSITION_NORMAL "0.3s ease"
44
45// 📦 ИКОНКИ (Unicode Emoji)
46#define UI_ICON_SAVE "💾"
47#define UI_ICON_RESET "🔄"
48#define UI_ICON_DOWNLOAD "📥"
49#define UI_ICON_UPLOAD "📤"
50#define UI_ICON_CONFIG "⚙️"
51#define UI_ICON_INTERVALS "⏱️"
52#define UI_ICON_DATA "📊"
53#define UI_ICON_SERVICE "🔧"
54#define UI_ICON_WIFI "📶"
55#define UI_ICON_MQTT "📡"
56#define UI_ICON_SUCCESS "✅"
57#define UI_ICON_ERROR "❌"
58#define UI_ICON_WARNING "⚠️"
59#define UI_ICON_INFO "ℹ️"
60#define UI_ICON_LOCK "🔒"
61#define UI_ICON_FOLDER "📁"
62#define UI_ICON_STATUS "📋"
63#define UI_ICON_REFRESH "🔄"
64#define UI_ICON_CALIBRATION "🛠️"
65
66// 📋 ТИПЫ КНОПОК
67enum class ButtonType : std::uint8_t
68{
69 PRIMARY, // Основная зеленая кнопка
70 SECONDARY, // Синяя кнопка
71 DANGER, // Красная кнопка
72 SUCCESS, // Зеленая кнопка успеха
73 OUTLINE // Кнопка с контуром
74};
75
76// 🎨 ТИПЫ СООБЩЕНИЙ
77enum class MessageType : std::uint8_t
78{
79 SUCCESS,
80 ERROR,
81 WARNING,
82 INFO
83};
84
85// 🎯 КОНФИГУРАЦИЯ КНОПКИ
87{
88 const char* icon;
89 const char* text;
90 const char* action;
91};
92
93// 🎯 ФУНКЦИИ ДЛЯ ГЕНЕРАЦИИ CSS И HTML
94const char* getUnifiedCSS();
95const char* getToastHTML();
96const char* getLoaderHTML();
97String generateButton(ButtonType type, const ButtonConfig& config);
Config config
Definition config.cpp:38
const char * getUnifiedCSS()
Definition jxct_ui_system.cpp:4
const char * getLoaderHTML()
Definition jxct_ui_system.cpp:87
MessageType
Definition jxct_ui_system.h:78
String generateButton(ButtonType type, const ButtonConfig &config)
Definition jxct_ui_system.cpp:11
ButtonType
Definition jxct_ui_system.h:68
const char * getToastHTML()
Definition jxct_ui_system.cpp:47
Definition jxct_ui_system.h:87
const char * action
Definition jxct_ui_system.h:90
const char * text
Definition jxct_ui_system.h:89
const char * icon
Definition jxct_ui_system.h:88