, 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); })(); Group Fitness Recreation & Outdoor Programs | Â鶹Çø

Â鶹Çø

Skip to main content

Group Fitness

Group fitness—always free!Ìý

Group Fitness at Calvin is FREE to all students, faculty, and staff. No sign Up necessary.Ìý Show up and work out! Ìý Ìý

Winter/Spring Schedule 2025

Classes run March 17 - May 1; no classes offered during Academic Advising, Easter break, or Exam Week.

FOR MORE INFO Contact: Hannah Brenton @ hannah.brenton@calvin.eduÌýÌý
Ìý

YOGA

Mondays & Wednesdays 4-5 PM in the HC 252 (Dance & Exercise Studio)
Instructor: Hannah Brenton hannah.brenton@calvin.eduÌý

WOMEN’S STRENGTH TRAINING

Wednesdays Ìý5:30-6:15 PM in the Morren Fitness CenterÌý
Instructor: Macy Gerig mcg23@calvin.eduÌý

INDOOR CYCLING

Tuesdays 4:15-5 PM in the Morren Fitness CenterÌý

Thursdays 4:15-5 PM in the Morren Fitness Center
Instructor: Macy Gerig mcg23@calvin.edu

BARRE

Thursdays 7-8 PM in the HC 300 (Dance Loft)
Instructor: Macy Gerig mcg23@calvin.eduÌýÌý

RUNNING GROUP (begins March 18 after spring break)

Fridays 4:15-5 PM – meet in the Fieldhouse main front entranceÌý
Instructor: Jack Carroll jack.carroll@calvin.eduÌý

We hope to see you at a class soon. Please reach out if you have any questions!


Contact Us

Ryan Rooks

Ryan Rooks

Director of Campus Recreation and Outdoor Programs
616-526-7541
Hannah Brenton Headshot

Hannah Brenton

Student Success Specialist
616-526-6595