, but this code // executes before the first paint, when

Âé¶¹Çø

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Events Calendar | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Events Calendar

Jan 30, 2025

International Student Webinar

8:00 am–9:00 am
Our international admissions team is excited to host weekly webinars for prospective students. NOTE: All webinars are in ET.
Jan 30, 2025

Chapel: Acoustic Worship

9:50 am–10:10 am
Chapel Sanctuary
Jan 30, 2025

Japanese Culture Session 2

11:15 am–12:15 pm
Hiemenga Classroom 432
Jan 30, 2025

Michaela O'Donnell - Life in Flux

12:30 pm–1:30 pm
Covenant Fine Arts Center Auditorium
Michaela O’Donnell will teach us the practical skills needed to navigate constant change: a life in flux. She’ll show us how to face the pain and longings that come with change, embrace the unknown with confidence, and listen to God's guiding voice.
Jan 30, 2025

J Series / Preserve Fireside Chat

1:45 pm–2:45 pm
Bunker Interpretive Center Discovery Place
Jan 30, 2025

ENGR Seminar/Math Colloquium with Matt Heun

3:00 pm–4:00 pm
Science Building Lecture Hall 010
Jan 30, 2025

Japanese Culture Session 2

4:00 pm–5:00 pm
Hiemenga Classroom 432
Jan 30, 2025

Vision Board Event

5:15 pm–9:15 pm
Meeter Center Lecture Hall