BookTok

[ book-tok ]

The term ‘BookTok’ is a hashtag making rounds on TikTok. It is used to promote reading and the love of literature by many content creators by suggesting different book suggestions, memes, and book reviews. BookTok is used primarily on TikTok to shed light on the content related to book reading.

The BookTok hashtag is becoming popular these days and has already crossed more than 37 million views. Since its emergence, many authors have seen huge success in the sales of books that are decades old.

Example

BookTok is commonly famous among teens; here is the best example of BookTok. This hashtag was first used by the TikToker Kathy Ellen Davis in 2019 when she recommended to her followers some top-selling books to read.

Simplify Your Social Media Strategy.

With Social Champ, effortlessly apply the best practices you’ve just learned. Schedule posts, analyze performance, and engage with your audience—all in one place.

Free 14-Day Trial

<script>
document.addEventListener('DOMContentLoaded', function() {
    function transformTablesForMobile() {
        if (window.innerWidth > 767) return; // Only for mobile
        
        const tables = document.querySelectorAll('#brxe-qvtevz table');
        
        tables.forEach(table => {
            if (table.classList.contains('transformed')) return;
            
            let headers = [];
            const thead = table.querySelector('thead');
            const tbody = table.querySelector('tbody');
            
            // Get headers - check for both th and td in thead
            if (thead) {
                const headerRow = thead.querySelector('tr');
                if (headerRow) {
                    // First try th, then td
                    let headerCells = headerRow.querySelectorAll('th');
                    if (headerCells.length === 0) {
                        headerCells = headerRow.querySelectorAll('td');
                    }
                    headers = Array.from(headerCells).map(cell => cell.textContent.trim());
                }
            } else if (tbody) {
                // If no thead, take first row
                const firstRow = tbody.querySelector('tr');
                if (firstRow) {
                    let headerCells = firstRow.querySelectorAll('th');
                    if (headerCells.length === 0) {
                        headerCells = firstRow.querySelectorAll('td');
                    }
                    headers = Array.from(headerCells).map(cell => cell.textContent.trim());
                }
            }
            
            // Return if no headers found
            if (headers.length === 0) return;
            
            // Get all data rows
            const rows = Array.from(tbody.querySelectorAll('tr'));
            const dataRows = rows; // All tbody rows are data rows when thead exists
            
            // Create new structure
            const newContainer = document.createElement('div');
            newContainer.className = 'mobile-table-container';
            
            // Create a section for each column
            headers.forEach((header, colIndex) => {
                const columnSection = document.createElement('div');
                columnSection.className = 'mobile-column-section';
                
                const columnHeader = document.createElement('div');
                columnHeader.className = 'mobile-column-header';
                columnHeader.innerHTML = header; // Use innerHTML to preserve formatting
                columnSection.appendChild(columnHeader);
                
                const columnList = document.createElement('div');
                columnList.className = 'mobile-column-list';
                
                dataRows.forEach(row => {
                    const cells = row.querySelectorAll('td');
                    if (cells[colIndex]) {
                        const item = document.createElement('div');
                        item.className = 'mobile-column-item';
                        item.innerHTML = cells[colIndex].innerHTML;
                        columnList.appendChild(item);
                    }
                });
                
                columnSection.appendChild(columnList);
                newContainer.appendChild(columnSection);
            });
            
            table.style.display = 'none';
            table.classList.add('transformed');
            table.parentNode.insertBefore(newContainer, table.nextSibling);
        });
    }
    
    transformTablesForMobile();
    
    // Handle window resize
    let resizeTimer;
    window.addEventListener('resize', function() {
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(function() {
            const containers = document.querySelectorAll('.mobile-table-container');
            const tables = document.querySelectorAll('#brxe-qvtevz table.transformed');
            
            if (window.innerWidth > 767) {
                containers.forEach(c => c.style.display = 'none');
                tables.forEach(t => t.style.display = 'table');
            } else {
                containers.forEach(c => c.style.display = 'block');
                tables.forEach(t => t.style.display = 'none');
            }
        }, 250);
    });
});
</script>
/* Sticky header for tables WITH thead */
#brxe-qvtevz table thead {
    background-color: #f0ebf8;
    position: sticky;
    top: 0;
    z-index: 2;
}

#brxe-qvtevz table thead th {
    background-color: #f0ebf8;
    position: sticky;
    top: 0;
}

/* Sticky header for tables WITHOUT thead (first row only) */
#brxe-qvtevz table:not(:has(thead)) tbody tr:first-child {
    background-color: #f0ebf8;
    position: sticky;
    top: 0;
    z-index: 2;
}

#brxe-qvtevz table:not(:has(thead)) tbody tr:first-child td,
#brxe-qvtevz table:not(:has(thead)) tbody tr:first-child th {
    background-color: #f0ebf8;
    position: sticky;
    top: 0;
}


/* Mobile Column Layout */
@media (max-width: 767px) {
 #brxe-qvtevz table{
    max-height:2000px;
  }
    .mobile-table-container {
        display: block;
        margin: 20px 0;
      border-radius: 12px;
      overflow: hidden;
    }
    
    .mobile-column-section {
        border: 1px solid #E0E0E0;
        overflow: hidden;
        background: white;
    }
    
    .mobile-column-header {
        background-color: #E3DFF5;
        padding: 15px;
        font-weight: bold;
        font-size: 16px;
        color: #333;
    }
    
    .mobile-column-list {
        padding: 0;
    }
    
    .mobile-column-item {
        padding: 15px;
        border-bottom: 1px solid #F0F0F0;
        background: white;
        font-size: 16px;
        line-height: 1.6;
    }
    
    .mobile-column-item:last-child {
        border-bottom: none;
    }
    
    .mobile-column-item:nth-child(odd) {
        background-color: #F7F6FC;
    }
    
    .mobile-column-item:nth-child(even) {
        background-color: #FAFAFA;
    }
    
    .mobile-column-item strong {
        color: #333;
        font-weight: 600;
    }
}

I am an SEO and a proud member of the the #ChampFam. You would find me optimizing landing pages and filling out excel sheets. When not working, I prefer to spend time with family or play cards with friends on the weekends.

Related Terms

“TBT” stands for “Throwback Thursday.” It’s a popular social media term used when someone shares an old photo, memory, or past experience, usually on… Read more

An impression is a metric that counts the number of times an advertisement, webpage, or content is displayed to a user. Unlike clicks, impressions… Read more

Image optimization involves reducing the file size of images without compromising quality to improve website performance and user experience. Optimized images load faster, enhancing… Read more

View All

A Simplified Social Media Management Tool

Social Champ is your AI-powered social media management tool.

Schedule, analyze, listen, and track competitors – all in one platform.

Try now, Start free
No credit card required!