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 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - - - +Created by potrace 1.14, written by Peter Selinger 2001-2017 \ No newline at end of file