Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igorcbraz/calculadora
š Calculadora responsiva usando boostrap com a opĆ§Ć£o de alteraĆ§Ć£o dos temas usando prefer-color-scheme. š
https://github.com/igorcbraz/calculadora
calculadora calculadora-javascript calculator calculator-application calculator-javascript calculator-js prefer-color-scheme responsive
Last synced: 2 days ago
JSON representation
š Calculadora responsiva usando boostrap com a opĆ§Ć£o de alteraĆ§Ć£o dos temas usando prefer-color-scheme. š
- Host: GitHub
- URL: https://github.com/igorcbraz/calculadora
- Owner: Igorcbraz
- License: mit
- Created: 2021-07-13T19:53:02.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-05T02:04:08.000Z (2 months ago)
- Last Synced: 2024-09-07T07:06:39.337Z (2 months ago)
- Topics: calculadora, calculadora-javascript, calculator, calculator-application, calculator-javascript, calculator-js, prefer-color-scheme, responsive
- Language: JavaScript
- Homepage: https://calculatorcbraz.netlify.app/
- Size: 5.76 MB
- Stars: 26
- Watchers: 1
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
š Calculadora š
ā” Calculadora Responsiva e com opƧƵes para troca de temas ā”
Prefer Color Scheme ā¢
Resultado Final ā¢
SugestƵes ā¢
š Prefer Color Scheme
AlĆ©m dos 3 diferentes temas da calculadora, foi usado o recurso de mĆdiaprefer-color-scheme
.Esse recurso possibilita o entendimento de qual a preferĆŖncia do usuĆ”rio em relaĆ§Ć£o aos temas, assim podendo receber dois valores:
- Light (Claro)
- Dark (Escuro)
A maneira de aplicar esse recurso de acordo com a developer.mozilla Ć© da seguinte maneira:
```
@media (prefers-color-scheme: dark) {
// ConfiguraƧƵes CSS para o tema dark
}
@media (prefers-color-scheme: light) {
// ConfiguraƧƵes CSS para o tema light
}
```
Mas com esse mĆ©todo o carregamento do cĆ³digo irĆ” ficar mais lento pois seria necessĆ”rio repetir todas as propriedades desejadas com suas novas coloraƧƵes.
> **EntĆ£o qual a soluĆ§Ć£o ? š¤**
Iremos apenas mudar os valores das variƔveis do CSS com JS.
```
const darkThemeMq = window.matchMedia("(prefers-color-scheme: dark)");
const lightThemeMq = window.matchMedia("(prefers-color-scheme: light)");
```
Primeiro identificamos qual a preferĆŖncia de tema do usuĆ”rio e guardamos o resultado em uma constante.
Agora sĆ³ precisamos verificar qual o valor das constantes e modificar os valores das variĆ”veis do CSS
```
if (darkThemeMq.matches) {
document.getElementById('btnTheme').value = "3";
theme.dark();
} else if(lightThemeMq.matches){
document.getElementById('btnTheme').value = "2";
theme.light();
} else {
document.getElementById('btnTheme').value = "1";
theme.default();
}
```
theme.dark(),theme.light()... Armazenam os comandos para modificar os valores das variƔveis no CSS. Sendo eles:
```
const root = document.querySelector(':root');
const theme = {
default() {
root.style.setProperty('--background' , '#3a4764');
// E as demais variƔveis
},
light() {
root.style.setProperty('--background' , '#e6e6e6');
// E as demais variƔveis
},
dark() {
root.style.setProperty('--background' , '#17062a');
// E as demais variƔveis
}
}
```
> **Como Ć© PossĆvel fazer o Teste/Debug ? š¤**
Podemos usar a ferramenta de desenvoledor do google chrome e alterar os valores Dark ou Light
Resultado Final š„³
VocĆŖ tambĆ©m į¹ode gostar š¤©
- [Gitfest](https://github.com/Igorcbraz/GitFest) - Gere uma lineup de festival com base nos seus principais repositĆ³rios do Github
- [Enkoji](https://github.com/Igorcbraz/Enkoji) - Site feito para o Enkoji, um templo zen-budista japonĆŖs fundado em 1920 no JapĆ£o
---
> GitHub [@Igorcbraz](https://github.com/Igorcbraz) Ā Ā·Ā
> Linkedin [@Igorcbraz](https://www.linkedin.com/in/igorcbraz/)
---