contact.vue 5.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template><NuxtLayout name="default">
  2. <template #headline>{{ headline }}</template>
  3. <template #tagline>{{ tagline }}</template>
  4. <div class="container mx-auto max-w-screen-lg sm:px-12 px-2 mb-12 prose">
  5. <article class="body grid sm:grid-cols-2 grid-cols-1 gap-x-12 gap-y-0">
  6. <section class="links">
  7. <p>You can find me on these web sites…</p>
  8. <div class="text-center ml-2">
  9. <a rel="me" href="https://blog.morpheu5.net"><client-only><fa-icon icon="fa-solid fa-blog" alt="MorphLog" style="color: black" aria-hidden="true" /></client-only></a>
  10. <a rel="me" href="https://orcid.org/0000-0001-8665-6147"><client-only><fa-icon icon="fa-brands fa-orcid" alt="ORCID" style="color: #a6cf39" aria-hidden="true" /></client-only></a>
  11. <a rel="me" href="https://www.linkedin.com/in/andreafranceschini"><client-only><fa-icon icon="fa-brands fa-linkedin" alt="LinkedIn" style="color: #0077b5" aria-hidden="true" /></client-only></a>
  12. <a rel="me" href="https://github.com/Morpheu5"><client-only><fa-icon icon="fa-brands fa-github" alt="GitHub" style="color: black" aria-hidden="true" /></client-only></a>
  13. </div>
  14. <div class="mt-4 text-center">
  15. <a rel="me" href="https://apps.apple.com/it/developer/andrea-franceschini/id454062630"><client-only><fa-icon icon="fa-brands fa-app-store-ios" alt="App Store" style="color: #2296f3" aria-hidden="true" /></client-only></a>
  16. <a rel="me" href="http://play.google.com/store/apps/developer?id=Andrea+Franceschini&amp;hl=it_IT"><client-only><fa-icon icon="fa-brands fa-google-play" alt="Google Play" style="color: #3BCCFF" aria-hidden="true" /></client-only></a>
  17. <a rel="me" href="https://twitter.com/morpheu5"><client-only><fa-icon icon="fa-brands fa-twitter" alt="Twitter" style="color: #55acee" aria-hidden="true" /></client-only></a>
  18. <a rel="me" href="https://livellosegreto.it/@morpheu5"><client-only><fa-icon icon="fa-brands fa-mastodon" alt="Mastodon" /></client-only></a>
  19. </div>
  20. <div class="mt-4 text-center">
  21. <a rel="me" href="https://instagram.com/ilmoppe"><client-only><fa-icon icon="fa-brands fa-instagram" alt="Instagram" style="color: #E1306C" aria-hidden="true" /></client-only></a>
  22. <a rel="me" href="https://www.flickr.com/photos/morpheu5"><client-only><fa-icon icon="fa-brands fa-flickr" alt="Flickr" style="color: #0062DD" aria-hidden="true" /></client-only></a>
  23. <a rel="me" href="https://soundcloud.com/ilmoppe"><client-only><fa-icon icon="fa-brands fa-soundcloud" alt="SoundClound" style="color: #FE5000" aria-hidden="true" /></client-only></a>
  24. </div>
  25. <div class="mt-4 text-center">
  26. <a rel="me" href="https://www.youtube.com/user/therealmorpheu5"><client-only><fa-icon icon="fa-brands fa-youtube" alt="YouTube" style="color: #FF0000" aria-hidden="true" /></client-only></a>
  27. <a rel="me" href="https://deviantart.com/morpheu5"><client-only><fa-icon icon="fa-brands fa-deviantart" alt="DeviantArt" style="color: #4DC47D" aria-hidden="true" /></client-only></a>
  28. </div>
  29. </section>
  30. <section class="email">
  31. <p>… or drop me an email at<br /><a :href="`mailto:${emailUser}\u0040${emailDomain}`"><client-only><fa-icon icon="fa fa-envelope" alt="Email" aria-hidden="true" /></client-only>&ensp;{{emailUser}}{{'\u0040'}}{{emailDomain}}</a></p>
  32. </section>
  33. </article>
  34. </div>
  35. </NuxtLayout></template>
  36. <style lang="pcss" scoped>
  37. .links a {
  38. @apply text-4xl;
  39. @apply mr-6;
  40. @media screen(sm) {
  41. @apply text-5xl;
  42. }
  43. }
  44. </style>
  45. <script lang="ts" setup>
  46. definePageMeta({
  47. layout: false
  48. });
  49. const headline = "Contact";
  50. const tagline = "";
  51. const title = `${headline} ••• Andrea Franceschini, PhD`;
  52. const keywords = "contact, music, learning, tabletop, research, the open university, university of cambridge, isaac physics, reactable";
  53. const description = "Everything you need to know to get in touch with me.";
  54. useState('pageClasses', () => ['contact', 'page']);
  55. useHead({
  56. title,
  57. meta: [
  58. { property: 'keywords', content: keywords },
  59. { property: 'DC.Title', content: title },
  60. { property: 'twitter:title', content: title },
  61. { property: 'og:title', content: title },
  62. { property: 'description', content: description },
  63. { property: 'DC.Description', content: description },
  64. { property: 'twitter:description', content: description },
  65. { property: 'og:description', content: description },
  66. ]
  67. });
  68. const emailUser = computed(() => '\u0061\u006e\u0064\u0072\u0065\u0061\u002e\u0066\u0072\u0061\u006e\u0063\u0065\u0073\u0063\u0068\u0069\u006e\u0069');
  69. const emailDomain = computed(() => '\u0067\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d');
  70. </script>