Added theme switching
All checks were successful
Copy Files to Samba Share dev / Copy Files (push) Successful in 22s

This commit is contained in:
2024-11-01 12:19:01 +01:00
parent 105002f4a3
commit 47ad7f3659
5 changed files with 112 additions and 25 deletions

View File

@@ -1,7 +1,61 @@
<!--
<div
style="
display: flex;
width: 550px;
padding: 20px 30px;
border-radius: 40px;
background-color: rgb(41, 23, 44);
gap: 1rem;
"
>
<img src="https://cptarn.com/ontvlambaar/assets/signature/logofoto.webp" style="height: 250px;"/>
<div
style="
display: flex;
border-left: 5px solid #E94541;
padding: 1rem;
flex-direction: column;
"
>
<h1
style="
color: rgb(222, 112, 108);
padding: 0;
margin: 0;
font-size: 1rem;
"
>LOTTE DE VLAM</h1>
<p
style="
color: #E94541;
display: flex;
flex-direction: column;
"
>
Grafische vormgever
<span>Ontvlambaar</span>
</p>
<p
style="
display: flex;
flex-direction: column;
gap: 0.5rem;
color: rgb(222, 112, 108);
text-decoration: none;
"
>
<a style="color: rgb(222, 112, 108);text-decoration: none;"href="tel:+0493183740">04 93 18 37 40</a>
<a style="color: rgb(222, 112, 108);text-decoration: none;"href="mailto:lotte@ontvlambaar.be">lotte&#64;ontvlambaar.be</a>
<a style="color: rgb(222, 112, 108);text-decoration: none;"href="https://www.ontvlambaar.be">www.ontvlambaar.be</a>
<span>BTW BE0673 769 126</span>
</p>
</div>
</div> -->
<div class="wrapper">
<!-- <app-toggle></app-toggle> -->
<app-header></app-header>
<app-hero></app-hero>
<app-hero [theme]="theme" (themeChange)="themeChange($event)"></app-hero>
<app-services id="services"></app-services>
<app-portfolio id="portfolio"></app-portfolio>
<app-about id="about"></app-about>

View File

@@ -17,4 +17,29 @@ import { ToggleComponent } from "./toggle/toggle.component";
})
export class AppComponent {
title = 'ontvlambaar';
theme = "light"
private detectColorScheme(): void {
//local storage is used to override OS theme settings
if(localStorage.getItem("theme")){
if(localStorage.getItem("theme") == "dark"){
this.theme = "dark";
}
} else if(window.matchMedia("(prefers-color-scheme: dark)").matches) {
//OS theme setting detected as dark
this.theme = "dark";
}
document.documentElement.setAttribute("data-theme", this.theme);
}
ngOnInit(): void {
this.detectColorScheme();
}
themeChange(theme: string) {
localStorage.setItem("theme", theme);
this.theme = theme;
document.documentElement.setAttribute("data-theme", this.theme);
}
}

View File

@@ -2,3 +2,4 @@
<a href="/"><img src="assets/logo-light.svg" alt="Logo light" class="only-on-light" /></a>
<h1>Ontvlambaar</h1>
<span class="slogan">Jullie het vuur, wij de branding</span>
<input type="checkbox" [checked]="isDarkMode()" (change)="themeClicked($event)">

View File

@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, computed, input, output } from '@angular/core';
@Component({
selector: 'app-hero',
@@ -8,5 +8,13 @@ import { Component } from '@angular/core';
styleUrl: './hero.component.scss'
})
export class HeroComponent {
theme= input<string>();
isDarkMode = computed(() => {
return this.theme() === 'dark';
});
themeChange = output<string>();
public themeClicked(event: any) {
this.themeChange.emit(event.target.checked ? 'dark' : 'light');
}
}

View File

@@ -1,25 +1,4 @@
body {
.only-on-dark {
display: none;
}
// dark mode
@media (prefers-color-scheme: dark) {
--text-color: rgb(222, 112, 108);
--background-color: rgb(41, 23, 44);
--accent-color: #E94541;
--logo-color: #E94541;
.only-on-dark {
display: inline-block;
}
.only-on-light {
display: none;
}
}
html {
// light mode
--text-color: rgb(29, 29, 29);
--background-color: rgb(255, 255, 255);
@@ -31,4 +10,24 @@ body {
color: var(--text-color);
background-color: var(--background-color);
.only-on-dark {
display: none;
}
}
[data-theme="dark"] {
// dark mode
--text-color: rgb(222, 112, 108);
--background-color: rgb(41, 23, 44);
--accent-color: #E94541;
--logo-color: #E94541;
.only-on-dark {
display: inline-block;
}
.only-on-light {
display: none;
}
}