, 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); })(); Reshma Saujani - A Conversation on Pay Up and Brave, Not Perfect | ƴɸ̳

ƴɸ̳

Skip to main content

Events Calendar

Reshma Saujani - A Conversation on Pay Up and Brave, Not Perfect

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
 

Reshma Saujani - A Conversation on Pay Up and Brave, Not Perfect

  • Wed, Jan 29, 2025
  • 12:30 pm–1:30 pm
Image
Reshma Saujani
Reshma Saujani will argue for innovative corporate leadership, government intervention, and a sweeping culture shift—the topic of her most recent books, "Pay Up: The Future of Women and Work” and "Brave, Not Perfect." In her conversation with us, she’ll also dismantle the myth of having it all and lift the burden we place on individual women to be primary caregivers and how to celebrate imperfection.

For more than a decade, Reshma Saujani has built movements to fight for women’s and girls’ economic empowerment. An activist, she founded Girls Who Code to address the gender gap in computing classes. She is the author of the international bestseller Brave, Not Perfect, and her influential TED talk, “Teach girls bravery, not perfection,” has more than 5 million views globally. Most recently, she’s advocated for policies that value women’s labor in and out of the home, successfully introducing the Marshall Plan for Moms”(now Moms First) to House and Senate leaders.  

Follow Reshma on , , and , or learn more about her at .