diff options
Diffstat (limited to '')
-rw-r--r-- | interface/css/rspamd.css | 598 |
1 files changed, 598 insertions, 0 deletions
diff --git a/interface/css/rspamd.css b/interface/css/rspamd.css new file mode 100644 index 0000000..566e1db --- /dev/null +++ b/interface/css/rspamd.css @@ -0,0 +1,598 @@ +/* +The MIT License (MIT) + +Copyright (C) 2012-2013 Anton Simonov <untone@gmail.com> +Copyright (C) 2014-2015 Vsevolod Stakhov <vsevolod@highsecure.ru> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +/* stylelint-disable selector-id-pattern */ + +:root { + font-size: 14px; + + /* Tweak bootstrap 5 colors for better accessibility */ + --bs-danger-rgb: 221, 0, 0; + --bs-success-rgb: 40, 139, 69; +} + +/* bootstrap 4 overrides */ +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +code { + font-size: 90%; +} +small, +.small { + font-size: 85%; +} +.text-secondary { + color: #666 !important; +} +.navbar { + padding-top: 0; + padding-bottom: 0; + margin-bottom: 20px; + border-bottom: 1px solid rgb(231 231 231); +} +.nav-pills .nav-link.active { + background-color: #e7e7e7; +} +.danger > td { + background-color: #fbe9e5; +} +.success > td { + background-color: #eef9e7; +} +td.warning { + background-color: #fff8e6; +} +@media (max-width: 1199px) { + .navbar-collapse.order-3 { + border-top: 1px solid #dee2e6 !important; + } + /* Avoid navbar toggler hiding on navbar collapse */ + .navbar-toggler { + display: block !important; + } +} + +/* Tweak FooTable for Bootstrap 5 */ +.footable .btn, +.footable .form-control { + border-radius: 0.375rem; +} + +/* bootstrap 4 additionals */ +.btn-group-xs > .btn, +.btn-xs { + padding: .06rem .3rem; + font-size: .875rem; + line-height: 1.5; + border-radius: .2rem; +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: auto; + cursor: not-allowed; +} +.w-1 { + width: 1%; +} + +a { + outline: none; +} +textarea { + font-family: "Courier New", Courier, monospace; + resize: vertical; +} + +/* Tweak FooTable for Bootstrap 4 */ +.footable .dropdown-toggle::after { + content: none; +} +.footable .btn-outline-secondary { + border-color: rgb(108 117 125); +} +.footable .btn-group > .btn:not(:first-child), +.footable .btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.footable .input-sm { + height: 30px; +} + +.footable-header .fooicon { + font-size: 12px; +} +.footable .pagination > li:last-child > a { + border-top-right-radius:4px; + border-bottom-right-radius:4px +} + +/* local overrides */ +.navbar-brand > img { + height: 50px; +} +.btn-group > .btn.radius-right { + border-top-right-radius: .25rem !important; + border-bottom-right-radius: .25rem !important; +} + +input.form-control[type="number"] { + width: 4em; + padding-left: 0; + padding-right: 0; + text-align: center; +} +input.action-scores { + margin: 5px -7em 5px 0; +} +table#symbolsTable input[type="number"] { + width: 6em; + font-size: 11px; +} + +.notification-area { + position: fixed; + z-index: 1050; + top: 44px; + left: 0; + right: 0; + padding: 8px; +} +.alert { + margin-bottom: 4px; +} +.alert.alert-modal { + top: 0; +} +.alert strong { + display: inline-block; + padding-left: 35px; +} +.alert, +.alert h4 { + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert-success { + color: #468847; + background: #dff0d8; + border-color: #d6e9c6; +} +.alert-success h4 { + color: #468847; +} +.alert-danger, +.alert-error { + color: #b94a48; + background: #f2dede; + border-color: #eed3d7; +} +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} +.alert-info { + color: #3a87ad; + background: #d9edf7; + border-color: #bce8f1; +} +.alert-info h4 { + color: #3a87ad; +} + +#authInvalidCharFeedback, +#authUnauthorizedFeedback { + position: unset; + padding-top: 0.1rem; + padding-bottom: 0.1rem; +} + +/* widget */ +.card-header, +.modal-header { + background-color: #f3f3f3; + background-image: linear-gradient(to bottom, #fdfdfd, #eaeaea); +} +.card-header > .icon > svg { + vertical-align: middle; +} +.card-header .h6 { + font-size: 0.857rem; +} + +.stat-box { + background-color: #f3f3f3; + background-image: linear-gradient(to bottom, #f9f9f9, #ededed); + line-height: 1; +} +.stat-box:not(.float-end) { + min-width: 90px; +} +.stat-box .widget { + font-size: 10px; +} +.stat-box .widget strong { + font-size: 26px; +} + +/* Symbols coloring */ +.symbol-default { + border-radius: 2px; + padding-left: 2px; + padding-right: 2px; +} +.symbol-default:hover { + background-color: #e6e6e6; +} +.symbol-negative.symbol-negative { + background-color: #eef9e7; +} +.symbol-positive.symbol-positive { + background-color: #fbe9e5; +} +.symbol-special { + background-color: #e2e9fe; +} +.symbol-negative:hover { + background-color: #dcf9d3; +} +.symbol-positive:hover { + background-color: #fbd6d1; +} +.symbol-special:hover { + background-color: #cddbff; +} + +.map-link { + display: block; + color: #0088cc; + cursor: pointer; +} +.map-link:hover, +.map-link:focus { + color: #005580; + text-decoration: underline; +} + +/* Font Awesome icons size */ +.svg-inline--fa { /* stylelint-disable-line selector-class-pattern */ + font-size: 16px; +} +/* Increase refresh button spinner speed */ +#refresh .fa-spin { + -webkit-animation: fa-spin 1s linear infinite; + animation: fa-spin 1s linear infinite; +} + +/* Some spacing tweaks */ +.notification-area div > button:not(.close) { + margin-right: 9px; +} + +.status-table td:last-child { + border-right: none; +} +.status-table tr:last-child td { + border-bottom: none; +} +.status-table thead th:last-child { + border-right: none; +} +.footable-header, +.footable tr:not(.footable-detail-row) > td { + font-size: 11px; +} +.status-table tr:last-child td:first-child { + border-radius: 0 0 0 calc(.25rem - 1px); +} +.status-table tr:last-child td:last-child { + border-radius: 0 0 calc(.25rem - 1px) 0; +} + +/* RRD summary */ +#summary-row { + padding-left: 80px; + padding-right: 80px; +} +.col-fixed, +.col-fluid { + position: relative; + float: left; +} +.col-fixed { + width: 200px; + min-height: 1px; /* make an empty div take space */ +} +.col-fluid { + width: calc(100% - 200px); +} +#rrd-table_toggle { + position: absolute; + top: 0; + height: 100%; + width: 100%; +} +#rrd-table { + margin-bottom: 2px; + width: 100% !important; + text-align: left; + font-size: 12px; + z-index: 100; +} +#rrd-table td { + color: inherit; + padding-top: 2px; + padding-bottom: 2px; +} +#rrd-total { + padding-left: 8px; + margin-bottom: 10px; + text-align: left; + font-size: 12px; +} + +/* Throughput graph controls */ +#graph_controls select { + margin: 10px 20px 0; + display: inline-block; + width: auto; + border: 1px solid grey; +} + +/* history table */ +.footable-details.table { + margin-bottom: 0; +} +#historyTable_scan > tbody > tr > td, +#historyTable_scan > thead > tr > th, +#historyTable_history > tbody > tr > td, +#historyTable_history > thead > tr > th { + padding: 4px; +} +#historyTable_scan > thead > tr > th, +#historyTable_history > thead > tr > th { + padding-right: 20px; +} +@media (min-width: 576px) and (max-width: 1199px) { + .history-col-time { + /* Avoid taking multiple lines in every row when one of rows has long ID */ + white-space: nowrap; + } +} +.footable-filtering-search .dropdown-menu .sym-order-toggle { + display: none; +} + +#history_page_size { + width: 6em !important; + text-align: center; +} + +.scorebar-spam { + background-color: rgba(240 0 0 / 0.1) !important; +} +.scorebar-ham { + background: rgba(100 230 80 / 0.1) !important; +} + +.danger .icon { + color: #b94a48; +} +.success .icon { + color: #468847; +} + +#learnServers { + display: flex; +} + +#nprogress .bar { + height: 1px; +} + +@media (min-width: 992px) { + #selectors > .card { + height: calc(100vh - 96px); + } + #row-main { + /* necessary to hide collapsed sidebar */ + overflow-x: hidden; + } + #content > div { + display: flex; + } +} +#content { + transition: all 0.3s ease; + transition-property: flex-basis, max-width, width; +} + +.sidebar { + padding: 8px; + background-color: #ffe; + transition: margin 0.3s ease; +} +.collapsed { + /* hide it for small displays */ + display: none; +} +@media (min-width: 992px) { + .collapsed { + display: block; + } + #sidebar-left.collapsed { + /* same width as sidebar */ + margin-left: -25%; + } + #sidebar-right.collapsed { + /* same width as sidebar */ + margin-right: -25%; + } +} + +#selectors > .card > .card-body { + min-height: 0; +} + +.sidebar-nav { + width: 20px; +} +.sidebar-nav .nav-link, +.sidebar-nav .nav-link:hover { + border: 1px solid #ddd; +} +#sidebar-tab-left > a, +#sidebar-tab-right > a { + background-color: #ffe; + margin-left: 12px; + margin-right: 12px; +} +#sidebar-tab-left { + transform: rotate(180deg); +} +#sidebar-tab-text-left { + transform: rotate(180deg); +} +@media (min-width: 992px) { + #sidebar-left { + border-bottom-left-radius: 3.5px; + } + #sidebar-right { + border-bottom-right-radius: 3.5px; + } + .sidebar-nav { + padding-right: 0; + display: block; + } + #content { + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + } + #sidebar-tab-left { + display: flex; + transform: translateX(-50%) rotate(90deg) translate(50%, -50%); + } + #sidebar-tab-right { + float: right; + transform: translateX(50%) rotate(-90deg) translate(-50%, -50%); + } +} +@media (max-width: 991.98px) { + #sidebar-right { + border-bottom-left-radius: 3.5px; + border-bottom-right-radius: 3.5px; + } + #content { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + } + #sidebar-tab-right { + bottom: 0; + right: 0; + } +} + +#navBar .navbar-nav .nav-link { + padding: 15px; +} + +#modalDialog > .modal-dialog { + /* Center the modal vertically */ + top: 50%; + transform: translate(0, -50%); + -webkit-transform: translate(0, -50%); +} + +.codejar-wrap, +#editor.map-textarea { + border-radius: 6px; + max-height: calc(100vh - 178px); + max-width: 100%; + min-width: 100%; + overflow: auto; + resize: both; +} +#editor.map-textarea { + height: calc(100vh - 178px); + width: calc(100vw - 36px - 3rem); +} +.codejar-wrap, +#editor.map-textarea, +#editor.map-textarea:focus { + background: rgb(0 47 79); + color: silver; +} +.codejar-wrap { + /* Fix line wrapping */ + scrollbar-width: thin; +} +.codejar-linenumbers-inner-wrap { + bottom: unset; +} +.codejar-linenumbers { + background: rgba(255 255 255 / 0.07) !important; +} +.codejar-linenumber { + color: rgba(120 120 120 / 1) !important; + text-align: right; +} +.editor { + font-family: monospace; + font-size: 14px; + font-weight: 400; + letter-spacing: normal; + margin-left: 10px; + margin-right: 10px; + resize: unset !important; + tab-size: 4; + -moz-tab-size: 4; + overflow: unset !important; +} + +/* Prism show-invisibles plugin overrides */ +.token.tab:not(:empty)::before { + content: "\23af\27F6"; +} +/* Temporarily remove CR and LF tokens as they overflow line width */ +.token.cr::before, +.token.crlf::before, +.token.lf::before { + content: ""; +} + +/* Preloader */ +.blinking { + animation: blinker 1.2s ease-in-out infinite; +} +@keyframes blinker { + 50% { + -webkit-filter: invert(1); + filter: invert(1); + } +} |