Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Want to help improve the documentation? That would be so very much appreciated. Some information on that below.

Philosophy of documentation

  • Document the ugly parts as much as the good parts. It's better for users to know that we don't have a good solution to the problem they have and get the preferred workarounds from us than have to scour the dark and moist corners of StackOverflow.
  • Provide runnable examples where possible. Learning through interacting with the code is a reason why REPLs are so popular. Thanks to Snack we can provide the same kind of experience for React Navigation users too.
  • Be honest about the tradeoffs and limitations. We explain the pitch and anti-pitch of React Navigation and provide alternative libraries if React Navigation might not be a good fit. We should provide a similar level of honesty at finer levels of granularity as well.

Things anyone can do

Run it locally

  1. Clone the repository
  2. Run yarn
  3. yarn start

Make changes

  • Each documentation version of react-navigation is generated by the markdown files located in versioned_docs. Change them and refresh the page when running the documentation locally and you will see the changes reflected.
  • If you want to add a new page, you need to add it to the corresponding sidebars.json file and then restart the server.

Things you need to be a collaborator to do

Deployment is done automatically via Github Actions. Normally you shouldn't need to do these.

Download the latest translations

  • Configure CROWDIN_DOCUSAURUS_PROJECT_ID and CROWDIN_DOCUSAURUS_API_KEY environment variables (ask @brentvatne if you need access).
  • Run yarn crowdin-upload and then yarn crowdin-download

Update the sponsors list

  • Create a Github "Personal Access Token" here and set the read:org scope on it.
  • Set the environment variable REACT_NAV_GITHUB_TOKEN to that value.
  • Run yarn fetch-sponsors.
  • Commit the updated sponsors.js file.

Deploy it

Before deploying, be sure to download the latest translations!

Only collaborators on this repository can deploy. Run the following command from the main branch:

GIT_USER=<Your GitHub username> \
CURRENT_BRANCH=main \
USE_SSH=true \
yarn deploy

About

Home of the documentation and other miscellanea

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages