diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md
index 28bcda1881..6d8363aa98 100644
--- a/CONTRIBUTE.md
+++ b/CONTRIBUTE.md
@@ -73,7 +73,7 @@ navbar: {
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
- href: '/welcome/arbitrum-gentle-introduction',
+ href: '/get-started/arbitrum-introduction',
},
items: [
// note: we can uncomment this when we want to display the locale dropdown in the top navbar
@@ -119,10 +119,9 @@ Every document should be a specific _type_ of document. Each type of document ha
This isn't an exhaustive list, but it includes most of the document types that we use.
-
:::info About Promotional Content
-While it is acceptable to include conceptual and how-to content that links to products, services, and protocols in the third party section, we do not accept promotional content in our core docs.
+While it is acceptable to include conceptual and how-to content that links to products, services, and protocols in the third party section, we do not accept promotional content in our core docs.
Feature pieces that are primarily promotional and do not provide actionable guidance to readers are not accepted as third-party docs, either.
diff --git a/docs/build-decentralized-apps/01-quickstart-solidity-remix.mdx b/docs/build-decentralized-apps/01-quickstart-solidity-remix.mdx
index 9874a92831..29adb8c9e3 100644
--- a/docs/build-decentralized-apps/01-quickstart-solidity-remix.mdx
+++ b/docs/build-decentralized-apps/01-quickstart-solidity-remix.mdx
@@ -1,9 +1,11 @@
---
-title: 'Quickstart: Build a decentralized app (Solidity)'
+title: 'Build a decentralized app with Solidity (Quickstart)'
description: This quickstart walks you through the process of converting a Javascript vending machine's business logic into a Solidity smart contract. We'll then deploy the smart contract to a local Anvil/Foundry network, then Arbitrum Sepolia testnet, and finally Arbitrum One mainnet.
author: symbolpunk
user_story: As a web2 developer, I want to onboard into Arbitrum by building and deploying my first smart contract, and knowing how to build a web widget interacting with it.
content_type: quickstart
+slug: /build-decentralized-apps/quickstart-solidity-remix
+displayed_sidebar: buildAppsSidebar
---
import { VanillaAdmonition } from '@site/src/components/VanillaAdmonition/';
diff --git a/docs/build-decentralized-apps/02-how-to-estimate-gas.mdx b/docs/build-decentralized-apps/02-how-to-estimate-gas.mdx
index a5d6ad3aa9..0f7f93b980 100644
--- a/docs/build-decentralized-apps/02-how-to-estimate-gas.mdx
+++ b/docs/build-decentralized-apps/02-how-to-estimate-gas.mdx
@@ -3,6 +3,7 @@ title: 'How to estimate gas in Arbitrum'
description: Learn how to estimate gas before submitting transactions.
author: TucksonDev
content_type: how-to
+displayed_sidebar: buildAppsSidebar
---
:::info Looking for Stylus guidance?
diff --git a/docs/build-decentralized-apps/03-public-chains.mdx b/docs/build-decentralized-apps/03-public-chains.mdx
index ff7dbe471c..46912181bc 100644
--- a/docs/build-decentralized-apps/03-public-chains.mdx
+++ b/docs/build-decentralized-apps/03-public-chains.mdx
@@ -3,6 +3,7 @@ title: 'Arbitrum chains overview'
description: A high level description of the Arbitrum chains available
user_story: As a developer, I want to understand the different Arbitrum chains and how they relate to each other.
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
import { AddressExplorerLink as AEL } from '@site/src/components/AddressExplorerLink';
diff --git a/docs/build-decentralized-apps/04-cross-chain-messaging.mdx b/docs/build-decentralized-apps/04-cross-chain-messaging.mdx
index c3edf35e81..a9e53218d8 100644
--- a/docs/build-decentralized-apps/04-cross-chain-messaging.mdx
+++ b/docs/build-decentralized-apps/04-cross-chain-messaging.mdx
@@ -3,6 +3,7 @@ title: 'Cross-chain messaging overview'
description: Learn about cross-chain messaging in Arbitrum
user_story: As a developer, I want to understand how cross-chain messaging works in Arbitrum.
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
The Arbitrum protocol and related tooling makes it easy for developers to build cross-chain applications; i.e., applications that involve sending messages from Ethereum to an Arbitrum chain, and/or from an Arbitrum chain to Ethereum.
diff --git a/docs/build-decentralized-apps/arbitrum-vs-ethereum/01-comparison-overview.mdx b/docs/build-decentralized-apps/arbitrum-vs-ethereum/01-comparison-overview.mdx
index 095ec44da1..bdc949749a 100644
--- a/docs/build-decentralized-apps/arbitrum-vs-ethereum/01-comparison-overview.mdx
+++ b/docs/build-decentralized-apps/arbitrum-vs-ethereum/01-comparison-overview.mdx
@@ -6,6 +6,7 @@ author: jose-franco
sme: jose-franco
target_audience: developers who want to build on Arbitrum
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
Arbitrum's design is to be as compatible and consistent with Ethereum as possible, from its high-level RPCs to its low-level bytecode and everything in between. Decentralized app (dApp) developers with experience building on Ethereum will likely find that little to no new specific knowledge is required to build on Arbitrum.
diff --git a/docs/build-decentralized-apps/arbitrum-vs-ethereum/02-block-numbers-and-time.mdx b/docs/build-decentralized-apps/arbitrum-vs-ethereum/02-block-numbers-and-time.mdx
index a3ca05db76..c2f81883bf 100644
--- a/docs/build-decentralized-apps/arbitrum-vs-ethereum/02-block-numbers-and-time.mdx
+++ b/docs/build-decentralized-apps/arbitrum-vs-ethereum/02-block-numbers-and-time.mdx
@@ -6,6 +6,7 @@ author: dzgoldman, jose-franco
sme: jose-franco
target_audience: developers who want to build on Arbitrum
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
:::info block number vs `block.number`
diff --git a/docs/build-decentralized-apps/arbitrum-vs-ethereum/03-rpc-methods.mdx b/docs/build-decentralized-apps/arbitrum-vs-ethereum/03-rpc-methods.mdx
index dde8b682b0..606a93e2ba 100644
--- a/docs/build-decentralized-apps/arbitrum-vs-ethereum/03-rpc-methods.mdx
+++ b/docs/build-decentralized-apps/arbitrum-vs-ethereum/03-rpc-methods.mdx
@@ -5,6 +5,7 @@ description: This concept page provides information about the differences betwee
target_audience: developers who want to build on Arbitrum
author: dzgoldman
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
Although the majority of RPC methods follow the same behavior as in Ethereum, some methods may produce a different result or add more information when used on an Arbitrum chain. This page covers the differences in response body fields you'll find when calling RPC methods on an Arbitrum chain vs on Ethereum.
diff --git a/docs/build-decentralized-apps/arbitrum-vs-ethereum/04-solidity-support.mdx b/docs/build-decentralized-apps/arbitrum-vs-ethereum/04-solidity-support.mdx
index 13f144dfe1..e74671e3a9 100644
--- a/docs/build-decentralized-apps/arbitrum-vs-ethereum/04-solidity-support.mdx
+++ b/docs/build-decentralized-apps/arbitrum-vs-ethereum/04-solidity-support.mdx
@@ -5,6 +5,7 @@ description: This concept page provides information about the differences betwee
target_audience: developers who want to build on Arbitrum
author: dzgoldman
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
Arbitrum chains are Ethereum-compatible and, therefore, allow you to trustlessly deploy Solidity smart contracts, as well as contracts written in Vyper or any other language that compiles to EVM bytecode. However, when calling certain properties and functions on a Solidity smart contract, there are some differences between the result you'd obtain if that contract were on Ethereum and the result on Arbitrum.
diff --git a/docs/build-decentralized-apps/custom-gas-token-sdk.mdx b/docs/build-decentralized-apps/custom-gas-token-sdk.mdx
index f3c788cb65..069bae5e05 100644
--- a/docs/build-decentralized-apps/custom-gas-token-sdk.mdx
+++ b/docs/build-decentralized-apps/custom-gas-token-sdk.mdx
@@ -5,6 +5,7 @@ author: Mehdi Salehi
sme: Mehdi Salehi
target_audience: 'Developers deploying and maintaining Arbitrum chains.'
sidebar_position: 2
+displayed_sidebar: buildAppsSidebar
---
Arbitrum SDK is a TypeScript library for client-side interactions with Arbitrum. It provides common helper functionality as well as access to the underlying smart contract interfaces.
diff --git a/docs/build-decentralized-apps/nodeinterface/01-overview.mdx b/docs/build-decentralized-apps/nodeinterface/01-overview.mdx
index 24d9a26892..b976c31a1e 100644
--- a/docs/build-decentralized-apps/nodeinterface/01-overview.mdx
+++ b/docs/build-decentralized-apps/nodeinterface/01-overview.mdx
@@ -3,6 +3,7 @@ title: 'NodeInterface overview'
description: A high level description of what the NodeInterface is and how it works
user_story: As a developer, I want to understand what the NodeInterface is and how it works.
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
diff --git a/docs/build-decentralized-apps/nodeinterface/02-reference.mdx b/docs/build-decentralized-apps/nodeinterface/02-reference.mdx
index 5276dd4fcf..023bcc2db5 100644
--- a/docs/build-decentralized-apps/nodeinterface/02-reference.mdx
+++ b/docs/build-decentralized-apps/nodeinterface/02-reference.mdx
@@ -3,6 +3,7 @@ title: 'NodeInterface reference'
description: A reference page of the NodeInterface available on Arbitrum chains
user_story: As a developer, I want to understand the specific methods available in the NodeInterface
content_type: reference
+displayed_sidebar: buildAppsSidebar
---
The Arbitrum Nitro software includes a special `NodeInterface` contract available at address `0xc8` that is only accessible via RPCs (it's not actually deployed onchain, and thus can't be called by smart contracts). This reference page documents the specific calls available in the `NodeInterface`. For a more conceptual description of what it is and how it works, please refer to the [`NodeInterface` conceptual page](/build-decentralized-apps/nodeinterface/01-overview.mdx).
diff --git a/docs/build-decentralized-apps/oracles/01-overview.mdx b/docs/build-decentralized-apps/oracles/01-overview.mdx
index 169591d654..39920000f8 100644
--- a/docs/build-decentralized-apps/oracles/01-overview.mdx
+++ b/docs/build-decentralized-apps/oracles/01-overview.mdx
@@ -5,6 +5,7 @@ description: A high level description of what oracles are
user_story: As a developer, I want to understand what oracles are and how they work.
content_type: concept
sidebar_label: Oracles
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/build-decentralized-apps/precompiles/01-overview.mdx b/docs/build-decentralized-apps/precompiles/01-overview.mdx
index 2b93b1758f..6b87a8c694 100644
--- a/docs/build-decentralized-apps/precompiles/01-overview.mdx
+++ b/docs/build-decentralized-apps/precompiles/01-overview.mdx
@@ -3,6 +3,7 @@ title: 'Precompiles overview'
description: A high level description of what precompiles are and how they work
user_story: As a developer, I want to understand what precompiles are and how they work.
content_type: concept
+displayed_sidebar: buildAppsSidebar
---
Precompiles are predefined smart contracts that have special addresses and provide specific functionality which is executed not at the EVM bytecode level, but natively by the Arbitrum client itself. Precompiles are primarily used to introduce specific functions that would be computationally expensive if executed in EVM bytecode, and functions that facilitate the interaction between the parent chain and the child chain. By having them natively in the Arbitrum client, they can be optimized for performance.
diff --git a/docs/build-decentralized-apps/precompiles/02-reference.mdx b/docs/build-decentralized-apps/precompiles/02-reference.mdx
index 596080e7b9..b982d0eb3c 100644
--- a/docs/build-decentralized-apps/precompiles/02-reference.mdx
+++ b/docs/build-decentralized-apps/precompiles/02-reference.mdx
@@ -3,6 +3,7 @@ title: 'Precompiles reference'
description: A reference page of all precompiles available on Arbitrum chains
user_story: As a developer, I want to understand the most useful precompiles available on Arbitrum chains and how to use them.
content_type: reference
+displayed_sidebar: buildAppsSidebar
---
ArbOS provides child chain-specific precompiles with methods smart contracts can call the same way they can solidity functions. This reference page exhaustively documents the specific calls ArbOS makes available through precompiles. For a more conceptual description of what precompiles are and how they work, please refer to the [precompiles conceptual page](/build-decentralized-apps/precompiles/01-overview.mdx).
diff --git a/docs/build-decentralized-apps/reference/01-node-providers.mdx b/docs/build-decentralized-apps/reference/01-node-providers.mdx
index e194fc9116..1a6016b0cd 100644
--- a/docs/build-decentralized-apps/reference/01-node-providers.mdx
+++ b/docs/build-decentralized-apps/reference/01-node-providers.mdx
@@ -3,6 +3,7 @@ title: 'RPC endpoints and providers'
description: Find available RPC endpoints and providers in the ecosystem
reader_audience: developers who want to build on Arbitrum
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
import ArbitrumRpcEndpoints from '../../partials/_reference-arbitrum-rpc-endpoints-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/02-contract-addresses.mdx b/docs/build-decentralized-apps/reference/02-contract-addresses.mdx
index 3996a0a5e1..01c4f451dd 100644
--- a/docs/build-decentralized-apps/reference/02-contract-addresses.mdx
+++ b/docs/build-decentralized-apps/reference/02-contract-addresses.mdx
@@ -6,6 +6,7 @@ author: anegg0
sme: anegg0
user_story: As a current or prospective Arbitrum user I need to know to what addresses Arbitrum contracts have been deployed.
content_type: reference
+displayed_sidebar: buildAppsSidebar
---
import ArbitrumContractAddresses from '../../partials/_reference-arbitrum-contract-addresses-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/03-chain-params.mdx b/docs/build-decentralized-apps/reference/03-chain-params.mdx
index d60fd8418d..221f35769a 100644
--- a/docs/build-decentralized-apps/reference/03-chain-params.mdx
+++ b/docs/build-decentralized-apps/reference/03-chain-params.mdx
@@ -3,6 +3,7 @@ title: 'Chain parameters'
description: Information about important system parameters for public Arbitrum chains
user_story: As a developer, I want to understand the system parameters for the public Arbitrum chains.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
| Param | Description | Arbitrum One | Arbitrum Nova | Arb Sepolia |
diff --git a/docs/build-decentralized-apps/reference/04-development-frameworks.mdx b/docs/build-decentralized-apps/reference/04-development-frameworks.mdx
index a164da3752..8b7ac1eccb 100644
--- a/docs/build-decentralized-apps/reference/04-development-frameworks.mdx
+++ b/docs/build-decentralized-apps/reference/04-development-frameworks.mdx
@@ -3,6 +3,7 @@ title: 'Development frameworks'
description: An overview of popular development frameworks that exist in the Arbitrum ecosystem
user_story: As a developer, I want to understand the popular development frameworks that exist in the Arbitrum ecosystem.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
import KnowMoreToolsBox from '../../for-devs/partials/_know-more-tools-box-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/05-web3-libraries-tools.mdx b/docs/build-decentralized-apps/reference/05-web3-libraries-tools.mdx
index c2073bdc64..103f5582f1 100644
--- a/docs/build-decentralized-apps/reference/05-web3-libraries-tools.mdx
+++ b/docs/build-decentralized-apps/reference/05-web3-libraries-tools.mdx
@@ -3,6 +3,7 @@ title: 'Web3 libraries and tools'
description: An overview of some popular Web3 libraries that help developers interact with the Ethereum and Arbitrum blockchains.
user_story: As a developer, I want to understand what Web3 libraries and tools are available in the Ethereum and Arbitrum ecosystems.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
import KnowMoreToolsBox from '../../for-devs/partials/_know-more-tools-box-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/06-monitoring-tools-block-explorers.mdx b/docs/build-decentralized-apps/reference/06-monitoring-tools-block-explorers.mdx
index ecbe319fba..2b59378770 100644
--- a/docs/build-decentralized-apps/reference/06-monitoring-tools-block-explorers.mdx
+++ b/docs/build-decentralized-apps/reference/06-monitoring-tools-block-explorers.mdx
@@ -3,6 +3,7 @@ title: 'Monitoring tools and block explorers'
description: An overview of popular monitoring tools and block explorers that exist in the Arbitrum ecosystem
user_story: As a developer, I want to understand what monitoring tools and block explorers are available in the Arbitrum ecosystem.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
import KnowMoreToolsBox from '../../for-devs/partials/_know-more-tools-box-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/07-debugging-tools.mdx b/docs/build-decentralized-apps/reference/07-debugging-tools.mdx
index 136af89468..e6c6ce46b3 100644
--- a/docs/build-decentralized-apps/reference/07-debugging-tools.mdx
+++ b/docs/build-decentralized-apps/reference/07-debugging-tools.mdx
@@ -3,6 +3,7 @@ title: 'Debugging tools'
description: An overview of popular debugging tools that exist in the Arbitrum ecosystem
user_story: As a developer, I want to understand what debugging tools are available in the Arbitrum ecosystem.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
import KnowMoreToolsBox from '../../for-devs/partials/_know-more-tools-box-partial.mdx';
diff --git a/docs/build-decentralized-apps/reference/08-mainnet-risks.mdx b/docs/build-decentralized-apps/reference/08-mainnet-risks.mdx
index 8a1ed096b6..6c0005677a 100644
--- a/docs/build-decentralized-apps/reference/08-mainnet-risks.mdx
+++ b/docs/build-decentralized-apps/reference/08-mainnet-risks.mdx
@@ -2,6 +2,7 @@
title: 'Arbitrum: Understanding the risks'
description: 'Understand the risks associated with cutting-edge software development'
author: dzgoldman
+displayed_sidebar: buildAppsSidebar
---
# Arbitrum: Understanding the risks
diff --git a/docs/build-decentralized-apps/token-bridging/01-overview.mdx b/docs/build-decentralized-apps/token-bridging/01-overview.mdx
index 468af6cfe0..139e5b1ccd 100644
--- a/docs/build-decentralized-apps/token-bridging/01-overview.mdx
+++ b/docs/build-decentralized-apps/token-bridging/01-overview.mdx
@@ -5,6 +5,7 @@ author: dzgoldman
user_story: As a developer, I want to understand how the token bridge works and what options exist to bridge assets between layers.
content_type: overview
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
Token bridging is a fundamental aspect of any Layer 2 (child chain) protocol. Arbitrum uses its ability to pass messages between parent and child chains (see [Cross-chain messaging](/build-decentralized-apps/04-cross-chain-messaging.mdx)) to enable projects to move assets between Ethereum and an Arbitrum chain trustlessly, and vice versa. Any asset and asset type in principle can be bridged, including `ETH`, `ERC-20` tokens, and `ERC-721` tokens, among others.
diff --git a/docs/build-decentralized-apps/token-bridging/02-token-bridge-ether.mdx b/docs/build-decentralized-apps/token-bridging/02-token-bridge-ether.mdx
index 8d103ddc70..d51c2789aa 100644
--- a/docs/build-decentralized-apps/token-bridging/02-token-bridge-ether.mdx
+++ b/docs/build-decentralized-apps/token-bridging/02-token-bridge-ether.mdx
@@ -5,6 +5,7 @@ author: dzgoldman
user_story: As a developer, I want to understand how bridging ether works on Arbitrum
content_type: concept
sidebar_position: 2
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx b/docs/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx
index 21b1ba5eee..5d9e8e6f43 100644
--- a/docs/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx
+++ b/docs/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx
@@ -5,6 +5,7 @@ author: dzgoldman
user_story: As a developer, I want to understand how ERC-20 token bridging works on Arbitrum, and the architecture of the token bridge.
content_type: concept
sidebar_position: 3
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx
index 2bbb0893bd..93ed153406 100644
--- a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx
+++ b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx
@@ -3,6 +3,7 @@ title: 'Get started with token bridging'
description: Learn the different options available to bridge tokens programmatically
user_story: As a developer, I want to understand how to bridge tokens between Ethereum and Arbitrum.
content_type: overview
+displayed_sidebar: buildAppsSidebar
---
Token bridging is a fundamental aspect of any child chain protocol. It allows projects to quickly integrate with the Arbitrum ecosystem by leveraging their existing parent chain tokens.
diff --git a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/02-how-to-bridge-tokens-standard.mdx b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/02-how-to-bridge-tokens-standard.mdx
index 15fc215d3b..1059d2b537 100644
--- a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/02-how-to-bridge-tokens-standard.mdx
+++ b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/02-how-to-bridge-tokens-standard.mdx
@@ -3,6 +3,7 @@ title: "Bridge tokens via Arbitrum's standard `ERC-20` gateway"
description: Learn how to programmatically bridge tokens between Ethereum and Arbitrum using Arbitrum’s standard ER-C20 gateway
user_story: As a developer, I want to understand how to bridge tokens between Ethereum and Arbitrum using the standard ER-C20 gateway.
content_type: how-to
+displayed_sidebar: buildAppsSidebar
---
In this how-to, you’ll learn how to bridge your own token between Ethereum (parent chain) and Arbitrum (child chain), using [Arbitrum’s standard `ERC20` gateway](/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx#default-standard-bridging). For alternative ways of bridging tokens, don’t forget to check out this [overview](/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx).
diff --git a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/03-how-to-bridge-tokens-generic-custom.mdx b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/03-how-to-bridge-tokens-generic-custom.mdx
index adc80b9f0e..81c8acd8f9 100644
--- a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/03-how-to-bridge-tokens-generic-custom.mdx
+++ b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/03-how-to-bridge-tokens-generic-custom.mdx
@@ -3,6 +3,7 @@ title: 'Bridge tokens via Arbitrum’s generic-custom gateway'
description: Learn how to use the generic-custom gateway to bridge tokens programmatically
user_story: As a developer, I want to understand how to bridge tokens between Ethereum and Arbitrum using the generic-custom gateway
content_type: how-to
+displayed_sidebar: buildAppsSidebar
---
In this how-to, you’ll learn how to bridge your own token between Ethereum (parent chain) and Arbitrum (child chain), using [Arbitrum’s generic-custom gateway](/build-decentralized-apps/token-bridging/03-token-bridge-erc20.mdx#the-arbitrum-generic-custom-gateway). For alternative ways of bridging tokens, don’t forget to check out this [overview](/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/01-get-started.mdx).
diff --git a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/04-how-to-bridge-tokens-custom-gateway.mdx b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/04-how-to-bridge-tokens-custom-gateway.mdx
index af6ea2f0c9..29b7fbb608 100644
--- a/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/04-how-to-bridge-tokens-custom-gateway.mdx
+++ b/docs/build-decentralized-apps/token-bridging/bridge-tokens-programmatically/04-how-to-bridge-tokens-custom-gateway.mdx
@@ -3,6 +3,7 @@ title: 'How to bridge tokens via a custom gateway'
description: Learn how to set up a custom gateway using Arbitrum's Token Bridge to bridge tokens programmatically
reader_audience: developers who want to build on Ethereum/Arbitrum and bridge tokens between layers
content_type: how-to
+displayed_sidebar: buildAppsSidebar
---
:::caution Do you really need a custom gateway?
diff --git a/docs/get-started/arbitrum-introduction.mdx b/docs/get-started/arbitrum-introduction.mdx
new file mode 100644
index 0000000000..72e8280d60
--- /dev/null
+++ b/docs/get-started/arbitrum-introduction.mdx
@@ -0,0 +1,11 @@
+---
+title: 'Arbitrum introduction'
+description: 'Frequently asked questions about Arbitrum, Ethereum scaling solutions including Arbitrum One, Arbitrum Nova, Stylus, Arbitrum chains, and the Arbitrum Bridge.'
+author: dzgoldman
+user_story: As a technical reader, I want to understand how Arbitrum scales Ethereum.
+content_type: faq
+---
+
+import GentleIntroPartial from '../partials/_gentle-intro-partial.mdx';
+
+
diff --git a/docs/welcome/get-started.mdx b/docs/get-started/overview.mdx
similarity index 97%
rename from docs/welcome/get-started.mdx
rename to docs/get-started/overview.mdx
index 7e1f7d43a8..2082ae1027 100644
--- a/docs/welcome/get-started.mdx
+++ b/docs/get-started/overview.mdx
@@ -42,7 +42,7 @@ The Arbitrum suite includes the protocols, chains, services, and SDKs that power
| Resource | Description |
| ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
-| [A gentle introduction to Arbitrum](/welcome/arbitrum-gentle-introduction) | A technical introduction to Arbitrum's suite of scaling solutions. |
+| [Arbitrum Introduction](/get-started/arbitrum-introduction) | Frequently asked questions about Arbitrum's suite of scaling solutions. |
| [Quickstart (Solidity)](/build-decentralized-apps/01-quickstart-solidity-remix.mdx) | Targeted at Web2 developers who want to deploy their first Solidity smart contract to Arbitrum. |
| [Quickstart (Rust)](/stylus/quickstart) | Targeted at Web3 developers who want to deploy their first Rust smart contract to Arbitrum using Stylus. |
diff --git a/docs/partials/_contribute-docs-partial.mdx b/docs/partials/_contribute-docs-partial.mdx
index 8f658d3fb5..3f1419024a 100644
--- a/docs/partials/_contribute-docs-partial.mdx
+++ b/docs/partials/_contribute-docs-partial.mdx
@@ -79,7 +79,7 @@ navbar: {
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
- href: '/welcome/arbitrum-gentle-introduction',
+ href: '/get-started/arbitrum-introduction',
},
items: [
// note: we can uncomment this when we want to display the locale dropdown in the top navbar
diff --git a/docs/partials/_gentle-intro-partial.mdx b/docs/partials/_gentle-intro-partial.mdx
index 9e890937a0..d73baf0ff9 100644
--- a/docs/partials/_gentle-intro-partial.mdx
+++ b/docs/partials/_gentle-intro-partial.mdx
@@ -1,6 +1,6 @@
---
partial_type: content
-title: 'Arbitrum Gentle Introduction'
+title: 'Arbitrum: Introduction'
description: 'FAQ-style introduction to Arbitrum technology and ecosystem'
author: anegg0
last_reviewed: 2025-01-15
diff --git a/docs/stylus/concepts/gas-metering.mdx b/docs/stylus/concepts/gas-metering.mdx
index 95f6cacffa..9354556719 100644
--- a/docs/stylus/concepts/gas-metering.mdx
+++ b/docs/stylus/concepts/gas-metering.mdx
@@ -5,6 +5,7 @@ author: rachel-bousfield
sme: rachel-bousfield
target_audience: 'Developers deploying smart contracts using Stylus.'
sidebar_position: 3
+displayed_sidebar: buildAppsSidebar
---
**Gas and ink** are the pricing primitives that are used to determine the cost of handling specific opcodes and host I/Os on Stylus. For an overview of specific opcode and host I/O costs, see [Gas and ink costs](/stylus/reference/opcode-hostio-pricing).
diff --git a/docs/stylus/gentle-introduction.mdx b/docs/stylus/gentle-introduction.mdx
index fa99de8296..6662a24ab3 100644
--- a/docs/stylus/gentle-introduction.mdx
+++ b/docs/stylus/gentle-introduction.mdx
@@ -6,6 +6,7 @@ author: amarrazza
sme: amarrazza
target_audience: 'Developers who want to build on Arbitrum using popular programming languages, like Rust'
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/stylus/how-tos/adding-support-for-new-languages.mdx b/docs/stylus/how-tos/adding-support-for-new-languages.mdx
index 5e078bb34a..03f167dc7b 100644
--- a/docs/stylus/how-tos/adding-support-for-new-languages.mdx
+++ b/docs/stylus/how-tos/adding-support-for-new-languages.mdx
@@ -6,6 +6,7 @@ sme: rauljordan
target_audience: 'Developers deploying smart contracts using Stylus'
content_type: how-to
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
[Arbitrum Stylus](../gentle-introduction.mdx) is a new technology developed for Arbitrum chains which gives smart contract developers superpowers. With Stylus, developers can write EVM-compatible smart contracts in many different programming languages, and reap massive performance gains. Stylus slashes fees, with performance gains ranging from 10-70x, and memory efficiency gains as high as 100-500x.
diff --git a/docs/stylus/how-tos/caching-contracts.mdx b/docs/stylus/how-tos/caching-contracts.mdx
index 19cf1cd52c..92c3a75094 100644
--- a/docs/stylus/how-tos/caching-contracts.mdx
+++ b/docs/stylus/how-tos/caching-contracts.mdx
@@ -5,6 +5,7 @@ description: 'A conceptual overview of the Stylus caching strategy and CacheMana
sme: mahsa-moosavi
target_audience: 'Developers deploying smart contracts using Stylus.'
sidebar_position: 3
+displayed_sidebar: buildAppsSidebar
---
Stylus is designed for fast computation and efficiency. However,
diff --git a/docs/stylus/how-tos/debugging-tx.mdx b/docs/stylus/how-tos/debugging-tx.mdx
index df434169a7..c47cb69116 100644
--- a/docs/stylus/how-tos/debugging-tx.mdx
+++ b/docs/stylus/how-tos/debugging-tx.mdx
@@ -7,6 +7,7 @@ sme: mahsamoosavi
target_audience: 'Developers deploying smart contracts using Stylus'
content_type: how-to
sidebar_position: 2
+displayed_sidebar: buildAppsSidebar
---
Debugging smart contracts can be challenging, especially when dealing with complex transactions. The `cargo-stylus` crate simplifies the debugging process by allowing developers to replay Stylus transactions. This tool leverages GDB to provide an interactive debugging experience, enabling developers to set breakpoints, inspect state changes, and trace the execution flow step-by-step. This capability is crucial for identifying and resolving issues, ensuring that smart contracts function correctly and efficiently.
diff --git a/docs/stylus/how-tos/optimizing-binaries.mdx b/docs/stylus/how-tos/optimizing-binaries.mdx
index 10557c3b57..d88274f8ad 100644
--- a/docs/stylus/how-tos/optimizing-binaries.mdx
+++ b/docs/stylus/how-tos/optimizing-binaries.mdx
@@ -6,6 +6,7 @@ sme: rauljordan
target_audience: 'Developers deploying smart contracts using Stylus'
content_type: how-to
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
To be deployed onchain, the size of your **uncompressed WebAssembly (WASM) file** must not exceed 128Kb, while the **compressed binary** must not exceed 24KB. Stylus conforms with the same contract size limit as the EVM to remain fully interoperable with all smart contracts on Arbitrum chains.
diff --git a/docs/stylus/how-tos/testing-contracts.mdx b/docs/stylus/how-tos/testing-contracts.mdx
index b78656f0a1..dd61568bb5 100644
--- a/docs/stylus/how-tos/testing-contracts.mdx
+++ b/docs/stylus/how-tos/testing-contracts.mdx
@@ -5,6 +5,7 @@ description: 'A comprehensive guide to writing and running tests for Stylus smar
sme: anegg0
target_audience: 'Developers writing smart contracts using Stylus.'
sidebar_position: 3
+displayed_sidebar: buildAppsSidebar
---
import CustomDetails from '@site/src/components/CustomDetails';
diff --git a/docs/stylus/how-tos/using-constructors.mdx b/docs/stylus/how-tos/using-constructors.mdx
index b06188edb2..c50a713bd4 100644
--- a/docs/stylus/how-tos/using-constructors.mdx
+++ b/docs/stylus/how-tos/using-constructors.mdx
@@ -7,6 +7,7 @@ sme: 'anegg0'
user_story: 'As a Rust developer, I want to understand how to implement and use constructors in Stylus smart contracts'
content_type: 'how-to'
sidebar_position: 3
+displayed_sidebar: buildAppsSidebar
---
import CustomDetails from '@site/src/components/CustomDetails';
diff --git a/docs/stylus/how-tos/using-inheritance.mdx b/docs/stylus/how-tos/using-inheritance.mdx
index 9735f30c4d..155ff8813f 100644
--- a/docs/stylus/how-tos/using-inheritance.mdx
+++ b/docs/stylus/how-tos/using-inheritance.mdx
@@ -5,6 +5,7 @@ author: anegg0
sme: mahsamoosavi
content_type: how-to
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
import CustomDetails from '@site/src/components/CustomDetails';
diff --git a/docs/stylus/how-tos/verifying-contracts-arbiscan.mdx b/docs/stylus/how-tos/verifying-contracts-arbiscan.mdx
index 6eaaa7717e..358f20ba2c 100644
--- a/docs/stylus/how-tos/verifying-contracts-arbiscan.mdx
+++ b/docs/stylus/how-tos/verifying-contracts-arbiscan.mdx
@@ -6,6 +6,7 @@ sme: mahsamoosavi
target_audience: 'Developers deploying smart contracts using Stylus'
content_type: how-to
sidebar_position: 1
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/stylus/how-tos/verifying-contracts.mdx b/docs/stylus/how-tos/verifying-contracts.mdx
index d17f0e5b35..819ec19f4b 100644
--- a/docs/stylus/how-tos/verifying-contracts.mdx
+++ b/docs/stylus/how-tos/verifying-contracts.mdx
@@ -8,6 +8,7 @@ target_audience: 'Developers learning how to use Stylus'
sidebar_position: 2
user_story: 'As a current or prospective Stylus user, I want to learn how to make sure my Stylus contracts deployment are reproducible by anyone running the same environment.'
content_type: how-to
+displayed_sidebar: buildAppsSidebar
---
:::caution
diff --git a/docs/stylus/overview.mdx b/docs/stylus/overview.mdx
index 69af1443da..10b1700705 100644
--- a/docs/stylus/overview.mdx
+++ b/docs/stylus/overview.mdx
@@ -2,6 +2,7 @@
id: stylus-overview
title: Write Stylus Contracts
sidebar_label: Write Stylus contracts
+displayed_sidebar: buildAppsSidebar
---
import Card from '@site/src/components/Cards/Card';
diff --git a/docs/stylus/quickstart.mdx b/docs/stylus/quickstart.mdx
index c605881e43..588f015ca1 100644
--- a/docs/stylus/quickstart.mdx
+++ b/docs/stylus/quickstart.mdx
@@ -6,6 +6,7 @@ author: chrisco512, anegg0
sme: chrisco512, anegg0
sidebar_position: 2
target_audience: Developers writing Stylus contracts in Rust using Stylus
+displayed_sidebar: buildAppsSidebar
---
import ImageZoom from '@site/src/components/ImageZoom';
diff --git a/docs/stylus/reference/project-structure.mdx b/docs/stylus/reference/project-structure.mdx
index 29542e0c4e..c37969b3d7 100644
--- a/docs/stylus/reference/project-structure.mdx
+++ b/docs/stylus/reference/project-structure.mdx
@@ -5,6 +5,7 @@ author: chrisco
sme: chrisco
sidebar_position: 1
target_audience: Developers using the Stylus Rust SDK to write and deploy smart contracts.
+displayed_sidebar: buildAppsSidebar
---
Contracts in Rust are similar to contracts in Solidity. Each contract can contain declarations of State Variables, Functions, Function Modifiers, Events, Errors, Struct Types, and Enum Types. In addition, Rust contracts can import third-party packages from [crates.io](https://crates.io) as dependencies and use them for advanced functionality.
diff --git a/docs/stylus/stylus-content-map.mdx b/docs/stylus/stylus-content-map.mdx
index 04f9fa60f8..3aa5044cc7 100644
--- a/docs/stylus/stylus-content-map.mdx
+++ b/docs/stylus/stylus-content-map.mdx
@@ -2,6 +2,7 @@
id: stylus-content-map
title: Write Stylus Contracts
sidebar_label: Write Stylus contracts
+displayed_sidebar: buildAppsSidebar
---
import Card from '@site/src/components/Cards/Card';
diff --git a/docs/stylus/using-cli.mdx b/docs/stylus/using-cli.mdx
index 87e3573ea7..9fa36931e9 100644
--- a/docs/stylus/using-cli.mdx
+++ b/docs/stylus/using-cli.mdx
@@ -6,6 +6,7 @@ author: 'anegg0'
sme: 'anegg0'
sidebar_position: 2
target_audience: Developers writing Stylus contracts in Rust using Stylus
+displayed_sidebar: buildAppsSidebar
---
This guide will get you started using [cargo stylus](https://github.com/OffchainLabs/cargo-stylus), a CLI toolkit to help developers manage, compile, deploy, and optimize their Stylus contracts efficiently.
diff --git a/docs/welcome/arbitrum-gentle-introduction.mdx b/docs/welcome/arbitrum-gentle-introduction.mdx
deleted file mode 100644
index 98e8cda84d..0000000000
--- a/docs/welcome/arbitrum-gentle-introduction.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: 'A gentle introduction to Arbitrum'
-description: 'Arbitrum is a suite of Ethereum scaling solutions that includes Arbitrum One, Arbitrum Nova, Stylus, Arbitrum chains, and the Arbitrum Bridge.'
-author: dzgoldman
-user_story: As a technical reader, I want to understand how Arbitrum scales Ethereum.
-content_type: gentle-introduction
----
-
-import GentleIntroPartial from '../partials/_gentle-intro-partial.mdx';
-
-
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 4af0829166..eacc8adac4 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -223,9 +223,61 @@ const config = {
logo: {
alt: 'Arbitrum Logo',
src: 'img/logo.svg',
- href: '/welcome/arbitrum-gentle-introduction',
+ href: '/get-started/overview',
},
- items: [],
+ items: [
+ {
+ type: 'docSidebar',
+ sidebarId: 'getStartedSidebar',
+ position: 'right',
+ label: 'Get started',
+ },
+ {
+ type: 'dropdown',
+ label: 'Build apps',
+ position: 'right',
+ items: [
+ {
+ label: 'Build with Solidity',
+ to: '/build-decentralized-apps/quickstart-solidity-remix',
+ },
+ {
+ label: 'Build with Stylus',
+ to: '/stylus/quickstart',
+ },
+ ],
+ },
+ {
+ type: 'docSidebar',
+ sidebarId: 'runArbitrumChainSidebar',
+ position: 'right',
+ label: 'Launch a chain',
+ },
+ {
+ type: 'docSidebar',
+ sidebarId: 'runNodeSidebar',
+ position: 'right',
+ label: 'Run a node',
+ },
+ {
+ type: 'docSidebar',
+ sidebarId: 'bridgeSidebar',
+ position: 'right',
+ label: 'Use the bridge',
+ },
+ {
+ type: 'docSidebar',
+ sidebarId: 'howItWorksSidebar',
+ position: 'right',
+ label: 'How it works',
+ },
+ {
+ type: 'docSidebar',
+ sidebarId: 'additionalResourcesSidebar',
+ position: 'right',
+ label: 'Resources',
+ },
+ ],
},
footer: {
style: 'dark',
diff --git a/sidebars.js b/sidebars.js
index def8c3a123..bfe9aa0da7 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -25,240 +25,82 @@ const sdkSidebar = {
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
- buildDecentralizedAppsSidebar: [
+ // Get started sidebar - shared entry point
+ getStartedSidebar: [
{
- type: 'category',
- label: 'Welcome',
- collapsed: false,
- items: [
- {
- type: 'doc',
- id: 'welcome/arbitrum-gentle-introduction',
- label: 'A gentle introduction',
- },
- {
- type: 'doc',
- id: 'welcome/get-started',
- label: 'Get started',
- },
- {
- type: 'doc',
- id: 'for-devs/dev-tools-and-resources/chain-info',
- label: 'Chain info',
- },
- ],
+ type: 'doc',
+ id: 'get-started/overview',
+ label: 'Get started',
+ },
+ {
+ type: 'doc',
+ id: 'get-started/arbitrum-introduction',
+ label: 'Arbitrum: introduction',
},
{
type: 'category',
- label: 'Build decentralized apps',
+ label: 'Build apps',
collapsed: true,
items: [
{
type: 'doc',
id: 'build-decentralized-apps/quickstart-solidity-remix',
- label: 'Quickstart (Solidity)',
- },
- {
- type: 'doc',
- label: 'Estimate gas',
- id: 'build-decentralized-apps/how-to-estimate-gas',
- },
- {
- type: 'doc',
- label: 'Chains and testnets',
- id: 'build-decentralized-apps/public-chains',
- },
- {
- type: 'doc',
- label: 'Cross-chain messaging',
- id: 'build-decentralized-apps/cross-chain-messaging',
- },
- {
- type: 'doc',
- id: 'build-decentralized-apps/custom-gas-token-sdk',
- label: 'Custom gas token SDK',
- },
- {
- type: 'category',
- label: 'Arbitrum vs Ethereum',
- items: [
- {
- type: 'doc',
- label: 'Comparison overview',
- id: 'build-decentralized-apps/arbitrum-vs-ethereum/comparison-overview',
- },
- {
- type: 'doc',
- label: 'Block gas limit, numbers and time',
- id: 'build-decentralized-apps/arbitrum-vs-ethereum/block-numbers-and-time',
- },
- {
- type: 'doc',
- label: 'RPC methods',
- id: 'build-decentralized-apps/arbitrum-vs-ethereum/rpc-methods',
- },
- {
- type: 'doc',
- label: 'Solidity support',
- id: 'build-decentralized-apps/arbitrum-vs-ethereum/solidity-support',
- },
- ],
- },
- {
- type: 'doc',
- label: 'Oracles',
- id: 'build-decentralized-apps/oracles/overview-oracles',
- },
- {
- type: 'category',
- label: 'Precompiles',
- collapsed: true,
- items: [
- {
- type: 'doc',
- label: 'Overview',
- id: 'build-decentralized-apps/precompiles/overview',
- },
- {
- type: 'doc',
- label: 'Reference',
- id: 'build-decentralized-apps/precompiles/reference',
- },
- ],
- },
- {
- type: 'category',
- label: 'NodeInterface',
- collapsed: true,
- items: [
- {
- type: 'doc',
- label: 'Overview',
- id: 'build-decentralized-apps/nodeinterface/overview',
- },
- {
- type: 'doc',
- label: 'Reference',
- id: 'build-decentralized-apps/nodeinterface/reference',
- },
- ],
- },
- {
- type: 'category',
- label: 'Token bridging',
- collapsed: true,
- items: [
- {
- type: 'doc',
- label: 'Overview',
- id: 'build-decentralized-apps/token-bridging/overview',
- },
- {
- type: 'doc',
- label: 'ETH bridging',
- id: 'build-decentralized-apps/token-bridging/token-bridge-ether',
- },
- {
- type: 'doc',
- label: 'ERC-20 token bridging',
- id: 'build-decentralized-apps/token-bridging/token-bridge-erc20',
- },
- {
- type: 'category',
- label: 'Bridge tokens programmatically',
- items: [
- {
- type: 'doc',
- label: 'Get started',
- id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/get-started',
- },
- {
- type: 'doc',
- label: 'Use the standard gateway',
- id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-standard',
- },
- {
- type: 'doc',
- label: 'Use the generic-custom gateway',
- id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-generic-custom',
- },
- {
- type: 'doc',
- label: 'Use the custom gateway',
- id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-custom-gateway',
- },
- ],
- },
- ],
- },
- {
- type: 'category',
- label: 'Reference',
- items: [
- {
- type: 'doc',
- id: 'build-decentralized-apps/reference/node-providers',
- label: 'RPC endpoints and providers',
- },
- {
- type: 'doc',
- label: 'Smart contract addresses',
- id: 'build-decentralized-apps/reference/contract-addresses',
- },
- {
- type: 'doc',
- label: 'Chain parameters',
- id: 'build-decentralized-apps/reference/chain-params',
- },
- {
- type: 'doc',
- label: 'Development frameworks',
- id: 'build-decentralized-apps/reference/development-frameworks',
- },
- {
- type: 'doc',
- label: 'Web3 libraries and tools',
- id: 'build-decentralized-apps/reference/web3-libraries-tools',
- },
- {
- type: 'doc',
- label: 'Monitoring tools and block explorers',
- id: 'build-decentralized-apps/reference/monitoring-tools-block-explorers',
- },
- {
- type: 'doc',
- label: 'Debugging tools',
- id: 'build-decentralized-apps/reference/debugging-tools',
- },
-
- {
- type: 'doc',
- id: 'build-decentralized-apps/reference/mainnet-risks',
- label: 'Mainnet risks',
- },
- ],
+ label: 'Build apps with Solidity',
},
{
type: 'doc',
- label: 'Troubleshooting',
- id: 'for-devs/troubleshooting-building',
- },
- {
- type: 'category',
- label: 'Arbitrum SDK',
- items: sdkSidebar.sdkSidebar,
- },
- {
- type: 'link',
- label: 'Tutorials',
- href: 'https://github.com/OffchainLabs/arbitrum-tutorials',
+ id: 'stylus/quickstart',
+ label: 'Build apps with Stylus',
},
],
},
+ {
+ type: 'link',
+ label: 'Run an Arbitrum (Orbit) chain',
+ href: '/launch-arbitrum-chain/a-gentle-introduction',
+ },
+ {
+ type: 'link',
+ label: 'Run an Arbitrum node',
+ href: '/run-arbitrum-node/overview',
+ },
+ {
+ type: 'link',
+ label: 'Arbitrum bridge',
+ href: '/arbitrum-bridge/quickstart',
+ },
+ {
+ type: 'link',
+ label: 'How Arbitrum works',
+ href: '/how-arbitrum-works/a-gentle-introduction',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ ],
+ // Run Arbitrum Chain sidebar
+ runArbitrumChainSidebar: [
{
type: 'category',
label: 'Run an Arbitrum (Orbit) chain',
- collapsed: true,
+ collapsed: false,
items: [
{
type: 'doc',
@@ -620,197 +462,39 @@ const sidebars = {
},
],
},
+
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ ],
+
+ // Run Node sidebar
+ runNodeSidebar: [
{
type: 'category',
- label: 'Write Stylus Contracts',
- collapsed: true,
+ label: 'Run an Arbitrum node',
+ collapsed: false,
link: {
type: 'doc',
- id: 'stylus/stylus-content-map',
+ id: 'run-arbitrum-node/overview',
},
items: [
{
type: 'doc',
- id: 'stylus/gentle-introduction',
- label: 'A gentle introduction',
- },
- {
- type: 'doc',
- id: 'stylus/quickstart',
- label: 'Quickstart',
- },
- {
- type: 'category',
- label: 'Rust SDK',
- collapsed: true,
- items: [
- {
- type: 'doc',
- id: 'stylus/reference/overview',
- label: 'Overview',
- },
- {
- type: 'doc',
- id: 'stylus/reference/project-structure',
- label: 'Structure of a Contract',
- },
- ...stylusByExampleBasicExamples,
- {
- type: 'doc',
- id: 'stylus/how-tos/using-inheritance',
- label: 'Composition and trait-based routing model',
- },
- {
- type: 'doc',
- id: 'stylus/reference/rust-sdk-guide',
- label: 'Advanced features',
- },
- {
- type: 'doc',
- id: 'stylus/recommended-libraries',
- label: 'Recommended Rust Crates',
- },
- ],
- },
- {
- type: 'category',
- label: 'Rust CLI',
- collapsed: true,
- items: [
- {
- type: 'doc',
- id: 'stylus/using-cli',
- label: 'Overview',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/debugging-tx',
- label: 'Debug transactions',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/testing-contracts',
- label: 'Testing contracts',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/verifying-contracts',
- label: 'Verify contracts',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/caching-contracts',
- label: 'Cache contracts',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/verifying-contracts-arbiscan',
- label: 'Verify on Arbiscan',
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/optimizing-binaries',
- label: 'Optimize WASM binaries',
- },
- ],
- },
- {
- type: 'html',
- value:
- '',
- },
- {
- type: 'category',
- label: 'Concepts',
- collapsed: true,
- items: [
- {
- type: 'doc',
- id: 'stylus/concepts/how-it-works',
- label: 'Architecture overview',
- },
- {
- type: 'doc',
- id: 'stylus/concepts/gas-metering',
- label: 'Gas metering',
- },
- ],
- },
- {
- type: 'category',
- label: 'Examples',
- collapsed: true,
- items: [
- ...stylusByExampleApplications,
- {
- type: 'link',
- label: 'Awesome Stylus',
- href: 'https://github.com/OffchainLabs/awesome-stylus',
- },
- ],
- },
- {
- type: 'category',
- label: 'Reference',
- collapsed: true,
- items: [
- {
- type: 'html',
- value:
- '',
- },
- {
- type: 'doc',
- id: 'stylus/reference/opcode-hostio-pricing',
- label: 'Gas & Ink Pricing',
- },
- {
- type: 'link',
- label: 'Stylus by Example',
- href: 'https://stylus-by-example.org/',
- },
- {
- type: 'link',
- label: 'Cargo Stylus CLI GitHub',
- href: 'https://github.com/OffchainLabs/cargo-stylus',
- },
- {
- type: 'link',
- label: 'Rust SDK Crate',
- href: 'https://docs.rs/stylus-sdk/latest/stylus_sdk/index.html',
- },
- {
- type: 'link',
- label: 'Source Code Repository',
- href: 'https://github.com/OffchainLabs/stylus',
- },
- ],
- },
- {
- type: 'doc',
- id: 'stylus/how-tos/adding-support-for-new-languages',
- label: 'Using other languages',
- },
- {
- type: 'doc',
- id: 'stylus/troubleshooting-building-stylus',
- label: 'Troubleshooting',
- },
- ],
- },
- {
- type: 'category',
- label: 'Run an Arbitrum node',
- collapsed: true,
- link: {
- type: 'doc',
- id: 'node-running/node-running-content-map',
- },
- items: [
- {
- type: 'doc',
- id: 'run-arbitrum-node/overview',
- label: 'Overview',
+ id: 'run-arbitrum-node/overview',
+ label: 'Overview',
},
{
type: 'doc',
@@ -967,10 +651,29 @@ const sidebars = {
},
],
},
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ ],
+
+ // Bridge sidebar
+ bridgeSidebar: [
{
type: 'category',
label: 'Arbitrum bridge',
- collapsed: true,
+ collapsed: false,
items: [
{
type: 'doc',
@@ -994,10 +697,29 @@ const sidebars = {
},
],
},
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ ],
+
+ // How it Works sidebar
+ howItWorksSidebar: [
{
type: 'category',
label: 'How Arbitrum works',
- collapsed: true,
+ collapsed: false,
items: [
{
type: 'doc',
@@ -1192,78 +914,494 @@ const sidebars = {
],
},
{
- type: 'doc',
- id: 'learn-more/faq',
- label: 'FAQ',
+ type: 'html',
+ value:
+ '',
},
{
- type: 'doc',
- id: 'intro/glossary',
- label: 'Glossary',
+ type: 'html',
+ value:
+ '',
},
{
- type: 'doc',
- id: 'for-devs/contribute',
+ type: 'html',
+ value:
+ '',
},
+ ],
+
+ // Unified build apps sidebar (combines build apps and Stylus)
+ buildAppsSidebar: [
{
type: 'category',
- label: 'Third-party docs',
- collapsed: true,
+ label: 'Build apps with Solidity',
+ collapsed: false,
items: [
+ {
+ type: 'doc',
+ id: 'build-decentralized-apps/quickstart-solidity-remix',
+ label: 'Quickstart',
+ },
+ {
+ type: 'doc',
+ label: 'Estimate gas',
+ id: 'build-decentralized-apps/how-to-estimate-gas',
+ },
+ {
+ type: 'doc',
+ label: 'Chains and testnets',
+ id: 'build-decentralized-apps/public-chains',
+ },
+ {
+ type: 'doc',
+ label: 'Cross-chain messaging',
+ id: 'build-decentralized-apps/cross-chain-messaging',
+ },
+ {
+ type: 'doc',
+ id: 'build-decentralized-apps/custom-gas-token-sdk',
+ label: 'Custom gas token SDK',
+ },
{
type: 'category',
- label: 'Oracles',
- collapsed: true,
- link: {
- type: 'doc',
- id: 'for-devs/oracles/oracles-content-map',
- },
+ label: 'Arbitrum vs Ethereum',
items: [
{
type: 'doc',
- id: 'for-devs/oracles/api3/api3',
- },
- {
- type: 'doc',
- id: 'for-devs/oracles/chainlink/chainlink',
+ label: 'Comparison overview',
+ id: 'build-decentralized-apps/arbitrum-vs-ethereum/comparison-overview',
},
{
type: 'doc',
- id: 'for-devs/oracles/chronicle/chronicle',
+ label: 'Block gas limit, numbers and time',
+ id: 'build-decentralized-apps/arbitrum-vs-ethereum/block-numbers-and-time',
},
{
type: 'doc',
- id: 'for-devs/oracles/ora/ora',
+ label: 'RPC methods',
+ id: 'build-decentralized-apps/arbitrum-vs-ethereum/rpc-methods',
},
{
type: 'doc',
- id: 'for-devs/oracles/supra/supras-price-feed',
+ label: 'Solidity support',
+ id: 'build-decentralized-apps/arbitrum-vs-ethereum/solidity-support',
},
- {
+ ],
+ },
+ {
+ type: 'doc',
+ label: 'Oracles',
+ id: 'build-decentralized-apps/oracles/overview-oracles',
+ },
+ {
+ type: 'category',
+ label: 'Precompiles',
+ collapsed: true,
+ items: [
+ {
type: 'doc',
- id: 'for-devs/oracles/supra/supras-vrf',
+ label: 'Overview',
+ id: 'build-decentralized-apps/precompiles/overview',
},
{
type: 'doc',
- id: 'for-devs/oracles/trellor/trellor',
+ label: 'Reference',
+ id: 'build-decentralized-apps/precompiles/reference',
},
],
},
{
- type: 'autogenerated',
- dirName: 'for-devs/third-party-docs',
+ type: 'category',
+ label: 'NodeInterface',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ label: 'Overview',
+ id: 'build-decentralized-apps/nodeinterface/overview',
+ },
+ {
+ type: 'doc',
+ label: 'Reference',
+ id: 'build-decentralized-apps/nodeinterface/reference',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Token bridging',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ label: 'Overview',
+ id: 'build-decentralized-apps/token-bridging/overview',
+ },
+ {
+ type: 'doc',
+ label: 'ETH bridging',
+ id: 'build-decentralized-apps/token-bridging/token-bridge-ether',
+ },
+ {
+ type: 'doc',
+ label: 'ERC-20 token bridging',
+ id: 'build-decentralized-apps/token-bridging/token-bridge-erc20',
+ },
+ {
+ type: 'category',
+ label: 'Bridge tokens programmatically',
+ items: [
+ {
+ type: 'doc',
+ label: 'Get started',
+ id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/get-started',
+ },
+ {
+ type: 'doc',
+ label: 'Use the standard gateway',
+ id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-standard',
+ },
+ {
+ type: 'doc',
+ label: 'Use the generic-custom gateway',
+ id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-generic-custom',
+ },
+ {
+ type: 'doc',
+ label: 'Use the custom gateway',
+ id: 'build-decentralized-apps/token-bridging/bridge-tokens-programmatically/how-to-bridge-tokens-custom-gateway',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Reference',
+ items: [
+ {
+ type: 'doc',
+ id: 'build-decentralized-apps/reference/node-providers',
+ label: 'RPC endpoints and providers',
+ },
+ {
+ type: 'doc',
+ label: 'Smart contract addresses',
+ id: 'build-decentralized-apps/reference/contract-addresses',
+ },
+ {
+ type: 'doc',
+ label: 'Chain parameters',
+ id: 'build-decentralized-apps/reference/chain-params',
+ },
+ {
+ type: 'doc',
+ label: 'Development frameworks',
+ id: 'build-decentralized-apps/reference/development-frameworks',
+ },
+ {
+ type: 'doc',
+ label: 'Web3 libraries and tools',
+ id: 'build-decentralized-apps/reference/web3-libraries-tools',
+ },
+ {
+ type: 'doc',
+ label: 'Monitoring tools and block explorers',
+ id: 'build-decentralized-apps/reference/monitoring-tools-block-explorers',
+ },
+ {
+ type: 'doc',
+ label: 'Debugging tools',
+ id: 'build-decentralized-apps/reference/debugging-tools',
+ },
+
+ {
+ type: 'doc',
+ id: 'build-decentralized-apps/reference/mainnet-risks',
+ label: 'Mainnet risks',
+ },
+ ],
+ },
+ {
+ type: 'doc',
+ label: 'Troubleshooting',
+ id: 'for-devs/troubleshooting-building',
+ },
+ {
+ type: 'category',
+ label: 'Arbitrum SDK',
+ items: sdkSidebar.sdkSidebar,
+ },
+ {
+ type: 'link',
+ label: 'Tutorials',
+ href: 'https://github.com/OffchainLabs/arbitrum-tutorials',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Build apps with Stylus',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ id: 'stylus/gentle-introduction',
+ label: 'A gentle introduction',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/quickstart',
+ label: 'Quickstart',
+ },
+ {
+ type: 'category',
+ label: 'Rust SDK',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ id: 'stylus/reference/overview',
+ label: 'Overview',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/reference/project-structure',
+ label: 'Structure of a Contract',
+ },
+ ...stylusByExampleBasicExamples,
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/using-inheritance',
+ label: 'Composition and trait-based routing model',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/reference/rust-sdk-guide',
+ label: 'Advanced features',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/recommended-libraries',
+ label: 'Recommended Rust Crates',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Rust CLI',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ id: 'stylus/using-cli',
+ label: 'Overview',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/debugging-tx',
+ label: 'Debug transactions',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/testing-contracts',
+ label: 'Testing contracts',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/verifying-contracts',
+ label: 'Verify contracts',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/caching-contracts',
+ label: 'Cache contracts',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/verifying-contracts-arbiscan',
+ label: 'Verify on Arbiscan',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/optimizing-binaries',
+ label: 'Optimize WASM binaries',
+ },
+ ],
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'category',
+ label: 'Concepts',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ id: 'stylus/concepts/how-it-works',
+ label: 'Architecture overview',
+ },
+ {
+ type: 'doc',
+ id: 'stylus/concepts/gas-metering',
+ label: 'Gas metering',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Examples',
+ collapsed: true,
+ items: [
+ ...stylusByExampleApplications,
+ {
+ type: 'link',
+ label: 'Awesome Stylus',
+ href: 'https://github.com/OffchainLabs/awesome-stylus',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Reference',
+ collapsed: true,
+ items: [
+ {
+ type: 'doc',
+ id: 'stylus/reference/opcode-hostio-pricing',
+ label: 'Gas & Ink Pricing',
+ },
+ {
+ type: 'link',
+ label: 'Stylus by Example',
+ href: 'https://stylus-by-example.org/',
+ },
+ {
+ type: 'link',
+ label: 'Cargo Stylus CLI GitHub',
+ href: 'https://github.com/OffchainLabs/cargo-stylus',
+ },
+ {
+ type: 'link',
+ label: 'Rust SDK Crate',
+ href: 'https://docs.rs/stylus-sdk/latest/stylus_sdk/index.html',
+ },
+ {
+ type: 'link',
+ label: 'Source Code Repository',
+ href: 'https://github.com/OffchainLabs/stylus',
+ },
+ ],
+ },
+ {
+ type: 'doc',
+ id: 'stylus/how-tos/adding-support-for-new-languages',
+ label: 'Using other languages',
},
{
type: 'doc',
- id: 'for-devs/contribute',
+ id: 'stylus/troubleshooting-building-stylus',
+ label: 'Troubleshooting',
},
],
},
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ {
+ type: 'html',
+ value:
+ '',
+ },
+ ],
+
+ // Additional resources sidebar
+ additionalResourcesSidebar: [
+ {
+ type: 'doc',
+ id: 'for-devs/dev-tools-and-resources/chain-info',
+ label: 'Chain info',
+ },
+ {
+ type: 'doc',
+ id: 'intro/glossary',
+ label: 'Glossary',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/contribute',
+ label: 'Contribute',
+ },
+ {
+ type: 'doc',
+ id: 'learn-more/faq',
+ label: 'FAQ',
+ },
{
type: 'doc',
label: 'Audit reports',
id: 'audit-reports',
},
+ {
+ type: 'category',
+ label: 'Third-party docs',
+ collapsed: true,
+ items: [
+ {
+ type: 'category',
+ label: 'Oracles',
+ collapsed: true,
+ link: {
+ type: 'doc',
+ id: 'for-devs/oracles/oracles-content-map',
+ },
+ items: [
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/api3/api3',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/chainlink/chainlink',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/chronicle/chronicle',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/ora/ora',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/supra/supras-price-feed',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/supra/supras-vrf',
+ },
+ {
+ type: 'doc',
+ id: 'for-devs/oracles/trellor/trellor',
+ },
+ ],
+ },
+ {
+ type: 'autogenerated',
+ dirName: 'for-devs/third-party-docs',
+ },
+ ],
+ },
{
type: 'link',
label: 'DAO docs',
diff --git a/src/css/partials/_navbar.scss b/src/css/partials/_navbar.scss
index ad63d96523..750477535c 100644
--- a/src/css/partials/_navbar.scss
+++ b/src/css/partials/_navbar.scss
@@ -1,17 +1,22 @@
.navbar__inner {
- position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ min-height: 60px;
+ flex-wrap: nowrap;
> .navbar__items:first-child {
- position: absolute;
- display: block;
- left: 10px;
- top: 6px;
- flex: 0;
+ flex: 0 0 auto;
+ margin-right: auto;
+ padding-left: 10px;
}
> .navbar__items--right {
display: flex;
- flex: 1;
+ flex: 0 0 auto;
+ gap: 8px; // Add spacing between navbar items
+ justify-content: flex-end;
+ align-items: center;
#search_input_react {
justify-content: flex-end;
@@ -20,5 +25,131 @@
.DocSearch-Button-Keys {
display: none;
}
+
+ // Ensure navbar items don't get squished
+ .navbar__item {
+ flex-shrink: 0;
+ margin-right: 8px;
+ }
+
+ // Optimize dark mode toggle spacing
+ [class*='toggle'],
+ [class*='colorModeToggle'] {
+ margin-left: 8px;
+ flex-shrink: 0;
+ }
+ }
+}
+
+// Adjust main content to account for the fixed top navigation
+.main-wrapper {
+ margin-top: 0;
+}
+
+// Ensure proper spacing between navbar and top navigation
+.navbar {
+ border-bottom: none;
+}
+
+// Inkeep search widget responsive behavior
+#inkeep-widget,
+[id*='inkeep'] {
+ // Allow natural sizing while ensuring navbar items have space
+ flex-shrink: 1;
+ min-width: 180px;
+ max-width: 300px;
+
+ @media (max-width: 1200px) {
+ max-width: 250px;
+ }
+
+ @media (max-width: 996px) {
+ max-width: 200px;
+ }
+
+ @media (max-width: 768px) {
+ max-width: 180px;
+ min-width: 140px;
+ }
+}
+
+// Fix for mobile navigation: ensure right-positioned navbar items appear in hamburger menu
+@media (max-width: 996px) {
+ // Hide right navbar items by default on mobile
+ .navbar__items.navbar__items--right {
+ display: none;
+ }
+
+ // Only show right navbar items when mobile sidebar is open
+ .navbar-sidebar--show .navbar__items.navbar__items--right {
+ display: flex !important;
+ flex-direction: column;
+ width: 100%;
+ margin-top: 1rem;
+ padding-top: 1rem;
+ border-top: 1px solid var(--ifm-toc-border-color);
+ }
+
+ // Ensure all right navbar items are visible when mobile menu is open
+ .navbar-sidebar--show .navbar__items.navbar__items--right > * {
+ display: block !important;
+ position: static !important;
+ }
+
+ // Style navbar links consistently in mobile menu when open
+ .navbar-sidebar--show .navbar__items.navbar__items--right .navbar__link {
+ padding: 0.75rem 1rem;
+ width: 100%;
+ text-align: left;
+ border-radius: 0.375rem;
+ margin: 0.125rem 0;
+
+ &:hover {
+ background-color: var(--ifm-menu-color-background-hover);
+ }
+ }
+
+ // Handle dropdown items in mobile menu when open
+ .navbar-sidebar--show .navbar__items.navbar__items--right .dropdown {
+ width: 100%;
+
+ .dropdown__menu {
+ position: static !important;
+ transform: none !important;
+ box-shadow: none;
+ border: 1px solid var(--ifm-toc-border-color);
+ margin-top: 0.5rem;
+ }
+ }
+}
+
+// Keep "Build dApps" dropdown highlighted when on child pages
+// Target the dropdown link when any of its menu items are active
+.navbar__item.dropdown:has(.dropdown__menu .dropdown__link--active) > .navbar__link {
+ color: var(--ifm-navbar-link-active-color);
+
+ &::after {
+ border-bottom-color: var(--ifm-navbar-link-active-color);
+ border-right-color: var(--ifm-navbar-link-active-color);
+ }
+}
+
+// Alternative approach for browsers that don't support :has() (fallback)
+// Specifically target Build dApps dropdown based on URL patterns
+[data-theme='light'] body[class*='build-decentralized-apps'],
+[data-theme='light'] body[class*='stylus'] {
+ .navbar__item.dropdown .navbar__link[aria-label*='Build dApps'],
+ .navbar__item.dropdown .navbar__link:has(+ .dropdown__menu a[href*='/build-decentralized-apps/']),
+ .navbar__item.dropdown .navbar__link:has(+ .dropdown__menu a[href*='/stylus/']) {
+ color: var(--ifm-navbar-link-active-color);
+ }
+}
+
+[data-theme='dark'] body[class*='build-decentralized-apps'],
+[data-theme='dark'] body[class*='stylus'] {
+ .navbar__item.dropdown .navbar__link[aria-label*='Build dApps'],
+ .navbar__item.dropdown .navbar__link:has(+ .dropdown__menu a[href*='/build-decentralized-apps/']),
+ .navbar__item.dropdown .navbar__link:has(+ .dropdown__menu a[href*='/stylus/']) {
+ color: var(--ifm-navbar-link-active-color);
}
}
diff --git a/src/css/partials/_responsive.scss b/src/css/partials/_responsive.scss
index b77842e4df..de948f3611 100644
--- a/src/css/partials/_responsive.scss
+++ b/src/css/partials/_responsive.scss
@@ -11,7 +11,7 @@
}
}
-@media (max-width: 996px) {
+@media (max-width: 1200px) {
.navbar__inner a.navbar__brand {
display: none;
}
diff --git a/src/pages/index.js b/src/pages/index.js
index 402b6a4dff..2a7112a7e4 100644
--- a/src/pages/index.js
+++ b/src/pages/index.js
@@ -15,8 +15,8 @@ function HomepageHeader(props) {
{siteConfig.title}
{/* {siteConfig.tagline}
*/}
-
-
+
+
);
diff --git a/src/types/css-modules.d.ts b/src/types/css-modules.d.ts
new file mode 100644
index 0000000000..d774364b20
--- /dev/null
+++ b/src/types/css-modules.d.ts
@@ -0,0 +1,4 @@
+declare module '*.module.css' {
+ const classes: { readonly [key: string]: string };
+ export default classes;
+}
diff --git a/vercel.json b/vercel.json
index e118816a85..a22c01a13f 100644
--- a/vercel.json
+++ b/vercel.json
@@ -4,7 +4,7 @@
"installCommand": "bash scripts/init-submodules.sh && yarn install",
"framework": "docusaurus-2",
"redirects": [
- { "source": "/", "destination": "/welcome/get-started", "permanent": false },
+ { "source": "/", "destination": "/get-started/overview", "permanent": false },
{
"source": "/(/build-decentralized-apps/oracles/how-to-use-oracles/?)",
"destination": "/build-decentralized-apps/oracles/overview-oracles",
@@ -190,6 +190,16 @@
"destination": "/how-arbitrum-works/transaction-lifecycle",
"permanent": false
},
+ {
+ "source": "/(docs/get-started/arbitrum-introduction/?)",
+ "destination": "/(docs/get-started/arbitrum-introduction/?)",
+ "permanent": false
+ },
+ {
+ "source": "/(docs/get-started/get-started/?)",
+ "destination": "/(docs/get-started/overview/?)",
+ "permanent": false
+ },
{
"source": "/(docs/inside_arbitrum/?)",
"destination": "/how-arbitrum-works/a-gentle-introduction",
@@ -225,6 +235,11 @@
"destination": "/build-decentralized-apps/reference/mainnet-risks",
"permanent": false
},
+ {
+ "source": "/(docs/partials/glossary/_fast-exit--liquidity-exit/?)",
+ "destination": "/(docs/partials/glossary/_fast-exit-liquidity-exit/?)",
+ "permanent": false
+ },
{
"source": "/(docs/rollup_protocol/?)",
"destination": "/how-arbitrum-works/optimistic-rollup",
@@ -240,6 +255,16 @@
"destination": "/how-arbitrum-works/transaction-lifecycle",
"permanent": false
},
+ {
+ "source": "/(docs/welcome/arbitrum-gentle-introduction/?)",
+ "destination": "/(docs/get-started/arbitrum-introduction/?)",
+ "permanent": false
+ },
+ {
+ "source": "/(docs/welcome/get-started/?)",
+ "destination": "/(docs/get-started/overview/?)",
+ "permanent": false
+ },
{
"source": "/(docs/withdrawals/?)",
"destination": "/how-arbitrum-works/transaction-lifecycle",
@@ -352,7 +377,7 @@
},
{
"source": "/(for-devs/gentle-introduction-dapps/?)",
- "destination": "/welcome/arbitrum-gentle-introduction",
+ "destination": "/get-started/arbitrum-introduction",
"permanent": false
},
{
@@ -552,7 +577,7 @@
},
{
"source": "/(intro/?)",
- "destination": "/welcome/arbitrum-gentle-introduction",
+ "destination": "/get-started/arbitrum-introduction",
"permanent": false
},
{
@@ -1842,7 +1867,7 @@
},
{
"source": "/(welcome/?)",
- "destination": "/welcome/arbitrum-gentle-introduction",
+ "destination": "/get-started/arbitrum-introduction",
"permanent": false
},
{
@@ -1902,7 +1927,7 @@
},
{
"source": "/docs/developer_quickstart",
- "destination": "/welcome/get-started",
+ "destination": "/get-started/overview",
"permanent": false
},
{
@@ -2018,7 +2043,7 @@
"destination": "/faqs/protocol-faqs#q-seq-vs-val",
"permanent": false
},
- { "source": "/faqs/the-merge", "destination": "/welcome/get-started", "permanent": false },
+ { "source": "/faqs/the-merge", "destination": "/get-started/overview", "permanent": false },
{
"source": "/faqs/tooling-faqs",
"destination": "/for-devs/troubleshooting-building",