From 07dfea17e677f8529d87918d4e81bd9847c5e478 Mon Sep 17 00:00:00 2001 From: leiweibau <105860611+leiweibau@users.noreply.github.com> Date: Fri, 20 May 2022 15:06:09 +0200 Subject: [PATCH] darkmode --- front/css/dark-patch-cal.css | 17 + front/css/dark-patch.css | 653 +++++++++++++++++++++++++++++++++ front/deviceDetails.php | 8 +- front/img/boxed-bg-dark.png | Bin 0 -> 11638 bytes front/img/manifest.json | 7 + front/php/templates/header.php | 19 +- front/presence.php | 1 + 7 files changed, 698 insertions(+), 7 deletions(-) create mode 100644 front/css/dark-patch-cal.css create mode 100644 front/css/dark-patch.css create mode 100644 front/img/boxed-bg-dark.png create mode 100644 front/img/manifest.json diff --git a/front/css/dark-patch-cal.css b/front/css/dark-patch-cal.css new file mode 100644 index 00000000..317cf696 --- /dev/null +++ b/front/css/dark-patch-cal.css @@ -0,0 +1,17 @@ +.fc-sat { +background-color: #444D56; } +.fc-sun { +background-color: #444D56; } +.fc-today { + background-color: #8D9AAC !important; + border: none !important; +} +.fc-cell-content { + background-color: #272c30; +} +.fc-widget-header { + background-color: #353c42; +} +.fc-unthemed .fc-content, .fc-unthemed .fc-divider, .fc-unthemed .fc-list-heading td, .fc-unthemed .fc-list-view, .fc-unthemed .fc-popover, .fc-unthemed .fc-row, .fc-unthemed tbody, .fc-unthemed td, .fc-unthemed th, .fc-unthemed thead{ + border-color: #353c42 !important; +} diff --git a/front/css/dark-patch.css b/front/css/dark-patch.css new file mode 100644 index 00000000..fbe7e2d4 --- /dev/null +++ b/front/css/dark-patch.css @@ -0,0 +1,653 @@ +/* Pi-hole: A black hole for Internet advertisements +* (c) 2020 Pi-hole, LLC (https://pi-hole.net) +* Network-wide ad blocking via your own hardware. +* +* This file is copyright under the latest version of the EUPL. +* Please see LICENSE file for your rights under this license. +* +* The colors used in this theme has been inspired by +* https://github.com/anvyst/adminlte-skin-midnight +* +* Additional fixes For Pi.Alert UI by leiweibau */ + +:root { + --datatable-bgcolor: rgba(64, 76, 88, 0.8); +} +html { + background-color: #353c42; +} + +body { + background-color: #353c42; + color: #bec5cb; +} +h4 { + color: #44def1; +} +.content-header > .breadcrumb > li > a { + color: #bec5cb; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + border-top: 0; +} +.table > thead > tr.odd, +.table > tbody > tr.odd, +.table > tfoot > tr.odd { + background-color: #2a2f34; +} +.table > thead > tr.odd:hover, +.table > tbody > tr.odd:hover, +.table > tfoot > tr.odd:hover, +.table > thead > tr.even:hover, +.table > tbody > tr.even:hover, +.table > tfoot > tr.even:hover { + background-color: #1e2226; +} +.table-bordered, +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #353c42; +} +.dataTables_wrapper input[type="search"] { + border-radius: 4px; + background-color: #353c42; + border: 0; + color: #bec5cb; +} +.dataTables_paginate .pagination li > a { + background-color: #353c42; + border-color: #353c42; +} +.pagination > .disabled > a, +.pagination > .disabled > a:focus, +.pagination > .disabled > a:hover, +.pagination > .disabled > span, +.pagination > .disabled > span:focus, +.pagination > .disabled > span:hover { + cursor: not-allowed; + color: #bec5cb; + background-color: #353c42; + border-color: #353c42; +} +.pagination > li > a:focus, +.pagination > li > a:hover, +.pagination > li > span:focus, +.pagination > li > span:hover { + z-index: 2; + color: #bec5cb; + background-color: #54606b; + border-color: #54606b; +} +.wrapper, +.main-sidebar, +.left-side { + background-color: #272c30; +} +.user-panel > .info, +.user-panel > .info > a { + color: #fff; +} +.sidebar-menu > li.header { + color: #556068; + background-color: #1e2225; +} +.sidebar-menu > li > a { + border-left: 3px solid transparent; +} +.sidebar-menu > li:hover > a, +.sidebar-menu > li > a:focus, +.sidebar-menu > li.active > a { + color: #fff; + background-color: #22272a; + border-color: #3c8dbc; +} +.sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background-color: #32393e; +} +.sidebar a { + color: #bec5cb; +} +.sidebar a:hover { + text-decoration: none; +} +.treeview-menu > li > a { + color: #949fa8; +} +.treeview-menu > li.active > a, +.treeview-menu > li > a:hover, +.treeview-menu > li > a:focus { + color: #fff; +} +.sidebar-form { + border-radius: 3px; + border: 1px solid #3e464c; + margin: 10px; +} +.sidebar-form input[type="text"], +.sidebar-form .btn { + box-shadow: none; + background-color: #3e464c; + border: 1px solid transparent; + height: 35px; +} +.sidebar-form input[type="text"] { + color: #666; + border-top-left-radius: 2px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 2px; +} +.sidebar-form input[type="text"]:focus, +.sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #fff; + color: #666; +} +.sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left-color: #fff; +} +.sidebar-form .btn { + color: #999; + border-top-left-radius: 0; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; + border-bottom-left-radius: 0; +} +.box, +.box-footer, +.info-box, +.box-comment, +.comment-text, +.comment-text .username { + color: #bec5cb; + background-color: #272c30; +} +.box-comments .box-comment { + border-bottom-color: #353c42; +} +.box-footer { + border-top: 1px solid #353c42; +} +.box-header.with-border { + border-bottom: 1px solid #353c42; +} +.box-solid, +.box { + border: 1px solid #272c30; +} +.box-solid > .box-header, +.box > .box-header { + color: #bec5cb; +} +.box-solid > .box-header .btn, +.box > .box-header .btn { + color: #bec5cb; +} +.box.box-info, +.box.box-primary, +.box.box-success, +.box.box-warning, +.box.box-danger { + border-top-width: 3px; +} +.box.box-info { + border-top-color: #00c0ef; +} +.box.box-primary { + border-top-color: #075383; +} +.box.box-success { + border-top-color: #00a65a; +} +.box.box-warning { + border-top-color: #ff851b; +} +.box.box-danger { + border-top-color: #dd4b39; +} +.main-header .navbar { + background-color: #272c30; +} +.main-header .navbar .nav > li > a, +.main-header .navbar .nav > li > .navbar-text { + color: #bec5cb; + max-height: 50px; +} +.main-header .navbar .nav > li > a:hover, +.main-header .navbar .nav > li > a:active, +.main-header .navbar .nav > li > a:focus, +.main-header .navbar .nav .open > a, +.main-header .navbar .nav .open > a:hover, +.main-header .navbar .nav .open > a:focus, +.main-header .navbar .nav > .active > a { + background-color: rgba(0, 0, 0, 0.1); + color: #f6f6f6; +} +.main-header .navbar .sidebar-toggle { + color: #bec5cb; +} +.main-header .navbar .sidebar-toggle:hover { + color: #f6f6f6; + background-color: rgba(0, 0, 0, 0.1); +} +.timeline li .timeline-item { + color: #bec5cb; + background-color: #272c30; + border-color: #353c42; +} +.timeline li .timeline-header { + border-bottom-color: #353c42; +} +.nav-stacked > li > a { + color: #bec5cb; +} +.nav-stacked > li > a:hover { + color: white; + background-color: #1e2226; +} +.content-wrapper, +.right-side { + background-color: #353c42; +} +.main-footer, +.nav-tabs-custom { + background-color: #272c30; + border-top-color: #353c42; + color: #bec5cb; +} +.main-footer .nav-tabs, +.nav-tabs-custom .nav-tabs { + background-color: #30383f; + border-bottom-color: #2f363b; +} +.main-footer .tab-content, +.nav-tabs-custom .tab-content { + background-color: #30383f; +} +.nav-tabs-custom > .nav-tabs { + background: rgba(64, 72, 80, 0.666); +} +.nav-tabs-custom > .nav-tabs > li { + margin-right: 1px; + color: #bec5cb; +} +.nav-tabs-custom > .nav-tabs > li.active > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + border-left-color: #30383f; + border-right-color: #30383f; + background-color: #30383f; + color: #bec5cb; +} +.nav-tabs-custom > .nav-tabs > li:not(.active):hover { + border-top-color: #d2d6de; + background-color: transparent; +} +.nav-tabs-custom > .nav-tabs > li > a { + color: #8e959b; +} +.nav-tabs-custom > .nav-tabs > li > a:focus { + color: #3c8dbc; +} +.nav-tabs-custom > .nav-tabs > li:hover > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + background-color: #353c42; + color: #bec5cb; +} + +.list-group { + color: #bec5cb; + background-color: #272c30; +} +.list-group .list-group-item { + border-color: #353c42; + background-color: #272c30; +} +.input-group .input-group-addon { + border-right: 1px solid #272c30; +} +.select2 .select2-selection { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2 .select2-selection .select2-container--default, +.select2 .select2-selection .select2-selection--single, +.select2 .select2-selection .select2-selection--multiple, +.select2 .select2-selection .select2-selection__rendered { + color: #bec5cb; +} +.select2-dropdown { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2-dropdown .select2-search__field { + background-color: #272c30; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2-container--default.select2-container--open { + background-color: #272c30; +} + +.layout-boxed { + background: url("../../img/boxed-bg-dark.png") repeat fixed; +} +.not-used { + background-color: #eee; +} +.not-used:hover { + background-color: #c5c5c5; +} +.used { + background-color: #fff; +} +.used:hover { + background-color: #ddd; +} + +.graphs-grid { + background-color: rgba(255, 255, 255, 0.2); +} +.graphs-ticks { + color: #b8c7ce; +} +.queries-permitted { + background-color: #00a65a; +} +.queries-blocked { + background-color: #999; +} +.progress { + background-color: #333; +} + +.bg-green { + background-color: #005c32 !important; +} +.bg-aqua { + background-color: #007997 !important; +} +.bg-yellow { + background-color: #b1720c !important; +} +.bg-red { + background-color: #913225 !important; +} + +code, +pre { + padding: 2px 4px; + font-size: 90%; + color: #bec5cb; + background-color: #353c42; + border-radius: 4px; +} + +/* Used in the Query Log table */ +.text-green-light { + color: #5ca314 !important; +} +.text-green { + color: #00aa60 !important; +} +.text-orange { + color: #b1720c !important; +} +.text-red { + color: #bd2c19 !important; +} +.text-vivid-blue { + color: #007997 !important; +} +td.highlight { + background-color: rgba(255, 204, 0, 0.333); +} +.btn-default { + box-shadow: none; + background-color: #3e464c; + color: #bec5cb; + border: 1px solid #353c42; +} + +/* Used in debug log page */ +.log-red { + color: #ff4038; +} +.log-green { + color: #4c4; +} +.log-yellow { + color: #fb0; +} +.log-blue { + color: #48f; +} +.log-purple { + color: #b8e; +} +.log-cyan { + color: #0df; +} +.log-gray { + color: #999; +} + +#output { + border-color: #505458; + background: #272c30; +} + +/* Used by the long-term pages */ +.daterangepicker { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; +} +.daterangepicker .ranges li:hover { + background-color: #353c42; +} +.daterangepicker .ranges li.active { + background-color: #1e2226; /* Color also used in table pagination */ +} +.daterangepicker .calendar-table { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; +} +.daterangepicker td.off, +.daterangepicker td.off.in-range, +.daterangepicker td.off.start-date, +.daterangepicker td.off.end-date { + background-color: #485158; +} +.daterangepicker td.available:hover, +.daterangepicker th.available:hover { + background-color: #1e2226; +} +.daterangepicker td.active, +.daterangepicker td.active:hover, +.daterangepicker td.in-range:hover { + background-color: #225e92; +} +.daterangepicker td.in-range { + background-color: #1e2226; + color: #bec5cb; +} +input, +select, +select.form-control, +.form-group .input-group-addon, +.input-group .input-group-addon, +.form-group input, +.input-group input, +.form-group textarea, +.input-group textarea, +.daterangepicker select.hourselect, +.daterangepicker select.minuteselect, +.daterangepicker select.secondselect, +.daterangepicker select.ampmselect, +.form-control, +div.dataTables_wrapper div.dataTables_length select { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #3d444b; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #353c42; + opacity: 1; +} +.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + background-color: #4c5761; + color: #bec5cb; + border: 1px solid #171c20; +} +.table-striped > tbody > tr:nth-of-type(2n + 1) { + background-color: #2d343a; +} +.panel, +.panel-body, +.panel-default > .panel-heading { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; + color: #bec5cb; +} +.box.box-solid.box-info, +.box.box-solid.box-info > .box-header { + color: #bec5cb; + background-color: #367fa9 !important; + border: 1px solid #367fa9; +} +input[type="password"]::-webkit-credentials-auto-fill-button { + background: #bfc5ca; +} +input[type="password"]::-webkit-caps-lock-indicator { + filter: invert(100%); +} + +.network-never { + background-color: #661b02; +} +.network-recent { + background-color: #114100; +} +.network-old { + background-color: #525200; +} +.network-older { + background-color: #502b00; +} +.network-gradient { + background-image: linear-gradient(to right, #114100 0%, #525200 100%); +} + +.icheckbox_polaris, +.icheckbox_futurico, +.icheckbox_minimal-blue { + margin-right: 10px; +} +.iradio_polaris, +.iradio_futurico, +.iradio_minimal-blue { + margin-right: 8px; +} + +/* Overlay box with spinners as shown during data collection for graphs */ +.box .overlay, +.overlay-wrapper .overlay { + z-index: 50; + background-color: rgba(53, 60, 66, 0.733); + border-radius: 3px; +} +.box .overlay > .fa, +.overlay-wrapper .overlay > .fa, +.navbar-nav > .user-menu > .dropdown-menu > .user-body a { + color: #bec5cb !important; +} + +.navbar-nav > .user-menu > .dropdown-menu > .user-footer { + background-color: #353c42bb; + padding: 10px; +} + +.modal-content { + background: #272c30; +} +.modal-header { + border-bottom-color: #353c42; +} +.modal-footer { + border-top-color: #353c42; +} +.close { + color: #383838; +} + +/*** Fix login input visual misalignment ***/ +#loginform, +#loginform input { + color: rgb(120, 127, 133); +} + +.login-options input, +.login-options [class*="icheck-"] > input:first-child + input[type="hidden"] + label::before, +.login-options [class*="icheck-"] > input:first-child + label::before { + background: none; + border-color: rgb(120, 127, 133); +} + +/*** Additional fixes For Pi.Alert UI ***/ +.small-box { + border-radius: 10px; +} +.pa-small-box-aqua .inner { + background-color: rgb(45,108,133); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-green .inner { + background-color: rgb(31,76,46); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-yellow .inner { + background-color: rgb(151,104,37); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-red .inner { + background-color: rgb(120,50,38); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-gray .inner { + background-color: rgb(189,192,198); + color: rgba(20,20,20,30%); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.text-gray-20 { + color: rgba(20,20,20,30%); +} +.bg-gray { + background-color: #888888 !important; +} +.badge.bg-green { + background-color: #00A000 !important; +} +#txtRecord { + background-color: #353c42; + border-color: #888888; +} diff --git a/front/deviceDetails.php b/front/deviceDetails.php index 47cf35fe..0810d693 100644 --- a/front/deviceDetails.php +++ b/front/deviceDetails.php @@ -56,7 +56,7 @@

--

- +
@@ -308,7 +308,7 @@
- +
@@ -343,7 +343,7 @@
- +
@@ -505,6 +505,8 @@ + + diff --git a/front/img/boxed-bg-dark.png b/front/img/boxed-bg-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..d200749cba8bd9f85d57d1f300aa116256c15f2b GIT binary patch literal 11638 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 literal 0 HcmV?d00001 diff --git a/front/img/manifest.json b/front/img/manifest.json new file mode 100644 index 00000000..40b5b76f --- /dev/null +++ b/front/img/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Pi-Alert Console", + "short_name": "Pi-Alert", + "display": "standalone", + "theme_color": "#282b30", + "background_color": "#282b30" +} diff --git a/front/php/templates/header.php b/front/php/templates/header.php index 6b9de904..53e2b355 100644 --- a/front/php/templates/header.php +++ b/front/php/templates/header.php @@ -14,7 +14,9 @@ - Pi.Alert + + + Pi.Alert - <?php echo gethostname();?> @@ -34,7 +36,7 @@ - + @@ -47,15 +49,24 @@ - + + + + + + + + - +
diff --git a/front/presence.php b/front/presence.php index 0c60eb65..8a0d6d57 100644 --- a/front/presence.php +++ b/front/presence.php @@ -153,6 +153,7 @@ +