Blog - De Libros Pdf Google Drive

/* Modal para vista previa / lector PDF embebido */ .pdf-modal display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); z-index: 1000; justify-content: center; align-items: center;

footer background: #1e2a22; color: #cfd8cd; text-align: center; padding: 2rem; margin-top: 2rem; font-size: 0.85rem;

.post-meta display: flex; gap: 1rem; font-size: 0.8rem; color: #7f6e5c; margin-bottom: 1rem; border-bottom: 1px dashed #ece2d6; padding-bottom: 0.6rem;

.blog-header h1 font-size: 2.8rem; letter-spacing: -0.5px; font-weight: 700; Blog De Libros Pdf Google Drive

.close-modal:hover color: #f9d56e;

.post-card:hover transform: translateY(-4px); box-shadow: 0 18px 30px rgba(0,0,0,0.1);

postsContainer.innerHTML = filteredPosts.map(post => const drivePreviewUrl = `https://drive.google.com/file/d/$post.pdfDriveId/preview`; return ` <article class="post-card"> <div class="post-img"> $post.imageIcon </div> <div class="post-content"> <div class="post-category">$post.categoryLabel</div> <h2 class="post-title">$post.title</h2> <div class="post-meta"> <span><i class="far fa-calendar-alt"></i> $post.date</span> <span><i class="fas fa-tag"></i> $post.categoryLabel</span> </div> <p class="post-excerpt">$post.excerpt</p> <button class="btn-pdf open-pdf-btn" data-pdf-url="$drivePreviewUrl" data-pdf-name="$post.pdfFileName"> <i class="fas fa-eye"></i> Leer PDF desde Google Drive </button> </div> </article> `; ).join(''); /* Modal para vista previa / lector PDF embebido */

.post-title font-size: 1.6rem; font-weight: 700; margin-bottom: 0.75rem; line-height: 1.2;

.filter-btn.active background: #2a5a3a; color: white; box-shadow: 0 2px 8px rgba(0,0,0,0.1);

.blog-header p font-size: 1.2rem; opacity: 0.9; margin-top: 0.6rem; max-width: 650px; margin-left: auto; margin-right: auto; footer background: #1e2a22

/* sección de posts (entradas del blog) */ .posts-grid display: flex; flex-direction: column; gap: 2rem;

.post-category font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; color: #b87c4f; margin-bottom: 0.5rem;

<div class="main-container"> <!-- Sección de entradas del blog (posts) --> <div class="posts-grid" id="postsContainer"></div>

.close-modal background: none; border: none; font-size: 1.8rem; cursor: pointer; color: white; transition: 0.1s;

// ======================== // 5. FILTROS Y NAVEGACIÓN // ======================== function initFilters() const filterBtns = document.querySelectorAll('.filter-btn'); filterBtns.forEach(btn => btn.addEventListener('click', () => const filterValue = btn.getAttribute('data-filter'); if (!filterValue) return; activeFilter = filterValue; renderPosts(); // Actualizar clase activa filterBtns.forEach(b => b.classList.remove('active')); btn.classList.add('active'); ); );