This commit is contained in:
Flatlogic Bot 2025-12-01 05:24:42 +00:00
parent 1fddc19e3b
commit 8b11bcf8e1
16 changed files with 1299 additions and 37 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -191,7 +191,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
<div class="container">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="m-0">Customize Your Page</h2>
<a href="index.php" class="btn btn-outline-secondary">&larr; Back to Home</a>
</div>
<form action="publish.php" method="POST">
<input type="hidden" name="template_id" value="<?= $template_id ?>">
@ -212,10 +212,20 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
<label for="imageUrlInput" class="form-label">Featured Image URL</label>
<input type="url" class="form-control" id="imageUrlInput" name="imageUrl" placeholder="https://example.com/image.jpg">
</div>
<div class="col-md-6">
<label for="ctaUrlInput" class="form-label">Button Link URL</label>
<input type="url" class="form-control" id="ctaUrlInput" name="ctaUrl" placeholder="https://your-download-link.com">
</div>
<div class="col-md-6 d-flex align-items-end">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="showCtaButton" name="showCtaButton" checked>
<label class="form-check-label" for="showCtaButton">Show Call to Action Button</label>
</div>
</div>
<div class="col-12">
<label for="checkoutHtmlInput" class="form-label">Checkout/Buy Button HTML</label>
<textarea class="form-control" id="checkoutHtmlInput" name="checkoutHtml" rows="4" placeholder="Paste your HTML embed code here (e.g., from Stripe, PayPal, Gumroad)"></textarea>
<div class="form-text">This will replace the default button in the preview.</div>
<div class="form-text">This will replace the default button in the preview. If you use this, uncheck "Show Call to Action Button" above.</div>
</div>
<div class="col-12 text-center mt-4">
<button type="submit" name="action" value="download" class="btn btn-success btn-lg">Generate and Download ZIP</button>

66
login.php Normal file
View File

@ -0,0 +1,66 @@
<?php
require_once 'admin/config.php';
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
if ($username === ADMIN_USERNAME && $password === ADMIN_PASSWORD) {
$_SESSION['is_logged_in'] = true;
header('Location: admin.php');
exit;
} else {
$error = 'Invalid username or password.';
}
}
if (is_logged_in()) {
header('Location: admin.php');
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login - Admin</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #f8f9fa;
}
.login-form {
width: 100%;
max-width: 400px;
padding: 15px;
margin: auto;
}
</style>
</head>
<body>
<div class="login-form">
<h1 class="text-center mb-4">Admin Login</h1>
<?php if ($error): ?>
<div class="alert alert-danger"><?php echo $error; ?></div>
<?php endif; ?>
<form action="login.php" method="post">
<div class="form-floating mb-3">
<input type="text" class="form-control" id="username" name="username" placeholder="Username" required>
<label for="username">Username</label>
</div>
<div class="form-floating mb-3">
<input type="password" class="form-control" id="password" name="password" placeholder="Password" required>
<label for="password">Password</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>
</form>
</div>
</body>
</html>

View File

@ -12,7 +12,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['
$description = htmlspecialchars($_POST['description'] ?? 'A compelling description...');
$imageUrl = filter_var($_POST['imageUrl'] ?? '', FILTER_VALIDATE_URL) ?: 'https://images.pexels.com/photos/1907785/pexels-photo-1907785.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1';
$ctaText = htmlspecialchars($_POST['ctaText'] ?? 'Download Now');
$checkoutHtml = $_POST['checkoutHtml'] ?? '<!-- Paste your checkout/buy button code here -->';
$ctaUrl = filter_var($_POST['ctaUrl'] ?? '', FILTER_VALIDATE_URL);
$showCtaButton = isset($_POST['showCtaButton']);
$checkoutHtml = $_POST['checkoutHtml'] ?? '';
// Fetch CSS for inlining
$cssContent = file_get_contents('assets/css/custom.css');
@ -35,7 +37,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['
$templateHtml = $selectedTemplate ? file_get_contents($selectedTemplate['file']) : '<div class="row align-items-center"><div class="col-md-6"><img id="previewImage" src="' . $imageUrl . '" class="img-fluid rounded shadow-sm" alt="Ebook Cover"></div><div class="col-md-6"><h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">' . $title . '</h1><p id="previewDescription" class="lead fs-4">' . $description . '</p><div id="previewCtaContainer">' . $checkoutHtml . '</div></div></div>';
$templateDom = new DOMDocument();
@$templateDom->loadHTML($templateHtml, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
// Wrap the template HTML in a single root element to ensure proper parsing
@$templateDom->loadHTML('<div>' . $templateHtml . '</div>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
// Remove the back button before publishing
$backButton = $templateDom->getElementById('back-to-templates-btn');
if ($backButton) {
$backButton->parentNode->removeChild($backButton);
}
$imgTag = $templateDom->getElementById('previewImage');
if ($imgTag) $imgTag->setAttribute('src', $imageUrl);
@ -51,16 +60,33 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['
while ($ctaContainer->hasChildNodes()) {
$ctaContainer->removeChild($ctaContainer->firstChild);
}
if (!empty(trim($checkoutHtml))) {
$fragment = $templateDom->createDocumentFragment();
// Append HTML, suppressing errors for potentially malformed user input
@$fragment->appendXML($checkoutHtml);
$ctaContainer->appendChild($fragment);
} elseif ($showCtaButton && $ctaUrl) {
$link = $templateDom->createElement('a', $ctaText);
$link->setAttribute('href', $ctaUrl);
$link->setAttribute('class', 'btn btn-primary btn-lg');
$link->setAttribute('role', 'button');
$ctaContainer->appendChild($link);
} else {
$ctaContainer->nodeValue = $ctaText; // Fallback to simple text if no HTML
// If no checkout HTML and button is disabled or no URL, remove the container
if ($ctaContainer->parentNode) {
$ctaContainer->parentNode->removeChild($ctaContainer);
}
}
}
$finalPreviewHtml = $templateDom->saveHTML();
// Extract the inner HTML of the temporary div
$body = $templateDom->getElementsByTagName('div')->item(0);
$finalPreviewHtml = '';
foreach ($body->childNodes as $child) {
$finalPreviewHtml .= $templateDom->saveHTML($child);
}
$htmlContent = <<<HTML
<!doctype html>

View File

@ -0,0 +1,169 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Minimalist Modern Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
<a href="editor_13d84da0257b8680.php" class="btn btn-secondary mb-3">Back to Templates<div class="row align-items-center">
<div class="col-md-6">
<img id="previewImage" src="https://cdn1.sharemyimage.com/smi/2025/12/01/gemini-image-2_Generate_a_dynamic_eBook_cover_for_Blog_Promotion_Tactics_for_Digital_Markete-0.jpg" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Minimalist Modern Title</h1>
<p id="previewDescription" class="lead fs-4">A compelling description for the minimalist modern template.</p>
<div id="previewCtaContainer">Download Now</div>
</div>
</div></a>
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Classic Serif Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Classic Serif Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bold &amp; Blue Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,170 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bold &amp; Blue Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
<div>
<div class="row align-items-center">
<div class="col-md-6 order-md-2">
<img id="previewImage" src="https://images.pexels.com/photos/2088205/pexels-photo-2088205.jpeg?auto=compress&amp;cs=tinysrgb&amp;w=1260&amp;h=750&amp;dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6 order-md-1">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Bold &amp; Blue Title</h1>
<p id="previewDescription" class="lead fs-4">A vibrant and bold description for the blue-themed template.</p>
<div id="previewCtaContainer">Get It Now!</div>
</div>
</div></div>
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Minimalist Modern Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
<div class="row align-items-center">
<div class="col-md-6">
<img id="previewImage" src="https://images.pexels.com/photos/1907785/pexels-photo-1907785.jpeg?auto=compress&amp;cs=tinysrgb&amp;w=1260&amp;h=750&amp;dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Minimalist Modern Title</h1>
<p id="previewDescription" class="lead fs-4">A compelling description for the minimalist modern template.</p>
<div id="previewCtaContainer">Download Now</div>
</div>
</div>
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Minimalist Modern Title</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #F8F9FA;
color: #212529;
}
.preview-container { max-width: 960px; }
/* assets/css/custom.css */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #007bff; /* A vibrant blue */
--primary-hover: #0056b3;
--background-color: #fdfdfd; /* A very light, almost white grey */
--card-bg-color: #ffffff;
--text-color: #333;
--text-light: #666;
--border-color: #eef2f7;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
--border-radius: 12px;
}
body {
font-family: 'Poppins', sans-serif;
background-color: var(--background-color);
color: var(--text-color);
}
a {
color: var(--primary-color);
}
a:hover {
color: var(--primary-hover);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-2px);
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
header.bg-white {
background-color: var(--card-bg-color) !important;
border-bottom-color: var(--border-color) !important;
}
header .fs-4 {
font-weight: 600;
}
#gallery-section .display-5 {
font-weight: 700;
}
#gallery-section .card {
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
box-shadow: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#gallery-section .card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}
#gallery-section .card-img-top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
}
#gallery-section .card-title {
font-weight: 600;
}
#gallery-section .card-footer {
background-color: transparent;
}
#preview-section {
padding-top: 4rem;
padding-bottom: 4rem;
}
.preview-container {
max-width: 960px;
margin: auto;
background: var(--card-bg-color);
padding: 3rem;
border-radius: var(--border-radius);
box-shadow: var(--shadow);
border: 1px solid var(--border-color);
}
.preview-container img {
border-radius: var(--border-radius);
}
#editor-section {
background-color: #f8f9fa; /* A slightly darker grey for contrast */
}
#editor-section h2 {
font-weight: 600;
}
.form-control, .form-select {
border-radius: 8px;
border-color: var(--border-color);
}
.form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.15);
border-color: var(--primary-color);
}
footer.bg-light {
background-color: var(--card-bg-color) !important;
border-top-color: var(--border-color) !important;
}
</style>
</head>
<body>
<main>
<section class="py-5">
<div class="container preview-container">
<div class="row align-items-center">
<div class="col-md-6">
<img id="previewImage" src="https://images.pexels.com/photos/1907785/pexels-photo-1907785.jpeg?auto=compress&amp;cs=tinysrgb&amp;w=1260&amp;h=750&amp;dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Minimalist Modern Title</h1>
<p id="previewDescription" class="lead fs-4">A compelling description for the minimalist modern template.</p>
<div id="previewCtaContainer"><a href="https://cdn1.sharemyimage.com/smi/2025/12/01/gemini-image-2_Generate_a_dynamic_eBook_cover_for_Blog_Promotion_Tactics_for_Digital_Markete-0.jpg" class="btn btn-primary btn-lg" role="button">Download Now</a></div>
</div>
</div>
</div>
</section>
</main>
<footer class="text-center py-3 bg-light">
<p class="mb-0">&copy; 2025 <a href="https://www.thecontentrepreneur.com/">The Contentrepreneur</a></p>
</footer>
</body>
</html>

View File

@ -1,12 +1,13 @@
<div class="row align-items-center">
<div class="col-md-6">
<img id="previewImage" src="https://images.pexels.com/photos/1907785/pexels-photo-1907785.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Minimalist Modern Title</h1>
<p id="previewDescription" class="lead fs-4">A compelling description for the minimalist modern template.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-primary btn-lg mt-3">Download Now</button>
</div>
</div>
<a id="back-to-templates-btn" href="editor_13d84da0257b8680.php" class="btn btn-secondary mb-3">Back to Templates</a>
<div class="row align-items-center">
<div class="col-md-6">
<img id="previewImage" src="https://images.pexels.com/photos/1907785/pexels-photo-1907785.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Minimalist Modern Title</h1>
<p id="previewDescription" class="lead fs-4">A compelling description for the minimalist modern template.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-primary btn-lg mt-3">Download Now</button>
</div>
</div>
</div>

View File

@ -1,12 +1,13 @@
<div class="row align-items-center">
<div class="col-md-6 order-md-2">
<img id="previewImage" src="https://images.pexels.com/photos/2088205/pexels-photo-2088205.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6 order-md-1">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Bold & Blue Title</h1>
<p id="previewDescription" class="lead fs-4">A vibrant and bold description for the blue-themed template.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-primary btn-lg mt-3">Get It Now!</button>
</div>
</div>
<a id="back-to-templates-btn" href="editor_13d84da0257b8680.php" class="btn btn-secondary mb-3">Back to Templates</a>
<div class="row align-items-center">
<div class="col-md-6 order-md-2">
<img id="previewImage" src="https://images.pexels.com/photos/2088205/pexels-photo-2088205.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm" alt="Ebook Cover">
</div>
<div class="col-md-6 order-md-1">
<h1 id="previewTitle" class="display-5 fw-bold mt-4 mt-md-0">Bold & Blue Title</h1>
<p id="previewDescription" class="lead fs-4">A vibrant and bold description for the blue-themed template.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-primary btn-lg mt-3">Get It Now!</button>
</div>
</div>
</div>

View File

@ -1,10 +1,11 @@
<div class="row justify-content-center text-center">
<div class="col-lg-8">
<img id="previewImage" src="https://images.pexels.com/photos/1181298/pexels-photo-1181298.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm mb-4" alt="Ebook Cover">
<h1 id="previewTitle" class="display-4 fw-bold">Classic Serif Title</h1>
<p id="previewDescription" class="lead fs-3 mx-auto">An elegant and classic description, perfect for a timeless serif-style ebook.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-outline-dark btn-lg mt-3">Read More</button>
</div>
</div>
<a id="back-to-templates-btn" href="editor_13d84da0257b8680.php" class="btn btn-secondary mb-3">Back to Templates</a>
<div class="row justify-content-center text-center">
<div class="col-lg-8">
<img id="previewImage" src="https://images.pexels.com/photos/1181298/pexels-photo-1181298.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" class="img-fluid rounded shadow-sm mb-4" alt="Ebook Cover">
<h1 id="previewTitle" class="display-4 fw-bold">Classic Serif Title</h1>
<p id="previewDescription" class="lead fs-3 mx-auto">An elegant and classic description, perfect for a timeless serif-style ebook.</p>
<div id="previewCtaContainer">
<button id="previewCta" class="btn btn-outline-dark btn-lg mt-3">Read More</button>
</div>
</div>
</div>