Introduce Dark Mode

This commit mainly changes the color definitions. Mostly, those changes are semantically equally, but there are a few changes that occurred to align the color scheme within the app.
This commit is contained in:
Sebastian Serth
2023-06-02 09:29:43 +02:00
parent aab3b95a1d
commit 944b455194
49 changed files with 582 additions and 197 deletions

View File

@@ -9,7 +9,7 @@ h1, h2, h3, h4, h5, h6 {
.lead {
font-size: 16px;
color: rgba(70, 70, 70, 1);
color: var(--bs-dark-text-emphasis);
}
a:not(.dropdown-item, .dropdown-toggle, .dropdown-link, .btn, .page-link), .btn-link {
@@ -26,10 +26,10 @@ i.fa-solid, i.fa-regular, i.fa-solid {
}
pre, .output-element {
background-color: #FAFAFA;
background-color: var(--bs-light-bg-subtle);
margin: 0;
padding: .25rem!important;
border: 1px solid #CCCCCC;
border: 1px solid var(--bs-border-color-translucent);
}
span.caret {
@@ -50,14 +50,14 @@ span.caret {
.progress {
margin: 0;
border: 1px solid #CCCCCC;
border: 1px solid var(--bs-border-color-translucent);
padding: 0.125rem !important;
height: 1.25rem !important;
.progress-bar {
line-height: initial;
min-width: 2em;
color: white;
color: var(--bs-white);
}
}
@@ -96,10 +96,17 @@ span.caret {
.flash {
font-size: 100%;
}
a, a:hover {
color: white;
font-weight: bold;
html[data-bs-theme="dark"] {
.alert .alert-link:hover {
filter: brightness(135%);
}
}
html[data-bs-theme="light"] {
.alert .alert-link:hover {
filter: brightness(175%);
}
}
@@ -110,7 +117,7 @@ span.caret {
.spinner {
width: 40px;
height: 40px;
background-color: #333;
background-color: var(--bs-body-color);
margin: 100px auto;
-webkit-animation: sk-rotateplane 1.2s infinite ease-in-out;

View File

@@ -20,13 +20,13 @@
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
border-left-color: var(--bs-border-color-translucent);
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
border-left-color: #ffffff;
border-left-color: var(--bs-dropdown-link-active-color);
}
.dropdown-submenu.float-start {

View File

@@ -6,8 +6,11 @@
.own-editor {
height: 100%;
width: 100%;
.ace_scroller .ace_content {
background: #FAFAFA;
}
html[data-bs-theme="light"] {
.own-editor .ace_scroller .ace_content {
background-color: var(--bs-secondary-border-subtle);
}
}
@@ -51,7 +54,7 @@
}
#editor-buttons {
background-color: #008CBA;
background-color: var(--bs-primary);
margin-top: 0;
width: 100%;
display: flex;
@@ -97,7 +100,7 @@
visibility: hidden;
margin-top: .2em;
height: 1.6em;
color: #777;
color: var(--bs-tertiary-color);
font-size: 0.8em;
}
@@ -188,7 +191,7 @@
#error-hints {
display: none;
background-color: #FAFAFA;
background-color: var(--bs-light-bg-subtle);
.heading {
font-weight: bold;

View File

@@ -1,7 +1,7 @@
$time-color: #008cba;
$min-color: #8efa00;
$avg-color: #ffca00;
$max-color: #ff2600;
$time-color: var(--bs-blue);
$min-color: var(--bs-yellow);
$avg-color: var(--bs-teal);
$max-color: var(--bs-red);
path.line.minimum-working-time {
stroke: $min-color;
@@ -31,7 +31,7 @@ rect.value-bar {
.box {
width: 20px;
height: 20px;
border: solid 1px #000;
border: solid 1px var(--bs-emphasis-color);
}
.box.time {
@@ -62,8 +62,8 @@ rect.value-bar {
display: none;
min-width: 80px;
height: auto;
background: none repeat scroll 0 0 #ffffff;
border: 1px solid #008cba;
background: none repeat scroll 0 0 var(--bs-body-bg);
border: 1px solid var(--bs-primary);
padding: 14px;
text-align: center;
}

View File

@@ -1,5 +1,5 @@
code {
background-color: #F8F8F8 !important;
background-color: var(--bs-light-bg-subtle) !important;
max-height: 100px;
overflow: scroll;
}
@@ -14,7 +14,7 @@ input[type='file'] {
.exercise {
border-radius: 3px;
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.2);
box-shadow: 0 2px 4px 0 rgba(var(--bs-black-rgb), 0.2);
padding: 1px 10px 1px 10px;
margin-bottom: 10px;
@@ -50,15 +50,17 @@ input[type='file'] {
// Graph Settings
text.axis, {
fill: var(--bs-body-color);
}
.axis path {
fill: none;
stroke: #100;
shape-rendering: crispEdges;
}
.axis line {
fill: none;
stroke: #999;
//shape-rendering: crispEdges;
stroke: var(--bs-tertiary-color);
}
.y.axis path {
@@ -77,29 +79,29 @@ input[type='file'] {
}
div#chart_1 {
background-color: #FAFAFA;
background-color: var(--bs-light-bg-subtle);
}
div#chart_2 {
background-color: #FAFAFA;
background-color: var(--bs-light-bg-subtle);
}
div#chart_stacked {
max-height: 500px;
background-color: #FAFAFA;
background-color: var(--bs-light-bg-subtle);
}
a.file-heading {
color: black !important;
color: var(--bs-body-color) !important;
text-decoration: none;
}
.bar {
fill: orange;
fill: var(--bs-warning);
}
.bar:hover {
fill: #ffd897;
fill: var(--bs-warning-border-subtle);
}
.container > form > .actions {
@@ -110,8 +112,8 @@ a.file-heading {
line-height: 1;
font-weight: bold;
padding: 12px;
background: rgba(0, 0, 0, 0.8);
color: #fff;
background: rgba(var(--bs-black-rgb), 0.8);
color: var(--bs-white);
border-radius: 2px;
}
@@ -122,7 +124,7 @@ a.file-heading {
font-size: 14px;
width: 100%;
line-height: 1;
color: rgba(0, 0, 0, 0.8);
color: rgba(var(--bs-black-rgb), 0.8);
content: "\25BC";
position: absolute;
text-align: center;
@@ -142,7 +144,7 @@ a.file-heading {
}
.value {
border: 1px solid grey;
border: 1px solid var(--bs-border-color-translucent);
padding: 10px;
margin-bottom: 10px;
}
@@ -216,11 +218,11 @@ a.file-heading {
}
.export-success {
color: darkgreen;
color: var(--bs-success);
font-size: 12pt;
font-weight: 600;
}
.export-failure {
color: darkred;
color: var(--bs-danger);
}

View File

@@ -31,3 +31,7 @@
.toggle-input {
font-size: 80%;
}
.wmd-preview {
background-color: var(--bs-secondary-bg);
}

View File

@@ -1,7 +1,7 @@
.rfc {
h5 {
color: #008CBA;
color: var(--bs-primary);
}
.text {
@@ -25,8 +25,8 @@
.text {
padding: 5px;
background-color: #FAFAFA;
border: 1px solid #CCCCCC;
background-color: var(--bs-light-bg-subtle);
border: 1px solid var(--bs-border-color-translucent);
}
}
@@ -44,8 +44,8 @@
.text {
padding: 5px;
background-color: #FAFAFA;
border: 1px solid #CCCCCC;
background-color: var(--bs-light-bg-subtle);
border: 1px solid var(--bs-border-color-translucent);
}
pre {
@@ -77,26 +77,26 @@
.passed {
border-radius: 50%;
background-color: #8efa00;
-webkit-box-shadow: 0 0 11px 1px rgba(44,222,0,1);
-moz-box-shadow: 0 0 11px 1px rgba(44,222,0,1);
box-shadow: 0 0 11px 1px rgba(44,222,0,1);
background-color: var(--bs-success);
-webkit-box-shadow: 0 0 11px 1px rgba(var(--bs-success-rgb), 1);
-moz-box-shadow: 0 0 11px 1px rgba(var(--bs-success-rgb), 1);
box-shadow: 0 0 11px 1px rgba(var(--bs-success-rgb), 1);
}
.unknown {
border-radius: 50%;
background-color: #ffca00;
-webkit-box-shadow: 0 0 11px 1px rgb(255, 202, 0);
-moz-box-shadow: 0 0 11px 1px rgb(255, 202, 0);
box-shadow: 0 0 11px 1px rgb(255, 202, 0);
background-color: var(--bs-warning);
-webkit-box-shadow: 0 0 11px 1px rgba(var(--bs-warning-rgb), 1);
-moz-box-shadow: 0 0 11px 1px rgba(var(--bs-warning-rgb), 1);
box-shadow: 0 0 11px 1px rgba(var(--bs-warning-rgb), 1);
}
.failed {
border-radius: 50%;
background-color: #ff2600;
-webkit-box-shadow: 0 0 11px 1px rgba(222,0,0,1);
-moz-box-shadow: 0 0 11px 1px rgba(222,0,0,1);
box-shadow: 0 0 11px 1px rgba(222,0,0,1);
background-color: var(--bs-danger);
-webkit-box-shadow: 0 0 11px 1px rgba(var(--bs-danger-rgb), 1);
-moz-box-shadow: 0 0 11px 1px rgba(var(--bs-danger-rgb), 1);
box-shadow: 0 0 11px 1px rgba(var(--bs-danger-rgb), 1);
}
}
@@ -109,8 +109,8 @@
display: none;
margin-top: 20px;
padding: 5px;
border: solid lightgrey 1px;
background-color: rgba(20, 180, 20, 0.2);
border: solid var(--bs-border-color-translucent) 1px;
background-color: rgba(var(--bs-success-rgb),0.2);
border-radius: 4px;
button {
@@ -127,7 +127,12 @@
#commentitor {
margin-bottom: 2rem;
height: 600px;
background-color:#f9f9f9
}
html[data-bs-theme="light"] {
#commentitor {
background-color: var(--bs-secondary-border-subtle);
}
}
:not(.allow_ace_tooltip) > .ace_tooltip {
@@ -180,7 +185,7 @@
.comment-date {
text-align: right;
color: #008cba;
color: var(--bs-primary);
margin-left: 60%;
font-size: x-small;
}
@@ -212,7 +217,7 @@
.comment-divider {
width: 100%;
height: 1px;
background-color: #008cba;
background-color: var(--bs-primary);
overflow: hidden;
margin-top: 10px;
margin-bottom: 10px;
@@ -226,7 +231,7 @@
.container {
width: 100%;
overflow-y: auto;
border: 1px solid #cccccc;
border: 1px solid var(--bs-border-color-translucent);
padding: 15px;
.comment-removed {
@@ -264,14 +269,10 @@ input#subscribe {
}
.popover-footer {
color: #008cba;
color: var(--bs-primary);
margin-top: 10px;
}
.do-not-answer {
background-color: #ea2f1085;
}
#q_submission_study_group_id_in_chosen {
margin-right: 20px;
}

View File

@@ -36,51 +36,54 @@ div.unit-test-result {
div.positive-result {
border-radius: 50%;
background-color: #8efa00;
-webkit-box-shadow: 0px 0px 11px 1px rgba(44,222,0,1);
-moz-box-shadow: 0px 0px 11px 1px rgba(44,222,0,1);
box-shadow: 0px 0px 11px 1px rgba(44,222,0,1);
background-color: var(--bs-success);
-webkit-box-shadow: 0px 0px 11px 1px rgba(var(--bs-success-rgb), 1);
-moz-box-shadow: 0px 0px 11px 1px rgba(var(--bs-success-rgb), 1);
box-shadow: 0px 0px 11px 1px rgba(var(--bs-success-rgb), 1);
}
div.unknown-result {
border-radius: 50%;
background-color: #ffca00;
-webkit-box-shadow: 0px 0px 11px 1px rgb(255, 202, 0);
-moz-box-shadow: 0px 0px 11px 1px rgb(255, 202, 0);
box-shadow: 0px 0px 11px 1px rgb(255, 202, 0);
background-color: var(--bs-warning);
-webkit-box-shadow: 0px 0px 11px 1px rgba(var(--bs-warning-rgb), 1);
-moz-box-shadow: 0px 0px 11px 1px rgba(var(--bs-warning-rgb), 1);
box-shadow: 0px 0px 11px 1px rgba(var(--bs-warning-rgb), 1);
}
div.negative-result {
border-radius: 50%;
background-color: #ff2600;
-webkit-box-shadow: 0px 0px 11px 1px rgba(222,0,0,1);
-moz-box-shadow: 0px 0px 11px 1px rgba(222,0,0,1);
box-shadow: 0px 0px 11px 1px rgba(222,0,0,1);
background-color: var(--bs-danger);
-webkit-box-shadow: 0px 0px 11px 1px rgba(var(--bs-danger-rgb), 1);
-moz-box-shadow: 0px 0px 11px 1px rgba(var(--bs-danger-rgb), 1);
box-shadow: 0px 0px 11px 1px rgba(var(--bs-danger-rgb), 1);
}
tr.active {
filter: brightness(85%);
color: #000000;
html[data-bs-theme="dark"] {
tr.active {
filter: brightness(175%);
}
}
tr:not(.before_deadline,.within_grace_period,.after_late_deadline) {
background-color: #ffffff;
html[data-bs-theme="light"] {
tr.active {
filter: brightness(85%);
}
}
tr.highlight {
border-top: 2px solid rgba(222,0,0,1);
border-top: 2px solid var(--bs-red);
}
.before_deadline {
background-color: #DAF7A6;
.before_deadline, .before_deadline > * {
background-color: var(--bs-success-bg-subtle) !important;
}
.within_grace_period {
background-color: #F7DC6F;
.within_grace_period, .within_grace_period > * {
background-color: var(--bs-warning-bg-subtle) !important;
}
.after_late_deadline {
background-color: #EC7063;
.after_late_deadline, .after_late_deadline > * {
background-color: var(--bs-danger-bg-subtle) !important;
}
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -97,13 +100,13 @@ tr.highlight {
grid-gap: 10px;
> a {
color: #fff !important;
color: var(--bs-white) !important;
text-decoration: none !important;
> div {
border: 2px solid #0055ba;
border: 2px solid var(--bs-primary-text-emphasis);
border-radius: 5px;
background-color: #008cba;
background-color: var(--bs-primary);
padding: 1em;
display: flex;
flex-flow: column-reverse;