, 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); })(); Alastair Humphreys - Adventures Across the World and Around the Neighborhood: Tue, Jan 28 2025, 12:30 - 1:30pm | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Events Calendar

S M T W T F S
29
 
30
 
31
 
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
 

Alastair Humphreys - Adventures Across the World and Around the Neighborhood

  • Tue, Jan 28, 2025
  • 12:30 pm–1:30 pm

Image
Alastair, a white man with red hair blowing in the wind, wears a red jacket with mountains in the backdrop.
Alastair Humphreys will encourage us to break out of our busy schedules and pursue microadventures in the wilderness close to home.

In "Adventures Across the World and Around the Neighborhood," Alastair Humphreys explores the vast spectrum of adventure, from epic global journeys to everyday exploration. Drawing on experiences like cycling around the world and rowing the Atlantic, he emphasizes how meaningful challenges can be found both far away and close to home. Through examples of microadventures - simple, local escapades - he inspires audiences to break free from routine and find adventure in the ordinary.

Follow Alastair on , , and , or learn more about him at  

 

With appreciation for today's underwriter:

An Anonymous Supporter of the January Series