mirror of
https://github.com/cfultz/mtgcsv.git
synced 2024-11-22 09:10:04 +01:00
Added color themes based on mana colors
This commit is contained in:
parent
175e62ef60
commit
6b3a8e837f
33
app.js
33
app.js
@ -1,9 +1,33 @@
|
|||||||
import { randomWords } from './randomWords.js';
|
// Define setTheme globally to handle theme changes
|
||||||
|
window.setTheme = function setTheme(theme) {
|
||||||
|
document.body.className = ''; // Clear existing themes
|
||||||
|
document.body.classList.add(theme);
|
||||||
|
|
||||||
|
// Save the selected theme to localStorage
|
||||||
|
localStorage.setItem('selectedTheme', theme);
|
||||||
|
};
|
||||||
|
|
||||||
let cardList = [];
|
let cardList = [];
|
||||||
let soundThreshold = 1.00; // Default sound threshold
|
let soundThreshold = 1.00; // Default sound threshold
|
||||||
|
|
||||||
|
// Make toggleMenu globally accessible
|
||||||
|
window.toggleMenu = function toggleMenu() {
|
||||||
|
const menuContent = document.getElementById('menu-content');
|
||||||
|
menuContent.classList.toggle('show');
|
||||||
|
};
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const savedTheme = localStorage.getItem('selectedTheme');
|
||||||
|
if (savedTheme) {
|
||||||
|
setTheme(savedTheme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const savedThreshold = localStorage.getItem('soundThreshold');
|
||||||
|
if (savedThreshold) {
|
||||||
|
soundThreshold = parseFloat(savedThreshold);
|
||||||
|
document.getElementById('sound-threshold').value = savedThreshold;
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById('add-card-button').addEventListener('click', addCard);
|
document.getElementById('add-card-button').addEventListener('click', addCard);
|
||||||
document.getElementById('download-csv-button').addEventListener('click', downloadCSV);
|
document.getElementById('download-csv-button').addEventListener('click', downloadCSV);
|
||||||
|
|
||||||
@ -26,6 +50,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
// Update sound threshold based on user input
|
// Update sound threshold based on user input
|
||||||
document.getElementById('sound-threshold').addEventListener('input', (event) => {
|
document.getElementById('sound-threshold').addEventListener('input', (event) => {
|
||||||
soundThreshold = parseFloat(event.target.value);
|
soundThreshold = parseFloat(event.target.value);
|
||||||
|
localStorage.setItem('soundThreshold', soundThreshold); // Save the threshold to localStorage
|
||||||
});
|
});
|
||||||
|
|
||||||
// Check and apply dark mode
|
// Check and apply dark mode
|
||||||
@ -35,12 +60,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Make toggleMenu globally accessible
|
|
||||||
window.toggleMenu = function toggleMenu() {
|
|
||||||
const menuContent = document.getElementById('menu-content');
|
|
||||||
menuContent.classList.toggle('show');
|
|
||||||
};
|
|
||||||
|
|
||||||
async function fetchCardSuggestions(query) {
|
async function fetchCardSuggestions(query) {
|
||||||
const response = await fetch(`https://api.scryfall.com/cards/autocomplete?q=${encodeURIComponent(query)}`);
|
const response = await fetch(`https://api.scryfall.com/cards/autocomplete?q=${encodeURIComponent(query)}`);
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
@ -8,12 +8,21 @@
|
|||||||
<link rel="manifest" href="manifest.json">
|
<link rel="manifest" href="manifest.json">
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Sorts+Mill+Goudy&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Sorts+Mill+Goudy&display=swap" rel="stylesheet">
|
||||||
<link rel="icon" href="icon.png" type="image/png">
|
<link rel="icon" href="icon.png" type="image/png">
|
||||||
|
<link href="//cdn.jsdelivr.net/npm/mana-font@latest/css/mana.css" rel="stylesheet" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
<div class="hamburger-menu" onclick="toggleMenu()">☰</div>
|
<div class="hamburger-menu" onclick="toggleMenu()">☰</div>
|
||||||
<div id="menu-content" class="menu-content">
|
<div id="menu-content" class="menu-content">
|
||||||
|
<label>Select Theme:</label>
|
||||||
|
<div id="theme-selector">
|
||||||
|
<span class="mana-icon" onclick="setTheme('theme-white')"></span> <!-- White -->
|
||||||
|
<span class="mana-icon" onclick="setTheme('theme-blue')"></span> <!-- Blue -->
|
||||||
|
<span class="mana-icon" onclick="setTheme('theme-black')"></span> <!-- Black -->
|
||||||
|
<span class="mana-icon" onclick="setTheme('theme-red')"></span> <!-- Red -->
|
||||||
|
<span class="mana-icon" onclick="setTheme('theme-green')"></span> <!-- Green -->
|
||||||
|
</div>
|
||||||
<label for="sound-threshold">Sound Threshold (USD):</label>
|
<label for="sound-threshold">Sound Threshold (USD):</label>
|
||||||
<input type="number" id="sound-threshold" min="0.01" step="0.01" value="1.00">
|
<input type="number" id="sound-threshold" min="0.01" step="0.01" value="1.00">
|
||||||
</div>
|
</div>
|
||||||
|
121
styles.css
121
styles.css
@ -6,6 +6,89 @@
|
|||||||
--button-hover: #005fa3;
|
--button-hover: #005fa3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.theme-white {
|
||||||
|
--background-color: #f9f8f6;
|
||||||
|
--text-color: #1e1e1e;
|
||||||
|
--card-background: #ffffff;
|
||||||
|
--button-background: #e5e5e5;
|
||||||
|
--button-hover: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-blue {
|
||||||
|
--background-color: #d7e7f9;
|
||||||
|
--text-color: #002d72;
|
||||||
|
--card-background: #e0f2ff;
|
||||||
|
--button-background: #007acc;
|
||||||
|
--button-hover: #005fa3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-black {
|
||||||
|
--background-color: #333333;
|
||||||
|
--text-color: #ffffff;
|
||||||
|
--card-background: #444444;
|
||||||
|
--button-background: #1f1f1f;
|
||||||
|
--button-hover: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-red {
|
||||||
|
--background-color: #fbe4e4;
|
||||||
|
--text-color: #8b0000;
|
||||||
|
--card-background: #ffe5e5;
|
||||||
|
--button-background: #d32f2f;
|
||||||
|
--button-hover: #b71c1c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-green {
|
||||||
|
--background-color: #e7f4e7;
|
||||||
|
--text-color: #004d00;
|
||||||
|
--card-background: #e0ffe0;
|
||||||
|
--button-background: #388e3c;
|
||||||
|
--button-hover: #2e7d32;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.theme-white {
|
||||||
|
--background-color: #1e1e1e;
|
||||||
|
--text-color: #ffffff;
|
||||||
|
--card-background: #333333;
|
||||||
|
--button-background: #555555;
|
||||||
|
--button-hover: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-blue {
|
||||||
|
--background-color: #001f3f;
|
||||||
|
--text-color: #ffffff;
|
||||||
|
--card-background: #002d72;
|
||||||
|
--button-background: #005fa3;
|
||||||
|
--button-hover: #007acc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-black {
|
||||||
|
--background-color: #000000;
|
||||||
|
--text-color: #e5e5e5;
|
||||||
|
--card-background: #1c1c1c;
|
||||||
|
--button-background: #333333;
|
||||||
|
--button-hover: #555555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-red {
|
||||||
|
--background-color: #330000;
|
||||||
|
--text-color: #ffaaaa;
|
||||||
|
--card-background: #8b0000;
|
||||||
|
--button-background: #b71c1c;
|
||||||
|
--button-hover: #d32f2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-green {
|
||||||
|
--background-color: #002200;
|
||||||
|
--text-color: #ccffcc;
|
||||||
|
--card-background: #004d00;
|
||||||
|
--button-background: #2e7d32;
|
||||||
|
--button-hover: #388e3c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root {
|
:root {
|
||||||
--background-color: #1e1e1e;
|
--background-color: #1e1e1e;
|
||||||
@ -16,6 +99,44 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mana-icon {
|
||||||
|
font-family: 'mana', sans-serif;
|
||||||
|
font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 5px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mana-icon:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure the menu follows the theme */
|
||||||
|
body.theme-white .menu-content {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-blue .menu-content {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-black .menu-content {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-red .menu-content {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-green .menu-content {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'Sorts Mill Goudy', serif;
|
font-family: 'Sorts Mill Goudy', serif;
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-color);
|
||||||
|
Loading…
Reference in New Issue
Block a user