, 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); })(); Preserve | Nature Camp | Multigenerational Outside Art!!: Tue, Jul 29 2025, 9am - Thu, Jul 31 2025, 4pm | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Events Calendar

S M T W T F S
29
 
30
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
31
 
1
 
2
 

Preserve | Nature Camp | Multigenerational Outside Art!!

  • Tue, Jul 29–Thu, Jul 31, 2025
  • 9:00 am–4:00 pm

Please register by Tuesday, July 29, 2025 8:00am.

Image
naturecamp4
Here's one for kids of ALL ages!

Outside Art - Multi-generational Whether you are 6 or 86, there’s no limit to the beauty and inspiration we find in nature. In this camp, we are inviting adults and kids to come and create together. Grandparents, sign up with your grandkids! Aunts, uncles, sign up with your nieces and nephews! Parents, sign up with your children! Anyone is welcome to come experiment with nature-based art using diverse media - campers will paint, sculpt, draw, write, and more . Campers will collaborate with a partner to create an art gallery and share it before bringing the pieces home!

For ages 6 & up

Registration will open on January 31, 2025

42.931902914773, -85.58274155