, 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 | »Æ´óÏɸßÊÖÂÛ̳

»Æ´óÏɸßÊÖÂÛ̳

Skip to main content

Events Calendar

Alastair Humphreys - Adventures Across the World and Around the Neighborhood

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 Humphreys poses in an orange jacket under a cloudy sky with mountains in the background.
Alastair Humphreys will encourage us to break out of our busy schedules and pursue microadventures in the wilderness close to home.

From a young age, Alastair Humphreys sought adventure; he completed the Yorkshire Three Peaks challenge at age 9 when he hiked Pen-y-ghent, Whernside, and Ingleborough mountains in one day. During his time at university, his cycling expeditions included routes from Pakistan to China, Mexico to Panama, and across South America.  

After graduation, Alastair cycled around the world for four years, raced a yacht across the Atlantic Ocean, canoed 500 miles down the Yukon River, and walked the length of the holy Kaveri River in India. In 2012, he was chosen as one of National Geographic’s Adventurers of the Year. Since then, Alastair has taken a more local spin on exploring.  

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