Renaissance Art & History Learning Tool

Renaissance Art & History Learning Tool

Explore the Renaissance! Data is illustrative. For in-depth study, consult scholarly sources.

The Renaissance: A Rebirth

The Renaissance, meaning "rebirth," was a transformative period in European history, marking the transition from the Middle Ages to modernity. Spanning roughly from the 14th to the 17th century, it began in Italy and spread across Europe. This era witnessed a resurgence of interest in the classical art, literature, and philosophy of ancient Greece and Rome, leading to profound innovations in art, science, politics, and intellectual thought.

Timeline of Key Events & Periods

Loading timeline...

Key Figures & Artists

Select a figure to learn more about them.

Artworks Explorer

Select an artwork to explore its details.

Key Concepts & Movements

Select a concept to understand its significance in the Renaissance.

Artwork details not found.

'; return; } let artistNameDisplay = artwork.artistName || "Unknown Artist"; if(artwork.artistId && this.data.figures){ const artist = this.data.figures.find(f => f.id === artwork.artistId); if(artist) artistNameDisplay = artist.name; } detailsArea.innerHTML = `

${artwork.title}

Artist: ${artistNameDisplay}

Year: ${artwork.year}

Medium: ${artwork.medium}

Description: ${artwork.description}

Analysis/Context: ${artwork.analysis}

Techniques/Style: ${artwork.techniques ? artwork.techniques.join(', ') : 'N/A'}

${artwork.imageUrl ? `${artwork.title}` : ''} `; }, displayConceptDetails() { const conceptSelect = document.getElementById('rah-concept-select'); const detailsArea = document.getElementById('rah-concept-details'); if (!conceptSelect || !detailsArea) return; const conceptId = conceptSelect.value; if (!conceptId) { detailsArea.innerHTML = '

Select a concept to understand its significance.

'; return; } const concept = this.data.concepts.find(c => c.id === conceptId); if (!concept) { detailsArea.innerHTML = '

Concept details not found.

'; return; } let characteristicsHtml = concept.characteristics && concept.characteristics.length > 0 ? `

Key Characteristics:

    ${concept.characteristics.map(c => `
  • ${c}
  • `).join('')}
` : ''; let figuresHtml = concept.keyFigures && concept.keyFigures.length > 0 ? `

Associated Figures:

${concept.keyFigures.join(', ')}

` : ''; let practitionersHtml = concept.notablePractitioners && concept.notablePractitioners.length > 0 ? `

Notable Practitioners:

${concept.notablePractitioners.join(', ')}

` : ''; detailsArea.innerHTML = `

${concept.name}

${concept.definition}

${characteristicsHtml} ${figuresHtml} ${practitionersHtml} `; }, downloadActiveTabPDF() { const { jsPDF } = window.jspdf; const doc = new jsPDF('p', 'pt', 'a4'); const activeTabContent = document.querySelector('.rah-tab-content.active'); if (!activeTabContent) { alert("No active tab found to download."); return; } const activeTabId = activeTabContent.id; let fileName = "Renaissance_Learning_Summary.pdf"; let currentY = 40; const margin = 40; const pageWidth = doc.internal.pageSize.getWidth(); const usableWidth = pageWidth - (2 * margin); doc.setFont(undefined, 'normal'); const addTitle = (titleText) => { doc.setFontSize(18); doc.setFont(undefined, 'bold'); doc.setTextColor(getComputedStyle(document.documentElement).getPropertyValue('--rah-heading-color').trim()); const splitTitle = doc.splitTextToSize(titleText, usableWidth); doc.text(splitTitle, margin, currentY); currentY += (splitTitle.length * 12) + 10; doc.setFont(undefined, 'normal'); }; const addSectionTitle = (titleText) => { if (currentY > doc.internal.pageSize.getHeight() - 60) { doc.addPage(); currentY = margin; } doc.setFontSize(14); doc.setFont(undefined, 'bold'); doc.setTextColor(getComputedStyle(document.documentElement).getPropertyValue('--rah-secondary-color').trim()); doc.text(titleText, margin, currentY); currentY += 18; doc.setFont(undefined, 'normal'); }; const addParagraph = (text, isKey = false) => { if (!text) return; doc.setFontSize(10); doc.setTextColor(getComputedStyle(document.documentElement).getPropertyValue('--rah-text-color').trim()); if(isKey) doc.setFont(undefined, 'bold'); const lines = doc.splitTextToSize(text, usableWidth); if (currentY + (lines.length * 12) > doc.internal.pageSize.getHeight() - margin) { doc.addPage(); currentY = margin; } doc.text(lines, margin, currentY); currentY += (lines.length * 12) + 5; if(isKey) doc.setFont(undefined, 'normal'); }; const addListItem = (text) => { if (!text) return; doc.setFontSize(10); doc.setTextColor(getComputedStyle(document.documentElement).getPropertyValue('--rah-text-color').trim()); const lines = doc.splitTextToSize(`• ${text}`, usableWidth - 10); // Indent list item if (currentY + (lines.length * 12) > doc.internal.pageSize.getHeight() - margin) { doc.addPage(); currentY = margin; } doc.text(lines, margin + 10, currentY); currentY += (lines.length * 12) + 2; } if (activeTabId === 'rah-overview-tab') { fileName = "Renaissance_Timeline.pdf"; addTitle("Renaissance Overview & Timeline"); const overviewPara = activeTabContent.querySelector('p'); if(overviewPara) addParagraph(overviewPara.textContent); addSectionTitle("Filtered Timeline Events"); const periodFilter = document.getElementById('rah-timeline-period-filter').value; const categoryFilter = document.getElementById('rah-timeline-category-filter').value; const filteredEvents = this.data.timelineEvents.filter(event => (!periodFilter || event.period === periodFilter) && (!categoryFilter || event.category === categoryFilter) ); if (filteredEvents.length > 0) { filteredEvents.forEach(event => { if (currentY > doc.internal.pageSize.getHeight() - 70) { doc.addPage(); currentY = margin; } addParagraph(`${event.title} (${event.dateApprox || event.year})`, true); addParagraph(`Period: ${event.period} | Category: ${event.category}`); addParagraph(event.description); currentY += 5; }); } else { addParagraph("No events match current filters."); } } else if (activeTabId === 'rah-figures-tab') { const figureId = document.getElementById('rah-figure-select').value; if (figureId) { const figure = this.data.figures.find(f => f.id === figureId); fileName = `Figure_${figure.name.replace(/\s+/g, '_')}.pdf`; addTitle(`Key Figure: ${figure.name} (${figure.lifespan})`); addParagraph(`Field: ${figure.field}`); addSectionTitle("Biography"); addParagraph(figure.bio); if (figure.notableWorks && figure.notableWorks.length > 0) { addSectionTitle("Notable Works/Achievements"); figure.notableWorks.forEach(work => addListItem(work)); } addSectionTitle("Significance"); addParagraph(figure.significance); } else { addTitle("Key Figures"); addParagraph("No figure selected."); } } else if (activeTabId === 'rah-artworks-tab') { const artworkId = document.getElementById('rah-artwork-select').value; if (artworkId) { const artwork = this.data.artworks.find(a => a.id === artworkId); let artistName = artwork.artistName || "Unknown Artist"; if(artwork.artistId && this.data.figures) { const artist = this.data.figures.find(f => f.id === artwork.artistId); if(artist) artistName = artist.name; } fileName = `Artwork_${artwork.title.replace(/\s+/g, '_')}.pdf`; addTitle(`Artwork: ${artwork.title}`); addParagraph(`Artist: ${artistName}`); addParagraph(`Year: ${artwork.year}`); addParagraph(`Medium: ${artwork.medium}`); addSectionTitle("Description"); addParagraph(artwork.description); addSectionTitle("Analysis/Context"); addParagraph(artwork.analysis); addParagraph(`Techniques/Style: ${artwork.techniques ? artwork.techniques.join(', ') : 'N/A'}`); } else { addTitle("Artworks Explorer"); addParagraph("No artwork selected."); } } else if (activeTabId === 'rah-concepts-tab') { const conceptId = document.getElementById('rah-concept-select').value; if (conceptId) { const concept = this.data.concepts.find(c => c.id === conceptId); fileName = `Concept_${concept.name.replace(/\s+/g, '_')}.pdf`; addTitle(`Concept: ${concept.name}`); addSectionTitle("Definition"); addParagraph(concept.definition); if (concept.characteristics && concept.characteristics.length > 0) { addSectionTitle("Key Characteristics"); concept.characteristics.forEach(char => addListItem(char)); } if (concept.keyFigures && concept.keyFigures.length > 0) { addSectionTitle("Associated Figures (Examples)"); addParagraph(concept.keyFigures.join(', ')); } if (concept.notablePractitioners && concept.notablePractitioners.length > 0) { addSectionTitle("Notable Practitioners (Examples)"); addParagraph(concept.notablePractitioners.join(', ')); } } else { addTitle("Key Concepts"); addParagraph("No concept selected."); } } const pageCount = doc.internal.getNumberOfPages(); for (let i = 1; i <= pageCount; i++) { doc.setPage(i); doc.setFontSize(8); doc.setTextColor(100); doc.text(`Page ${i} of ${pageCount}`, pageWidth - margin - 20, doc.internal.pageSize.getHeight() - 15); } doc.save(fileName); } }; document.addEventListener('DOMContentLoaded', () => { if (typeof rahTool !== 'undefined' && rahTool.init) { rahTool.init(); } else { console.error("rahTool object or init method not found."); } });
Scroll to Top