index.css 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. @import "./login/index.css";
  2. @import "./adminCreate/index.css";
  3. @import "./dashboard/index.css";
  4. /*
  5. Background layers
  6. --bg-base: #14171c — app background
  7. --bg-surface: #1c2027 — cards/panels
  8. --bg-surface-raised: #262b34 — modals, dropdowns, hover states
  9. --bg-inset: #0e1014 — sunken elements (input fields, code blocks)
  10. Text
  11. --text-primary: #eef1f5
  12. --text-secondary: #9aa3af
  13. --text-tertiary: #5c6470
  14. Accent (interactive/brand)
  15. --accent: #4f9cf9 — primary actions, active toggles, links
  16. --accent-hover: #6bacfa
  17. --accent-muted: #2a3b52 — subtle backgrounds for selected/active rows
  18. Borders
  19. --border-subtle: #2a2f38
  20. --border-strong: #3a4049
  21. Semantic / device-state colors
  22. These matter a lot for a HA UI since you're constantly showing on/off, alerts, and sensor readings:
  23. --state-on: #f5b942 — entity "on" (warm amber reads well as "light is on," avoids clashing with accent blue)
  24. --state-off: #4a5058 — entity "off" (neutral gray, not red — off isn't an error)
  25. --success: #4caf7d — armed, locked, connected, healthy
  26. --warning: #e8a33d — low battery, unavailable-but-not-critical
  27. --danger: #e5484d — alarm triggered, offline, critical sensor
  28. --info: #4f9cf9 — same as accent, reuse for info badges
  29. */
  30. :root {
  31. /* Backgrounds */
  32. --bg-base: #14171c;
  33. --bg-surface: #1c2027;
  34. --bg-surface-raised: #262b34;
  35. --bg-inset: #0e1014;
  36. /* Text */
  37. --text-primary: #eef1f5;
  38. --text-secondary: #9aa3af;
  39. --text-tertiary: #5c6470;
  40. /* Accent */
  41. --accent: #4f9cf9;
  42. --accent-hover: #6bacfa;
  43. --accent-muted: #2a3b52;
  44. /* Borders */
  45. --border-subtle: #2a2f38;
  46. --border-strong: #3a4049;
  47. /* Semantic / device state */
  48. --state-on: #f5b942;
  49. --state-off: #4a5058;
  50. --success: #4caf7d;
  51. --warning: #e8a33d;
  52. --danger: #e5484d;
  53. --info: #4f9cf9;
  54. }
  55. *{
  56. margin: 0;
  57. padding: 0;
  58. box-sizing: border-box;
  59. }
  60. body, html{
  61. height: 100%;
  62. width: 100%;
  63. }
  64. body{
  65. background: var(--bg-base);
  66. color: var(--text-primary);
  67. }
  68. #notifier{
  69. position: fixed;
  70. top: 24px;
  71. left: 50%;
  72. transform: translateX(-50%);
  73. z-index: 1000;
  74. display: flex;
  75. align-items: center;
  76. max-width: min(420px, calc(100% - 48px));
  77. background: var(--bg-surface-raised);
  78. border-left: 4px solid var(--accent);
  79. box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  80. padding: 14px 18px;
  81. }
  82. #notifier.success{
  83. border-left-color: var(--success);
  84. }
  85. #notifier.warning{
  86. border-left-color: var(--warning);
  87. }
  88. #notifier.error{
  89. border-left-color: var(--danger);
  90. }
  91. #notifierMessage{
  92. font-size: 14px;
  93. line-height: 1.4;
  94. color: var(--text-primary);
  95. }