logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git

font-test.js (1862B)


  1. // Copyright 2023 Haelwenn (lanodan) Monnier <contact+blog@hacktivis.me>
  2. // SPDX-License-Identifier: MIT
  3. 'use strict';
  4. const main = document.getElementsByTagName("main")[0];
  5. main.style.fontSynthesis = 'none';
  6. var fontfamilies = "";
  7. [
  8. "system-ui", "serif", "sans-serif", "monospace", "cursive", "fantasy", "ui-serif", "ui-sans-serif", "ui-monospace", "ui-rounded", "math", "emoji", "fangsong"
  9. ].forEach(function(e) {fontfamilies += `\t\t<option>${e}</option>\n`});
  10. var fontweights = "";
  11. [
  12. "100", "200", "300", "400", "500", "600", "700", "800", "900", "950"
  13. ].forEach(function(e) {fontweights += `\t\t<option>${e}</option>\n`});
  14. var fontstyles = "";
  15. [
  16. "normal", "italic", "oblique", "oblique -14deg", "oblique 90deg", "oblique -90deg"
  17. ].forEach(function(e) {fontstyles += `\t\t<option>${e}</option>\n`});
  18. document.getElementById('fontsel').innerHTML = `
  19. <label>Family:
  20. <input id="fontsel_in" type="text" list="fontfamilies"/>
  21. <datalist id="fontfamilies">${fontfamilies}</datalist>
  22. </label>
  23. <label>Weight (<span id="fontsel_weight_val">400</span>):
  24. <input id="fontsel_weight" type="range" max="1000" min="1" step="50" value="400" list="fontweights"/>
  25. <datalist id="fontweights">${fontweights}</datalist>
  26. </label>
  27. <label>Style:
  28. <input id="fontsel_style" type="text" list="fontstyles"/>
  29. <datalist id="fontstyles">${fontstyles}</datalist>
  30. </label>
  31. `;
  32. document.getElementById('fontsel_in').addEventListener('change', (e) => {
  33. main.style.fontFamily = e.target.value;
  34. });
  35. main.style.fontWeight = 400; // Normal
  36. document.getElementById('fontsel_weight').addEventListener('change', (e) => {
  37. main.style.fontWeight = e.target.value;
  38. document.getElementById('fontsel_weight_val').innerText = main.style.fontWeight;
  39. });
  40. document.getElementById('fontsel_style').addEventListener('change', (e) => {
  41. main.style.fontStyle = e.target.value;
  42. });