JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<!--<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-hashes' fonts.googleapis.com; object-src 'self' https://www.paypal.com 'sha256-U2vsCzUQ797LcHkgCQJsOSAJxY/+LTdJONJ+wacPXrI='; script-src-elem 'self' 'unsafe-inline' https://www.paypal.com">-->
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100;400;900">
<link rel="stylesheet" href="./css/buy.css">
<title>Buy Trading View Input Optimizer v1.0</title>
</head>
<body>
<div id="wrapper">
<div id="headerContainer">
<div id="header">
<h1>
TradingView Input Optimizer v1.0
</h1>
</div>
<div id="subHeader">
A powerful tool to analyze strategies from TradingView
</div>
</div>
<div id="bodyContainer">
<div id="video">
Promotional Video
</div>
</div>
<div id="bodyContainer2">
<div id="productDescriptionArea">
<div class="boxTitle">
TradingView Input Optimizer v1.0
</div>
<div class="divider">
</div>
<div class="price">
<span class="super">$</span>199.<span class="super">99</span>
</div>
<ul>
<li>Works on Windows or Macintosh</li>
<li>Analyze more than 100 iterations</li>
<li>Use your license on any number of machines</li>
<li>1 year of updates included</li>
<li>Free 30 minute training conversation with us! (the developers) - English...
CSS
html {
margin: 0;
padding: 0;
}
body {
width: 100%;
height: 100%;
color: #FFF;
font-size: 12px;
margin: 0;
padding: 0;
font-family: "Montserrat", sans-serif;
background: url(https://1.bp.blogspot.com/-Fo3iRt97ZXY/XvSG4EMwi0I/AAAAAAAAVEo/mrApRTcVVRk1m-fX9K-ffNwRUXlHUocdwCLcBGAsYHQ/s1600/h.jpg) center center fixed;
background-color: #181828;
/* background: url(https://wallpapercave.com/wp/wp2128270.jpg) no-repeat center center fixed; */
/*-webk it-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover; */
}
#headerContainer {
/*border: 1px solid red;*/
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-bottom: 50px;
}
#bodyContainer {
/*border: 1px solid blue;*/
display: flex;
flex-direction: row;
}
#footerContainer {
margin-top: 50px;
min-height: 30px;
/*border: 1px solid yellow;*/
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
text-shadow: 2px 2px 4px #000000;
}
#footerContainer a {
color: #FFF;
}
#header {
display: flex;
flex-wrap: nowrap;
text-shadow: 2px 2px 4px #000000;
height: 45px;
}
#subHeader {
font-family: "Montserrat", sans-serif;
flex-basis: | auto;
text-shadow: 2px 2px 4px #000000;
padding: 5px 10px;
border: 1px solid white;
margin-top: 5px;
border-radius: 25px;
}
#bodyContainer,
#bodyContainer2 {
/* border: 1px solid blue; */
display: flex;
justify-content: center;
align-items: flex-start;
}
#buyButtonArea {
margin: 20px 20px 20px 10px;
width: 200px;
display: flex;
flex-wrap: wrap;
color: grey;
background-color: white;
-moz-box-shadow: 0 0 10px #666;
-webkit-box-shadow: 0 0 10px #666;
box-shadow: 0 0 10px #666;
border-radius: 4px;
transition: 0.3s;
padding: 10px;
}
#buyButtonArea:hover {
...
JavaScript
function initPayPalButton() {
paypal.Buttons({
style: {
shape: 'rect',
color: 'gold',
layout: 'vertical',
label: 'buynow',
},
createOrder: function (data, actions) {
return actions.order.create({
purchase_units: [{
"description": "TradingView Input Optimizer",
"amount": {
"currency_code": "USD",
"value": 199.99
}
}]
});
},
onApprove: function (data, actions) {
return actions.order.capture().then(function (orderData) {
// Full available details
console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));
// Show a success message within this page, e.g.
const element = document.getElementById('paypal-button-container');
element.innerHTML = '';
element.innerHTML = '<h3>Thank you for your payment!</h3>';
// Or go to another URL: actions.redirect('thank_you.html');
});
},
onError: function (err) {
console.log(err);
}
}).render('#paypal-button-container');
}
initPayPalButton();