diff --git a/src/app.css b/src/app.css
index 97aa7d9..117f808 100644
--- a/src/app.css
+++ b/src/app.css
@@ -2,45 +2,84 @@
@tailwind components;
@tailwind utilities;
-/* latin-ext */
+/* Optimize font loading */
@font-face {
- font-family: 'DM Sans';
- font-style: normal;
- font-weight: 400;
- src: url(https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232VGM.woff2)
- format('woff2');
- unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
- U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ font-family: 'DM Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap; /* Improve font loading performance */
+ src: url(https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32.woff2)
+ format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
+ U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
+ U+FFFD;
}
-/* latin */
-@font-face {
- font-family: 'DM Sans';
- font-style: normal;
- font-weight: 400;
- src: url(https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32.woff2)
- format('woff2');
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
- U+FFFD;
+
+@layer base {
+ body {
+ font-family: 'DM Sans', system-ui, sans-serif;
+ }
}
-body {
- font-family: 'DM Sans', sans-serif;
+@layer utilities {
+ .scrollbar-w-2 {
+ /* Remove old styles */
+ }
}
-.scrollbar-w-2 {
- ::-webkit-scrollbar {
- width: 5px;
- height: 5px;
- }
-
- ::-webkit-scrollbar-button {
- background: #ccc;
- }
- ::-webkit-scrollbar-track-piece {
- background: #888;
- }
- ::-webkit-scrollbar-thumb {
- background: #464242;
- }
+@layer components {
+ /* Modern minimal scrollbar */
+ ::-webkit-scrollbar {
+ width: 6px;
+ height: 6px;
+ }
+
+ ::-webkit-scrollbar-track {
+ background: transparent;
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background: rgba(0, 0, 0, 0.2);
+ border-radius: 20px;
+ transition: all 0.3s ease;
+ }
+
+ ::-webkit-scrollbar-thumb:hover {
+ background: rgba(0, 0, 0, 0.3);
+ }
+
+ /* Firefox scrollbar */
+ * {
+ scrollbar-width: thin;
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
+ }
+
+ /* Buy Me a Coffee button hover effect */
+ .bmc-button {
+ transition: all 0.3s ease !important;
+ transform: translateY(0);
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
+ }
+
+ .bmc-button:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
+ filter: brightness(105%);
+ }
+
+ .bmc-button:active {
+ transform: translateY(0);
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
+ }
+
+ /* Fix image distortion */
+ img {
+ @apply object-contain;
+ aspect-ratio: attr(width) / attr(height);
+ }
+
+ /* Ensure logos maintain aspect ratio */
+ .logo-image {
+ @apply w-auto h-auto object-contain max-w-full;
+ }
}
diff --git a/src/app.html b/src/app.html
index 9374fc1..f1b0ef0 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,49 +1,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %sveltekit.head%
-
-
-
-
SignaMath | Générateur de tableau de signes et de variations
-
-
-
-
-
-
-
- %sveltekit.body%
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %sveltekit.head%
+ SignaMath | Générateur de tableau de signes et de variations
+
+
+ %sveltekit.body%
+
diff --git a/src/components/BMCButton.svelte b/src/components/BMCButton.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/KofiButton.svelte b/src/components/KofiButton.svelte
new file mode 100644
index 0000000..f775c63
--- /dev/null
+++ b/src/components/KofiButton.svelte
@@ -0,0 +1,15 @@
+
+
+ isHovered = true}
+ on:mouseleave={() => isHovered = false}
+ aria-label="Support me on Ko-fi"
+>
+
+
diff --git a/src/components/tds/assets/arrow_down.png b/src/components/tds/assets/arrow_down.png
index e35b259..5b660fd 100644
Binary files a/src/components/tds/assets/arrow_down.png and b/src/components/tds/assets/arrow_down.png differ
diff --git a/src/components/tds/assets/arrow_up.png b/src/components/tds/assets/arrow_up.png
index 861b718..fc36b10 100644
Binary files a/src/components/tds/assets/arrow_up.png and b/src/components/tds/assets/arrow_up.png differ
diff --git a/src/components/tds/assets/icon.png b/src/components/tds/assets/icon.png
index a57620f..5a50a80 100644
Binary files a/src/components/tds/assets/icon.png and b/src/components/tds/assets/icon.png differ
diff --git a/src/components/tds/row/RowSigns.svelte b/src/components/tds/row/RowSigns.svelte
index 13b1237..ad4a5fb 100644
--- a/src/components/tds/row/RowSigns.svelte
+++ b/src/components/tds/row/RowSigns.svelte
@@ -6,33 +6,12 @@
// Pour que les colonnes se rejoignent (le trait continue)
export let extendSize: boolean;
+
+ $: textSize = cellules.some((x) => x.sign.length > 3) ? 'text-md' : 'text-md lg:text-3xl';
- x.sign.length > 3)
- ? '' /* Message d'intervalle de définition, taille du texte réduit */
- : 'lg:text-3xl')}
->
+
{#each cellules as cellule, index}
{/each}
-
-
diff --git a/src/components/tds/tdv/CalculatedValue.svelte b/src/components/tds/tdv/CalculatedValue.svelte
index 632a448..e206114 100644
--- a/src/components/tds/tdv/CalculatedValue.svelte
+++ b/src/components/tds/tdv/CalculatedValue.svelte
@@ -5,24 +5,27 @@
-->
- {#if value !== undefined}
-
- {value}
-
- {/if}
+ {#if value !== undefined}
+
+ {value}
+
+ {/if}
diff --git a/src/lib/assets/github.svg b/src/lib/assets/github.svg
index 8f5e204..a484c84 100644
--- a/src/lib/assets/github.svg
+++ b/src/lib/assets/github.svg
@@ -1,8 +1 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/lib/assets/icon.png b/src/lib/assets/icon.png
index a57620f..5a50a80 100644
Binary files a/src/lib/assets/icon.png and b/src/lib/assets/icon.png differ
diff --git a/src/lib/graph.ts b/src/lib/graph.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 5b6c7c1..4a1df54 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -5,6 +5,7 @@
import { toast } from 'svelte-sonner';
import { dev } from '$app/environment';
import { onMount } from 'svelte';
+ import KofiButton from '../components/KofiButton.svelte';
function handleError(event: any) {
toast.error('Une erreur est survenue, désolé !');
@@ -89,6 +90,7 @@
+
diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png
index c208cb7..407c910 100644
Binary files a/static/android-chrome-192x192.png and b/static/android-chrome-192x192.png differ
diff --git a/static/android-chrome-384x384.png b/static/android-chrome-384x384.png
index 5fc56b3..772f302 100644
Binary files a/static/android-chrome-384x384.png and b/static/android-chrome-384x384.png differ
diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png
index 870578d..402cbd8 100644
Binary files a/static/apple-touch-icon.png and b/static/apple-touch-icon.png differ
diff --git a/static/favicon.png b/static/favicon.png
index a57620f..5a50a80 100644
Binary files a/static/favicon.png and b/static/favicon.png differ
diff --git a/static/mstile-150x150.png b/static/mstile-150x150.png
index 17def00..49cfb86 100644
Binary files a/static/mstile-150x150.png and b/static/mstile-150x150.png differ
diff --git a/static/palestine.jpg b/static/palestine.jpg
index fe576bd..a9fb013 100644
Binary files a/static/palestine.jpg and b/static/palestine.jpg differ
diff --git a/static/safari-pinned-tab.svg b/static/safari-pinned-tab.svg
index e4ad57f..ef12960 100644
--- a/static/safari-pinned-tab.svg
+++ b/static/safari-pinned-tab.svg
@@ -1,92 +1 @@
-
-
-
+
\ No newline at end of file