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

app

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 List | app

app

Skip to main content

Events List

Aug 12, 2025

Football Welcome

As part of their Welcome to campus, members of the football team will arrive on campus early to move in and participate in training camp practices. The arrival day is Tuesday, August 12!
Aug 12, 2025

CORE 100 workshop

12:15 pm–1:00 pm
Covenant Fine Arts Classroom 264
Aug 14–Aug 15, 2025

Fall Athlete Welcome

Fall Athlete Welcome is for athletes competing in certain fall sports. (Men's and Women's Soccer, Women's Volleyball)
Aug 20–Aug 27, 2025

Canadian Backpacking Expedition

Lake Superior Provincial Park, Ontario
$699
Backpack the “Coastal Trail,” one of the most scenic and challenging stretches of backpacking east of the Rockies.
Aug 20–Aug 27, 2025

Pictured Rocks Backpacking Expedition

Pictured Rocks National Lakeshore
$699
Backpack the entire Pictured Rocks coastline from Munising Falls to the AuSable Light Station.
Aug 20–Aug 27, 2025

Canadian Sea Kayaking Expedition

North Channel of Lake Huron
$699
Embark together on a self-supported sea kayak paddle expedition through the historic North Channel of northern Lake Huron.
Aug 21–Aug 28, 2025

Northern Michigan Adventure

$699
Explore the amazing Sleeping Bear Sand Dunes National Lakeshore and experience hiking, river canoeing, paddleboarding, cycling, and beach time.
Aug 21, 2025

Fall Conference for Faculty and Staff

CFAC west lobby and auditorium
Aug 23–Aug 28, 2025

Exams