emails.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ---
  2. page-header: Email templates
  3. menu: emails
  4. libs: masonry, fslightbox
  5. ---
  6. <div class="row row-cards">
  7. <div class="col-lg-4">
  8. <div class="card card-md">
  9. <div class="card-stamp card-stamp-lg">
  10. <div class="card-stamp-icon bg-primary">
  11. {% include ui/icon.html icon="mail" %}
  12. </div>
  13. </div>
  14. <div class="card-body">
  15. <div class="row align-items-center">
  16. <div class="col-10">
  17. <h3 class="h1">Tabler Emails</h3>
  18. <div class="markdown text-secondary">
  19. {{ site.emails.count }} eye-catching, customizable and responsive email templates to improve your email communication. No coding skills needed.
  20. </div>
  21. <div class="mt-3">
  22. <a href="{{ site.emails.buy_link }}" class="btn btn-primary" target="_blank">Buy all emails for {{ site.emails.price }}</a>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. <div class="col">
  30. <div class="row row-cards" data-masonry='{"percentPosition": true }'>
  31. {% for email in site.data.emails %}
  32. <div class="col-4">
  33. <a
  34. href="{{ site.base }}/static/emails/{{ email.image }}"
  35. data-bs-toggle="modal"
  36. data-bs-target="#email-modal"
  37. data-bs-title="{{ email.descriptionShort }}"
  38. data-bs-description="{{ email.descriptionLong }}"
  39. data-bs-image="{{ site.base }}/static/emails/{{ email.image }}"
  40. >
  41. <img src="{{ site.base }}/static/emails/{{ email.image }}" class="img-fluid rounded" alt="{{ email.descriptionShort }}" width="{{ email.width }}" height="{{ email.height }}" />
  42. </a>
  43. </div>
  44. {% endfor %}
  45. </div>
  46. </div>
  47. </div>
  48. <div class="modal fade" id="email-modal" aria-hidden="true" aria-labelledby="email-modal-label" tabindex="-1">
  49. <div class="modal-dialog modal-xl modal-dialog-centered">
  50. <div class="modal-content">
  51. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  52. <div class="modal-body p-0">
  53. <div class="row g-0">
  54. <div class="col-6">
  55. <div class="p-6 bg-body rounded-start">
  56. <img src="" class="img-fluid rounded-left" data-email-image />
  57. </div>
  58. </div>
  59. <div class="col-6">
  60. <div class="p-7">
  61. <div class="markdown">
  62. <h3 data-email-title></h3>
  63. <p data-email-description></p>
  64. </div>
  65. <div class="mt-6">
  66. <a href="{{ site.emails.buy_link }}" class="btn btn-primary w-100" target="_blank">Buy {{ site.emails.count }} emails for {{ site.emails.price }}</a>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. {% capture_global scripts %}
  76. <script>
  77. const emailModal = document.getElementById("email-modal")
  78. if (emailModal) {
  79. emailModal.addEventListener("show.bs.modal", function (e) {
  80. const button = e.relatedTarget
  81. const image = button.getAttribute("data-bs-image"),
  82. title = button.getAttribute("data-bs-title"),
  83. description = button.getAttribute("data-bs-description")
  84. emailModal.querySelector("[data-email-title]").textContent = title
  85. emailModal.querySelector("[data-email-description]").textContent = description
  86. emailModal.querySelector("[data-email-image]").src = image
  87. modalTitle.textContent = `New message to ${recipient}`
  88. modalBodyInput.value = recipient
  89. })
  90. }
  91. </script>
  92. {% endcapture_global %}