primergrau / index.html
Rubenhugging's picture
Add 2 files
13e9888 verified
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Matem脿tiques 2n ESO - Equacions de Primer Grau</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
.equation-input {
font-family: 'Courier New', monospace;
font-size: 1.2rem;
}
.step-by-step {
background-color: #f8fafc;
border-left: 4px solid #3b82f6;
}
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
.correct-answer {
background-color: #d1fae5;
border-left: 4px solid #10b981;
}
.incorrect-answer {
background-color: #fee2e2;
border-left: 4px solid #ef4444;
}
.math-symbol {
font-family: 'Times New Roman', serif;
font-style: italic;
}
</style>
</head>
<body class="bg-gray-50 min-h-screen">
<div class="container mx-auto px-4 py-8">
<header class="text-center mb-12">
<h1 class="text-4xl font-bold text-blue-600 mb-2">
<i class="fas fa-square-root-alt mr-2"></i>Equacions de Primer Grau
</h1>
<p class="text-xl text-gray-600">Aplicaci贸 interactiva per a 2n d'ESO</p>
<div class="w-full bg-blue-100 h-1 mt-4 rounded-full"></div>
</header>
<div class="flex flex-col md:flex-row gap-8">
<!-- Sidebar navigation -->
<div class="w-full md:w-1/4 bg-white p-6 rounded-lg shadow-md h-fit">
<h2 class="text-xl font-semibold mb-4 text-gray-800">
<i class="fas fa-bars mr-2 text-blue-500"></i>Continguts
</h2>
<ul class="space-y-2">
<li>
<button onclick="showTab('basic')" class="tab-button w-full text-left px-4 py-2 rounded-lg bg-blue-50 text-blue-700 font-medium hover:bg-blue-100 transition">
<i class="fas fa-calculator mr-2"></i>Equacions b脿siques
</button>
</li>
<li>
<button onclick="showTab('denominators')" class="tab-button w-full text-left px-4 py-2 rounded-lg hover:bg-gray-100 transition">
<i class="fas fa-divide mr-2"></i>Amb denominadors
</button>
</li>
<li>
<button onclick="showTab('parentheses')" class="tab-button w-full text-left px-4 py-2 rounded-lg hover:bg-gray-100 transition">
<i class="fas fa-brackets-curly mr-2"></i>Amb par猫ntesis
</button>
</li>
<li>
<button onclick="showTab('problems')" class="tab-button w-full text-left px-4 py-2 rounded-lg hover:bg-gray-100 transition">
<i class="fas fa-question-circle mr-2"></i>Problemes
</button>
</li>
<li>
<button onclick="showTab('graphic')" class="tab-button w-full text-left px-4 py-2 rounded-lg hover:bg-gray-100 transition">
<i class="fas fa-chart-line mr-2"></i>Representaci贸 gr脿fica
</button>
</li>
</ul>
<div class="mt-8 pt-4 border-t border-gray-200">
<h3 class="font-medium text-gray-700 mb-2">
<i class="fas fa-trophy mr-2 text-yellow-500"></i>El teu progr茅s
</h3>
<div class="bg-gray-100 rounded-full h-4 mb-2">
<div id="progress-bar" class="bg-green-500 h-4 rounded-full" style="width: 20%"></div>
</div>
<p class="text-sm text-gray-600">Has completat <span id="progress-percent">20</span>%</p>
</div>
</div>
<!-- Main content -->
<div class="w-full md:w-3/4">
<!-- Basic equations tab -->
<div id="basic" class="tab-content active bg-white p-6 rounded-lg shadow-md">
<h2 class="text-2xl font-bold text-gray-800 mb-4">
<i class="fas fa-calculator mr-2 text-blue-500"></i>Equacions B脿siques
</h2>
<p class="text-gray-600 mb-6">Les equacions de primer grau s贸n aquelles on la inc貌gnita (normalment x) no est脿 elevada a cap exponent. Per resoldre-les, hem d'a茂llar la x.</p>
<div class="mb-8">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Exemple resolt</h3>
<div class="step-by-step p-4 rounded-lg mb-4">
<p class="font-medium mb-2">Resol: 3x + 5 = 17</p>
<div class="space-y-2 ml-4">
<p>1. Restem 5 als dos costats: <span class="math-symbol">3x = 17 - 5</span></p>
<p>2. Simplifiquem: <span class="math-symbol">3x = 12</span></p>
<p>3. Dividim ambd贸s costats per 3: <span class="math-symbol">x = 12 / 3</span></p>
<p>4. Soluci贸: <span class="math-symbol">x = 4</span></p>
</div>
</div>
</div>
<div class="practice-section">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Practica</h3>
<div class="bg-gray-50 p-4 rounded-lg">
<p class="mb-3">Resol la seg眉ent equaci贸:</p>
<p class="text-xl font-mono mb-4">2x - 7 = 15</p>
<div class="flex items-center mb-4">
<span class="mr-2">x =</span>
<input type="number" id="basic-answer" class="equation-input border border-gray-300 rounded px-3 py-2 w-20">
<button onclick="checkBasicAnswer()" class="ml-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">
Comprova
</button>
</div>
<div id="basic-feedback" class="hidden p-3 rounded"></div>
<button onclick="showBasicSolution()" class="mt-2 text-blue-500 hover:text-blue-700 text-sm">
<i class="fas fa-lightbulb mr-1"></i>Mostra la soluci贸
</button>
<div id="basic-solution" class="hidden mt-3 step-by-step p-3 rounded-lg">
<p class="font-medium mb-2">Soluci贸 pas a pas:</p>
<div class="space-y-2 ml-4">
<p>1. Sumem 7 als dos costats: <span class="math-symbol">2x = 15 + 7</span></p>
<p>2. Simplifiquem: <span class="math-symbol">2x = 22</span></p>
<p>3. Dividim ambd贸s costats per 2: <span class="math-symbol">x = 22 / 2</span></p>
<p>4. Soluci贸: <span class="math-symbol">x = 11</span></p>
</div>
</div>
</div>
</div>
</div>
<!-- Equations with denominators tab -->
<div id="denominators" class="tab-content bg-white p-6 rounded-lg shadow-md">
<h2 class="text-2xl font-bold text-gray-800 mb-4">
<i class="fas fa-divide mr-2 text-blue-500"></i>Equacions amb Denominadors
</h2>
<p class="text-gray-600 mb-6">Quan una equaci贸 t茅 denominadors, el primer pas 茅s eliminar-los trobant el m铆nim com煤 m煤ltiple (MCM) i multiplicant tota l'equaci贸 per aquest valor.</p>
<div class="mb-8">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Exemple resolt</h3>
<div class="step-by-step p-4 rounded-lg mb-4">
<p class="font-medium mb-2">Resol: (x/2) + (x/3) = 5</p>
<div class="space-y-2 ml-4">
<p>1. Trobar MCM de denominadors (2 i 3): <span class="math-symbol">MCM = 6</span></p>
<p>2. Multiplicar tota l'equaci贸 per 6: <span class="math-symbol">6*(x/2) + 6*(x/3) = 6*5</span></p>
<p>3. Simplificar: <span class="math-symbol">3x + 2x = 30</span></p>
<p>4. Combinar termes: <span class="math-symbol">5x = 30</span></p>
<p>5. Dividir per 5: <span class="math-symbol">x = 6</span></p>
</div>
</div>
</div>
<div class="practice-section">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Practica</h3>
<div class="bg-gray-50 p-4 rounded-lg">
<p class="mb-3">Resol la seg眉ent equaci贸:</p>
<p class="text-xl font-mono mb-4">(x/4) - (x/5) = 2</p>
<div class="flex items-center mb-4">
<span class="mr-2">x =</span>
<input type="number" id="denominators-answer" class="equation-input border border-gray-300 rounded px-3 py-2 w-20">
<button onclick="checkDenominatorsAnswer()" class="ml-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">
Comprova
</button>
</div>
<div id="denominators-feedback" class="hidden p-3 rounded"></div>
<button onclick="showDenominatorsSolution()" class="mt-2 text-blue-500 hover:text-blue-700 text-sm">
<i class="fas fa-lightbulb mr-1"></i>Mostra la soluci贸
</button>
<div id="denominators-solution" class="hidden mt-3 step-by-step p-3 rounded-lg">
<p class="font-medium mb-2">Soluci贸 pas a pas:</p>
<div class="space-y-2 ml-4">
<p>1. Trobar MCM de denominadors (4 i 5): <span class="math-symbol">MCM = 20</span></p>
<p>2. Multiplicar tota l'equaci贸 per 20: <span class="math-symbol">20*(x/4) - 20*(x/5) = 20*2</span></p>
<p>3. Simplificar: <span class="math-symbol">5x - 4x = 40</span></p>
<p>4. Combinar termes: <span class="math-symbol">x = 40</span></p>
</div>
</div>
</div>
</div>
</div>
<!-- Equations with parentheses tab -->
<div id="parentheses" class="tab-content bg-white p-6 rounded-lg shadow-md">
<h2 class="text-2xl font-bold text-gray-800 mb-4">
<i class="fas fa-brackets-curly mr-2 text-blue-500"></i>Equacions amb Par猫ntesis
</h2>
<p class="text-gray-600 mb-6">Quan una equaci贸 t茅 par猫ntesis, el primer pas 茅s eliminar-los aplicant la propietat distributiva o resolent primer les operacions dins dels par猫ntesis.</p>
<div class="mb-8">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Exemple resolt</h3>
<div class="step-by-step p-4 rounded-lg mb-4">
<p class="font-medium mb-2">Resol: 2(x + 3) = x - 4</p>
<div class="space-y-2 ml-4">
<p>1. Aplicar propietat distributiva: <span class="math-symbol">2x + 6 = x - 4</span></p>
<p>2. Restar x als dos costats: <span class="math-symbol">x + 6 = -4</span></p>
<p>3. Restar 6 als dos costats: <span class="math-symbol">x = -10</span></p>
</div>
</div>
</div>
<div class="practice-section">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Practica</h3>
<div class="bg-gray-50 p-4 rounded-lg">
<p class="mb-3">Resol la seg眉ent equaci贸:</p>
<p class="text-xl font-mono mb-4">3(x - 2) = 2(x + 1)</p>
<div class="flex items-center mb-4">
<span class="mr-2">x =</span>
<input type="number" id="parentheses-answer" class="equation-input border border-gray-300 rounded px-3 py-2 w-20">
<button onclick="checkParenthesesAnswer()" class="ml-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">
Comprova
</button>
</div>
<div id="parentheses-feedback" class="hidden p-3 rounded"></div>
<button onclick="showParenthesesSolution()" class="mt-2 text-blue-500 hover:text-blue-700 text-sm">
<i class="fas fa-lightbulb mr-1"></i>Mostra la soluci贸
</button>
<div id="parentheses-solution" class="hidden mt-3 step-by-step p-3 rounded-lg">
<p class="font-medium mb-2">Soluci贸 pas a pas:</p>
<div class="space-y-2 ml-4">
<p>1. Aplicar propietat distributiva: <span class="math-symbol">3x - 6 = 2x + 2</span></p>
<p>2. Restar 2x als dos costats: <span class="math-symbol">x - 6 = 2</span></p>
<p>3. Sumar 6 als dos costats: <span class="math-symbol">x = 8</span></p>
</div>
</div>
</div>
</div>
</div>
<!-- Word problems tab -->
<div id="problems" class="tab-content bg-white p-6 rounded-lg shadow-md">
<h2 class="text-2xl font-bold text-gray-800 mb-4">
<i class="fas fa-question-circle mr-2 text-blue-500"></i>Problemes amb Equacions
</h2>
<p class="text-gray-600 mb-6">Els problemes d'equacions consisteixen en traduir un enunciat verbal a una equaci贸 matem脿tica i despr茅s resoldre-la.</p>
<div class="mb-8">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Exemple resolt</h3>
<div class="step-by-step p-4 rounded-lg mb-4">
<p class="font-medium mb-2">Problema: Si sumem 8 al doble d'un nombre, obtenim 26. Quin 茅s aquest nombre?</p>
<div class="space-y-2 ml-4">
<p>1. Definir la inc貌gnita: <span class="math-symbol">x = el nombre buscat</span></p>
<p>2. Plantejar l'equaci贸: <span class="math-symbol">2x + 8 = 26</span></p>
<p>3. Restar 8: <span class="math-symbol">2x = 18</span></p>
<p>4. Dividir per 2: <span class="math-symbol">x = 9</span></p>
<p>5. Resposta: El nombre 茅s 9</p>
</div>
</div>
</div>
<div class="practice-section">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Practica</h3>
<div class="bg-gray-50 p-4 rounded-lg">
<p class="mb-3">Problema: La meitat d'un nombre m茅s el seu triple 茅s igual a 28. Quin 茅s aquest nombre?</p>
<div class="flex items-center mb-4">
<span class="mr-2">x =</span>
<input type="number" id="problem-answer" class="equation-input border border-gray-300 rounded px-3 py-2 w-20">
<button onclick="checkProblemAnswer()" class="ml-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">
Comprova
</button>
</div>
<div id="problem-feedback" class="hidden p-3 rounded"></div>
<button onclick="showProblemSolution()" class="mt-2 text-blue-500 hover:text-blue-700 text-sm">
<i class="fas fa-lightbulb mr-1"></i>Mostra la soluci贸
</button>
<div id="problem-solution" class="hidden mt-3 step-by-step p-3 rounded-lg">
<p class="font-medium mb-2">Soluci贸 pas a pas:</p>
<div class="space-y-2 ml-4">
<p>1. Definir la inc貌gnita: <span class="math-symbol">x = el nombre buscat</span></p>
<p>2. Plantejar l'equaci贸: <span class="math-symbol">(x/2) + 3x = 28</span></p>
<p>3. Eliminar denominadors (MCM=2): <span class="math-symbol">x + 6x = 56</span></p>
<p>4. Combinar termes: <span class="math-symbol">7x = 56</span></p>
<p>5. Dividir per 7: <span class="math-symbol">x = 8</span></p>
<p>6. Resposta: El nombre 茅s 8</p>
</div>
</div>
</div>
</div>
</div>
<!-- Graphic representation tab -->
<div id="graphic" class="tab-content bg-white p-6 rounded-lg shadow-md">
<h2 class="text-2xl font-bold text-gray-800 mb-4">
<i class="fas fa-chart-line mr-2 text-blue-500"></i>Representaci贸 Gr脿fica
</h2>
<p class="text-gray-600 mb-6">Les equacions de primer grau es poden representar gr脿ficament com a l铆nies rectes. La forma general 茅s y = mx + b, on m 茅s el pendent i b 茅s l'ordenada a l'origen.</p>
<div class="mb-8">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Exemple interactiu</h3>
<div class="bg-gray-50 p-4 rounded-lg mb-4">
<div class="flex flex-col md:flex-row gap-4">
<div class="w-full md:w-1/2">
<p class="mb-2">Selecciona una equaci贸:</p>
<select id="equation-select" class="border border-gray-300 rounded px-3 py-2 w-full mb-4" onchange="updateGraph()">
<option value="1">y = 2x + 1</option>
<option value="2">y = -x + 3</option>
<option value="3">y = 0.5x - 2</option>
<option value="4">y = -2x</option>
</select>
<div class="mt-4">
<p class="font-medium mb-2">Punts clau:</p>
<ul class="list-disc pl-5 space-y-1">
<li>Ordenada a l'origen (b): punt on la recta talla l'eix Y</li>
<li>Pendent (m): inclinaci贸 de la recta</li>
<li>Arrel: punt on y=0 (tall amb l'eix X)</li>
</ul>
</div>
</div>
<div class="w-full md:w-1/2">
<canvas id="equation-chart" class="w-full h-64"></canvas>
</div>
</div>
</div>
</div>
<div class="practice-section">
<h3 class="text-lg font-semibold mb-3 text-gray-700">Identifica l'equaci贸</h3>
<div class="bg-gray-50 p-4 rounded-lg">
<p class="mb-3">Observa el gr脿fic i selecciona l'equaci贸 que el representa:</p>
<div class="flex flex-col md:flex-row gap-4 mb-4">
<div class="w-full md:w-1/2">
<canvas id="quiz-chart" class="w-full h-64"></canvas>
</div>
<div class="w-full md:w-1/2 flex flex-col justify-center">
<div class="space-y-2">
<div class="flex items-center">
<input type="radio" id="option1" name="graph-quiz" value="1" class="mr-2">
<label for="option1">y = 3x - 2</label>
</div>
<div class="flex items-center">
<input type="radio" id="option2" name="graph-quiz" value="2" class="mr-2">
<label for="option2">y = -2x + 3</label>
</div>
<div class="flex items-center">
<input type="radio" id="option3" name="graph-quiz" value="3" class="mr-2">
<label for="option3">y = x + 1</label>
</div>
<div class="flex items-center">
<input type="radio" id="option4" name="graph-quiz" value="4" class="mr-2">
<label for="option4">y = -0.5x + 2</label>
</div>
</div>
<button onclick="checkGraphAnswer()" class="mt-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">
Comprova
</button>
</div>
</div>
<div id="graph-feedback" class="hidden p-3 rounded"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
// Tab navigation
function showTab(tabId) {
// Hide all tabs
document.querySelectorAll('.tab-content').forEach(tab => {
tab.classList.remove('active');
});
// Show selected tab
document.getElementById(tabId).classList.add('active');
// Update active tab button style
document.querySelectorAll('.tab-button').forEach(button => {
button.classList.remove('bg-blue-50', 'text-blue-700');
button.classList.add('hover:bg-gray-100');
});
// Highlight current tab button
const activeButton = document.querySelector(`button[onclick="showTab('${tabId}')"]`);
activeButton.classList.add('bg-blue-50', 'text-blue-700');
activeButton.classList.remove('hover:bg-gray-100');
// Update progress when changing tabs
updateProgress();
}
// Answer checking functions
function checkBasicAnswer() {
const answer = parseInt(document.getElementById('basic-answer').value);
const feedback = document.getElementById('basic-feedback');
if (answer === 11) {
feedback.textContent = 'Correcte! Has resolt b茅 l\'equaci贸.';
feedback.className = 'correct-answer p-3 rounded';
updateProgress(5);
} else {
feedback.textContent = 'No 茅s correcte. Torna a intentar-ho o mira la soluci贸.';
feedback.className = 'incorrect-answer p-3 rounded';
}
feedback.classList.remove('hidden');
}
function showBasicSolution() {
document.getElementById('basic-solution').classList.remove('hidden');
}
function checkDenominatorsAnswer() {
const answer = parseInt(document.getElementById('denominators-answer').value);
const feedback = document.getElementById('denominators-feedback');
if (answer === 40) {
feedback.textContent = 'Correcte! Has resolt b茅 l\'equaci贸 amb denominadors.';
feedback.className = 'correct-answer p-3 rounded';
updateProgress(5);
} else {
feedback.textContent = 'No 茅s correcte. Recorda trobar el MCM primer.';
feedback.className = 'incorrect-answer p-3 rounded';
}
feedback.classList.remove('hidden');
}
function showDenominatorsSolution() {
document.getElementById('denominators-solution').classList.remove('hidden');
}
function checkParenthesesAnswer() {
const answer = parseInt(document.getElementById('parentheses-answer').value);
const feedback = document.getElementById('parentheses-feedback');
if (answer === 8) {
feedback.textContent = 'Correcte! Has aplicat b茅 la propietat distributiva.';
feedback.className = 'correct-answer p-3 rounded';
updateProgress(5);
} else {
feedback.textContent = 'No 茅s correcte. Recorda eliminar els par猫ntesis primer.';
feedback.className = 'incorrect-answer p-3 rounded';
}
feedback.classList.remove('hidden');
}
function showParenthesesSolution() {
document.getElementById('parentheses-solution').classList.remove('hidden');
}
function checkProblemAnswer() {
const answer = parseInt(document.getElementById('problem-answer').value);
const feedback = document.getElementById('problem-feedback');
if (answer === 8) {
feedback.textContent = 'Correcte! Has tradu茂t b茅 el problema a una equaci贸.';
feedback.className = 'correct-answer p-3 rounded';
updateProgress(10);
} else {
feedback.textContent = 'No 茅s correcte. Assegura\'t de plantejar b茅 l\'equaci贸.';
feedback.className = 'incorrect-answer p-3 rounded';
}
feedback.classList.remove('hidden');
}
function showProblemSolution() {
document.getElementById('problem-solution').classList.remove('hidden');
}
// Graphic representation
let equationChart;
let quizChart;
function initCharts() {
const ctx = document.getElementById('equation-chart').getContext('2d');
equationChart = new Chart(ctx, {
type: 'line',
data: {
labels: [-3, -2, -1, 0, 1, 2, 3],
datasets: [{
label: 'y = 2x + 1',
data: [-5, -3, -1, 1, 3, 5, 7],
borderColor: 'rgb(59, 130, 246)',
borderWidth: 2,
fill: false
}]
},
options: {
responsive: true,
scales: {
x: {
title: {
display: true,
text: 'Eix X'
}
},
y: {
title: {
display: true,
text: 'Eix Y'
}
}
}
}
});
// Quiz chart (correct answer is option 2: y = -2x + 3)
const quizCtx = document.getElementById('quiz-chart').getContext('2d');
quizChart = new Chart(quizCtx, {
type: 'line',
data: {
labels: [-2, -1, 0, 1, 2],
datasets: [{
data: [7, 5, 3, 1, -1],
borderColor: 'rgb(239, 68, 68)',
borderWidth: 2,
fill: false,
showLine: true,
pointRadius: 0
}]
},
options: {
responsive: true,
plugins: {
legend: {
display: false
}
},
scales: {
x: {
title: {
display: true,
text: 'Eix X'
}
},
y: {
title: {
display: true,
text: 'Eix Y'
}
}
}
}
});
}
function updateGraph() {
const selectedValue = document.getElementById('equation-select').value;
let equation, data;
switch(selectedValue) {
case '1':
equation = 'y = 2x + 1';
data = [-5, -3, -1, 1, 3, 5, 7];
break;
case '2':
equation = 'y = -x + 3';
data = [6, 5, 4, 3, 2, 1, 0];
break;
case '3':
equation = 'y = 0.5x - 2';
data = [-3.5, -3, -2.5, -2, -1.5, -1, -0.5];
break;
case '4':
equation = 'y = -2x';
data = [6, 4, 2, 0, -2, -4, -6];
break;
}
equationChart.data.datasets[0].label = equation;
equationChart.data.datasets[0].data = data;
equationChart.update();
}
function checkGraphAnswer() {
const selectedOption = document.querySelector('input[name="graph-quiz"]:checked');
const feedback = document.getElementById('graph-feedback');
if (!selectedOption) {
feedback.textContent = 'Selecciona una opci贸 abans de comprovar.';
feedback.className = 'incorrect-answer p-3 rounded';
feedback.classList.remove('hidden');
return;
}
if (selectedOption.value === '2') {
feedback.textContent = 'Correcte! La gr脿fica correspon a y = -2x + 3.';
feedback.className = 'correct-answer p-3 rounded';
updateProgress(10);
} else {
feedback.textContent = 'No 茅s correcte. Observa el pendent i la ordenada a l\'origen.';
feedback.className = 'incorrect-answer p-3 rounded';
}
feedback.classList.remove('hidden');
}
// Progress tracking
let progress = 20;
function updateProgress(points = 0) {
if (points > 0) {
progress = Math.min(progress + points, 100);
document.getElementById('progress-bar').style.width = progress + '%';
document.getElementById('progress-percent').textContent = progress;
}
}
// Initialize the app
window.onload = function() {
initCharts();
showTab('basic');
};
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 馃К <a href="https://enzostvs-deepsite.hf.space?remix=Rubenhugging/primergrau" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>