this repo has no description
1<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-0.79 docs-doc-page docs-doc-id-pressable" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.0"><title data-rh=true>Pressable · React Native</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true property=og:url content=https://reactnative.dev/docs/pressable><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true property=og:image content=https://reactnative.dev/img/logo-share.png><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true name=twitter:image content=https://reactnative.dev/img/logo-share.png><meta data-rh=true name=twitter:site content=@reactnative><meta data-rh=true name=docusaurus_version content=0.79><meta data-rh=true name=docusaurus_tag content=docs-default-0.79><meta data-rh=true name=docsearch:version content=0.79><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-0.79><meta data-rh=true property=og:title content="Pressable · React Native"><meta data-rh=true name=description content="Pressable is a Core Component wrapper that can detect various stages of press interactions on any of its defined children."><meta data-rh=true property=og:description content="Pressable is a Core Component wrapper that can detect various stages of press interactions on any of its defined children."><link data-rh=true rel=icon href=/img/favicon.ico><link data-rh=true rel=canonical href=https://reactnative.dev/docs/pressable><link data-rh=true rel=alternate href=https://reactnative.dev/docs/pressable hreflang=en><link data-rh=true rel=alternate href=https://reactnative.dev/docs/pressable hreflang=x-default><link data-rh=true rel=preconnect href=https://8TDSE0OHGQ-dsn.algolia.net crossorigin=anonymous><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="React Native RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="React Native Atom Feed"><link rel=alternate type=application/json href=/blog/feed.json title="React Native JSON Feed"><link rel=preconnect href=https://www.google-analytics.com><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-41298772-2","auto"),ga("send","pageview")</script><script async src=https://www.google-analytics.com/analytics.js></script><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-58L13S6BDP"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-58L13S6BDP",{})</script><link rel=search type=application/opensearchdescription+xml title="React Native" href=/opensearch.xml><link rel=icon href=/img/pwa/manifest-icon-512.png><link rel=manifest href=/manifest.json><meta name=theme-color content=#20232a><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=#20232a><link rel=apple-touch-icon href=/img/pwa/manifest-icon-512.png><link rel=mask-icon href=/img/pwa/manifest-icon-512.png color=#06bcee><meta name=msapplication-TileImage href=/img/pwa/manifest-icon-512.png><meta name=msapplication-TileColor content=#20232a><script src=https://cdn.jsdelivr.net/npm/focus-visible@5.2.0/dist/focus-visible.min.js defer></script><script src=https://widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgd8ryO5qrZo8Exadq9qmt1wtm4_2FdZGEAKHDFEt_2BBlwwM4.js defer></script><script src=https://snack.expo.dev/embed.js defer></script><script src=https://platform.twitter.com/widgets.js async></script><link rel=stylesheet href=/assets/css/styles.883cb042.css><script src=/assets/js/runtime~main.8ac1e6f0.js defer></script><script src=/assets/js/main.341783f5.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
2<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
3</defs></svg>
4<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_oPtH href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><div class="theme-announcement-bar announcementBar_zJRd" style=background-color:#20232a;color:#fff role=banner><div class="content_bSb_ announcementBarContent_t7IR">Join us for React Conf on Oct 7-8. <a target=_blank rel="noopener noreferrer" href=https://conf.react.dev>Learn more</a>.</div></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbar--dark"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/header_logo.svg alt="React Native" class="themedComponent_siVc themedComponent--light_hHel"><img src=/img/header_logo.svg alt="React Native" class="themedComponent_siVc themedComponent--dark_yETr"></div><b class="navbar__title text--truncate">React Native</b></a><div class="navbar__item dropdown dropdown--hoverable"><a class=navbar__link aria-haspopup=true aria-expanded=false role=button href=/docs/pressable>0.79</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/next/pressable>Next</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/pressable>0.79</a><li><a class=dropdown__link href=/docs/0.78/pressable>0.78</a><li><a class=dropdown__link href=/docs/0.77/pressable>0.77</a><li><a class=dropdown__link href=/docs/0.76/pressable>0.76</a><li><a class=dropdown__link href=/docs/0.75/pressable>0.75</a><li><a class=dropdown__link href=/docs/0.74/pressable>0.74</a><li><a class=dropdown__link href=/docs/0.73/pressable>0.73</a><li><a class=dropdown__link href=/docs/0.72/pressable>0.72</a><li><a class=dropdown__link href=/docs/0.71/pressable>0.71</a><li><a class=dropdown__link href=/docs/0.70/pressable>0.70</a><li><a class=dropdown__link href=/versions>All versions</a></ul></div></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>Development</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/getting-started>Guides</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/components-and-apis>Components</a><li><a class=dropdown__link href=/docs/accessibilityinfo>APIs</a><li><a class=dropdown__link href=/architecture/overview>Architecture</a></ul></div><a class="navbar__item navbar__link" href=/contributing/overview>Contributing</a><a class="navbar__item navbar__link" href=/community/overview>Community</a><a class="navbar__item navbar__link" href=/showcase>Showcase</a><a class="navbar__item navbar__link" href=/blog>Blog</a><a href=https://github.com/facebook/react-native target=_blank rel="noopener noreferrer" class="navbar__item navbar__link navbar-github-link" aria-label="GitHub repository"></a><div class="toggle_ki11 colorModeToggle_Hewu"><button class="clean-btn toggleButton_MMFG toggleButtonDisabled_Uw7m darkNavbarColorModeToggle_m8pZ" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ lightToggleIcon_lgto"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ darkToggleIcon_U96C"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ systemToggleIcon_E5c0"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_bzqh><button type=button class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class=DocSearch-Button-Container><svg width=20 height=20 class=DocSearch-Search-Icon viewBox="0 0 20 20" aria-hidden=true><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke=currentColor fill=none fill-rule=evenodd stroke-linecap=round stroke-linejoin=round /></svg><span class=DocSearch-Button-Placeholder>Search</span></span><span class=DocSearch-Button-Keys></span></button></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_MB5r"><div class=docsWrapper__sE8><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_iEvu" type=button></button><div class=docRoot_DfVB><aside class="theme-doc-sidebar-container docSidebarContainer_c7NB"><div class=sidebarViewport_KYo0><div class=sidebar_CUen><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_jmj1 menuWithAnnouncementBar_YufC"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/docs/components-and-apis>Core Components</a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/components-and-apis>Core Components and APIs</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/activityindicator>ActivityIndicator</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/button>Button</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/flatlist>FlatList</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/image>Image</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/imagebackground>ImageBackground</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/keyboardavoidingview>KeyboardAvoidingView</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/modal>Modal</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/pressable>Pressable</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/refreshcontrol>RefreshControl</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/scrollview>ScrollView</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/sectionlist>SectionList</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/statusbar>StatusBar</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/switch>Switch</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/text>Text</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/textinput>TextInput</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/touchablehighlight>TouchableHighlight</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/touchableopacity>TouchableOpacity</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/touchablewithoutfeedback>TouchableWithoutFeedback</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/view>View</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/virtualizedlist>VirtualizedList</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true tabindex=0 href=/docs/drawerlayoutandroid>Android Components</a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/drawerlayoutandroid>DrawerLayoutAndroid</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/touchablenativefeedback>TouchableNativeFeedback</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true tabindex=0 href=/docs/inputaccessoryview>iOS Components</a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/inputaccessoryview>InputAccessoryView</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/safeareaview>SafeAreaView</a></ul></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/image-style-props>Props</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/boxshadowvalue>Object Types</a></div></ul></nav></div></div></aside><main class=docMainContainer_a9sJ><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_Qr34"><div class=docItemContainer_tjFy><article><div class="tocCollapsible_wXna theme-doc-toc-mobile tocMobile_Ojys"><button type=button class="clean-btn tocCollapsibleButton_iI2p">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Pressable</h1></header><p>Pressable is a Core Component wrapper that can detect various stages of press interactions on any of its defined children.</p>
5<div class="language-tsx codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>tsx</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-tsx codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token tag punctuation" style=color:#657b83><</span><span class="token tag class-name" style=color:#fac863>Pressable</span><span class="token tag" style=color:#fc929e> </span><span class="token tag attr-name" style=color:#c5a5c5>onPress</span><span class="token tag script language-javascript script-punctuation punctuation" style=color:#657b83>=</span><span class="token tag script language-javascript punctuation" style=color:#657b83>{</span><span class="token tag script language-javascript" style=color:#fc929e>onPressFunction</span><span class="token tag script language-javascript punctuation" style=color:#657b83>}</span><span class="token tag punctuation" style=color:#657b83>></span><span class="token plain-text"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain-text"> </span><span class="token tag punctuation" style=color:#657b83><</span><span class="token tag class-name" style=color:#fac863>Text</span><span class="token tag punctuation" style=color:#657b83>></span><span class="token plain-text">I'm pressable!</span><span class="token tag punctuation" style=color:#657b83></</span><span class="token tag class-name" style=color:#fac863>Text</span><span class="token tag punctuation" style=color:#657b83>></span><span class="token plain-text"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain-text"></span><span class="token tag punctuation" style=color:#657b83></</span><span class="token tag class-name" style=color:#fac863>Pressable</span><span class="token tag punctuation" style=color:#657b83>></span><br></span></code></pre></div></div>
6<h2 class="anchor anchorWithStickyNavbar_JmGV" id=how-it-works>How it works<a href=#how-it-works class=hash-link aria-label="Direct link to How it works" title="Direct link to How it works"></a></h2>
7<p>On an element wrapped by <code>Pressable</code>:</p>
8<ul>
9<li><a href=#onpressin><code>onPressIn</code></a> is called when a press is activated.</li>
10<li><a href=#onpressout><code>onPressOut</code></a> is called when the press gesture is deactivated.</li>
11</ul>
12<p>After pressing <a href=#onpressin><code>onPressIn</code></a>, one of two things will happen:</p>
13<ol>
14<li>The person will remove their finger, triggering <a href=#onpressout><code>onPressOut</code></a> followed by <a href=#onpress><code>onPress</code></a>.</li>
15<li>If the person leaves their finger longer than 500 milliseconds before removing it, <a href=#onlongpress><code>onLongPress</code></a> is triggered. (<a href=#onpressout><code>onPressOut</code></a> will still fire when they remove their finger.)</li>
16</ol>
17<img src=/docs/assets/d_pressable_pressing.svg width=1000 alt="Diagram of the onPress events in sequence.">
18<p>Fingers are not the most precise instruments, and it is common for users to accidentally activate the wrong element or miss the activation area. To help, <code>Pressable</code> has an optional <code>HitRect</code> you can use to define how far a touch can register away from the wrapped element. Presses can start anywhere within a <code>HitRect</code>.</p>
19<p><code>PressRect</code> allows presses to move beyond the element and its <code>HitRect</code> while maintaining activation and being eligible for a "press"—think of sliding your finger slowly away from a button you're pressing down on.</p>
20<blockquote>
21<p>The touch area never extends past the parent view bounds and the Z-index of sibling views always takes precedence if a touch hits two overlapping views.</p>
22</blockquote>
23<figure><img src=/docs/assets/d_pressable_anatomy.svg width=1000 alt="Diagram of HitRect and PressRect and how they work."><figcaption><p>You can set <code>HitRect</code> with <code>hitSlop</code> and set <code>PressRect</code> with <code>pressRetentionOffset</code>.</figcaption></figure>
24<blockquote>
25<p><code>Pressable</code> uses React Native's <code>Pressability</code> API. For more information around the state machine flow of Pressability and how it works, check out the implementation for <a href=https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Pressability/Pressability.js#L350 target=_blank rel="noopener noreferrer">Pressability</a>.</p>
26</blockquote>
27<h2 class="anchor anchorWithStickyNavbar_JmGV" id=example>Example<a href=#example class=hash-link aria-label="Direct link to Example" title="Direct link to Example"></a></h2>
28<div class=snack-player data-snack-name=Pressable data-snack-description="Example usage" data-snack-files="%7B%22App.tsx%22%3A%7B%22type%22%3A%22CODE%22%2C%22contents%22%3A%22import%20React%2C%20%7BuseState%7D%20from%20'react'%3B%5Cnimport%20%7BPressable%2C%20StyleSheet%2C%20Text%2C%20View%7D%20from%20'react-native'%3B%5Cnimport%20%7BSafeAreaView%2C%20SafeAreaProvider%7D%20from%20'react-native-safe-area-context'%3B%5Cn%5Cnconst%20App%20%3D%20()%20%3D%3E%20%7B%5Cn%20%20const%20%5BtimesPressed%2C%20setTimesPressed%5D%20%3D%20useState(0)%3B%5Cn%5Cn%20%20let%20textLog%20%3D%20''%3B%5Cn%20%20if%20(timesPressed%20%3E%201)%20%7B%5Cn%20%20%20%20textLog%20%3D%20timesPressed%20%2B%20'x%20onPress'%3B%5Cn%20%20%7D%20else%20if%20(timesPressed%20%3E%200)%20%7B%5Cn%20%20%20%20textLog%20%3D%20'onPress'%3B%5Cn%20%20%7D%5Cn%5Cn%20%20return%20(%5Cn%20%20%20%20%3CSafeAreaProvider%3E%5Cn%20%20%20%20%20%20%3CSafeAreaView%20style%3D%7Bstyles.container%7D%3E%5Cn%20%20%20%20%20%20%20%20%3CPressable%5Cn%20%20%20%20%20%20%20%20%20%20onPress%3D%7B()%20%3D%3E%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20setTimesPressed(current%20%3D%3E%20current%20%2B%201)%3B%5Cn%20%20%20%20%20%20%20%20%20%20%7D%7D%5Cn%20%20%20%20%20%20%20%20%20%20style%3D%7B(%7Bpressed%7D)%20%3D%3E%20%5B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20backgroundColor%3A%20pressed%20%3F%20'rgb(210%2C%20230%2C%20255)'%20%3A%20'white'%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20styles.wrapperCustom%2C%5Cn%20%20%20%20%20%20%20%20%20%20%5D%7D%3E%5Cn%20%20%20%20%20%20%20%20%20%20%7B(%7Bpressed%7D)%20%3D%3E%20(%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3CText%20style%3D%7Bstyles.text%7D%3E%7Bpressed%20%3F%20'Pressed!'%20%3A%20'Press%20Me'%7D%3C%2FText%3E%5Cn%20%20%20%20%20%20%20%20%20%20)%7D%5Cn%20%20%20%20%20%20%20%20%3C%2FPressable%3E%5Cn%20%20%20%20%20%20%20%20%3CView%20style%3D%7Bstyles.logBox%7D%3E%5Cn%20%20%20%20%20%20%20%20%20%20%3CText%20testID%3D%5C%22pressable_press_console%5C%22%3E%7BtextLog%7D%3C%2FText%3E%5Cn%20%20%20%20%20%20%20%20%3C%2FView%3E%5Cn%20%20%20%20%20%20%3C%2FSafeAreaView%3E%5Cn%20%20%20%20%3C%2FSafeAreaProvider%3E%5Cn%20%20)%3B%5Cn%7D%3B%5Cn%5Cnconst%20styles%20%3D%20StyleSheet.create(%7B%5Cn%20%20container%3A%20%7B%5Cn%20%20%20%20flex%3A%201%2C%5Cn%20%20%20%20justifyContent%3A%20'center'%2C%5Cn%20%20%7D%2C%5Cn%20%20text%3A%20%7B%5Cn%20%20%20%20fontSize%3A%2016%2C%5Cn%20%20%7D%2C%5Cn%20%20wrapperCustom%3A%20%7B%5Cn%20%20%20%20borderRadius%3A%208%2C%5Cn%20%20%20%20padding%3A%206%2C%5Cn%20%20%7D%2C%5Cn%20%20logBox%3A%20%7B%5Cn%20%20%20%20padding%3A%2020%2C%5Cn%20%20%20%20margin%3A%2010%2C%5Cn%20%20%20%20borderWidth%3A%20StyleSheet.hairlineWidth%2C%5Cn%20%20%20%20borderColor%3A%20'%23f0f0f0'%2C%5Cn%20%20%20%20backgroundColor%3A%20'%23f9f9f9'%2C%5Cn%20%20%7D%2C%5Cn%7D)%3B%5Cn%5Cnexport%20default%20App%3B%22%7D%7D" data-snack-dependencies=react-native-safe-area-context data-snack-platform=web data-snack-supported-platforms=ios,android,web data-snack-theme=light data-snack-preview=true data-snack-loading=lazy data-snack-device-frame=false></div>
29<h2 class="anchor anchorWithStickyNavbar_JmGV" id=props>Props<a href=#props class=hash-link aria-label="Direct link to Props" title="Direct link to Props"></a></h2>
30<h3 class="anchor anchorWithStickyNavbar_JmGV" id=android_disablesound-android><code>android_disableSound</code> <div class="label android">Android</div><a href=#android_disablesound-android class=hash-link aria-label="Direct link to android_disablesound-android" title="Direct link to android_disablesound-android"></a></h3>
31<p>If true, doesn't play Android system sound on press.</p>
32<table><thead><tr><th>Type<th>Default<tbody><tr><td>boolean<td><code>false</code></table>
33<h3 class="anchor anchorWithStickyNavbar_JmGV" id=android_ripple-android><code>android_ripple</code> <div class="label android">Android</div><a href=#android_ripple-android class=hash-link aria-label="Direct link to android_ripple-android" title="Direct link to android_ripple-android"></a></h3>
34<p>Enables the Android ripple effect and configures its properties.</p>
35<table><thead><tr><th>Type<tbody><tr><td><a href=/docs/pressable#rippleconfig>RippleConfig</a></table>
36<h3 class="anchor anchorWithStickyNavbar_JmGV" id=children><code>children</code><a href=#children class=hash-link aria-label="Direct link to children" title="Direct link to children"></a></h3>
37<p>Either children or a function that receives a boolean reflecting whether the component is currently pressed.</p>
38<table><thead><tr><th>Type<tbody><tr><td><a href=/docs/react-node>React Node</a></table>
39<h3 class="anchor anchorWithStickyNavbar_JmGV" id=unstable_pressdelay><code>unstable_pressDelay</code><a href=#unstable_pressdelay class=hash-link aria-label="Direct link to unstable_pressdelay" title="Direct link to unstable_pressdelay"></a></h3>
40<p>Duration (in milliseconds) to wait after press down before calling <code>onPressIn</code>.</p>
41<table><thead><tr><th>Type<tbody><tr><td>number</table>
42<h3 class="anchor anchorWithStickyNavbar_JmGV" id=delaylongpress><code>delayLongPress</code><a href=#delaylongpress class=hash-link aria-label="Direct link to delaylongpress" title="Direct link to delaylongpress"></a></h3>
43<p>Duration (in milliseconds) from <code>onPressIn</code> before <code>onLongPress</code> is called.</p>
44<table><thead><tr><th>Type<th>Default<tbody><tr><td>number<td><code>500</code></table>
45<h3 class="anchor anchorWithStickyNavbar_JmGV" id=disabled><code>disabled</code><a href=#disabled class=hash-link aria-label="Direct link to disabled" title="Direct link to disabled"></a></h3>
46<p>Whether the press behavior is disabled.</p>
47<table><thead><tr><th>Type<th>Default<tbody><tr><td>boolean<td><code>false</code></table>
48<h3 class="anchor anchorWithStickyNavbar_JmGV" id=hitslop><code>hitSlop</code><a href=#hitslop class=hash-link aria-label="Direct link to hitslop" title="Direct link to hitslop"></a></h3>
49<p>Sets additional distance outside of element in which a press can be detected.</p>
50<table><thead><tr><th>Type<tbody><tr><td><a href=/docs/rect>Rect</a> or number</table>
51<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onhoverin><code>onHoverIn</code><a href=#onhoverin class=hash-link aria-label="Direct link to onhoverin" title="Direct link to onhoverin"></a></h3>
52<p>Called when the hover is activated to provide visual feedback.</p>
53<table><thead><tr><th>Type<tbody><tr><td><code>({ nativeEvent: <a href=https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent target=_blank rel="noopener noreferrer">MouseEvent</a> }) => void</code></table>
54<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onhoverout><code>onHoverOut</code><a href=#onhoverout class=hash-link aria-label="Direct link to onhoverout" title="Direct link to onhoverout"></a></h3>
55<p>Called when the hover is deactivated to undo visual feedback.</p>
56<table><thead><tr><th>Type<tbody><tr><td><code>({ nativeEvent: <a href=https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent target=_blank rel="noopener noreferrer">MouseEvent</a> }) => void</code></table>
57<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onlongpress><code>onLongPress</code><a href=#onlongpress class=hash-link aria-label="Direct link to onlongpress" title="Direct link to onlongpress"></a></h3>
58<p>Called if the time after <code>onPressIn</code> lasts longer than 500 milliseconds. This time period can be customized with <a href=#delaylongpress><code>delayLongPress</code></a>.</p>
59<table><thead><tr><th>Type<tbody><tr><td><code>({nativeEvent: <a href=/docs/pressevent>PressEvent</a>}) => void</code></table>
60<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onpress><code>onPress</code><a href=#onpress class=hash-link aria-label="Direct link to onpress" title="Direct link to onpress"></a></h3>
61<p>Called after <code>onPressOut</code>.</p>
62<table><thead><tr><th>Type<tbody><tr><td><code>({nativeEvent: <a href=/docs/pressevent>PressEvent</a>}) => void</code></table>
63<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onpressin><code>onPressIn</code><a href=#onpressin class=hash-link aria-label="Direct link to onpressin" title="Direct link to onpressin"></a></h3>
64<p>Called immediately when a touch is engaged, before <code>onPressOut</code> and <code>onPress</code>.</p>
65<table><thead><tr><th>Type<tbody><tr><td><code>({nativeEvent: <a href=/docs/pressevent>PressEvent</a>}) => void</code></table>
66<h3 class="anchor anchorWithStickyNavbar_JmGV" id=onpressout><code>onPressOut</code><a href=#onpressout class=hash-link aria-label="Direct link to onpressout" title="Direct link to onpressout"></a></h3>
67<p>Called when a touch is released.</p>
68<table><thead><tr><th>Type<tbody><tr><td><code>({nativeEvent: <a href=/docs/pressevent>PressEvent</a>}) => void</code></table>
69<h3 class="anchor anchorWithStickyNavbar_JmGV" id=pressretentionoffset><code>pressRetentionOffset</code><a href=#pressretentionoffset class=hash-link aria-label="Direct link to pressretentionoffset" title="Direct link to pressretentionoffset"></a></h3>
70<p>Additional distance outside of this view in which a touch is considered a press before <code>onPressOut</code> is triggered.</p>
71<table><thead><tr><th>Type<th>Default<tbody><tr><td><a href=/docs/rect>Rect</a> or number<td><code>{bottom: 30, left: 20, right: 20, top: 20}</code></table>
72<h3 class="anchor anchorWithStickyNavbar_JmGV" id=style><code>style</code><a href=#style class=hash-link aria-label="Direct link to style" title="Direct link to style"></a></h3>
73<p>Either view styles or a function that receives a boolean reflecting whether the component is currently pressed and returns view styles.</p>
74<table><thead><tr><th>Type<tbody><tr><td><a href=/docs/view-style-props>View Style</a> or <code>({ pressed: boolean }) => <a href=/docs/view-style-props>View Style</a></code></table>
75<h3 class="anchor anchorWithStickyNavbar_JmGV" id=testonly_pressed><code>testOnly_pressed</code><a href=#testonly_pressed class=hash-link aria-label="Direct link to testonly_pressed" title="Direct link to testonly_pressed"></a></h3>
76<p>Used only for documentation or testing (e.g. snapshot testing).</p>
77<table><thead><tr><th>Type<th>Default<tbody><tr><td>boolean<td><code>false</code></table>
78<h2 class="anchor anchorWithStickyNavbar_JmGV" id=type-definitions>Type Definitions<a href=#type-definitions class=hash-link aria-label="Direct link to Type Definitions" title="Direct link to Type Definitions"></a></h2>
79<h3 class="anchor anchorWithStickyNavbar_JmGV" id=rippleconfig>RippleConfig<a href=#rippleconfig class=hash-link aria-label="Direct link to RippleConfig" title="Direct link to RippleConfig"></a></h3>
80<p>Ripple effect configuration for the <code>android_ripple</code> property.</p>
81<table><thead><tr><th>Type<tbody><tr><td>object</table>
82<p><strong>Properties:</strong></p>
83<table><thead><tr><th>Name<th>Type<th>Required<th>Description<tbody><tr><td>color<td><a href=/docs/colors>color</a><td>No<td>Defines the color of the ripple effect.<tr><td>borderless<td>boolean<td>No<td>Defines if ripple effect should not include border.<tr><td>radius<td>number<td>No<td>Defines the radius of the ripple effect.<tr><td>foreground<td>boolean<td>No<td>Set to true to add the ripple effect to the foreground of the view, instead of the background. This is useful if one of your child views has a background of its own, or you're e.g. displaying images, and you don't want the ripple to be covered by them.</table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class=editButtons_t0bR><a href=https://github.com/facebook/react-native-website/edit/main/docs/pressable.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_bHB7 aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit page for next release</a><a href=https://github.com/facebook/react-native-website/edit/main/website/versioned_docs/version-0.79/pressable.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_bHB7 aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit page for current release</a></div><div class=lastUpdated_VsjB><span class=theme-last-updated>Last updated<!-- --> on <b><time datetime=2025-04-14T14:14:17.000Z itemprop=dateModified>Apr 14, 2025</time></b></span></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/modal><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Modal</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/refreshcontrol><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>RefreshControl</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_XG6w thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#how-it-works class="table-of-contents__link toc-highlight">How it works</a><li><a href=#example class="table-of-contents__link toc-highlight">Example</a><li><a href=#props class="table-of-contents__link toc-highlight">Props</a><ul><li><a href=#android_disablesound-android class="table-of-contents__link toc-highlight"><code>android_disableSound</code> <div class="label android">Android</div></a><li><a href=#android_ripple-android class="table-of-contents__link toc-highlight"><code>android_ripple</code> <div class="label android">Android</div></a><li><a href=#children class="table-of-contents__link toc-highlight"><code>children</code></a><li><a href=#unstable_pressdelay class="table-of-contents__link toc-highlight"><code>unstable_pressDelay</code></a><li><a href=#delaylongpress class="table-of-contents__link toc-highlight"><code>delayLongPress</code></a><li><a href=#disabled class="table-of-contents__link toc-highlight"><code>disabled</code></a><li><a href=#hitslop class="table-of-contents__link toc-highlight"><code>hitSlop</code></a><li><a href=#onhoverin class="table-of-contents__link toc-highlight"><code>onHoverIn</code></a><li><a href=#onhoverout class="table-of-contents__link toc-highlight"><code>onHoverOut</code></a><li><a href=#onlongpress class="table-of-contents__link toc-highlight"><code>onLongPress</code></a><li><a href=#onpress class="table-of-contents__link toc-highlight"><code>onPress</code></a><li><a href=#onpressin class="table-of-contents__link toc-highlight"><code>onPressIn</code></a><li><a href=#onpressout class="table-of-contents__link toc-highlight"><code>onPressOut</code></a><li><a href=#pressretentionoffset class="table-of-contents__link toc-highlight"><code>pressRetentionOffset</code></a><li><a href=#style class="table-of-contents__link toc-highlight"><code>style</code></a><li><a href=#testonly_pressed class="table-of-contents__link toc-highlight"><code>testOnly_pressed</code></a></ul><li><a href=#type-definitions class="table-of-contents__link toc-highlight">Type Definitions</a><ul><li><a href=#rippleconfig class="table-of-contents__link toc-highlight">RippleConfig</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Develop</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/getting-started>Guides</a><li class=footer__item><a class=footer__link-item href=/docs/components-and-apis>Components</a><li class=footer__item><a class=footer__link-item href=/docs/accessibilityinfo>APIs</a><li class=footer__item><a class=footer__link-item href=/architecture/overview>Architecture</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Participate</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/showcase>Showcase</a><li class=footer__item><a class=footer__link-item href=/contributing/overview>Contributing</a><li class=footer__item><a class=footer__link-item href=/community/overview>Community</a><li class=footer__item><a href=https://reactnative.directory/ target=_blank rel="noopener noreferrer" class=footer__link-item>Directory<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://stackoverflow.com/questions/tagged/react-native target=_blank rel="noopener noreferrer" class=footer__link-item>Stack Overflow<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Find us</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://x.com/reactnative target=_blank rel="noopener noreferrer" class=footer__link-item>X<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://bsky.app/profile/reactnative.dev target=_blank rel="noopener noreferrer" class=footer__link-item>Bluesky<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://github.com/facebook/react-native target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Explore More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://react.dev/ target=_blank rel="noopener noreferrer" class=footer__link-item>ReactJS<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://opensource.fb.com/legal/privacy/ target=_blank rel="noopener noreferrer" class=footer__link-item>Privacy Policy<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://opensource.fb.com/legal/terms/ target=_blank rel="noopener noreferrer" class=footer__link-item>Terms of Service<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=margin-bottom--sm><a href=https://opensource.fb.com/ rel="noopener noreferrer" class=footerLogoLink_tutC><img src=/img/oss_logo.svg alt="Meta Open Source Logo" class="footer__logo themedComponent_siVc themedComponent--light_hHel"><img src=/img/oss_logo.svg alt="Meta Open Source Logo" class="footer__logo themedComponent_siVc themedComponent--dark_yETr"></a></div><div class=footer__copyright>Copyright © 2025 Meta Platforms, Inc.</div></div></div></footer></div>