, 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); })(); Service-Learning Center | Calvin University Skip to main content

Service-Learning Center

Mission

The mission of the Service-Learning Center (S-LC) is to equip students, staff, and faculty to learn reflectively, serve lovingly, and engage wholeheartedly with our neighbors in the pursuit of justice, vibrancy, and shalom in Grand Rapids and the world. 

Ride the Rapid for 50 cents!

In order to ride the bus for only 50 cents, you need a WAVE card. Purchase one for $5—it's got $2 preloaded on it!—and start taking the bus!

Request a WAVE card

 

Get involved

Students

Learn how service-learning integrates academic knowledge with critical thinking to celebrate community assets and address genuine community needs.

Current Service-Learning opportunities

Check out this database to get involved in the Grand Rapids community. This list is updated weekly during the academic year.

Record service-learning hours

Use this form to record your service-learning hours.

 

Community Partners

The Service-Learning Center helps connect Calvin University students with local organizations to assist in serving community needs while enhancing the learning experience of students.

Post an opportunity

Opportunities to serve and learn with your organization can appear in our database of opportunities.

Our Scholarships

You are eligible for Service-Learning scholarships!

Named Scholarships

are gifts from real people who care about your success.

Apply

for named scholarships between December 1 and January 31.
1

Application

to match you with any scholarships you qualify for!

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy