templates/site/lp/mobile-ads-landing.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block replacestylesheets %}
  3.     <link rel="preload" href="{{ asset('fonts/SFProDisplay-Bold.woff2') }}" as="font" type="font/woff2" crossorigin>
  4.     <link rel="preload" href="{{ asset('fonts/SFProDisplay-Heavy.woff2') }}" as="font" type="font/woff2" crossorigin>
  5.     <link rel="preload" href="{{ asset('/fonts/SFProDisplay-Regular.woff2') }}" as="font" type="font/woff2" crossorigin>
  6.     <link rel="preload" href="{{ asset('fonts/SFProDisplay-Medium.woff2') }}" as="font" type="font/woff2" crossorigin>
  7.     <link rel="preload" href="{{ asset('fonts/SFProDisplay-Semibold.woff2') }}" as="font" type="font/woff2" crossorigin>
  8.     <link rel="preload" href="{{ asset('fonts/SFProDisplay-Bold.woff2') }}" as="font" type="font/woff2" crossorigin>
  9.     <link rel="stylesheet" href="{{ asset('css/main.css') }}?v=3.0.3" type="text/css"/>
  10.     <style>
  11.     *{
  12.         box-sizing: border-box;
  13.     }
  14.     body{
  15.         color: #000000;
  16.         padding-bottom: 40px;
  17.         font-size: 16px;
  18.         font-weight: 500;
  19.         line-height: 20px;
  20.     }
  21.     button{
  22.         cursor: pointer;
  23.     }
  24.     #gradient-bg{
  25.         position: absolute;
  26.         z-index: -1;
  27.         top: 0;
  28.         width: 100vw;
  29.         aspect-ratio: 1;
  30.         display: block;
  31.         background: url(https://dotoast.com/img/mobile-ads-landing/gradient-bg.png) top right no-repeat;
  32.         background-size: cover;
  33.     }
  34.     .content-column{
  35.         padding: 0 32px;
  36.         max-width: 550px;
  37.         margin: auto;
  38.     }
  39.     #header{
  40.         display: flex;
  41.         justify-content: space-between;
  42.         align-items: center;
  43.         padding: 58px 32px 20px;
  44.     }
  45.     #logo{
  46.         display: block;
  47.         height: 32px;
  48.         aspect-ratio: 117 / 32;
  49.         background: url(https://dotoast.com/img/logo.svg) top left no-repeat;
  50.         background-size: contain;
  51.     }
  52.     #producthunt{
  53.         display: block;
  54.         height: 36px;
  55.         aspect-ratio: 116 / 36;
  56.         background: url(https://dotoast.com/img/mobile-ads-landing/producthunt-badge.png) top left no-repeat;
  57.         background-size: contain;
  58.     }
  59.     #hero-image{
  60.         width: 100vw;
  61.         margin: auto;
  62.         margin-bottom: 20px;
  63.         max-width: 550px;
  64.     }
  65.     h1{
  66.         font-size: 32px;
  67.         font-weight: 700;
  68.         line-height: 40px;
  69.         margin: 0;
  70.         margin-bottom: 40px;
  71.     }
  72.     .yellow{
  73.         color: #FFC31E;
  74.     }
  75.     form{
  76.         margin-bottom: 80px;
  77.     }
  78.     input{
  79.         width: 100%;
  80.         padding: 12px 16px;
  81.         border-radius: 10px;
  82.         border: solid 1px rgba(0, 0, 0, .08);
  83.         box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
  84.         font-size: 16px;
  85.         font-weight: 500;
  86.         line-height: 20px;
  87.         margin-bottom: 20px;
  88.     }
  89.     input:focus{
  90.         border-color: rgba(0, 0, 0, 1);
  91.         outline: none;
  92.     }
  93.     input:user-invalid{
  94.         border-color: #ED254E;
  95.         background-color: rgba(237, 37, 78, .08);
  96.     }
  97.     form button{
  98.         font-size: 16px;
  99.         font-weight: 600;
  100.         line-height: 20px;
  101.         padding: 12px 16px;
  102.         border-radius: 10px;
  103.         color: #FFFFFF;
  104.         background-color: #000000;
  105.         border: none;
  106.         width: 100%;
  107.     }
  108.     form button.clicked{
  109.         background-color: #17B73A;
  110.     }
  111.     .installation-links-container{
  112.         margin-bottom: 40px;
  113.         display: grid;
  114.         row-gap: 20px
  115.     }
  116.     h6{
  117.         font-size: 16px;
  118.         font-weight: 500;
  119.         line-height: 20px;
  120.         color: rgba(0, 0, 0, .4);
  121.         margin: 0;
  122.     }
  123.     h6 a{
  124.         color: #5856D6;
  125.         text-decoration: none;
  126.     }
  127.     .browser-link-block{
  128.         display: flex;
  129.         justify-content: space-between;
  130.         align-items: center;
  131.     }
  132.     .browser-link-block > div{
  133.         display: flex;
  134.         align-items: center;
  135.         gap: 12px;
  136.         font-weight: 600;
  137.     }
  138.     .browser-icon{
  139.         display: block;
  140.         height: 40px;
  141.         aspect-ratio: 1 / 1;
  142.         background-size: contain;
  143.         background-position: center;
  144.     }
  145.     .browser-icon.chrome{
  146.         background-image: url(https://dotoast.com/img/new-home/chrome-logo@2x.png);
  147.     }
  148.     .browser-icon.safari{
  149.         background-image: url(https://dotoast.com/img/new-home/safari-logo@2x.png);
  150.     }
  151.     .browser-icon.edge{
  152.         background-image: url(https://dotoast.com/img/mobile-ads-landing/edge.png);
  153.     }
  154.     .browser-icon.firefox{
  155.         background-image: url(https://dotoast.com/img/mobile-ads-landing/firefox.png);
  156.     }
  157.     .browser-icon.opera{
  158.         background-image: url(https://dotoast.com/img/mobile-ads-landing/opera.png);
  159.     }
  160.     .browser-icon.ios{
  161.         background-image: url(https://dotoast.com/img/mobile-ads-landing/ios.png);
  162.     }
  163.     .browser-link-block button{
  164.         padding: 8px 12px;
  165.         font-size: 14px;
  166.         font-weight: 500;
  167.         line-height: 16px;
  168.         color: rgba(0, 0, 0, .8);
  169.         border-radius: 16px;
  170.         border: solid 1px rgba(0, 0, 0, .08);
  171.         background: transparent;
  172.     }
  173.     .browser-link-block button.clicked{
  174.         background-color: rgba(23, 183, 58, .08);
  175.         border: solid 1px #17B73A;
  176.     }
  177. </style>
  178. {% endblock %}
  179. {% block replacejslib %}{% endblock %}
  180. {% block title %}Toast - Save Tabs for Later{% endblock %}
  181. {% block wrapperExists %}
  182.     <span id="gradient-bg"></span>
  183.     <div id="header" class="content-column">
  184.         <a href="https://dotoast.com"><span id="logo"></span></a>
  185.         <span id="producthunt"></span>
  186.     </div>    
  187.     <img id="hero-image" src="https://dotoast.com/img/mobile-ads-landing/hero-img.png">
  188.     <div class="content-column">
  189.         <h1>Get <span class="yellow">Toast</span> Extension for Your Browser</h1>
  190.         
  191.         <form method="post" action="">
  192.             <input name="email" type="email"
  193.             autocomplete="email"
  194.             placeholder="Enter your email address"
  195.             required>
  196.             <button type="submit">Send Installation Link</button>
  197.             <!-- maybe make green on submit and say Sent -->
  198.         </form>
  199.         <div class="installation-links-container">
  200.             <h6>Or copy installation link for desktop...</h6>
  201.             
  202.             <!-- Chrome broweser link -->
  203.             <div class="browser-link-block" id="chrome-link">
  204.                 <div>
  205.                     <span class="browser-icon chrome"></span>
  206.                     <span>Chrome</span>
  207.                 </div>
  208.                 <a role="button" ping="https://dotoast.com/metric-count?metric=mobile-link-copied-chrome&redirect_url=https%3A%2F%2Fdotoast.com">
  209.                     <button 
  210.                     data-link="https://chrome.google.com/webstore/detail/toast/pejhbjnfifdecpkgcjhgmcaphdobmiie?utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing"
  211.                     >Copy Link</button>
  212.                 </a>
  213.             </div>
  214.             <!-- Safari broweser link -->
  215.             <div class="browser-link-block" id="safari-link">
  216.                 <div>
  217.                     <span class="browser-icon safari"></span>
  218.                     <span>Safari</span>
  219.                 </div>
  220.                 <a role="button" ping="https://dotoast.com/metric-count?metric=mobile-link-copied-safari&redirect_url=https%3A%2F%2Fdotoast.com">
  221.                     <button 
  222.                     data-link="https://apps.apple.com/us/app/toast/id1465707487?utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing"
  223.                     >Copy Link</button>
  224.                 </a>
  225.             </div>
  226.             <!-- Edge broweser link -->
  227.             <div class="browser-link-block" id="edge-link">
  228.                 <div>
  229.                     <span class="browser-icon edge"></span>
  230.                     <span>Microsoft Edge</span>
  231.                 </div>
  232.                 <a role="button" ping="https://dotoast.com/metric-count?metric=mobile-link-copied-edge&redirect_url=https%3A%2F%2Fdotoast.com">
  233.                     <button 
  234.                     data-link="https://microsoftedge.microsoft.com/addons/detail/toast/llmejgkjpfngebfhcbadinppkmbjbkij?utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing"
  235.                     >Copy Link</button>
  236.                 </a>
  237.             </div>
  238.             <!-- Firefox broweser link -->
  239.             <div class="browser-link-block" id="firefox-link">
  240.                 <div>
  241.                     <span class="browser-icon firefox"></span>
  242.                     <span>Firefox</span>
  243.                 </div>
  244.                 <a role="button" ping="https://dotoast.com/metric-count?metric=mobile-link-copied-firefox&redirect_url=https%3A%2F%2Fdotoast.com">
  245.                     <button 
  246.                     data-link="https://addons.mozilla.org/en-US/firefox/addon/dotoast/?utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing"
  247.                     >Copy Link</button>
  248.                 </a>
  249.             </div>
  250.             <!-- Opera broweser link -->
  251.             <div class="browser-link-block" id="opera-link">
  252.                 <div>
  253.                     <span class="browser-icon opera"></span>
  254.                     <span>Opera</span>
  255.                 </div>
  256.                 <a role="button" ping="https://dotoast.com/metric-count?metric=mobile-link-copied-opera&redirect_url=https%3A%2F%2Fdotoast.com">
  257.                     <button 
  258.                     data-link="https://addons.opera.com/en/extensions/details/toast?utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing"
  259.                     >Copy Link</button>
  260.                 </a>
  261.             </div>
  262.         </div>
  263.         <div class="installation-links-container">
  264.             <h6>Toast is available for mobile</h6>
  265.             <!-- iOS link -->
  266.             <div class="browser-link-block" id="ios-link">
  267.                 <div>
  268.                     <span class="browser-icon ios"></span>
  269.                     <span>Toast for iPhone</span>
  270.                 </div>
  271.                 <a href="https://apps.apple.com/ua/app/toast-for-safari/id1465707487?platform=iphone&utm_source=mobile-ads-landing&utm_medium=cpc&utm_campaign=mobile-ads-landing" target="_blank" ping="https://dotoast.com/metric-count?metric=mobile-link-opened-ios&redirect_url=https%3A%2F%2Fdotoast.com">
  272.                     <button>Download</button>
  273.                 </a>
  274.             </div>
  275.         </div>
  276.         <h6>Reach us at <a href="mailto:dotoast.com@gmail.com" ping="tracking-link-here">dotoast.com@gmail.com</a></h6>
  277.     </div>
  278. {% endblock %}
  279. {% block replacejs %}
  280.     <script src="{{ asset('js/libs/jquery-3.6.0.min.js') }}"></script>
  281.     <script>
  282.     
  283.     $('.browser-link-block:not(#ios-link) button').click((event) => {
  284.         let button = $(event.target);
  285.         let storeLink = button.attr('data-link');
  286.         copyToClipboard(storeLink, () => {
  287.             // set clicked state
  288.             button
  289.             .addClass('clicked')
  290.             .css('width', button.outerWidth())
  291.             .text('Copied!')
  292.             fetch(button.parent().attr('ping'), { method: "POST" })
  293.             // remove clicked state
  294.             setTimeout(() => {
  295.                 button
  296.                 .removeClass('clicked')
  297.                 .css('width', 'auto')
  298.                 .text('Copy Link')
  299.             }, 2000)
  300.         })
  301.     })
  302.     function copyToClipboard(text, callback){
  303.         const el = document.createElement('textarea');
  304.         el.value = text;
  305.         document.body.appendChild(el);
  306.         el.select();
  307.         document.execCommand('copy');
  308.         document.body.removeChild(el);
  309.         typeof callback === 'function' && callback();
  310.     };
  311.     function handleForm(email){
  312.         let payload = {email: email};
  313.         let data = new FormData();
  314.         data.append( "json", JSON.stringify( payload ) );
  315.         fetch("https://dotoast.com/mobile-ads-form-handler.php",
  316.         {
  317.             method: "POST",
  318.             body: data
  319.         })
  320.     }
  321.     $('form').on('submit', (e) =>{
  322.         e.preventDefault();
  323.         let input = $('form input');
  324.         let email = input.val();
  325.         $('form').trigger('reset')
  326.         let button = $('form button');
  327.         // set clicked state
  328.         button
  329.             .addClass('clicked')
  330.             .text("Sent your way! Check Spam too.")
  331.             handleForm(email)
  332.             // remove clicked state
  333.             setTimeout(() => {
  334.                 button
  335.                 .removeClass('clicked')
  336.                 .text('Send Installation Link')
  337.             }, 5000)
  338.     })
  339. </script>
  340. {% endblock %}