dark.css 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849
  1. /*
  2. Theme Name: Dark
  3. Author: Kristan Kenney (@kristankenney)
  4. Website: www.hestiacp.com
  5. */
  6. @import url("../media_queries");
  7. :root {
  8. /* Colors */
  9. --color-text: #cdcdcd;
  10. --color-text-link: #4fabe9;
  11. --color-text-link-hover: #ff3478;
  12. --color-text-heading: #e8e8e8;
  13. --color-background: #282828;
  14. /* Alerts */
  15. --alert-border-color: #212121;
  16. --alert-danger-color: #d13535;
  17. /* Icons */
  18. --icon-color-purple: #c364ff;
  19. --icon-color-maroon: #ff3478;
  20. --icon-color-green: #37cf39;
  21. --icon-color-blue: #0092f4;
  22. /* Top Bar */
  23. --top-bar-background: #454545;
  24. --top-bar-box-shadow: 0 8px 15px rgb(0 0 0 / 25%);
  25. --top-bar-border-bottom: 1px solid #505050;
  26. /* Charts */
  27. --chart-label-color: #cdcdcd;
  28. --chart-grid-color: #434343;
  29. }
  30. /* Top bar
  31. ========================================================================== */
  32. .top-bar-usage-inner {
  33. color: #909090;
  34. }
  35. .top-bar-usage-item {
  36. color: #cacaca;
  37. & .fas {
  38. color: #909090;
  39. }
  40. }
  41. .top-bar-notifications-panel {
  42. background-color: rgb(50 50 50 / 99%);
  43. @media (--viewport-small) {
  44. border-color: #404040;
  45. }
  46. }
  47. .top-bar-notifications-empty {
  48. color: #dadada;
  49. & .fas {
  50. color: #dadada;
  51. }
  52. }
  53. .top-bar-notification-item {
  54. text-shadow: 0 1px rgb(0 0 0 / 50%);
  55. color: #dadada;
  56. border-bottom-color: #282828;
  57. &.unseen .top-bar-notification-title {
  58. color: #fff;
  59. }
  60. }
  61. .top-bar-notification-delete {
  62. & .fas {
  63. color: #ff3478;
  64. }
  65. }
  66. .top-bar-notifications-delete-all {
  67. border-top-color: #282828;
  68. }
  69. .top-bar-menu-panel {
  70. background-color: var(--top-bar-background);
  71. }
  72. .top-bar-menu-link {
  73. &:hover {
  74. color: #dadada;
  75. text-shadow: 1px 1px rgb(0 0 0 / 50%);
  76. background: linear-gradient(
  77. to bottom,
  78. rgb(15 15 15 / 60%) 0%,
  79. rgb(45 45 45 / 75%) 30%,
  80. rgb(60 60 60 / 100%) 95%
  81. );
  82. box-shadow: none;
  83. }
  84. &:active {
  85. background: linear-gradient(
  86. to bottom,
  87. rgb(15 15 15 / 70%) 0%,
  88. rgb(45 45 45 / 85%) 30%,
  89. rgb(50 50 50 / 100%) 95%
  90. );
  91. color: #fff;
  92. text-shadow: 0 -1px 1px rgb(0 0 0 / 50%);
  93. }
  94. &.active {
  95. color: #dadada;
  96. background: linear-gradient(
  97. to bottom,
  98. rgb(15 15 15 / 60%) 0%,
  99. rgb(45 45 45 / 75%) 30%,
  100. rgb(60 60 60 / 100%) 95%
  101. );
  102. text-shadow: 0 1px rgb(0 0 0 / 50%);
  103. border-left-color: #353535;
  104. border-right-color: #353535;
  105. }
  106. }
  107. .top-bar-menu-link-logout {
  108. color: #e7e7e7;
  109. }
  110. /* Main menu
  111. ========================================================================== */
  112. .main-menu-toggle {
  113. &:hover {
  114. & .main-menu-toggle-label {
  115. color: #d7d7d7;
  116. }
  117. }
  118. & .fas {
  119. color: #d7d7d7;
  120. }
  121. }
  122. .main-menu-toggle-label {
  123. color: #bcbcbc;
  124. }
  125. .main-menu-list {
  126. border-top-color: #454545;
  127. }
  128. .main-menu-item-link {
  129. &:hover {
  130. & .main-menu-item-label {
  131. color: #d7d7d7;
  132. }
  133. }
  134. &.active {
  135. & .main-menu-item-label {
  136. color: #c36;
  137. & .fas {
  138. color: #d7d7d7;
  139. }
  140. }
  141. }
  142. @media (--viewport-medium) {
  143. border-bottom-color: #282828;
  144. &:hover {
  145. border-bottom-color: #d7d7d7;
  146. }
  147. &.active {
  148. border-bottom-color: #c36;
  149. }
  150. }
  151. }
  152. .main-menu-item-label {
  153. font-weight: 500;
  154. color: #bcbcbc;
  155. & .fas {
  156. color: #707070;
  157. }
  158. }
  159. /* Toolbar
  160. ========================================================================== */
  161. .toolbar {
  162. border-color: #454545;
  163. background-color: #282828;
  164. &.active {
  165. box-shadow: 0 4px 6px rgb(0 0 0 / 25%);
  166. }
  167. & .form-select {
  168. border-color: #454545;
  169. background-color: #212121;
  170. &:hover {
  171. background-color: #212121;
  172. }
  173. }
  174. & .form-control {
  175. border-color: #454545;
  176. background-color: #212121;
  177. &:hover {
  178. background-color: #212121;
  179. border-right-color: #0090ff;
  180. }
  181. &:focus {
  182. border-right-color: #0080df;
  183. }
  184. }
  185. }
  186. .toolbar-sorting-toggle {
  187. &:hover {
  188. color: #aaa;
  189. & span {
  190. color: #aaa;
  191. }
  192. }
  193. }
  194. .toolbar-sorting-menu {
  195. background-color: rgb(40 40 40 / 95%);
  196. box-shadow: 0 2px 16px 0 rgb(20 20 20 / 65%);
  197. border-color: rgb(90 90 90 / 100%);
  198. & li {
  199. border-bottom: 1px solid #454545;
  200. color: #dadada;
  201. }
  202. & span {
  203. &:hover {
  204. color: #fff;
  205. background: linear-gradient(
  206. to bottom,
  207. rgb(25 25 25 / 60%) 0%,
  208. rgb(55 55 55 / 75%) 30%,
  209. rgb(70 70 70 / 100%) 95%
  210. );
  211. text-shadow: 0 -1px 1px rgb(0 0 0 / 50%);
  212. box-shadow:
  213. inset 0 0 1px rgb(0 0 0 / 40%),
  214. inset -1px -1px 4px rgb(40 40 40 / 40%);
  215. }
  216. &:active,
  217. &:focus {
  218. background: linear-gradient(
  219. to bottom,
  220. rgb(35 35 35 / 60%) 0%,
  221. rgb(65 65 65 / 75%) 30%,
  222. rgb(80 80 80 / 100%) 95%
  223. );
  224. color: #fff;
  225. text-shadow: 0 -1px 1px rgb(0 0 0 / 50%);
  226. box-shadow:
  227. inset 0 0 1px rgb(0 0 0 / 40%),
  228. inset -1px -1px 4px rgb(40 40 40 / 40%);
  229. }
  230. &.active {
  231. color: #fff;
  232. background: linear-gradient(
  233. to bottom,
  234. rgb(15 15 15 / 60%) 0%,
  235. rgb(45 45 45 / 75%) 30%,
  236. rgb(60 60 60 / 100%) 95%
  237. ),
  238. #454545;
  239. text-shadow: 0 1px rgb(0 0 0 / 80%);
  240. }
  241. }
  242. }
  243. .toolbar-input-submit {
  244. border-color: #454545;
  245. background-color: #424242;
  246. text-shadow: 1px 1px rgb(0 0 0 / 90%);
  247. box-shadow: 0 1px 1px rgb(0 0 0 / 40%);
  248. color: #cacaca;
  249. &:hover {
  250. color: #09f;
  251. background-color: #454545;
  252. }
  253. &:active {
  254. color: #0074c2;
  255. text-shadow: 0 -1px rgb(255 255 255 / 20%);
  256. box-shadow: inset 1px 1px 0 rgb(0 0 0 / 20%);
  257. }
  258. }
  259. .toolbar-link {
  260. color: #dadada;
  261. &.selected {
  262. color: #ff3478;
  263. }
  264. &:hover {
  265. color: #ff3478;
  266. }
  267. }
  268. /* Cards
  269. ========================================================================== */
  270. .card {
  271. background-color: #454545;
  272. border-color: #606060;
  273. box-shadow:
  274. 0 1px 4px rgb(0 0 0 / 20%),
  275. inset 0 0 60px rgb(0 0 0 / 25%);
  276. }
  277. .card-content {
  278. color: #fafafa;
  279. text-shadow: 0 1px rgb(0 0 0 / 95%);
  280. }
  281. /* Clipboard component
  282. ========================================================================== */
  283. .clipboard {
  284. & .clipboard-input {
  285. border-color: #606060;
  286. }
  287. }
  288. .clipboard-button {
  289. background-color: #353535;
  290. }
  291. /* Server summary component
  292. ========================================================================== */
  293. .server-summary-icon {
  294. color: #707070;
  295. }
  296. /* Panel component
  297. ========================================================================== */
  298. .panel {
  299. background-color: #454545;
  300. border-color: #606060;
  301. box-shadow: 0 1px 4px rgb(0 0 0 / 35%);
  302. }
  303. /* Box collapse component
  304. ========================================================================== */
  305. .box-collapse-header {
  306. background: #454545;
  307. border-color: #505050;
  308. text-shadow: 0 1px rgb(0 0 0 / 40%);
  309. box-shadow:
  310. inset 0 0 2px rgb(0 0 0 / 50%),
  311. 0 2px 6px rgb(0 0 0 / 40%);
  312. color: #fff;
  313. }
  314. /* Collapse component
  315. ========================================================================== */
  316. .collapse-header {
  317. border-bottom-color: #484848;
  318. }
  319. /* Units table
  320. ========================================================================== */
  321. .units-table-header {
  322. @media (--viewport-large) {
  323. background: #404040;
  324. box-shadow: none;
  325. text-shadow: 0 1px rgb(0 0 0 / 95%);
  326. border-color: #212121;
  327. }
  328. }
  329. .units-table-row {
  330. border-color: #282828;
  331. background-color: #303030;
  332. &.selected {
  333. background-color: #454545;
  334. box-shadow: none;
  335. }
  336. &.disabled {
  337. color: #606060;
  338. background-color: #252525;
  339. &.selected {
  340. color: #333;
  341. background-color: #454545;
  342. }
  343. }
  344. &.focus {
  345. background-color: #353535;
  346. }
  347. @media (--viewport-large) {
  348. &:hover {
  349. background-color: #353535;
  350. border-color: #282828;
  351. box-shadow: none;
  352. }
  353. &.selected {
  354. border-left-color: #212121;
  355. border-right-color: #212121;
  356. &:hover {
  357. background-color: #555;
  358. }
  359. }
  360. &.disabled {
  361. &:hover {
  362. background-color: #252525;
  363. }
  364. &.selected:hover {
  365. color: #333;
  366. background-color: #454545;
  367. }
  368. }
  369. }
  370. }
  371. .units-table-cell {
  372. & a {
  373. color: #fafafa;
  374. &:hover {
  375. color: #fafafa;
  376. }
  377. }
  378. }
  379. .units-table-row-action-link {
  380. border-color: #454545;
  381. background-color: #282828;
  382. @media (--viewport-large) {
  383. background-color: transparent;
  384. }
  385. }
  386. .units-table-badge {
  387. @media (--viewport-large) {
  388. color: #dadada;
  389. border-color: #212121;
  390. box-shadow:
  391. 0 1px 2px rgb(70 70 70 / 50%),
  392. inset 0 2px 2px rgb(0 0 0 / 65%);
  393. text-shadow: 0 1px rgb(0 0 0 / 70%);
  394. background-color: #252525;
  395. }
  396. }
  397. /* Statistics
  398. ========================================================================== */
  399. .stats-item {
  400. border-bottom-color: #404040;
  401. @media (--viewport-large) {
  402. &:hover {
  403. background-color: #353535;
  404. border-left-color: #353535;
  405. border-right-color: #353535;
  406. box-shadow: 0 2px 10px rgb(0 0 0 / 20%);
  407. }
  408. }
  409. }
  410. .stats-item-header-title {
  411. color: #eee;
  412. }
  413. .stats-item-summary-title {
  414. border-bottom-color: #585858;
  415. }
  416. /* Forms
  417. ========================================================================== */
  418. .form-label,
  419. .form-check label {
  420. color: #d4d4d4;
  421. }
  422. .form-control {
  423. background-color: #454545;
  424. border-color: #606060;
  425. color: #d4d4d4;
  426. box-shadow: 0 1px 4px rgb(0 0 0 / 35%);
  427. &:hover {
  428. border-color: #0090ff;
  429. background-color: #494949;
  430. }
  431. &:focus {
  432. background-color: #222;
  433. border-color: #0080df;
  434. color: #fff;
  435. box-shadow: 0 1px 6px rgb(0 52 91 / 75%);
  436. }
  437. &.list-editor:focus {
  438. background-color: #222;
  439. box-shadow: none;
  440. }
  441. }
  442. .form-select {
  443. background-color: #454545;
  444. border-color: #606060;
  445. color: #d4d4d4;
  446. text-shadow: 0 0 0 #d4d4d4;
  447. box-shadow: 0 1px 4px rgb(0 0 0 / 35%);
  448. &:hover {
  449. border-color: #0090ff;
  450. background-color: #494949;
  451. }
  452. &:focus {
  453. background-color: #222;
  454. border-color: #0080df;
  455. color: #fff;
  456. box-shadow: 0 1px 6px rgb(0 52 91 / 75%);
  457. }
  458. }
  459. .form-control:disabled,
  460. .form-select:disabled {
  461. background-color: #303030;
  462. text-shadow: 1px 1px rgb(0 0 0 / 30%);
  463. color: #acacac;
  464. border-color: #606060;
  465. &:hover {
  466. border-color: #606060;
  467. }
  468. }
  469. .form-link {
  470. color: #09f;
  471. }
  472. .form-link-danger {
  473. &:hover {
  474. background-color: #ff3478;
  475. }
  476. &:active {
  477. background-color: #be1f54;
  478. }
  479. }
  480. .unlimited-toggle {
  481. & .fas {
  482. color: #d4d4d4;
  483. }
  484. }
  485. .hint {
  486. color: #a2a2a2;
  487. }
  488. /* Buttons
  489. ========================================================================== */
  490. .button {
  491. color: #eee;
  492. text-shadow: 0 1px 1px rgb(0 0 0 / 35%);
  493. font-weight: 400;
  494. border-color: #707070;
  495. background: linear-gradient(
  496. 0deg,
  497. rgb(48 48 48 / 100%) 0%,
  498. rgb(53 53 53 / 100%) 35%,
  499. rgb(69 69 69 / 100%) 100%
  500. ),
  501. #303030;
  502. box-shadow:
  503. 0 1px 4px rgb(0 0 0 / 20%),
  504. inset 0 0 1px rgb(20 20 20 / 100%),
  505. inset 0 0 3px rgb(0 0 0 / 50%);
  506. &:hover {
  507. color: #fff;
  508. text-shadow: 1px 1px rgb(0 0 0 / 25%);
  509. border-color: #0098ff;
  510. background: linear-gradient(
  511. 0deg,
  512. rgb(58 58 58 / 100%) 0%,
  513. rgb(68 68 68 / 100%) 35%,
  514. rgb(79 79 79 / 100%) 100%
  515. ),
  516. #454545;
  517. box-shadow:
  518. 0 1px 3px rgb(0 0 0 / 35%),
  519. inset 0 0 1px rgb(0 0 0 / 100%),
  520. inset 0 0 3px rgb(0 0 0 / 65%);
  521. }
  522. &:active {
  523. color: #d4d4d4;
  524. text-shadow: 0 -1px 1px rgb(0 0 0 / 55%);
  525. border-color: #0066b4;
  526. background: linear-gradient(
  527. 0deg,
  528. rgb(69 69 69 / 100%) 0%,
  529. rgb(53 53 53 / 100%) 35%,
  530. rgb(48 48 48 / 100%) 100%
  531. );
  532. box-shadow:
  533. 0 1px 3px rgb(0 0 0 / 30%),
  534. inset 0 0 1px rgb(0 0 0 / 100%),
  535. inset -1px -1px 4px rgb(30 30 30 / 40%);
  536. }
  537. }
  538. .button-secondary {
  539. border-color: #454545;
  540. background: linear-gradient(
  541. 0deg,
  542. rgb(48 48 48 / 100%) 0%,
  543. rgb(53 53 53 / 100%) 100%,
  544. rgb(69 69 69 / 100%) 100%
  545. ),
  546. #343434;
  547. &:hover {
  548. background: linear-gradient(
  549. 0deg,
  550. rgb(48 48 48 / 100%) 0%,
  551. rgb(53 53 53 / 100%) 100%,
  552. rgb(69 69 69 / 100%) 100%
  553. ),
  554. #343434;
  555. }
  556. }
  557. .button-danger {
  558. &:hover {
  559. background: linear-gradient(0deg, rgb(133 0 0 / 100%) 0%, rgb(203 0 0 / 100%) 100%),
  560. rgb(133 0 0);
  561. color: #fff;
  562. text-shadow: 0 1px rgb(0 0 0 / 45%);
  563. border-color: rgb(170 0 0);
  564. }
  565. &:active,
  566. &:focus {
  567. background: linear-gradient(180deg, rgb(133 0 0 / 100%) 0%, rgb(203 0 0 / 100%) 100%),
  568. rgb(133 0 0);
  569. color: #4d0000;
  570. text-shadow: 0 -1px 1px rgb(255 255 255 / 30%);
  571. border-color: rgb(251 71 51);
  572. }
  573. }
  574. /* Login
  575. ========================================================================== */
  576. .page-login,
  577. .page-reset {
  578. background: radial-gradient(circle, rgb(77 77 77 / 100%) 0%, rgb(31 31 31 / 100%) 100%), #303030;
  579. }
  580. .login {
  581. & .error {
  582. color: #f864fa;
  583. }
  584. @media (--viewport-small) {
  585. background-color: #282828;
  586. box-shadow:
  587. 0 8px 25px rgb(0 0 0 / 30%),
  588. inset 0 0 2px rgb(0 0 0 / 25%);
  589. & .form-label {
  590. color: #fff;
  591. }
  592. }
  593. }
  594. .login-title {
  595. color: #fff;
  596. }
  597. .login-form-link {
  598. color: #eee;
  599. text-transform: initial;
  600. font-weight: 400;
  601. &:hover {
  602. color: #ff3478;
  603. }
  604. }
  605. .qr-code {
  606. border: 1px solid #3b3b3b;
  607. box-shadow: 0 1px 4px rgb(0 0 0 / 35%);
  608. }
  609. .console-output {
  610. color: #dadada;
  611. }
  612. /* Spinner
  613. ========================================================================== */
  614. .spinner-overlay {
  615. & .fas {
  616. box-shadow: 0 8px 25px rgb(0 0 0 / 90%);
  617. }
  618. }
  619. /* Icon component
  620. ========================================================================== */
  621. .icon-highlight {
  622. color: #dadada;
  623. &:hover {
  624. color: #dadada;
  625. }
  626. }
  627. .icon-dim {
  628. color: #808080;
  629. text-shadow: 1px 1px rgb(0 0 0 / 30%);
  630. }
  631. /* Modals
  632. ========================================================================== */
  633. .modal {
  634. background-color: #2c2c2c;
  635. border-color: rgb(80 80 80 / 97%);
  636. box-shadow:
  637. inset 0 1px 3px rgb(0 0 0 / 25%),
  638. 0 8px 25px rgb(0 0 0 / 90%);
  639. }
  640. .modal-title {
  641. color: #f12569;
  642. }
  643. .modal-message {
  644. color: #dadada;
  645. }
  646. .modal-options {
  647. border-top: 1px solid #404040;
  648. }
  649. /* Shortcuts modal
  650. ========================================================================== */
  651. .shortcuts {
  652. background-color: #2c2c2c;
  653. border-color: #404040;
  654. box-shadow: 0 8px 25px rgb(0 0 0 / 90%);
  655. }
  656. .shortcuts-header {
  657. border-bottom: 1px solid #353535;
  658. }
  659. /* Tabs component
  660. ========================================================================== */
  661. .tabs {
  662. box-shadow: 0 1px 4px rgb(0 0 0 / 25%);
  663. border-color: #606060;
  664. background-color: #454545;
  665. }
  666. .tabs-item {
  667. color: #cacaca;
  668. &:hover,
  669. &[aria-selected="true"] {
  670. color: #ff3478;
  671. }
  672. }
  673. /* App footer
  674. ========================================================================== */
  675. .app-footer {
  676. color: #cdcdcd;
  677. border-color: #454545;
  678. }
  679. .app-footer-link {
  680. color: #cdcdcd;
  681. }
  682. /* Inline alerts
  683. ========================================================================== */
  684. .inline-alert-success {
  685. & a {
  686. color: #fff;
  687. &:hover {
  688. color: #ff3478;
  689. }
  690. }
  691. }
  692. /* Debug panel
  693. ========================================================================== */
  694. .debug-panel-content {
  695. background-color: #282828;
  696. }