Skip to content

Commit ae0fbbb

Browse files
authored
Add dark mode for image readers (#241)
* Add dark mode styles and temporary toggle * Consolidate styles and use sass names * Fix package-lock.json * Second try * Regenerate package-lock.json
1 parent 6b04133 commit ae0fbbb

3 files changed

Lines changed: 63 additions & 24 deletions

File tree

app/assets/sass/components/_dark-mode.scss

Lines changed: 58 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,18 @@
33
$app-dark-mode-blue: #348de0;
44
$app-dark-mode-background: #1c1c1c;
55
$app-dark-mode-background-secondary: nhsuk-tint($app-dark-mode-background, 10%);
6-
$app-dark-mode-white: #e8e8e8;
6+
$app-dark-mode-white: #cfcfcf;
77
$app-dark-mode-text-colour: $app-dark-mode-white;
88
$app-dark-mode-text-colour-secondary: nhsuk-shade($app-dark-mode-text-colour, 30%);
9+
$app-dark-mode-surface: #161616;
10+
$app-dark-mode-border: $app-dark-mode-white;
11+
$app-dark-mode-banner-border: #015eb8;
912

1013
// Links
11-
$app-dark-mode-link-colour: $app-dark-mode-blue;
12-
$app-dark-mode-link-hover-colour: nhsuk-tint($nhsuk-link-hover-colour, 50%);
13-
$app-dark-mode-link-active-color: nhsuk-shade($app-dark-mode-link-colour, 20%);
14-
$app-dark-mode-link-visited-colour: nhsuk-tint($nhsuk-link-visited-colour, 50%);
15-
16-
// Paul's colours
17-
$app-dark-mode-link-colour: #348de0;
14+
$app-dark-mode-link-colour: #3892e0;
1815
$app-dark-mode-link-hover-colour: #ffeb3b;
1916
$app-dark-mode-link-active-colour: #000;
20-
$app-dark-mode-link-visited-colour: #89b;
17+
$app-dark-mode-link-visited-colour: #d055a5;
2118

2219
@mixin app-dark-mode-focused-text {
2320
background-color: $nhsuk-focus-colour;
@@ -35,7 +32,7 @@ $app-dark-mode-link-visited-colour: #89b;
3532
}
3633

3734
@mixin app-dark-mode-link-style-default {
38-
color: $app-dark-mode-blue;
35+
color: $app-dark-mode-link-colour;
3936

4037
&:visited {
4138
color: $app-dark-mode-link-visited-colour;
@@ -88,7 +85,8 @@ $app-dark-mode-link-visited-colour: #89b;
8885

8986
// Links and link type things
9087
a,
91-
.app-secondary-navigation__link {
88+
.app-secondary-navigation__link,
89+
.app-button-link {
9290
@include app-dark-mode-link-style-default;
9391

9492
&:focus {
@@ -175,19 +173,36 @@ $app-dark-mode-link-visited-colour: #89b;
175173
}
176174
}
177175

176+
.nhsuk-button--secondary {
177+
box-shadow: 0 4px 0 $app-dark-mode-link-colour;
178+
color: $app-dark-mode-link-colour;
179+
180+
&:link,
181+
&:visited,
182+
&:active {
183+
color: $app-dark-mode-link-colour;
184+
}
185+
186+
&:hover {
187+
background-color: $app-dark-mode-surface;
188+
box-shadow: 0 4px 0 $app-dark-mode-link-colour;
189+
color: $app-dark-mode-link-colour;
190+
}
191+
}
192+
178193
.nhsuk-header {
179194
a {
180-
color: $app-dark-mode-text-colour;
195+
color: #ffffff;
181196

182197
&:visited {
183-
color: $app-dark-mode-text-colour;
198+
color: #ffffff;
184199
}
185200
&:focus {
186201
@include app-dark-mode-focused-text;
187202
}
188203
}
189204
// background: $app-dark-mode-background-secondary;
190-
color: $app-dark-mode-text-colour;
205+
color: #ffffff;
191206

192207
.nhsuk-header__account,
193208
.nhsuk-header__account-item {
@@ -202,7 +217,8 @@ $app-dark-mode-link-visited-colour: #89b;
202217
}
203218
// Component overrides
204219
.nhsuk-card {
205-
background: $app-dark-mode-background-secondary;
220+
background: $app-dark-mode-surface;
221+
border: 1px solid $app-dark-mode-border;
206222
color: $app-dark-mode-text-colour;
207223

208224
.nhsuk-card__heading--feature {
@@ -213,7 +229,7 @@ $app-dark-mode-link-visited-colour: #89b;
213229

214230
.nhsuk-footer,
215231
.nhsuk-footer-container {
216-
background: $app-dark-mode-background-secondary;
232+
background: $app-dark-mode-surface;
217233
color: $app-dark-mode-text-colour;
218234

219235
.nhsuk-footer__list-item-link,
@@ -225,7 +241,7 @@ $app-dark-mode-link-visited-colour: #89b;
225241
.nhsuk-radios {
226242
.nhsuk-radios__input + .nhsuk-radios__label::before {
227243
border-color: $app-dark-mode-white;
228-
background-color: $app-dark-mode-background-secondary;
244+
background-color: transparent;
229245
}
230246
.nhsuk-radios__input + .nhsuk-radios__label::after {
231247
background: $app-dark-mode-white;
@@ -235,25 +251,44 @@ $app-dark-mode-link-visited-colour: #89b;
235251

236252
.nhsuk-checkboxes {
237253
.nhsuk-checkboxes__input + .nhsuk-checkboxes__label::before {
238-
// border-color: $app-dark-mode-white;
239-
// background-color: $app-dark-mode-background-secondary;
240-
background: $app-dark-mode-background-secondary;
241-
border-color: $app-dark-mode-text-colour-secondary;
254+
background: transparent;
255+
border-color: $app-dark-mode-white;
242256
}
243257
.nhsuk-checkboxes__input + .nhsuk-checkboxes__label::after {
244-
// background: $app-dark-mode-white;
245-
// border: 10px solid $app-dark-mode-white;
258+
// Checkmark styling
246259
}
247260
}
248261

249262
.nhsuk-checkboxes__conditional {
250263
border-left-color: $app-dark-mode-text-colour-secondary;
251264
}
252265

266+
// Text inputs, textareas, and selects
267+
.nhsuk-input,
268+
.nhsuk-textarea,
269+
.nhsuk-select {
270+
background-color: transparent;
271+
border-color: $app-dark-mode-white;
272+
color: $app-dark-mode-text-colour;
273+
}
274+
253275
.nhsuk-notification-banner__content {
254276
color: $app-dark-mode-text-colour;
255277
background: $app-dark-mode-background-secondary;
256278
}
279+
280+
.app-reading-opinion-banner {
281+
background: $app-dark-mode-surface;
282+
border: 2px solid $app-dark-mode-banner-border;
283+
filter: drop-shadow(2px 3px 3px $app-dark-mode-surface);
284+
}
285+
286+
.app-reading-opinion-banner__link,
287+
.app-reading-opinion-banner__link:visited,
288+
.app-reading-opinion-banner__link:hover,
289+
.app-reading-opinion-banner__link:focus {
290+
color: $app-dark-mode-link-colour;
291+
}
257292
}
258293

259294
html:has(.app-dark-mode) {

app/views/_templates/layout-base.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787
{
8888
href: "javascript:window.MammogramChannel.openViewer()",
8989
text: "Open PACS viewer"
90+
},
91+
{
92+
href: "?settings[darkMode]=" ~ ('true' if data.settings.darkMode !== 'true' else 'false') ~ "&clearQuery=true",
93+
text: "Toggle dark mode"
9094
}
9195
] %}
9296
{% endif %}

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)