1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Thu Jul 03 2025 18:29:36 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="clean-energy.webflow.io" data-wf-page="6138d6c43a0782193912d841" data-wf-site="6138d6c43a0782018b12d83d"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Clean Energy Conversions Lab</title><meta content="Home of the research lab of Jennifer Wilcox. Our research focuses on minimizing the environmental and climate impacts of our dependence on fossil fuels." name="description"/><meta content="Clean Energy Conversions Lab" property="og:title"/><meta content="Home of the research lab of Jennifer Wilcox. Our research focuses on minimizing the environmental and climate impacts of our dependence on fossil fuels." property="og:description"/><meta content="Clean Energy Conversions Lab" name="twitter:title"/><meta content="Home of the research lab of Jennifer Wilcox. Our research focuses on minimizing the environmental and climate impacts of our dependence on fossil fuels." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/css/clean-energy.webflow.shared.d274f4ab4.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({ google: { families: ["Open Sans:300,300italic,400,400italic,600,600italic,700,700italic,800,800italic","Roboto:300,300italic,regular,italic,700,700italic","Roboto:regular,500,500italic"] }});</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/61424dd347c98a3693e20844_Favicon%2032%20%C3%97%2032.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/61424dcfff88e82c704054d4_Favicon%20256%20%C3%97%20256.png" rel="apple-touch-icon"/>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1UA-219951732-1
vendor: 11 bytes, line 1
1"></script>
1<script type="text/javascript">
vendor: 124 bytes, line 1
1window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
1UA-219951732-1
vendor: 28 bytes, line 1
1', {'anonymize_ip': false});
1</script>
1<style> 2 .w-nav-overlay { 3 top:0; 4 } 5 6 h6 a { 7 border: 0; 8 top: 0px; 9 bottom: 0px; 10 z-index: 2; 11 display: -webkit-box; 12 display: -ms-flexbox; 13 display: flex; 14 15 display: inline-block; 16 position: relative; 17 -webkit-box-orient: horizontal; 18 -webkit-box-direction: normal; 19 -ms-flex-direction: row; 20 flex-direction: row; 21 -webkit-box-align: center; 22 -ms-flex-align: center; 23 align-items: center; 24 -ms-flex-item-align: end; 25 align-self: flex-end; 26 -webkit-box-pack: end; 27 -ms-flex-pack: end; 28 justify-content: flex-end; 29 background-color: #008651; 30 background-image: url("https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/6138e333148cf86b3b8f2b94_white-arrow.svg"); 31 background-position: 89%; 32 background-repeat: no-repeat; 33 -webkit-transition-property: background-color; 34 -o-transition-property: background-color; 35 transition-property: background-color; 36 -webkit-transition-duration: 150ms; 37 -o-transition-duration: 150ms; 38 transition-duration: 150ms; 39 -webkit-transition-timing-function: ease; 40 -o-transition-timing-function: ease; 41 transition-timing-function: ease; 42 font-family: open sans, sans-serif; 43 44 padding-top: 15px; 45 padding-right: 65px; 46 padding-bottom: 15px; 47 padding-left: 25px; 48 margin-bottom: 20px; 49 50 -ms-flex-direction: column; 51 52 flex-direction: column; 53 justify-content: flex-end; 54 border-top-style: none; 55 border-right-style: none; 56 border-bottom-style: none; 57 border-left-style: none; 58 border-top-left-radius: 0px; 59 border-top-right-radius: 0px; 60 border-bottom-left-radius: 0px; 61 border-bottom-right-radius: 0px; 62 63 font-size: 16px; 64 font-weight: 400 !important; 65 line-height: 24px; 66 text-decoration: none; 67 68 color: #ffffff !important; 69 text-align: center; 70 text-transform: none; 71 } 72 73 h6 a:hover { 74 color:white !important; 75 background-color: #00653D; 76 text-decoration: none; 77 } 78 79 div[class*="w-slider-arrow-"]:focus div[class*="w-icon-slider-"], 80 .w-dropdown-toggle:focus, 81 .w-dropdown-link:focus { 82 outline-width: 2px; 83 outline-style: solid; 84 outline-color: Highlight; 85 outline-color: -webkit-focus-ring-color; 86 } 87 88 .opus-nav__dropdown-toggle > button { 89 background-color: transparent; 90 padding: 0; 91 } 92 93 .opus-nav a.opus-nav__item.active { 94 text-decoration: underline; 95 } 96 97 /* ââââââââââââââââââââââââââââââââââââââââââ 98 =Filters 99 ââââââââââââââââââââââââââââââââââââââââââ */ 100 .mixFilters__clear, 101 .filter-by-label, 102 .mixFilters__fieldset { 103 display: none; 104 } 105 106 .mixFilters__form { 107 font-family: 'Open Sans', sans-serif; 108 } 109 110 .mixFilters__form-fields > * { 111 margin: 0 0 28px 0; 112 } 113 114 .mixFilters__dropdown { 115 position: relative; 116 } 117 118 .mixFilters__toggle { 119 background-color: transparent; 120 border: 1px solid #ffffff; 121 color: #FFFFFF; 122 font-size: 16px; 123 padding: 16px 64px 16px 12px; 124 width: 100%; 125 text-align: left; 126 position: relative; 127 } 128 129 .mixFilters__toggle::before, 130 .mixFilters__toggle::after { 131 content: ''; 132 width: 52px; 133 top: 1px; 134 right: 1px; 135 bottom: 1px; 136 position: absolute; 137 } 138 139 .mixFilters__toggle::before { 140 border-left: 1px solid #ffffff; 141 background-color: #1a4395; 142 } 143 144 .mixFilters__toggle::after { 145 background-image: url(https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/614c9af035827299ebf6ca5b_caret.svg); 146 background-repeat: no-repeat; 147 background-position: 50% 52%; 148 background-size: 25%; 149 -webkit-transition: .25s ease-in-out; 150 -o-transition: .25s ease-in-out; 151 transition: .25s ease-in-out; 152 } 153 154 .mixFilters__dropdown.open .mixFilters__toggle::after { 155 -webkit-transform: rotate(-180deg); 156 -ms-transform: rotate(-180deg); 157 transform: rotate(-180deg); 158 } 159 160 .mixFilters__fieldset { 161 background-color: #e5f1fa; 162 padding: 20px 12px 4px 12px; 163 position: relative;
164 margin-top: 1px; 165 } 166 167 .mixFilters__fieldset input { 168 display: inline-block; 169 margin: 0 8px 20px 0; 170 } 171 172 .mixFilters__fieldset label { 173 display: inline; 174 font-weight: 400; 175 } 176 177 .mixFilters__fieldset input:hover, 178 .mixFilters__fieldset label:hover { 179 cursor: pointer; 180 } 181 182 .mixFilters__form-conrols { 183 margin-top: 10px; 184 } 185 186 .mixFilters__form-conrols button { 187 padding: 0 0 7px 0; 188 background-color: transparent; 189 font-family: Roboto, sans-serif; 190 color: #00143c; 191 font-size: 16px; 192 color: #ffffff; 193 -webkit-transition: .25s ease-in-out; 194 -o-transition: .25s ease-in-out; 195 transition: .25s ease-in-out; 196 position: relative; 197 } 198 199 .mixFilters__form-conrols button::after { 200 content: ''; 201 position: absolute; 202 display: block; 203 width: 100%; 204 height: 1px; 205 bottom: 0; 206 background-coLOR: #5bb2f8; 207 -webkit-transition: .1s ease-in-out; 208 -o-transition: .1s ease-in-out; 209 transition: .1s ease-in-out; 210 } 211 212 .mixFilters__form-conrols button:hover::after { 213 height: 3px; 214 } 215 216 .mixFilters__clear { 217 margin-left: 30px; 218 } 219 220 @media screen and (min-width: 768px) { 221 .mixFilters__form-fields { 222 margin: 0 -20px; 223 display: -webkit-box; 224 display: -ms-flexbox; 225 display: flex; 226 -ms-flex-wrap: wrap; 227 flex-wrap: wrap; 228 } 229 230 .mixFilters__form-fields > * { 231 margin: 0 20px 28px 20px; 232 width: calc(50% - 80px / 2); 233 } 234 235 .mixFilters__fieldset { 236 position: absolute; 237 left: 0; 238 right: 0; 239 top: 100%; 240 z-index: 10; 241 max-height: 40vh; 242 overflow-y: auto; 243 } 244 } 245 246 @media screen and (min-width: 992px) { 247 .mixFilters__form-fields > * { 248 width: auto; 249 -webkit-box-flex: 1; 250 -ms-flex-positive: 1; 251 flex-grow: 1; 252 } 253 } 254</style> 255<head> 256<style> 257 .research-title { 258 -webkit-text-fill-color: transparent !important; 259 -webkit-background-clip: text !important; 260 -webkit-text-stroke: 1.5px #011F5B !important; 261 } 262 </style> 263 </head></head><body class="body"><div data-animation="default" class="navbar w-nav" data-easing2="ease" data-easing="ease" data-collapse="medium" data-w-id="f89ff3ab-a049-60af-0e99-73c0feed815f" role="banner" data-duration="200" data-doc-height="1"><header class="navigation-container"><a id="skip-link" href="#skip-target" class="skip-link">Skip to content</a><div class="nav-items-div"><a href="/" data-w-id="f89ff3ab-a049-60af-0e99-73c0feed8160" aria-current="page" class="brand w-nav-brand w--current"><div data-w-id="62de46bf-c76f-10f9-6255-30941fe7d314" class="logo-text">Clean Energy Conversions Laboratory</div></a><nav role="navigation" class="nav-menu desktop opus-nav opus-nav--desktop w-nav-menu"><div class="nav-wrapper w-dyn-list"><div role="list" class="nav-list w-dyn-items"><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/page/about" class="opus-nav__item level-1">About</a><div class="opus-nav__dropdown-toggle level-1 w-embed"><button aria-label="Open About" aria-expanded="false" aria-haspopup="true"> 264 <div class="icon w-icon-dropdown-toggle"></div> 265</button></div><div class="opus-nav__dropdown-list"><a href="https://ceclab.seas.upenn.edu/page/about" class="opus-nav__item level-2">Mission</a><a href="https://ceclab.seas.upenn.edu/page/sponsors-and-friends" class="opus-nav__item level-2">Sponsors</a><a href="https://ceclab.seas.upenn.edu/page/facilities" class="opus-nav__item level-2">Facilities</a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a></div></div></div><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/page/our-team" class="opus-nav__item level-1">Our Team</a><div class="opus-nav__dropdown-toggle level-1 w-condition-invisible w-embed"><button aria-label="Open Our Team" aria-expanded="false" aria-haspopup="true"> 266 <div class="icon w-icon-dropdown-toggle"></div> 267</button></div><div class="opus-nav__dropdown-list w-condition-invisible"><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a></div></div></div><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/page/learn-and-explore" class="opus-nav__item level-1">Learn</a><div class="opus-nav__dropdown-toggle level-1 w-embed"><button aria-label="Open Learn" aria-expanded="false" aria-haspopup="true"> 268 <div class="icon w-icon-dropdown-toggle"></div> 269</button></div><div class="opus-nav__dropdown-list"><a href="https://ceclab.seas.upenn.edu/page/carbon-management-2-0" class="opus-nav__item level-2">Carbon Management 2.0</a><a href="https://ceclab.seas.upenn.edu/page/carbon-dioxide-removal-cdr-vs-carbon-capture-and-storage-ccs" class="opus-nav__item level-2">CCS vs CDR</a><a href="https://ceclab.seas.upenn.edu/page/mineral-carbonation" class="opus-nav__item level-2">Mineral Carbonation</a><a href="https://ceclab.seas.upenn.edu/page/learn-and-explore" class="opus-nav__item level-2">All Topics</a></div></div></div><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/our-research" class="opus-nav__item level-1">Our Research</a><div class="opus-nav__dropdown-toggle level-1 w-condition-invisible w-embed"><button aria-label="Open Our Research" aria-expanded="false" aria-haspopup="true"> 270 <div class="icon w-icon-dropdown-toggle"></div> 271</button></div><div class="opus-nav__dropdown-list w-condition-invisible"><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a></div></div></div><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/page/group-news-and-events" class="opus-nav__item level-1">News</a><div class="opus-nav__dropdown-toggle level-1 w-condition-invisible w-embed"><button aria-label="Open News" aria-expanded="false" aria-haspopup="true"> 272 <div class="icon w-icon-dropdown-toggle"></div> 273</button></div><div class="opus-nav__dropdown-list w-condition-invisible"><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a></div></div></div><div role="listitem" class="nav-item w-dyn-item"><div class="opus-nav__dropdown level-1"><a href="https://ceclab.seas.upenn.edu/page/contact" class="opus-nav__item level-1">Contact</a><div class="opus-nav__dropdown-toggle level-1 w-condition-invisible w-embed"><button aria-label="Open Contact" aria-expanded="false" aria-haspopup="true"> 274 <div class="icon w-icon-dropdown-toggle"></div> 275</button></div><div class="opus-nav__dropdown-list w-condition-invisible"><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a><a href="#" class="opus-nav__item level-2 w-dyn-bind-empty"></a></div></div></div></div></div><div class="affiliate-div mobile"><div class="affiliate-text">An affiliated lab of the</div><a href="https://kleinmanenergy.upenn.edu/" target="_blank" class="w-inline-block"><img src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/6138e332798cb3dff42bdebd_Kleiman-logo-white.svg" loading="lazy" alt="Kleinman Center for Energy Policy" class="klienman-logo"/></a></div></nav></div><div class="affiliate-div"><div class="affiliate-text">An affiliated lab of the</div><a href="https://kleinmanenergy.upenn.edu/" target="_blank" class="w-inline-block"><img src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/6138e3322a63f4626db8183a_Kleiman-logo.svg" loading="lazy" alt="Kleinman Center for Energy Policy" class="klienman-logo"/></a></div><div class="mobile-menu-icon"><div data-w-id="f89ff3ab-a049-60af-0e99-73c0feed8182" class="menu-button w-nav-button"><div class="menu-icon"><div class="line-1"></div><div class="menu-line-2"></div><div class="line-3"></div></div></div></div></header></div><main><div id="skip-target" class="skip-target"><div class="homepage-hero-wrapper w-dyn-list"><div role="list" class="homepage-hero-list w-dyn-items"><div style="background-image:url("https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com.jpg")" role="listitem" class="homepage-hero-item w-dyn-item"><div class="homepage-hero-section"><div class="custom-columns hp-hero"><div class="hp-two-column-div"><h1 class="hp-hero-statement">Mitigating the harmful effects of climate change through research in carbon management. <br/><br/></h1><div class="homepage-hero-image-div"><div class="homepage-hero-image-gradient"></div><img alt="" loading="lazy" src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com.jpg" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com-p-2600.jpeg 2600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com-p-3200.jpeg 3200w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e775ca4d657ad244f9b9f0_nature-cloud-sky-fog-sunrise-sunset-267794-pxhere.com.jpg 5184w" class="homepage-hero-image"/></div><div class="hp-sidebar-div"><div class="factoid-image-div main-factoid"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image.png" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image-p-500.png 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image-p-800.png 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image-p-1080.png 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image-p-1600.png 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/64fca703b43d920ede0c700a_DAC_Factoid_Image.png 1800w" class="factoid-image"/></div><div class="factoid-text-div"><h2 class="hp-h3"><strong>50,000 metric tons of CO<sub>2</sub> per Year and Counting!</strong></h2><p class="body-text">We currently remove 50,000 metric tons of CO<sub>2</sub> from the atmosphere each year. This is definitely a lot, but we still need to remove even more! Check out how <a href="https://ceclab.seas.upenn.edu/page/dac-video">Direct Air Capture</a> can help us meet climate goals!</p><a href="https://clean-energy.webflow.io/our-research" class="button-style w-condition-invisible w-button">Learn about the problem of scale</a></div></div></div></div></div></div></div></div></div><div class="learn-and-explore-section"><div class="custom-columns hp-hero"><div class="hp-two-column-div"><div class="learn-and-explore-div"><div class="two-toned-title-div"><h2 class="hp-h2">Learn &</h2><h2 class="hp-h2 bold">Explore</h2></div><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><div class="two-column-div learn-and-explore"><div class="learn-item"><div class="factoid-image-div learn"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/620baf49817d2a1cca936770_primer.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/620baf49817d2a1cca936770_primer-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/620baf49817d2a1cca936770_primer-p-800.jpeg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/620baf49817d2a1cca936770_primer.jpg 1024w" class="factoid-image"/></div><div data-w-id="ca9859e7-04f5-918e-d0c2-d40a05cfb120" class="title-link-div"><a href="https://cdrprimer.org/" class="hp-h3 white learn w-inline-block"><h3 class="hp-h3 white">CDR Primer</h3><div style="-webkit-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="link-arrow"></div></a></div><div class="hp-white-rich-text w-richtext"><p>Our open source CDR primer represents nearly 40 subject matter experts and addresses the fundamentals of c
275arbon dioxide removal and its role in addressing the climate crisis. <br/>â<a href="https://link.springer.com/book/10.1007/978-1-4614-2215-0" target="_blank"></a><br/>Learn about CDR in our open source <a href="http://cdrprimer.org" target="_blank">primer</a>.</p><p>Listen to the authors speak on its origins and impacts in this <a href="https://kleinmanenergy.upenn.edu/podcast/a-primer-on-carbon-dioxide-removal/">Kleinman Center Podcast</a>.</p></div></div><div class="learn-item second-item"><div class="factoid-image-div learn"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-800.jpeg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202-p-2600.jpeg 2600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613909ab99ec54bfce197eee_California%20Asbestos%202.jpg 3024w" class="factoid-image"/></div><div data-w-id="5b000806-9587-9c3f-eca0-77955be68afe" class="title-link-div"><a href="https://ceclab.seas.upenn.edu/page/mineral-carbonation" class="hp-h3 white w-inline-block"><h3 class="hp-h3 white">Waste to value: industrial wastes</h3><div style="-webkit-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="link-arrow"></div></a></div><div class="hp-white-rich-text w-richtext"><p>What makes serpentine chrysotile asbestos feedstocks a great option for storing carbon for the long term? Find out more in our 2-page explainer on mineral carbonation. Learn about CCS in Jen's <a href="https://link.springer.com/book/10.1007/978-1-4614-2215-0" target="_blank">textbook</a></p><p><a href="https://ceclab.seas.upenn.edu/page/mineral-carbonation"><strong>Learn more</strong></a></p></div></div></div></div></div></div></div><div class="hp-sidebar-div gradient"><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><div class="factoid-text-div space-after second"><div class="factoid-icon-stroke-div"><div class="factoid-icon"></div></div><div class="factoid-text-div-2"><h3 class="hp-h3 factoid-text">Natural Drawdown</h3><p class="body-text factoid-text">Around 90% of the voluntary carbon offset market is tied to improved forest management.</p><a href="https://ceclab.seas.upenn.edu/page/principles-of-high-quality-carbon-removal" class="button-style factoid-button w-button">Learn more about the principles of high quality CDR </a></div></div><div class="factoid-text-div second"><div class="factoid-icon-stroke-div"><div class="factoid-icon _2"></div></div><div class="factoid-text-div-2"><h3 class="hp-h3 factoid-text"><a href="https://ceclab.seas.upenn.edu/page/carbon-management-2-0">Carbon Management 2.0</a></h3><p class="body-text factoid-text">While expensive and immature, engineered CDR like DAC can potentially provide more secure COâ storage. Check it out by reading <a href="https://ceclab.seas.upenn.edu/page/carbon-management-2-0">Carbon Management 2.0</a>!</p><a href="#" class="button-style factoid-button w-condition-invisible w-button">Learn more about DAC</a></div></div></div></div></div></div></div></div></div><div class="hp-research-section"><div class="research-section-div"><div class="custom-container"><div class="research-title-and-link"><h2 class="research-title">Research</h2><a href="/our-research" class="button-style navy w-button">Visit our research page</a></div></div></div><div class="featured-research"><div class="custom-container"><div class="main-featured-research-wrapper w-dyn-list"><div role="list" class="main-featured-research-list w-dyn-items"><div role="listitem" class="main-featured-research-item w-dyn-item"><div class="main-research-image"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/679cf4470f15620661424e3e_Ladder-5.avif" loading="lazy" alt="" class="main-research-image image"/></div><div class="research-item main-feature"><div class="research-item-text"><h3 class="hp-h3 navy">U.S. CCS Ladder for Industrial Decarbonization</h3><p class="body-text">CCS has long been scrutinized for enabling fossil fuels, but in some industrial sectors that produce CO2 as a byproduct, CCS may be one of the only options for decarbonization today. Here's a look at where CCS should be prioritized as a decarbonization strategy now and for some sectors tomorrow. </p><div class="research-buttons"><a data-w-id="1cb48d8c-5f70-4650-762a-bd37bc9e5498" style="background-color:rgb(0,134,81)" href="#" class="green-button-style pdf w-condition-invisible w-button">Download the PDF</a><a data-w-id="98a277d6-3e33-8162-4991-8d23d96c5f0a" style="background-color:rgb(0,134,81)" href="#" class="green-button-style w-condition-invisible w-button">Watch the Video</a><a href="#" data-w-id="d99a73d7-b9dd-5cca-8fdb-59d1ed5d4fce" style="background-color:rgb(0,134,81)" class="green-button-style presentation w-condition-invisible w-button">Download the Presentation</a>
275<a data-w-id="2e90f764-0dbb-5a40-9d04-d6147870e7ed" style="background-color:rgb(0,134,81)" href="#" class="green-button-style podcast w-condition-invisible w-button">Listen to the Podcast</a><a data-w-id="1f7f4b9a-3f88-054b-e424-36839d839adb" style="background-color:rgb(0,134,81)" href="#" class="green-button-style arrow w-condition-invisible w-dyn-bind-empty w-button"></a></div></div><div class="research-date-and-team"><div class="date-and-authors"><div class="all-caps-title">October 2024</div><div class="blue-divider"></div><div class="small-body">Maxwell Pisciotta, 276Shelvey Swett, Hélène Pilorgé, 277Shrey Patel, 278Jennifer Wilcox</div></div><div class="research-topics"><div class="all-caps-title research-topic">Research topics</div><div class="divider"></div><div class="small-body w-condition-invisible">Hydrogen Production & Storage</div><div class="divider w-condition-invisible"></div><div class="small-body">Carbon Capture, Utilization, & Storage</div><div class="divider"></div><div class="small-body w-condition-invisible">Mineral Carbonization</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Ammonia Production</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Life Cycle Analysis</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Techno-economic Assessment</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Catalysis</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Geographic Information Systems Mapping</div><div class="divider w-condition-invisible"></div><div class="small-body">Carbon Dioxide Removal</div><div class="divider"></div><div class="small-body w-condition-invisible">Direct Air Capture</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Miscellaneous</div></div></div><div class="research-buttons mobile"><a data-w-id="504ca918-2a04-26ce-91e1-a3f9afbe7c55" style="background-color:rgb(0,134,81)" href="#" class="green-button-style pdf w-condition-invisible w-button">Download the PDF</a><a href="#" data-w-id="504ca918-2a04-26ce-91e1-a3f9afbe7c57" style="background-color:rgb(0,134,81)" class="green-button-style presentation w-condition-invisible w-button">Download the Presentation</a><a data-w-id="504ca918-2a04-26ce-91e1-a3f9afbe7c59" style="background-color:rgb(0,134,81)" href="#" class="green-button-style w-condition-invisible w-button">Watch the Video</a><a data-w-id="504ca918-2a04-26ce-91e1-a3f9afbe7c5b" style="background-color:rgb(0,134,81)" href="#" class="green-button-style podcast w-condition-invisible w-button">Listen to the Podcast</a><a data-w-id="504ca918-2a04-26ce-91e1-a3f9afbe7c5d" style="background-color:rgb(0,134,81)" href="#" class="green-button-style arrow w-condition-invisible w-dyn-bind-empty w-button"></a></div></div></div></div></div><div class="secondary-feature-wrapper w-dyn-list"><div role="list" class="secondary-feature-list w-dyn-items"><div role="listitem" class="secondary-feature-item w-dyn-item"><div class="research-item-text"><h3 class="hp-h3 navy">An overview of the status and challenges of CO2 storage in minerals and geological formations</h3><p class="body-text">Since the Industrial Revolution, anthropogenic carbon dioxide (CO2) emissions have grown exponentially, accumulating in the atmosphere and leading to global warming. According to the IPCC (IPCC Special Report 2018), atmospheric warming should be less than 2 â to avoid the most serious consequences associated with climate change. This goal can be achieved in part by reducing CO2 emissions, together with capturing and sequestering CO2 from point sources. The most mature storage technique is sequestration in deep saline aquifers. In addition, CO2 can be mineralized and sequestered in solid form by various techniques: ex-situ, surficial and in situ mineralization. Ex situ and surficial approaches may produce valuable products while mitigating environmental hazards. In-situ mineralization uses ultramafic and mafic geological formations for permanent, solid storage. A portfolio that limits warming to less than 2 â by 2100 will include avoiding CO2 emissions and removal of CO2 from air. Regardless of the specific mix of approaches, it will be essential to permanently sequester tens of billions of tons of CO2. Maximizing the potential of all of these storage technologies will help to meet global climate goals. The research agenda published by the National Academy of Science (NASEM 2019) calls for about $1 billion over a 10-20 year time period to advance deployment of CO2 sequestration in deep sedimentary reservoirs at the GtCO2/yr scale and develop CO2 mineralization at the MtCO2/yr scale.</p><div class="research-buttons"><a data-w-id="d94fed82-2988-3ee4-bd96-e6145175a262" style="background-color:rgb(0,134,81)" href="#" class="green-button-style pdf w-condition-invisible w-button">Download the PDF</a><a data-w-id="d94fed82-2988-3ee4-bd96-e6145175a266" style="background-color:rgb(0,134,81)" href="#" class="green-button-style w-condition-invisible w-button">Watch the Video</a><a href="#" data-w-id="d94fed82-2988-3ee4-bd96-e6145175a264" style="background-color:rgb(0,134,81)" class="green-button-style presentation w-condition-invisible w-button">Download the Presentation</a><a data-w-id="d94fed82-2988-3ee4-bd96-e6145175a268" style="background-color:rgb(0,134,81)" href="#" class="green-button-style arrow w-condition-invisible w-button">Listen to the Podcast</a><a data-w-id="d94fed82-2988-3ee4-bd96-e6145175a26a" style="background-color:rgb(0,134,81)" href="#" class="green-button-style arrow w-condition-invisible w-dyn-bind-empty w-button"></a></div></div><div class="research-date-and-team"><div class="date-and-authors"><div class="all-caps-title">November 2019</div><div class="blue-divider"></div><div class="small-body">Jennifer Wilcox, 279Peter Psarras, 280Helene Pilorge</div></div><div class="research-topics"><div class="all-caps-title research-topic">Research topics</div><div class="divider"></div><div class="small-body w-condition-invisible">Hydrogen Production & Storage</div><div class="divider w-condition-invisible"></div><div class="small-body">Carbon Capture, Utilization, & Storage</div><div class="divider"></div><div class="small-body w-condition-invisible">Mineral Carbonization</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Ammonia Production</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Life Cycle Analysis</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Techno-economic Assessment</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Catalysis</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Geographic Information Systems Mapping</div><div class="divider w-condition-invisible"></div><div class="small-body">Carbon Dioxide Removal</div><div class="divider"></div><div class="small-body w-condition-invisible">Direct Air Capture</div><div class="divider w-condition-invisible"></div><div class="small-body w-condition-invisible">Miscellaneous</div></div></div><div class="research-buttons mobile"><a data-w-id="e39e7bbf-0c11-a966-6da3-42c783328197" style="background-color:rgb(0,134,81)" href="#" class="green-button-style pdf w-condition-invisible w-button">Download the PDF</a><a href="#" data-w-id="e39e7bbf-0c11-a966-6da3-42c783328199" style="background-color:rgb(0,134,81)" class="green-button-style presentation w-condition-invisible w-button">Download the Presentation</a><a data-w-id="e39e7bbf-0c11-a966-6da3-42c78332819b" style="background-color:rgb(0,134,81)" href="#" class="green-button-style w-condition-invisible w-button">Watch the Video</a><a data-w-id="e39e7bbf-0c11-a966-6da3-42c78332819d" style="background-color:rgb(0,134,81)" href="#" class="green-button-style podcast w-condition-invisible w-button">Listen to the Podcast</a><a data-w-id="e39e7bbf-0c11-a966-6da3-42c78332819f" style="background-color:rgb(0,134,81)" href="#" class="green-button-style arrow w-condition-invisible w-dyn-bind-empty w-button"></a></div></div></div></div></div><a href="/our-research" class="button-style navy research w-button">More Research</a></div></div><div class="hp-video-section"><div class="custom-container"><div class="two-column-div"><div class="video-collection-wrapper w-dyn-list"><div role="list" class="video-collection-list w-dyn-items"><div role="listitem" class="video-collection-item w-dyn-item"><div style="padding-top:56.20608899297424%" class="hp-video w-video w-embed"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FyVyEKeKQejA%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DyVyEKeKQejA&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FyVyEKeKQejA%2Fhqdefault.jpg&key=96f1f04c5f4143bcb0f2e68c87d65feb&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></div></div></div></div><div class="video-section-div"><h2 class="all-caps-title space-after">Featured Video</h2><h3 class="hp-h3 navy">Penn Engagement Days</h3><div class="video-collection-wrapper mobile w-dyn-list"><div role="list" class="video-collection-list w-dyn-items"><div role="listitem" class="video-collection-item w-dyn-item"><div style="padding-top:56.20608899297424%" class="hp-video w-video w-embed"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FyVyEKeKQejA%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DyVyEKeKQejA&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FyVyEKeKQejA%2Fhqdefault.jpg&key=96f1f04c5f4143bcb0f2e68c87d65feb&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></div></div></div></div><p class="body-text">In the Fall of 2020, CECL moved to our new home in Penn Engineering and the Kleinman Center for Energy Policy. Watch as our team talks through the problem of carbon management, discusses Jennifer's interim role with the Department of Energy, and speaks on our experience here at Penn. </p><a href="https://www.youtube.com/channel/UC_OUM8XVDz3HB1cPsf4o3GQ" class="button-style blue w-button">Watch more videos on our Youtube channel </a></div></div></div></div><div class="news-and-team-section"><div class="custom-columns hp-hero"><div class="hp-two-column-div team"><div class="news-div"><div class="two-toned-title-div"><h2 class="hp-h2 blue news">Featured</h2><h2 class="hp-h2 bold blue news">News</h2></div><div class="news-wrapper w-dyn-list"><div role="list" class="news-list w-dyn-items"><div role="listitem" class="news-items w-dyn-item"><div class="news-item-div"><div data-w-id="b09c58b9-fd02-367f-7fe5-ae2cbddfeac5" class="title-link-div"><a href="https://www.energy.gov/fecm/person/dr-jennifer-wilcox" class="hp-h3 link news w-inline-block"><h3 class="hp-h3 link news">Jen is appointed Principal Deputy Assistant Secretary of Fossil Energy and Carbon Management</h3><div style="-webkit-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="link-arrow"></div></a></div><div class="hp-h3 news w-condition-invisible">Jen is appointed Principal Deputy Assistant Secretary of Fossil Energy and Carbon Management</div><p class="body-text">Our own Jennifer Wilcox was appointed Principal Deputy Assistant Secretary of Fossil Energy and Carbon Management in January 2021. In recognition of her endless contributions to climate change research, the Biden Administration has placed Jen near the top of the DOE food chain, leading monumental efforts and managing large budgets to aid in our transition to a less carbon intensive future. Congratulations Jen!</p><div class="news-divider"></div></div><div class="news-item-div"><div data-w-id="ef81409a-44fd-ce89-5cb1-3f5a806d1748" class="title-link-div"><a href="https://gs.llnl.gov/sites/gs/files/2021-08/getting_to_neutral.pdf" class="hp-h3 link news">The Clean Energy Conversions Lab Members are recognized by the DOE with the Secretary's Achievement Award for their work on the Getting to Neutral Report!</a><div style="-webkit-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="link-arrow"></div></div><h3 class="hp-h3 news w-condition-invisible">The Clean Energy Conversions Lab Members are recognized by the DOE with the Secretary's Achievement Award for their work on the Getting to Neutral Report!</h3><p class="body-text">Dr. Wilcox, Dr. Psarras, Hélène Pilorgé, and Noah McQueen were large contributors to the Getting to Neutral report, which highlighted projected pathways for the state of California to reach carbon neutrality by 2045, if not sooner! Check out the full report!</p><div class="news-divider second"></div></div><div class="news-item-div"><div data-w-id="0819fc56-1a56-5417-724f-9f488602cdae" class="title-link-div third"><a href="https://global.upenn.edu/perryworldhouse/news/geothermal-energy-missing-piece-equitable-energy-transition" class="hp-h3 link news">Max Pisciotta wins the Perry World House Graduate Essay Prize!</a><div style="-webkit-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0px, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="link-arrow"></div></div><h3 class="hp-h3 news w-condition-invisible">Max Pisciotta wins the Perry World House Graduate Essay Prize!</h3><p class="body-text third">Max is awarded the inaugural Perry World House Graduate Essay Prize for their essay submission, which outlines the possibility for using abandoned or retired oil and as wells for geothermal energy systems. Check out the full essay!</p></div></div></div></div><a href="https://ceclab.seas.upenn.edu/page/group-news-and-events" data-w-id="25de7738-7258-cd18-dc8e-17a4815a49b0" style="background-color:rgb(91,178,248);color:rgb(0,20,60)" class="green-button-style blue w-button">View All News</a></div><div class="hp-sidebar-div team"><h2 class="all-caps-title large">Team member spotlight</h2><div class="hp-collection-wrapper team w-dyn-list"><div role="list" class="hp-collection-list team w-dyn-items"><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/66bf6cbdd770a8f409ae160d_IMG_0978_cropped.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/66bf6cbdd770a8f409ae160d_IMG_0978_cropped-p-
280500.jpg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/66bf6cbdd770a8f409ae160d_IMG_0978_cropped-p-800.jpg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/66bf6cbdd770a8f409ae160d_IMG_0978_cropped-p-1080.jpg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/66bf6cbdd770a8f409ae160d_IMG_0978_cropped.jpg 1571w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Abby Lunstrum</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Abby Lunstrum</h3></div><div class="team-title">Research Associate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Abby's areas of focus are carbon mineralization, carbon capture and storage, and separations. </p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey-p-500.jpg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey-p-800.jpg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey-p-1080.jpg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey-p-1600.jpg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey-p-2000.jpg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675de289fa6ceb8fdbe7ff6_Shrey.jpg 2181w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Shrey Patel</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Shrey Patel</h3></div><div class="team-title">PhD Candidate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Shrey's focus areas are direct air capture, carbon mineralization, carbon capture and storage, process modelling, techno-economic assessment, and low-carbon energy. </p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675ddd44d0970eaf188f46d_a45905ac-073d-486c-bedf-b991f7c0c727(2).jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675ddd44d0970eaf188f46d_a45905ac-073d-486c-bedf-b991f7c0c727(2)-p-500.jpg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675ddd44d0970eaf188f46d_a45905ac-073d-486c-bedf-b991f7c0c727(2)-p-800.jpg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675ddd44d0970eaf188f46d_a45905ac-073d-486c-bedf-b991f7c0c727(2)-p-1080.jpg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/6675ddd44d0970eaf188f46d_a45905ac-073d-486c-bedf-b991f7c0c727(2).jpg 1313w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Aline Uwase</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Aline Uwase</h3></div><div class="team-title">PhD Student</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Aline's areas of focus are carbon mineralization, carbon capture and storage, materials characterization, and CO2 adsorption.</p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/65ea08c20de2428f847a006d_Shelvey.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/65ea08c20de2428f847a006d_Shelvey-p-500.jpg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/65ea08c20de2428f847a006d_Shelvey-p-800.jpg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/65ea08c20de2428f847a006d_Shelvey.jpg 936w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Shelvey Swett</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Shelvey Swett</h3></div><div class="team-title">PhD Candidate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Shelvey's focus areas are carbon mineralization, separations, carbon capture and storage, and techno-economic assessment.</p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-800.jpeg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-2600.jpeg 2600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy-p-3200.jpeg 3200w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61e48d0ca402dc07f8d588ab_Maxwell_Pisciotta_Photo%20copy.jpg 3395w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Maxwell Pisciotta</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Maxwell Pisciotta</h3></div><div class="team-title">PhD Candidate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Max Pisciotta is a 2nd-year Ph.D. student in Chemical Engineering at the University of Pennsylvania and holds a B.S. and M.S. in Mechanical Engineering from the Colorado School of Mines. Maxâs research focuses on point-source carbon capture and direct air carbon capture. </p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029-p-800.jpeg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953f128c4efd37c49ef309_A7302029.jpg 2048w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Dr. Hélène Pilorgé</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Dr. Hélène Pilorgé</h3></div><div class="team-title">Research Associate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Hélène looks at carbon management with a spatial perspective to find local synergies and optimize carbon management strategies, while recognizing the importance for environment c
280onservation and social justice.</p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034.jpg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034-p-800.jpeg 800w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/61953e9ba4bd08fcd54ffd37_A7302034.jpg 2048w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team w-condition-invisible"><a href="#" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Katherine Vaz Gomes</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team"><h3 class="hp-h3 white nolink">Katherine Vaz Gomes</h3></div><div class="team-title">PhD Candidate</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Katherine brings a background in chemical engineering and professional writing with years of experimental research. Her focus is carbon mineralization of mine tailings to permanently store carbon dioxide.</p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div><div role="listitem" class="homepage-collecton-item team w-dyn-item"><div class="factoid-image-div team"><img src="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613f96b0ddc6df4244e7bcf3_Jennifer%20Wilcox%20Photo_042121.jpeg" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613f96b0ddc6df4244e7bcf3_Jennifer%20Wilcox%20Photo_042121-p-500.jpeg 500w, https://cdn.prod.website-files.com/6138d6c43a0782479d12d84d/613f96b0ddc6df4244e7bcf3_Jennifer%20Wilcox%20Photo_042121.jpeg 669w" class="factoid-image team"/></div><div class="factoid-text-div"><div data-w-id="51ce9585-a134-f272-9bcc-1f2910c6864e" class="title-link-div team"><a href="https://www.energy.gov/fe/person/dr-jennifer-wilcox" class="hp-h3 white team w-inline-block"><h3 class="hp-h3 white text">Jen Wilcox</h3><div class="link-arrow orange"></div></a></div><div data-w-id="45f567f0-7d42-ef76-ce42-cbc036276058" class="title-link-div team w-condition-invisible"><h3 class="hp-h3 white nolink">Jen Wilcox</h3></div><div class="team-title">James H. Manning Chaired Professor</div><div class="team-research-div"><div class="all-caps-title research-topic white">Research Focus:</div><p class="body-text white">Wilcoxâs research takes aim at the nexus of energy and the environment, developing both mitigation and adaptation strategies to minimize negative climate impacts associated with societyâs dependence on fossil fuels. </p></div><a href="https://ceclab.seas.upenn.edu/page/our-team" class="button-style white w-button">Learn About Our Team</a></div></div></div></div></div></div></div></div></main><footer class="footer"><div class="footer-wrapper w-dyn-list"><div role="list" class="footer-list w-dyn-items"><div role="listitem" class="footer-item w-dyn-item"><div class="custom-container"><div class="footer-div"><div class="footer-text"><div class="footer-text-div"><div class="footer-affiliation-text">An affiliated lab of the</div><a href="https://kleinmanenergy.upenn.edu/" target="_blank" class="klienman-footer-text">Kleinman Center for Energy Policy</a><div class="kleinman-footer-text-line-2">at the University of Pennsylvania</div></div></div><div class="footer-social-and-button">
280<div class="footer-social-div"><div class="social-media"><a href="https://twitter.com/jwilceclab" class="social-link twitter w-inline-block"></a><a href="#" class="social-link instagram w-inline-block w-condition-invisible"></a><a href="#" class="social-link facebook w-inline-block w-condition-invisible"></a><a href="#" class="social-link youtube w-inline-block w-condition-invisible"></a></div><a href="mailto:[email protected]" class="footer-email">[email protected]</a></div><div class="footer-button"><div class="footer-affiliation-text button">Get the latest CECL news:</div><a href="https://kleinmanenergy.upenn.edu/newsletter" data-w-id="a718bb50-e550-1853-d4a6-7d42b2f0871d" class="green-button-style white w-button">Join the Kleinman Center Newsletter</a></div></div></div><div class="footer-copywrite"><div class="copywrite">© <span class="current-year">2021</span> <a href="https://www.upenn.edu/" target="_blank" class="footer-link">University of Pennsylvania</a></div></div></div><div class="bottom-footer"><div class="custom-container"><div class="bottom-footer-div"><a href="https://www.seas.upenn.edu/" target="_blank" class="w-inline-block"><img src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/62057d1ada9cb84a2fbc0334_penn-engineering-one-line-white.svg" loading="lazy" alt="" class="penn-logo"/></a><div class="small-footer-links"><a href="https://www.upenn.edu/about/report-copyright-infringement" class="small-footer-link">Copyright</a><div class="white-divider"></div><a href="https://www.upenn.edu/about/privacy-policy" class="small-footer-link">Privacy</a><div class="white-divider"></div><a href="https://www.upenn.edu/about/disclaimer" class="small-footer-link">Disclaimer</a><div class="white-divider"></div><a href="https://accessibility.web-resources.upenn.edu/get-help" class="small-footer-link">Accessibility</a><div class="white-divider"></div><a href="https://www.publicsafety.upenn.edu/contact/" class="small-footer-link">Emergency Services</a><div class="white-divider w-condition-invisible"></div><a href="#" class="small-footer-link w-dyn-bind-empty"></a></div></div></div></div></div></div></div></footer>
280<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6138d6c43a0782018b12d83d" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
280<script src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/js/webflow.schunk.36b8fb49256177c8.js" type="text/javascript"></script>
280<script src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/js/webflow.schunk.4df0fd5dd0344b52.js" type="text/javascript"></script>
280<script src="https://cdn.prod.website-files.com/6138d6c43a0782018b12d83d/js/webflow.d49ac792.50ba4fc010306825.js" type="text/javascript"></script>
280<!-- MixItUp Library -->
281<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mixitup/3.3.1/mixitup.min.js"></script>
vendor: 1 bytes, line 281
281
282<script type="text/javascript" src="https://dl.dropbox.com/s/1wl0p4gg6eaitx1/mixitup-multifilter.min.js"></script>
282 283
284<script> 285 $(document).ready(function() { 286 /* ââââââââââââââââââââââââââââââââââââââââââ 287 A11y Nav 288 ââââââââââââââââââââââââââââââââââââââââââ */ 289 if ($('.opus-nav--desktop').length > 0) { 290 function closeDesktopNav(el) { 291 $(el) 292 .find('.opus-nav__dropdown-list') 293 .hide(); 294 295 $(el) 296 .find('.opus-nav__dropdown-toggle > button') 297 .attr('aria-expanded', false) 298 } 299 300 function openDesktopNav(el) { 301 $(el) 302 .find('.opus-nav__dropdown-list') 303 .show(); 304 305 $(el) 306 .find('.opus-nav__dropdown-toggle > button') 307 .attr('aria-expanded', true) 308 } 309 310 // Open nav on hover 311 $('.opus-nav--desktop .opus-nav__dropdown').on('mouseenter', function() { 312 openDesktopNav($(this)); 313 }); 314 315 // Close nav off hover 316 $('.opus-nav--desktop .opus-nav__dropdown').on('mouseleave', function() { 317 closeDesktopNav($(this)); 318 }); 319 320 // Open nav on toggle button click 321 $('.opus-nav--desktop .opus-nav__dropdown-toggle > button').on('click', function(e) { 322 if ($(this).attr('aria-expanded') === 'true') { // if open then close 323 closeDesktopNav($(this).closest('.opus-nav__dropdown')); 324 } else { // if closed then open 325 openDesktopNav($(this).closest('.opus-nav__dropdown')); 326 } 327 }); 328 329 // Close nav when esc key is pressed 330 $('.opus-nav--desktop').on('keyup', function (e) { 331 if (e.keyCode === 27) { 332 closeDesktopNav($('.opus-nav--desktop .opus-nav__dropdown')); 333 } 334 }); 335 336 // Close nav after last focusable item (<a> or <button>) has been tabbed past 337 $('.opus-nav--desktop').on('keydown', '.opus-nav__item:not(.level-1), .opus-nav__dropdown-toggle:not(.level-1) > button', function(e) { 338 if (e.keyCode === 9) { // If tabbing 339 if (e.shiftKey === true) { // If shift key is down stop 340 return true; 341 } 342 343 var lastEl = $(this).parents('.opus-nav__dropdown.level-1').find(':visible:last'); 344 // console.log(lastEl); 345 346 if ($(this)[0] == lastEl[0]) { 347 closeDesktopNav($(this).parents('.opus-nav__dropdown.level-1')); 348 } 349 } 350 }); 351 352 // Close nav after 1st level toggle button has been reversed tabbed away from 353 $('.opus-nav--desktop .opus-nav__dropdown-toggle > button').on('keydown', function(e) { 354 if (e.keyCode === 9) { // If tabbing 355 if (! e.shiftKey === true) { // If shift key is not down stop 356 return true; 357 } 358 359 closeDesktopNav($(this).closest('.opus-nav__dropdown')); 360 } 361 }); 362 } 363 364 365 /* ââââââââââââââââââââââââââââââââââââââââââ 366 Skip Link 367 ââââââââââââââââââââââââââââââââââââââââââ */ 368 if ($('#skip-link').length > 0) { 369 $('#skip-link').click(function(e) { 370 e.preventDefault(); 371 $('#skip-target').attr('tabindex', '-1').focus(); 372 }); 373 } 374 375 376 /* ââââââââââââââââââââââââââââââââââââââââââ 377 Accordions 378 ââââââââââââââââââââââââââââââââââââââââââ */ 379 if ($('.accordion-trigger').length > 0) { 380 $('.accordion-trigger').unbind('click').click(function() { 381 if ($(this).find('button').attr('aria-expanded') == 'true') { 382 $(this).find('button').attr('aria-expanded', 'false'); 383 } else { 384 $(this).find('button').attr('aria-expanded', 'true'); 385 } 386 }); 387 } 388 389 390 /* ââââââââââââââââââââââââââââââââââââââââââ 391 Carousel / Sliders 392 ââââââââââââââââââââââââââââââââââââââââââ */ 393 if ($('.slider').length > 0) { 394 // Remove empty carousel slides 395 $('.slide.w-condition-invisible').remove(); 396 Webflow.require('slider').redraw(); 397 } 398 399 400 /* ââââââââââââââââââââââââââââââââââââââââââ
401 Add active CSS class to nav items 402 ââââââââââââââââââââââââââââââââââââââââââ */ 403 // $('.w-nav-menu a').each(function() { 404 $('.opus-nav--desktop a').each(function() { 405 var pos = $(this).attr('href').lastIndexOf('/') + 1; 406 var res = $(this).attr('href').substring(pos).replace(/\s+/g, '-'); 407 // console.log('Res: ' + res); 408 // console.log('Title: ' + $('h1.heading-1:first-of-type').text().replace(/\s+/g, '-').toLowerCase()); 409 410 if ( $('h1.heading-1:first-of-type').text().replace(/\s+/g, '-').toLowerCase() === res ) { 411 $(this).addClass('active'); 412 } 413 }); 414 415 416 /* ââââââââââââââââââââââââââââââââââââââââââ 417 Display 1 Person on Homepage Randomly 418 ââââââââââââââââââââââââââââââââââââââââââ */ 419 if ($('.homepage-collecton-item.team').length > 1) { 420 (function() { 421 var teamMember = $('.homepage-collecton-item.team'); 422 var teamMembers = []; 423 teamMember.hide(); 424 425 teamMember.each(function() { 426 teamMembers.push($(this)); 427 }); 428 429 var selected = teamMembers[Math.floor(Math.random() * teamMembers.length)]; 430 431 selected.show(); 432 })() 433 } 434 435 436 /* ââââââââââââââââââââââââââââââââââââââââââ 437 Filtering 438 ââââââââââââââââââââââââââââââââââââââââââ */ 439 if ($('.mixFilters').length && $('.mix-container').length) { 440 (function() { 441 // Set empty filed options 442 var mediaFilterChoices = []; 443 var topicsFilterChoices = []; 444 var yearsFilterChoices = []; 445 var filterClasses = []; 446 447 // Get field containers 448 var mediaField = $('.mixFilters__fieldset--media'); 449 var yearsField = $('.mixFilters__fieldset--years'); 450 var topicsField = $('.mixFilters__fieldset--topics'); 451 var form = $('.mixFilters__form'); 452 var clearBtn = $('.mixFilters__clear'); 453 var submitBtn = $('.mixFilters__submit'); 454 var filterDropdown = $('.mixFilters__dropdown'); 455 var filterToggle = $('.mixFilters__toggle'); 456 var filterFieldset = $('.mixFilters__fieldset'); 457 458 // Filter Toggle Open 459 function openFilterToggle(el) { 460 closeFilterToggle(filterToggle); 461 el.next(filterFieldset).slideDown('fast'); 462 el.attr('aria-expanded', 'true'); 463 el.closest(filterDropdown).addClass('open') 464 } 465 466 // Filter Toggle Close 467 function closeFilterToggle(el) { 468 el.next(filterFieldset).slideUp('fast'); 469 el.attr('aria-expanded', 'false'); 470 el.closest(filterDropdown).removeClass('open') 471 } 472 473 // Filter Toggle Click 474 filterToggle.on('click', function() { 475 var el = $(this); 476 477 if ( el.attr('aria-expanded') === 'false' ) { 478 openFilterToggle(el); 479 } else { 480 closeFilterToggle(el); 481 } 482 }); 483 484 // Close toggles when clicking outside 485 $(document).on('click', function(e) { 486 if ( $(filterDropdown).hasClass('open') ) { 487 // If we're not clicking on the toggle button itself, close all toggles 488 if ( $(e.target).closest(filterToggle).length === 0 ) { 489 closeFilterToggle(filterToggle); 490 } 491 } 492 }); 493 494 // Close toggles when button has been tabbed past backwards 495 filterToggle.on('keydown', function(e) { 496 if (e.keyCode === 9) { // If tabbing 497 if (e.shiftKey === false || ! $(this).parent(filterDropdown).hasClass('open')) { 498 return; 499 } 500 501 if ($(this).parent(filterDropdown).hasClass('open')) { 502 closeFilterToggle($(this)); 503 } 504 } 505 }); 506 507 // Close toggles when input has been tabbed past forwards 508 filterFieldset.on('keydown', 'input', function(e) { 509 if (e.keyCode === 9) { // If tabbing 510 var lastEl = $(this).closest(filterFieldset).find('input:visible').last(); 511 512 if ( e.shiftKey === true ) { 513 return; 514 } 515 516 if ( $(this)[ 0 ] === lastEl[ 0 ] ) { 517 closeFilterToggle($(this).closest(filterDropdown).find(filterToggle)); 518 } 519 } 520 }); 521 522 // Close nav when esc key is pressed 523 $(filterDropdown).on('keyup', function(e) { 524 if (e.keyCode === 27) { 525 var parent = $(this).closest(filterDropdown); 526 527 if (! parent.hasClass('open')) { 528 return; 529 } 530 531 closeFilterToggle(parent.find(filterToggle)); 532 } 533 }); 534 535 // Prevent clicking fields inside toggle fields from closing toggle 536 filterFieldset.on('click', function(e) { 537 e.stopPropagation(); 538 }); 539 540 // Handle clear buton clicks 541 clearBtn.on('click', function() { 542 setTimeout(function () { 543 submitBtn.click(); 544 }, 250); 545 }); 546 547 // Update markup to add filter classes to items and set filter field choices 548 $('.mix-container .mix').each(function(i) { 549 filterClasses = []; 550 var el = $(this); 551 var dataJson = el.find('.filterData').text(); 552 var dataObj = JSON.parse(dataJson); 553 var mediaObj = dataObj.media; 554 var topicsObj = dataObj.topics; 555 var dateObj = dataObj.date; 556 557 // Loop through media 558 for (var key in mediaObj) { 559 for (var key2 in mediaObj[key]) { 560 if (key2 === 'value' && mediaObj[key][key2]) { 561 filterClasses.push('_' + key); 562 mediaFilterChoices.push({ 563 'value': '._' + key, 564 'name': mediaObj[key].name 565 }); 566 } 567 } 568 } 569 570 // Loop through topics 571 for (var key in topicsObj) { 572 for (var key2 in topicsObj[key]) { 573 if (key2 === 'value' && topicsObj[key][key2]) { 574 filterClasses.push('_' + key); 575 topicsFilterChoices.push({ 576 'value': '._' + key, 577 'name': topicsObj[key]['name'] 578 }); 579 } 580 } 581 } 582 583 // Format date 584 dateObj = new Date(dateObj); 585 dateObj = dateObj.getFullYear(); 586 filterClasses.push('_' + dateObj); 587 yearsFilterChoices.push({ 588 'value': '._' + dateObj, 589 'name': dateObj 590 }); 591 592 // Add classes
593 filterClasses.forEach(function(item) { 594 el.addClass(item); 595 }); 596 }); 597 598 // Sort an array of objects asc or desc 599 function sortArrayObjects(array, direction) { 600 if (direction === 'desc') { 601 array.sort(function (a, b) { 602 return a.name < b.name ? 1 : -1; 603 }); 604 } else { 605 array.sort(function (a, b) { 606 return a.name > b.name ? 1 : -1; 607 }); 608 } 609 } 610 611 // Filter choices 612 mediaFilterChoices = [...new Map(mediaFilterChoices.map(item =>[item['name'], item])).values()]; 613 sortArrayObjects(mediaFilterChoices, 'asc'); 614 615 topicsFilterChoices = [...new Map(topicsFilterChoices.map(item =>[item['name'], item])).values()]; 616 sortArrayObjects(topicsFilterChoices, 'asc'); 617 618 yearsFilterChoices = [...new Map(yearsFilterChoices.map(item =>[item['name'], item])).values()]; 619 sortArrayObjects(yearsFilterChoices, 'desc'); 620 621 // Add media choices 622 mediaFilterChoices.forEach(function(item) { 623 mediaField 624 .append('<input type="checkbox" id="' + item['value'].replace(/^\./, "") + '" value="' + item['value'] + '" data-pills="' + item['value'].replace(/^\./, "") + '"/> <label for="' + item['value'].replace(/^\./, "") + '">' + item['name'] + '</label><br>'); 625 }); 626 627 628 // Add topics choices 629 topicsFilterChoices.forEach(function(item) { 630 topicsField 631 .append('<input type="checkbox" id="' + item['value'].replace(/^\./, "") + '" value="' + item['value'] + '" data-pills="' + item['value'].replace(/^\./, "") + '"/> <label for="' + item['value'].replace(/^\./, "") + '">' + item['name'] + '</label><br>'); 632 }); 633 634 635 // Add date choices 636 yearsFilterChoices.forEach(function(item) { 637 yearsField 638 .append('<input type="checkbox" id="' + item['value'].replace(/^\./, "") + '" value="' + item['value'] + '" data-pills="' + item['value'].replace(/^\./, "") + '"/> <label for="' + item['value'].replace(/^\./, "") + '">' + item['name'] + '</label><br>'); 639 }) 640 641 642 // Get checkbox selections and generate pills 643 function generateFilterPills() { 644 $('.filtered-by-tags').hide().empty(); 645 646 $('.mixFilters__fieldset input[type="checkbox"]:checked').each(function(i) { 647 var input = $(this); 648 var label = $(this).next('label'); 649 650 $('.filtered-by-tags').append('<a href="#" class="filter-tag" data-value="' + input.attr('id') + '"><div class="body-text">' + label.text() + '</div><div class="clear-link"></div></a>') 651 }); 652 653 if ($('.filter-tag').length) { 654 $('.filter-by-label').fadeIn(); 655 $('.filtered-by-tags').fadeIn(); 656 clearBtn.fadeIn(); 657 } else { 658 $('.filter-by-label').fadeOut(); 659 clearBtn.fadeOut(); 660 } 661 } 662 663 // Remove filter indicators 664 $(document).on('click', '.filter-tag', function(e) { 665 e.preventDefault(); 666 var id = '#' + $(this).attr('data-value'); 667 $(id).click(); 668 submitBtn.click(); 669 }); 670 671 672 // https://www.bostoen.be/assets/bower_components/mixitup-multifilter/demos/programmatic-filtering-by-url/ 673 var containerEl = document.querySelector('.mix-container'); 674 var targetSelector = '.mix'; 675 var activeHash = ''; 676 677 /** 678 * Deserializes a hash segment (if present) into in an object. 679 * 680 * @return {object|null} 681 */ 682 function deserializeHash() { 683 var hash = window.location.hash.replace(/^#/g, ''); 684 var obj = null; 685 var groups = []; 686 687 if (!hash) return obj; 688 689 obj = {}; 690 groups = hash.split('&'); 691 692 groups.forEach(function(group) { 693 var pair = group.split('='); 694 var groupName = pair[0]; 695 696 obj[groupName] = pair[1].split(','); 697 }); 698 699 return obj; 700 } 701 702 /** 703 * Serializes a groupsState object into a string. 704 * 705 * @param {object} groupsState 706 * @return {string} 707 */ 708 function serializeGroupsState(groupsState) { 709 var output = ''; 710 711 for (var key in groupsState) { 712 var values = groupsState[key]; 713 714 if (!values.length) continue; 715 716 output += key + '='; 717 output += values.join(','); 718 output += '&'; 719 }; 720 721 output = output.replace(/&$/g, ''); 722 723 return output; 724 } 725 726 /** 727 * Constructs a `groupsState` hash object using the 728 * `getFilterGroupSelectors()` API method. 729 * 730 * @return {object} 731 */ 732 function getGroupsState() { 733 // NB: You will need to rename the object keys to match the names of 734 // your project's filter groups â these should match those defined 735 // in your HTML. 736 var groupsState = { 737 media: mixer.getFilterGroupSelectors('media').map(getValueFromSelector), 738 topics: mixer.getFilterGroupSelectors('topics').map(getValueFromSelector), 739 years: mixer.getFilterGroupSelectors('years').map(getValueFromSelector) 740 }; 741 742 return groupsState; 743 } 744 745 /** 746 * Updates the URL hash whenever the current filter changes. 747 * 748 * @param {mixitup.State} state 749 * @return {void} 750 */ 751 function setHash(state) { 752 var selector = state.activeFilter.selector; 753 754 // Construct an object representing the current state of each 755 // filter group 756 var groupsState = getGroupsState(); 757 758 // Create a URL hash string by serializing the groupsState object 759 var newHash = '#' + serializeGroupsState(groupsState); 760 761 if (selector === targetSelector && window.location.hash) { 762 // Equivalent to filter "all", remove the hash= 763 activeHash = ''; 764 765 history.pushState(null, document.title, window.location.pathname); // or `history.replaceState()` 766 } else if (newHash !== window.location.hash && selector !== targetSelector) { 767 // Change the hash 768 activeHash = newHash; 769 770 history.pushState(null, document.title, window.location.pathname + newHash); // or `history.replaceState()` 771 } 772 773 generateFilterPills(); 774 } 775 776 /** 777 * Filters the mixer and updates the multifilter UI using a provided 778 * groupsState object. 779 * 780 * @param {object|null} groupsState 781 * @param {boolean} [animate] 782 * @return {Promise} 783 */ 784 function filterMixerByGroupsState(groupsState, animate) { 785 var media = (groupsState && groupsState.media) ? groupsState.media : []; 786 var topics = (groupsState && groupsState.topics) ? groupsState.topics : []; 787 var years = (groupsState && groupsState.years) ? groupsState.years : []; 788 789 mixer.setFilterGroupSelectors('media', media.map(getSelectorFromValue)); 790 mixer.setFilterGroupSelectors('topics', topics.map(getSelectorFromValue)); 791 mixer.setFilterGroupSelectors('years', years.map(getSelectorFromValue)); 792 793 // Parse the filter groups (passing `false` will perform no animation) 794 return mixer.parseFilterGroups(animate ? true : false); 795 } 796 797 /** 798 * Converts a selector (e.g. '.green') into a simple value (e.g. 'green'). 799 * 800 * @param {string} selector 801 * @return {string} 802 */ 803 function getValueFromSelector(selector) { 804 return selector.replace(/^./, ''); 805 } 806 807 /** 808 * Converts a simple value (e.g. 'green') into a selector (e.g. '.green'). 809 * 810 * @param {string} selector 811 * @return {string} 812 */ 813 function getSelectorFromValue(value) { 814 return '.' + value; 815 } 816 817 var groupsState = deserializeHash(); 818 819 // Instantiate MixItUp 820 var mixer = mixitup(containerEl, { 821 multifilter: { 822 enable: true, 823 parseOn: 'submit' 824 }, 825 animation: { 826 effects: 'fade translateZ(-100px)' 827 }, 828 callbacks: { 829 onMixEnd: setHash // Call the setHash() method at the end of each operation 830 } 831 }); 832 833 if (groupsState) { 834 // If a valid groupsState object is present on page load, filter the mixer 835 filterMixerByGroupsState(groupsState); 836 } 837 838 // Add an "onhashchange" handler to keep the mixer in sync as the user goes 839 // back and forward through their history. 840 841 // NB: This may or may not be the desired behavior for your project. If you don't 842 // want MixItUp operations to count as individual history items, simply use 843 // `history.replaceState()` instead of `history.pushState()` within the `setHash()` 844 // function above. In which case this handler would no longer be neccessary. 845 window.onhashchange = function() { 846 var groupsState = deserializeHash(); 847 var hash = window.location.hash; 848 849 // Compare new hash with active hash 850 if (hash === activeHash) return; // no change 851 852 activeHash = hash; 853 854 filterMixerByGroupsState(groupsState, true); 855 }; 856 })() 857 } // End Filtering 858 }); 859 860 $(function() { 861 $('.current-year').text(new Date().getFullYear()); 862}); 863 864</script>
864 865</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.