[Style] Add Nord theme, break up SCSS code
This commit adds the Nord theme into the list of available themes. The
Nord theme is now the default theme for dark-based systems.
Theme buttons now have their own class to make it easier to change
them without too much work.
The `style.scss' file has been split up in three different files:
- main.scss, the new file to load from the HTML page, imports the two
other files
- themes.scss, containing all the theming of the websites
- style.scss, containing the rest
All websites loading the theme will now need to load it from
`main.scss' instead of `style.scss', likewise with the `.css'
extension
This commit is contained in:
@@ -114,7 +114,9 @@ Future<Element> makeThemeChanger() async {
|
||||
Element makeThemeItem(String t_btnId) {
|
||||
return Element.li()
|
||||
..classes.add('dropdown-item')
|
||||
..append(Element.span()..attributes['id'] = t_btnId);
|
||||
..append(Element.span()
|
||||
..attributes['id'] = t_btnId
|
||||
..classes.add('themeBtn'));
|
||||
}
|
||||
|
||||
return Element.li()
|
||||
@@ -131,6 +133,7 @@ Future<Element> makeThemeChanger() async {
|
||||
..attributes['id'] = 'theme-dropdown'
|
||||
..append(makeThemeItem('lightBtn'))
|
||||
..append(makeThemeItem('darkBtn'))
|
||||
..append(makeThemeItem('nordBtn'))
|
||||
..append(makeThemeItem('blackBtn')));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'dart:html';
|
||||
import 'dart:html' show window, querySelector;
|
||||
|
||||
final localStorage = window.localStorage;
|
||||
|
||||
@@ -7,7 +7,7 @@ Future<void> setTheme([String theme]) async {
|
||||
() {
|
||||
final devicePrefersDark =
|
||||
window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
return devicePrefersDark ? 'dark' : 'light';
|
||||
return devicePrefersDark ? 'nord' : 'light';
|
||||
}();
|
||||
localStorage['theme'] = currentTheme;
|
||||
querySelector('body')
|
||||
@@ -16,7 +16,7 @@ Future<void> setTheme([String theme]) async {
|
||||
}
|
||||
|
||||
void enableThemeChanger() {
|
||||
final themes = <String>['light', 'dark', 'black'];
|
||||
final themes = <String>['light', 'dark', 'nord', 'black'];
|
||||
themes.forEach((theme) =>
|
||||
querySelector('#${theme}Btn').onClick.listen((_) => setTheme(theme))
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user