Skip to content

Commit 9062d37

Browse files
authored
Merge pull request #69 from ishythefishy/dark-mode
Added a dark theme, it is dark by default
2 parents 51594fd + 41696dc commit 9062d37

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2234
-1862
lines changed

apps/fretonator-web/src/app/app.component.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
<app-header></app-header>
2-
<div #globalScrollTarget>
3-
<router-outlet></router-outlet>
1+
<div class="app__wrapper"
2+
[attr.color-mode]="colorMode">
3+
<app-header (setDarkColorMode)="setDarkColorMode($event)"></app-header>
4+
<main #globalScrollTarget role="main">
5+
<router-outlet></router-outlet>
6+
</main>
7+
<app-footer></app-footer>
48
</div>
5-
<app-footer></app-footer>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.app__wrapper {
2+
background-color: var(--background-color-base);
3+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';
22
import { GlobalService } from './global.service';
33

4+
export const ColorModes = {
5+
light: 'light',
6+
dark: 'dark'
7+
};
8+
49
@Component({
510
selector: 'app-root',
611
templateUrl: './app.component.html',
712
styleUrls: ['./app.component.scss']
813
})
914
export class AppComponent implements AfterViewInit {
1015
@ViewChild('globalScrollTarget') globalScrollTarget: ElementRef<HTMLElement>;
16+
colorMode = ColorModes.dark;
1117

1218
constructor(private globalService: GlobalService) {
1319
}
1420

1521
ngAfterViewInit() {
1622
this.globalService.setGlobalScrollTarget(this.globalScrollTarget.nativeElement);
1723
}
24+
25+
setDarkColorMode(dark: Boolean) {
26+
this.colorMode = dark ? ColorModes.dark : ColorModes.light;
27+
}
1828
}

apps/fretonator-web/src/app/app.module.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { AppComponent } from './app.component';
66
import { HeaderModule } from './common/header/header.module';
77
import { FooterModule } from './common/footer/footer.module';
88
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
9+
import { MoonModule } from './common/svgs/moon/moon.module';
10+
import { SunModule } from './common/svgs/sun/sun.module';
911

1012
// import { ServiceWorkerModule } from '@angular/service-worker';
1113

@@ -16,7 +18,9 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
1618
BrowserAnimationsModule,
1719
AppRoutingModule,
1820
HeaderModule,
19-
FooterModule
21+
FooterModule,
22+
MoonModule,
23+
SunModule
2024
// ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
2125
],
2226
providers: [],

apps/fretonator-web/src/app/common/footer/footer.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<div class="footer__inner">
33

44
<div class="footer__leftColumn">
5-
<h6 class="footer__sectionTitle">
5+
<h5 class="footer__sectionTitle">
66
Fretonator is open source
7-
</h6>
7+
</h5>
88
<p class="footer__copy">
99
Thank you to the following generous contributors:
1010
</p>

apps/fretonator-web/src/app/common/footer/footer.component.scss

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
@import '../../../styles/typography';
55

66
.footer {
7-
background-color: var(--black);
7+
background-color: var(--footer-background);
88
box-sizing: border-box;
99
padding: pxToRem($grid-unit * 6);
10-
border-top: pxToRem($grid-unit) solid var(--peach);
10+
border-top: pxToRem($grid-unit) solid var(--footer-border-color);
1111
}
1212

1313
.footer__inner {
@@ -56,7 +56,7 @@
5656
@include font_bodyCopy;
5757
font-size: pxToRem(15);
5858
line-height: pxToRem(22);
59-
color: var(--offwhite);
59+
color: var(--footer-copy-color);
6060
display: flex;
6161
flex-direction: column;
6262
justify-content: center;
@@ -79,8 +79,8 @@
7979

8080
.footer__copy--link {
8181
@include text_link();
82-
color: var(--peach);
83-
border-color: var(--peach);
82+
color: var(--footer-link-color);
83+
border-color: var(--footer-link-color);
8484
}
8585

8686
.footer__sectionTitle {
@@ -89,7 +89,7 @@
8989
line-height: pxToRem(28);
9090
margin-top: pxToRem($grid-unit);
9191
margin-bottom: pxToRem($grid-unit);
92-
color: var(--peach);
92+
color: var(--footer-title-color);
9393
font-weight: var(--font-weight-bold);
9494
display: flex;
9595
text-align: center;
@@ -114,19 +114,19 @@
114114
@include font_bodyCopy;
115115
font-size: pxToRem(15);
116116
line-height: pxToRem(26);
117-
color: var(--offwhite);
117+
color: var(--footer-copy-color);
118118
}
119119

120120
.footer__listItemLink {
121121
@include text_link();
122-
color: var(--yellow);
123-
border-color: var(--yellow);
122+
color: var(--footer-list-link-color);
123+
border-color: var(--footer-list-link-color);
124124

125125
@include focus_accessible();
126126
}
127127

128128
.footer__copyright {
129-
color: var(--offwhite);
129+
color: var(--footer-copy-color);
130130
font-size: pxToRem(12);
131131
letter-spacing: var(--letter-spacing-display);
132132
font-weight: var(--font-weight-bold);
@@ -153,11 +153,11 @@
153153
flex-direction: row;
154154
justify-content: center;
155155
align-items: center;
156-
background-color: var(--black);
156+
background-color: var(--footer-background);
157157
margin-top: pxToRem($grid-unit * 4);
158158
padding: pxToRem($grid-unit / 2) pxToRem($grid-unit * 2);
159-
color: var(--yellow);
160-
border-color: var(--yellow);
159+
color: var(--footer-small-button-accent-color);
160+
border-color: var(--footer-small-button-accent-color);
161161

162162
&:focus {
163163
border-color: transparent;
@@ -172,7 +172,7 @@
172172

173173
.footer__twitchButton {
174174
background-color: #9147ff;
175-
color: var(--white);
175+
color: #ffffff;
176176
padding: pxToRem($grid-unit * 2);
177177
font-family: var(--font-family-main);
178178
font-weight: var(--font-weight-bold);

apps/fretonator-web/src/app/common/fretonator/chord-map/chord-map.component.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@
4040
margin-right: pxToRem($grid-unit);
4141
margin-bottom: pxToRem($grid-unit);
4242
font-weight: var(--font-weight-bold);
43+
color: var(--foreground-color-base);
4344
}

apps/fretonator-web/src/app/common/fretonator/fretboard/fretboard.component.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<ng-container *ngFor="let fret of frets">
33
<div
44
class="fretboard__cell"
5+
[class.learn__theme]="configuration === 'learn'"
56
[class.fretboard__cell--string]="fret === 0"
67
[class.fretboard__cell--selected]="fretMap | getFretFromFretMap: stringName:fret:stringNamesAreCaseSensitive"
78
[attr.data-string-name]="fret === 0 ? stringName : null"
@@ -100,9 +101,9 @@
100101
</div>
101102
</div>
102103

103-
<h4 class="fretonator__playCta">
104+
<p class="fretonator__playCta">
104105
<span class="fretonator__playCtaIcon">
105106
<app-speaker-svg></app-speaker-svg>
106107
</span>
107108
Tap notes on the fretboard for sound!
108-
</h4>
109+
</p>

apps/fretonator-web/src/app/common/fretonator/fretboard/fretboard.component.scss

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ $note-height: 36;
4747
font-family: var(--font-family-main);
4848
font-style: italic;
4949
font-weight: var(--font-weight-bold);
50-
color: var(--grey);
50+
color: var(--fretboard-help-text-color);
5151
font-size: pxToRem(14);
5252
opacity: 0.5;
5353
}
@@ -225,7 +225,7 @@ $note-height: 36;
225225
&[data-string="G"][data-fret="21"],
226226
&[data-string="B"][data-fret="12"],
227227
&[data-string="D"][data-fret="12"] {
228-
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='15' cy='15' r='15' fill='%23dbdae0' /%3E%3C/svg%3E");
228+
background-image: var(--fret-marker-url);
229229
background-repeat: no-repeat;
230230
background-position: center calc(var(--string-height-base) - 15px);
231231
background-size: 30px 30px;
@@ -241,7 +241,7 @@ $note-height: 36;
241241
&[data-string="D"][data-fret="21"],
242242
&[data-string="G"][data-fret="12"],
243243
&[data-string="A"][data-fret="12"] {
244-
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='15' cy='15' r='15' fill='%23dbdae0' /%3E%3C/svg%3E");
244+
background-image: var(--fret-marker-url);
245245
background-repeat: no-repeat;
246246
background-position: center -15px;
247247
background-size: 30px 30px;
@@ -273,6 +273,18 @@ $note-height: 36;
273273
direction: ltr;
274274
}
275275

276+
&.learn__theme {
277+
&:after {
278+
background-color: var(--note-background-learn-theme);
279+
}
280+
281+
&[data-degree="ghost"] {
282+
&:after {
283+
background-color: var(--note-bg-ghost);
284+
}
285+
}
286+
}
287+
276288
&:nth-child(-n + 13):after {
277289
transform: translate(-50%, 6px);
278290
}
@@ -427,7 +439,7 @@ $note-height: 36;
427439
justify-content: center;
428440
align-items: center;
429441
margin-bottom: pxToRem($grid-unit * 2);
430-
color: var(--grey);
442+
color: var(--fretboard-play-cta-color);
431443
line-height: 1;
432444
margin-left: auto;
433445
margin-right: auto;
@@ -469,8 +481,8 @@ $note-height: 36;
469481
}
470482

471483
.fretboard__toggleButton--active {
472-
background-color: var(--black);
473-
color: var(--offwhite);
484+
background-color: var(--chip-background-color-active);
485+
color: var(--chip-foreground-color-active);
474486
}
475487

476488
.fretboard__toggleButton--left {

apps/fretonator-web/src/app/common/fretonator/fretboard/fretboard.component.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
1-
import {
2-
AfterViewInit,
3-
Component,
4-
ElementRef,
5-
EventEmitter,
6-
Input,
7-
OnChanges,
8-
OnInit,
9-
Output,
10-
ViewChild
11-
} from '@angular/core';
1+
import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';
122
import { FretMap, Mode } from '../../../util/types';
133
import { NotePlaybackService } from '../../playback/note-playback.service';
14-
import { GlobalService } from '../../../global.service';
154
import { AbstractDataService } from '../../abstract-data/abstract-data.service';
165

176
export enum FretMode {
@@ -46,6 +35,7 @@ export class FretboardComponent implements OnChanges, OnInit {
4635
@Input() mode: Mode;
4736
@Input() stringNamesAreCaseSensitive = false;
4837
@Input() loadExpanded = false;
38+
@Input() configuration;
4939
orientation;
5040
fretMode;
5141
frets;

0 commit comments

Comments
 (0)