Every year, the esteemed dictionaries of the world choose a word – or phrase, number, or even more controversially, an emoji – that represents the past 12 months. These words, picked by dictionary editors based on factors such as search history and frequency of use, attempt to capture the biggest moments in pop culture, online trends or the general vibes of the year. Previous zeitgeist-encompassing words of the year include brain rot, vax, goblin mode and populism.
‘Slop’ is Merriam-Webster’s 2025 word of the year
Of course, everyone’s year is different, which means the elected words don’t always resonate. So The Globe and Mail has compiled eight words we feel best encapsulate 2025 – some chosen by the dictionaries, some by us – and created a choose-your-own adventure questionnaire to uncover which buzzy word best reflects your year. (And if you disagree with your final result, you can start all over again.)
` : “”;
let optionsHtml=””;
if (scene.isEnding) {
optionsHtml=””;
} else {
optionsHtml = scene.options.map((opt, idx) => {
return `
${opt.text}
`;
}).join(“”);
optionsHtml = `
${optionsHtml}
`;
}
const sceneTypeClass = scene.isEnding ? ‘ending-scene’ : ‘choice-scene’;
quizBox.innerHTML = `
${scene.question}
${imgHtml}
${optionsHtml}
`;
if (scene.isEnding) {
const restartBtn = document.getElementById(‘restartBtn’);
if (restartBtn) {
restartBtn.addEventListener(‘click’, restartAdventure);
}
} else {
document.querySelectorAll(‘.quiz-option’).forEach(opt => {
opt.addEventListener(‘click’, function () {
const nextScene = this.dataset.next;
const choiceText = this.dataset.text;
const explanation = this.dataset.explanation;
if (nextScene) {
this.classList.add(‘selected’);
const iconSpan = this.querySelector(‘.quiz-option-icon’);
if (iconSpan) {
const burst = ``;
iconSpan.innerHTML = ``;
}
document.querySelectorAll(‘.quiz-option’).forEach(o => {
o.style.pointerEvents=”none”;
});
showResult(explanation, nextScene);
setTimeout(() => {
const allResultBoxes = document.querySelectorAll(‘.result-box-item’);
const lastResultBox = allResultBoxes[allResultBoxes.length – 1];
if (lastResultBox) {
const elementPosition = lastResultBox.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition – 62; // 52px header + 10px spacing
// Adjust duration in milliseconds
smoothScrollTo(offsetPosition, 650);
}
}, 650);
currentScene = nextScene;
storyPath.push(nextScene);
saveState();
submitChoice(storyPath);
}
});
});
}
updateStartOverButton();
}
function updateStartOverButton() {
const clearBtn = document.getElementById(‘clearQuizBtn’);
const viewAllBtn = document.getElementById(‘viewAllWordsBtn’);
if (!clearBtn) return;
const dynamicAnswers = document.querySelectorAll(‘.answer-section-item’);
const dynamicResults = document.querySelectorAll(‘.result-box-item’);
const isAtStart = currentScene === ‘start’ && dynamicAnswers.length === 0 && dynamicResults.length === 0;
const currentSceneData = storyData[currentScene];
const isAtEnding = currentSceneData && currentSceneData.isEnding;
if (isAtStart) {
clearBtn.classList.add(‘disabled’);
clearBtn.disabled = true;
clearBtn.setAttribute(‘data-tooltip’, ‘Already at the start’);
} else {
clearBtn.classList.remove(‘disabled’);
clearBtn.disabled = false;
clearBtn.removeAttribute(‘data-tooltip’);
}
if (viewAllBtn) {
viewAllBtn.style.display = isAtEnding ? ‘flex’ : ‘none’;
}
}
function showResult(explanation, nextSceneId) {
const pageContainer = document.querySelector(‘.page-container’);
const buttonRow = document.querySelector(‘.button-row’);
if (!pageContainer || !buttonRow) return;
const nextScene = storyData[nextSceneId];
if (!nextScene) return;
// Store current scroll position to prevent auto-scroll
const currentScrollY = window.pageYOffset;
// Create a new answer section
const newAnswerSection = document.createElement(‘div’);
newAnswerSection.className=”answer-section-item”;
const explanationHtml = explanation ? `
${explanation}
` : ”;
newAnswerSection.innerHTML = explanationHtml;
newAnswerSection.style.display = explanation ? ‘block’ : ‘none’;
pageContainer.insertBefore(newAnswerSection, buttonRow);
window.scrollTo(0, currentScrollY);
if (nextScene.isEnding) {
const endingBox = document.createElement(‘div’);
endingBox.className=”result-box-item”;
const endingImgHtml = nextScene.image ? `
Illustration by Drew Shannon
` : “”;
endingBox.innerHTML = `
${nextScene.question}
${endingImgHtml}
`;
pageContainer.insertBefore(endingBox, buttonRow);
updateStartOverButton();
return;
}
const newResultBox = document.createElement(‘div’);
newResultBox.className=”result-box-item”;
const imgHtml = nextScene.image ? `
const nextOptionsHtml = nextScene.options.map((opt, idx) => {
return `
${opt.text}
`;
}).join(“”);
newResultBox.innerHTML = `
${nextScene.question}
${imgHtml}
${nextOptionsHtml}
`;
const scrollBeforeInsert = window.pageYOffset;
pageContainer.insertBefore(newResultBox, buttonRow);
window.scrollTo(0, scrollBeforeInsert);
updateStartOverButton();
newResultBox.querySelectorAll(‘.quiz-option’).forEach(opt => {
opt.addEventListener(‘click’, function () {
const nextScene = this.dataset.next;
const choiceText = this.dataset.text;
const explanation = this.dataset.explanation;
if (nextScene) {
this.classList.add(‘selected’);
const iconSpan = this.querySelector(‘.quiz-option-icon’);
if (iconSpan) {
const burst = ``;
iconSpan.innerHTML = ``;
}
newResultBox.querySelectorAll(‘.quiz-option’).forEach(o => {
o.style.pointerEvents=”none”;
});
showResult(explanation, nextScene);
setTimeout(() => {
const allResultBoxes = document.querySelectorAll(‘.result-box-item’);
const lastResultBox = allResultBoxes[allResultBoxes.length – 1];
if (lastResultBox) {
const elementPosition = lastResultBox.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition – 62; // 52px header + 10px spacing
// Adjust duration here (in milliseconds) – default is 600ms
smoothScrollTo(offsetPosition, 650);
}
}, 300);
currentScene = nextScene;
storyPath.push(nextScene);
saveState();
submitChoice(storyPath);
updateStartOverButton();
}
});
});
}
function restartAdventure() {
currentScene=”start”;
storyPath = [‘start’];
saveState();
const dynamicAnswers = document.querySelectorAll(‘.answer-section-item’);
const dynamicResults = document.querySelectorAll(‘.result-box-item’);
dynamicAnswers.forEach(el => el.remove());
dynamicResults.forEach(el => el.remove());
renderAdventure();
updateStartOverButton();
const quizBox = document.getElementById(‘quizBox’);
if (quizBox) {
const elementPosition = quizBox.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition – 62; // 52px header + 10px spacing
smoothScrollTo(offsetPosition, 650);
}
}
function showAllWords() {
const allEndingScenes = [‘vibe_coding’, ‘slop’, ‘maxxing’, ‘rage_bait’, ‘elbows_up’, ‘six_seven’, ‘parasocial’, ‘aura_farming’];
const pageContainer = document.querySelector(‘.page-container’);
const buttonRow = document.querySelector(‘.button-row’);
const viewAllBtn = document.getElementById(‘viewAllWordsBtn’);
if (!pageContainer || !buttonRow) return;
if (viewAllBtn) {
viewAllBtn.style.display = ‘none’;
}
const currentScrollY = window.pageYOffset;
const allWordsBox = document.createElement(‘div’);
allWordsBox.className=”result-box-item all-words-box”;
let allWordsHtml=”
Words of the year
“;
allEndingScenes.forEach(sceneKey => {
const scene = storyData[sceneKey];
if (scene && scene.isEnding && scene.question) {
const imgHtml = scene.image ? `
Illustration by Drew Shannon
` : “”;
allWordsHtml += `
${scene.question}
${imgHtml}
`;
}
});
allWordsHtml += ‘
‘;
allWordsBox.innerHTML = allWordsHtml;
pageContainer.insertBefore(allWordsBox, buttonRow);
// Restore scroll position to prevent jump
window.scrollTo(0, currentScrollY);
// Now smoothly scroll to the new content
setTimeout(() => {
const elementPosition = allWordsBox.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition – 62;
smoothScrollTo(offsetPosition, 650);
}, 50);
}
function saveState() {
localStorage.setItem(STORAGE_KEY, JSON.stringify({
currentScene,
storyPath
}));
}
function loadState() {
return;
const raw = localStorage.getItem(STORAGE_KEY);
if (!raw) return;
try {
const state = JSON.parse(raw);
if (state.currentScene && state.storyPath) {
const scene = storyData[state.currentScene];
if (scene && scene.isEnding) {
localStorage.removeItem(STORAGE_KEY);
return;
}
currentScene = state.currentScene;
storyPath = state.storyPath;
}
} catch {
}
}
const CHECKMARK_SVG = ``;
const XMARK_SVG = ``;
function smoothScrollTo(targetPosition, duration = 600) {
const startPosition = window.pageYOffset;
const distance = targetPosition – startPosition;
let startTime = null;
function animation(currentTime) {
if (startTime === null) startTime = currentTime;
const timeElapsed = currentTime – startTime;
const progress = Math.min(timeElapsed / duration, 1);
const ease = progress < 0.5
? 2 * progress * progress
: 1 – Math.pow(-2 * progress + 2, 2) / 2;
window.scrollTo(0, startPosition + distance * ease);
if (timeElapsed < duration) {
requestAnimationFrame(animation);
}
}
requestAnimationFrame(animation);
}
loadState();
renderAdventure();
updateStartOverButton();
function submitChoice(path) {
const endpoint=”https://script.google.com/macros/s/AKfycbz6_5ByuzfNp25NRzYC9DzDbNyCN4Ma195Etl-PXb39GJUAqOmZ8IttJdlRB0vqRcs7/exec”;
fetch(endpoint, {
method: ‘POST’,
body: JSON.stringify({
storyPath: path.join(‘ -> ‘),
timestamp: new Date().toISOString()
}),
headers: { ‘Content-Type’: ‘application/json’ }
}).catch(err => {
console.log(‘Submission error:’, err);
});
}


