<div class="input-group"> <label>✍️ Author name</label> <input type="text" id="postAuthor" placeholder="Author or handle" value="Alex Rivera"> </div>
label display: block; font-weight: 600; margin-bottom: 0.5rem; color: #1f3b4c; font-size: 0.85rem; letter-spacing: 0.3px; text-transform: uppercase;
.card:hover transform: translateY(-3px); box-shadow: 0 28px 38px -14px rgba(0, 0, 0, 0.18); ✍️ Author name<
/* header section */ .hero text-align: center; margin-bottom: 2.5rem;
/* card styling */ .card background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(0px); border-radius: 2rem; box-shadow: 0 20px 35px -12px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.02); overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s; border: 1px solid rgba(255,255,255,0.6); label display: block
input:focus, textarea:focus, select:focus border-color: #2d6a9f; box-shadow: 0 0 0 3px rgba(45, 106, 159, 0.2);
// main function to generate the post preview HTML function generatePostPreview() // get values let title = titleInput.value.trim(); let category = categoryInput.value.trim(); let author = authorInput.value.trim(); let rawDate = dateInput.value; let content = contentTextarea.value; let tagsRaw = tagsInput.value.trim(); .card:hover transform: translateY(-3px)
// Helper: format date nicely or return "Recent" function formatDisplayDate(dateString) if (dateString && dateString.trim() !== '') try const dateObj = new Date(dateString); if (!isNaN(dateObj.getTime())) return dateObj.toLocaleDateString('en-US', year: 'numeric', month: 'short', day: 'numeric' ); catch(e) /* fallback */ return dateString; // if no date provided, generate a default "current date" const today = new Date(); return today.toLocaleDateString('en-US', year: 'numeric', month: 'short', day: 'numeric' );