djledda.de main
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 

103 rader
5.6 KiB

  1. import { defineComponent, computed, ref, type Ref } from "vue";
  2. import useHead from "@/useHead.ts";
  3. import DJTooltip, { setupTooltip } from "@/DJTooltip.tsx";
  4. import DJEmail from "@/DJEmail.tsx";
  5. export default defineComponent({
  6. name: "app-root",
  7. setup() {
  8. useHead({ title: "DJ Ledda's Homepage" });
  9. const tooltipCarrier = ref<HTMLDivElement | null>(null);
  10. setupTooltip({ carrier: tooltipCarrier });
  11. const dude1Spinning = ref(false);
  12. const dude2Spinning = ref(false);
  13. function toggleDude(event: MouseEvent, dudeRef: Ref<boolean>) {
  14. const dude = event.target as HTMLImageElement;
  15. if (dudeRef.value) {
  16. dude.addEventListener("animationiteration", function listener() {
  17. dudeRef.value = false;
  18. dude.removeEventListener("animationiteration", listener as EventListenerOrEventListenerObject);
  19. });
  20. } else {
  21. dudeRef.value = true;
  22. }
  23. }
  24. const shaking = computed(() => dude1Spinning.value || dude2Spinning.value);
  25. return () => <>
  26. <div ref={tooltipCarrier} class="tooltip-carrier" />
  27. <div class="supercontainer">
  28. <div class={{ shakeable: true, shakeMe: shaking.value }}>
  29. <div class="title_name">
  30. <DJTooltip tooltip="I wonder what he's listening to?">
  31. <img src="/home/img/dj.gif" alt="dj legt krasse Mucke auf"
  32. class={{ dude: true, spinMe: dude1Spinning.value }}
  33. onClick={ (e) => toggleDude(e, dude1Spinning)} />
  34. </DJTooltip>
  35. <DJTooltip tooltip="Easily the coolest guy out there.">
  36. <span>DJ Ledda</span>
  37. </DJTooltip>
  38. <DJTooltip tooltip="I once heard this guy played at revs.">
  39. <img src="/home/img/dj.gif" alt="dj laying down some sick beats"
  40. class={{ dude: true, spinMe: dude2Spinning.value }}
  41. onClick={ (e) => toggleDude(e, dude2Spinning) } />
  42. </DJTooltip>
  43. </div>
  44. <div class="main">
  45. <div class="subject">
  46. <div class="resourcelist">
  47. <a href="https://drum-slayer.com">
  48. <DJTooltip class="resource" tooltip="Small app for designing multitrack looped rhythms with local save and multiple files. Originally built using just vanilla TypeScript and CSS, now with Vue.">
  49. Drum Slayer
  50. </DJTooltip>
  51. </a>
  52. <a href="/somaesque">
  53. <DJTooltip class="resource" tooltip="Puzzle solver app for puzzle cubes resembling the original Soma Cube puzzle. Save and edit your own puzzles! Built with Svelte, THREE.js and AssemblyScript.">
  54. Somaesque
  55. </DJTooltip>
  56. </a>
  57. <a href="/generative-energy">
  58. <DJTooltip class="resource" tooltip="Thyroid calculator, German translations, and more...">
  59. Generative Energy - Ray Peat Resources
  60. </DJTooltip>
  61. </a>
  62. <a href="/home/muenchen-auf-englisch.html">
  63. <DJTooltip class="resource" tooltip="
  64. Authentic historically accurate translations of all of Munich's S-Bahn and U-Bahn
  65. stations, as well as the main municipalities, into English. You live in Allach? It's
  66. Axleigh now. Giesing? Nope! Kyesing! This is a WIP.
  67. ">
  68. M&uuml;nchen auf Englisch - Munich in English
  69. </DJTooltip>
  70. </a>
  71. <a href="/kadi/">
  72. <DJTooltip class="resource" tooltip="Make an account and start saving paper and tracking your Yatzy stats with your
  73. friends! Make your own rulesets, and more. Built with React, express.js, and
  74. MongoDB. Currently inactive.">
  75. K A D I: Online Yatzy Scoresheets
  76. </DJTooltip>
  77. </a>
  78. <a href="http://git.djledda.de/Ledda">
  79. <DJTooltip class="resource" tooltip="Check out what I'm coding!">
  80. My git projects
  81. </DJTooltip>
  82. </a>
  83. <DJEmail>
  84. <DJTooltip class="resource" tooltip="You'll see my address when you click here.">
  85. Click here to get in touch
  86. </DJTooltip>
  87. </DJEmail>
  88. </div>
  89. </div>
  90. </div>
  91. <div id="tooltipCarrier"></div>
  92. </div>
  93. </div>
  94. </>;
  95. },
  96. });