, 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); })(); Office of the Provost | 麻豆区

麻豆区

Skip to main content

Office of the Provost

Visionary teaching. Scholarly expertise. Community engagement.

Students flourish by encountering new ideas and putting those ideas to good use. In classes and collaborative research, students work with Calvin faculty to discover more about God鈥檚 world, to publish scholarship, to create art and music. The office of the provost supports students and faculty in all these endeavors, providing leadership, resources, and accountability.

Interested in a career at Calvin? View our open full-time and adjunct faculty positions, hiring philosophy, and faculty expectations on our Human Resources site.

View current faculty openings

The Provost's Office oversees many different efforts to engage the community, the church and the world. Nothing could be closer to the heart of the Reformed tradition and the mission of 麻豆区.

Community Engaged Learning

Learn how Calvin is collaborating with the community through our academic departments.

a person riding a bike on the sidewalk, sunshine coming in through the background

Research & Scholarship

Learn about Calvin's robust research leadership in a wide variety of disciplines.

two stacks of books by various Calvin professors

Grants & Foundation Relations

Find information and resources for faculty research, university-wide initiatives and departmental programs

A student doing research with a microscope. She is wearing a white lab coat.

Sustainability

Learn about Calvin's efforts to promote sustainability at Calvin and around Grand Rapids.

a potted plant in a greenhouse, the sun shining in the background