, 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); })(); Ecosystem Preserve and Native Gardens | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Ecosystem Preserve and Native Gardens

The Calvin Ecosystem Preserve & Native Gardens is a one-of-a-kind oasis in the city of Grand Rapids.

The preserve鈥檚 100+ acres of native plants and natural habitats offer boundless opportunities to explore and connect with nature. Come enjoy wandering our trails, enroll in a class or educational program, or just sit and relax.

This incredible resource is open to all who wish to join us as we conserve, restore, protect, and appreciate the wonder of creation.

Get Involved

Join us in our work to nurture our ecosystem! Learn more about our programs for children and our volunteer opportunities.

Image
Saplings logo header

Saplings

Every Tuesday and Thursday morning, our Saplings program invites children to explore nature in fun, engaging ways!

Image
Two volunteers with shovels working on the edge of the trail

Stewardship Workdays

Help us care for our ecosystem by controlling invasive plants, weeding gardens, maintaining hiking trails!

Image
Man holding a plant that is being transplanted

Greenhouse Workdays

Love to work with plants? Join us at the greenhouse to grow our native plants for our annual plant sale!


Image
trails

Plan your visit

1750 East Beltline Ave SE
Grand Rapids, MI 49546-5649
(616) 526-7600
preserve@calvin.edu

Download a map

Walking trails open 7 a.m.鈥攄usk except some holidays.

Upcoming Events