diff --git a/hdyc-svelte/src/app.css b/hdyc-svelte/src/app.css index 2bb3aa9..a7b1d2e 100644 --- a/hdyc-svelte/src/app.css +++ b/hdyc-svelte/src/app.css @@ -1,4 +1,74 @@ -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap'); +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/fonts/inter/Inter-Regular.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('/fonts/inter/Inter-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('/fonts/inter/Inter-SemiBold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('/fonts/inter/Inter-Bold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('/fonts/inter/Inter-ExtraBold.woff2') format('woff2'); +} + +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2') format('woff2'); +} + +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2') format('woff2'); +} + +body { + visibility: visible; +} + +:root[data-fonts='loading'] body { + visibility: hidden; +} :root { /* ─── Colors (Dark Theme) ─────────────────────────────── */ diff --git a/hdyc-svelte/src/app.html b/hdyc-svelte/src/app.html index 20c135f..1837ea7 100644 --- a/hdyc-svelte/src/app.html +++ b/hdyc-svelte/src/app.html @@ -1,12 +1,71 @@ - +
+ + + + + + + + %sveltekit.head% diff --git a/hdyc-svelte/src/lib/components/Calculator.svelte b/hdyc-svelte/src/lib/components/Calculator.svelte index cd2fc57..8031124 100644 --- a/hdyc-svelte/src/lib/components/Calculator.svelte +++ b/hdyc-svelte/src/lib/components/Calculator.svelte @@ -14,8 +14,6 @@ let val2 = ''; let val3 = ''; let activeField: 1 | 2 | 3 = 1; - let swapSnapshot: { val1: string; val2: string } | null = null; - let isSwapFlipped = false; $: has3 = ['3col', '3col-mul'].includes(config.type) || !!config.labels.in3; $: isTextInput = ['base', 'text-bin', 'bin-text', 'dec-frac', 'dms-dd', 'dd-dms'].includes(config.type); @@ -27,13 +25,7 @@ let paramsInitializing = true; - function resetSwapState() { - swapSnapshot = null; - isSwapFlipped = false; - } - function handleInput(source: 1 | 2 | 3) { - resetSwapState(); activeField = source; const result = solve(config, source, val1, val2, val3); if (source !== 1) val1 = result.val1; @@ -42,23 +34,14 @@ } function swap() { - if (isSwapFlipped && swapSnapshot) { - val1 = swapSnapshot.val1; - val2 = swapSnapshot.val2; - resetSwapState(); - } else { - swapSnapshot = { val1, val2 }; - [val1, val2] = [val2, val1]; - isSwapFlipped = true; - } - activeField = activeField === 1 ? 2 : 1; + const nextSource: 1 | 2 = activeField === 1 ? 2 : 1; + handleInput(nextSource); } function clear() { val1 = ''; val2 = ''; val3 = ''; - resetSwapState(); } onMount(() => { diff --git a/hdyc-svelte/static/fonts/inter/Inter-Bold.woff2 b/hdyc-svelte/static/fonts/inter/Inter-Bold.woff2 new file mode 100644 index 0000000..b9e3cb3 Binary files /dev/null and b/hdyc-svelte/static/fonts/inter/Inter-Bold.woff2 differ diff --git a/hdyc-svelte/static/fonts/inter/Inter-ExtraBold.woff2 b/hdyc-svelte/static/fonts/inter/Inter-ExtraBold.woff2 new file mode 100644 index 0000000..bbd0006 Binary files /dev/null and b/hdyc-svelte/static/fonts/inter/Inter-ExtraBold.woff2 differ diff --git a/hdyc-svelte/static/fonts/inter/Inter-Medium.woff2 b/hdyc-svelte/static/fonts/inter/Inter-Medium.woff2 new file mode 100644 index 0000000..fdfdcc6 Binary files /dev/null and b/hdyc-svelte/static/fonts/inter/Inter-Medium.woff2 differ diff --git a/hdyc-svelte/static/fonts/inter/Inter-Regular.woff2 b/hdyc-svelte/static/fonts/inter/Inter-Regular.woff2 new file mode 100644 index 0000000..2bcd222 Binary files /dev/null and b/hdyc-svelte/static/fonts/inter/Inter-Regular.woff2 differ diff --git a/hdyc-svelte/static/fonts/inter/Inter-SemiBold.woff2 b/hdyc-svelte/static/fonts/inter/Inter-SemiBold.woff2 new file mode 100644 index 0000000..fbae113 Binary files /dev/null and b/hdyc-svelte/static/fonts/inter/Inter-SemiBold.woff2 differ diff --git a/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 new file mode 100644 index 0000000..669d04c Binary files /dev/null and b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 differ diff --git a/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 new file mode 100644 index 0000000..40da427 Binary files /dev/null and b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 differ diff --git a/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 new file mode 100644 index 0000000..5ead7b0 Binary files /dev/null and b/hdyc-svelte/static/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 differ