pull/26459/head^2
Joe 2 years ago
commit 9d3be9b1d6
  1. 2
      docs/faq.md
  2. 2
      docs/fundamentals/peer-to-peer.md
  3. 6
      docs/getting-started/index.md
  4. 2
      src/components/UI/Header.tsx
  5. 132
      src/components/UI/docs/DocsLinks.tsx
  6. 35
      src/components/UI/docs/LinkList.tsx
  7. 57
      src/components/UI/docs/LinksList.tsx
  8. 2
      src/components/UI/docs/MDComponents.tsx
  9. 2
      src/components/UI/docs/index.ts
  10. 4
      src/components/UI/downloads/DownloadsHero.tsx
  11. 4
      src/components/UI/downloads/DownloadsTable.tsx
  12. 21
      src/components/UI/svgs/AddIcon.tsx
  13. 20
      src/components/UI/svgs/MinusIcon.tsx
  14. 2
      src/components/UI/svgs/index.ts
  15. 30
      src/components/layouts/Footer.tsx
  16. 2
      src/components/layouts/Layout.tsx
  17. 2
      src/constants.ts
  18. 15
      src/data/documentation-links.yaml
  19. 6
      src/pages/[...slug].tsx
  20. 45
      src/pages/downloads.tsx
  21. 6
      src/theme/components/Link.ts
  22. 2
      src/theme/foundations/textStyles.ts

@ -5,7 +5,7 @@ description: Frequently asked questions related to Geth
## Where can I get more information? {#where-can-i-get-more-information}
This page contains answers to common questions about Geth. Source code and README documentation can be found on the Geth [GitHub](https://github.com/ethereum/go-ethereum). You can also ask questions on Geth's [Discord channel](https://discord.gg/WHNkYDsAKU) or keep up to date with Geth on [Twitter](https://twitter.com/go_ethereum). Information about Ethereum in general can be found at [ethereum.org](https://ethereum.org).
This page contains answers to common questions about Geth. Source code and README documentation can be found on the Geth [GitHub](https://github.com/ethereum/go-ethereum). You can also ask questions on Geth's [Discord server](https://discord.gg/WHNkYDsAKU) or keep up to date with Geth on [Twitter](https://twitter.com/go_ethereum). Information about Ethereum in general can be found at [ethereum.org](https://ethereum.org).
The Geth team have also recently started to run AMA's on Reddit:

@ -3,7 +3,7 @@ title: Connecting To The Network
description: Guide to connecting Geth to a peer-to-peer network
---
The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network.md) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simpyl by passing:
The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simpyl by passing:
- `--goerli`, Goerli proof-of-authority test network
- `--sepolia` Sepolia proof-of-work test network

@ -5,7 +5,7 @@ description: Guide to getting up and running with Geth using Clef.
This page explains how to set up Geth and execute some basic tasks using the command line tools. In order to use Geth, the software must first be installed. There are several ways Geth can be installed depending on the operating system and the user's choice of installation method, for example using a package manager, container or building from source. Instructions for installing Geth can be found on the ["Install and Build"](/docs/getting_started/Installing-Geth) pages.
Geth also needs to be connected to a [consensus client](docs/getting-started/consensus-clients.md) in order to function as an Ethereum node. The tutorial on this page assumes Geth and a consensus client have been installed successfully and that a firewall has been configured to block external traffic to the JSON-RPC port `8545` see [Security](/docs/fundamentals/security).
Geth also needs to be connected to a [consensus client](docs/getting-started/consensus-clients) in order to function as an Ethereum node. The tutorial on this page assumes Geth and a consensus client have been installed successfully and that a firewall has been configured to block external traffic to the JSON-RPC port `8545` see [Security](/docs/fundamentals/security).
This page provides step-by-step instructions covering the fundamentals of using Geth. This includes generating accounts, joining an Ethereum network, syncing the blockchain and sending ether between accounts. This tutorial uses [Clef](/docs/tools/Clef/Tutorial). Clef is an account management tool external to Geth itself that allows users to sign transactions. It is developed and maintained by the Geth team.
@ -33,7 +33,7 @@ Read more about Ethereum accounts [here](https://ethereum.org/en/developers/docs
## Step 1: Generating accounts {#generating-accounts}
There are several methods for generating accounts in Geth. This tutorial demonstrates how to generate accounts using Clef, as this is considered best practice, largely because it decouples the users' key management from Geth, making it more modular and flexible. It can also be run from secure USB sticks or virtual machines, offering security benefits. For convenience, this tutorial will execute Clef on the same computer that will also run Geth, although more secure options are available (see [here](https://github.com/ethereum/go-ethereum/blob/master/cmd/clef/docs/setup.md)).
There are several methods for generating accounts in Geth. This tutorial demonstrates how to generate accounts using Clef, as this is considered best practice, largely because it decouples the users' key management from Geth, making it more modular and flexible. It can also be run from secure USB sticks or virtual machines, offering security benefits. For convenience, this tutorial will execute Clef on the same computer that will also run Geth, although more secure options are available (see [here](/docs/tools/clef/setup)).
An account is a pair of keys (public and private). Clef needs to know where to save these keys to so that they can be retrieved later. This information is passed to Clef as an argument. This is achieved using the following command:
@ -121,7 +121,7 @@ geth --sepolia --datadir geth-tutorial --authrpc.addr localhost --authrpc.port 8
Running the above command starts Geth. Geth will not sync the blockchain correctly unless there is also a consensus client that can pass Geth a valid head to sync up to. In a separate terminal, start a consensus client. Once the consensus client gets in sync, Geth will start to sync too.
The terminal should rapidly fill with status updates that look similar to those below. To check the meaning of the logs, refer to the [logs page](docs/fundamentals/logs.md).
The terminal should rapidly fill with status updates that look similar to those below. To check the meaning of the logs, refer to the [logs page](/docs/fundamentals/logs).
```terminal
INFO [02-10|13:59:06.649] Starting Geth on sepolia testnet...

@ -29,7 +29,7 @@ export const Header: FC = () => {
>
<NextLink href={'/'} passHref>
<Link _hover={{ textDecoration: 'none' }}>
<Text textStyle='header-font'>go-ethereum</Text>
<Text textStyle='header-font' whiteSpace='nowrap'>go-ethereum</Text>
</Link>
</NextLink>
</Stack>

@ -9,8 +9,9 @@ import {
Stack,
Text
} from '@chakra-ui/react';
import { AddIcon, MinusIcon } from '@chakra-ui/icons';
import { AddIcon, MinusIcon } from '../svgs/'
import NextLink from 'next/link';
import { useRouter } from 'next/router';
import { LinksList } from './';
@ -20,62 +21,83 @@ interface Props {
navLinks: NavLink[];
}
export const DocsLinks: FC<Props> = ({ navLinks }) => (
<Stack border='2px' borderColor='primary'>
{navLinks.map(({ id, to, items }, idx) => {
return (
<Accordion key={id} allowToggle mt='0 !important' defaultIndex={[0]}>
<AccordionItem border='none'>
{({ isExpanded }) => (
<>
<AccordionButton
borderBottom={navLinks.length - 1 === idx ? 'none' : '2px'}
p={0}
borderColor='primary'
justifyContent='space-between'
placeContent='flex-end'
bg='button-bg'
>
<Stack
p={4}
borderRight={items ? '2px' : 'none'}
export const DocsLinks: FC<Props> = ({ navLinks }) => {
const router = useRouter();
const { slug } = router.query;
return (
<Stack border='2px' borderColor='primary'>
{navLinks.map(({ id, to, items }, idx) => {
const split = to?.split('/')
const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1];
return (
<Accordion key={id} allowToggle mt='0 !important' defaultIndex={[0]}>
<AccordionItem border='none'>
{({ isExpanded }) => (
<>
<AccordionButton
borderBottom={navLinks.length - 1 === idx ? 'none' : '2px'}
p={0}
borderColor='primary'
w='100%'
bg='bg'
justifyContent='space-between'
placeContent='flex-end'
bg='button-bg'
data-group
>
{to ? (
<NextLink href={to} passHref>
<Link>
<Text textStyle='docs-nav-dropdown'>{id}</Text>
</Link>
</NextLink>
) : (
<Text textStyle='docs-nav-dropdown'>{id}</Text>
)}
</Stack>
<Stack
p={4}
borderRight={items ? '2px' : 'none'}
borderColor='primary'
w='100%'
bg='bg'
_groupHover={{ background: 'primary', color: 'bg', textDecoration: 'none' }}
>
{to ? (
<NextLink href={to} passHref>
<Link textDecoration='none !important'>
<Text
textStyle='docs-nav-dropdown'
color={isActive ? 'primary' : 'unset'}
_before={{
content: '"■"',
verticalAlign: '-1.25px',
marginInlineEnd: 2,
fontSize: 'lg',
display: isActive ? 'unset' : 'none',
}}
_groupHover={{ color: 'bg' }}
>
{id}
</Text>
</Link>
</NextLink>
) : (
<Text textStyle='docs-nav-dropdown'>{id}</Text>
)}
</Stack>
{items && (
<Stack minW='61px'>
<Center>
{isExpanded ? (
<MinusIcon w='24px' h='24px' color='primary' />
) : (
<AddIcon w='24px' h='24px' color='primary' />
)}
</Center>
</Stack>
)}
</AccordionButton>
{items && (
<Stack minW='61px'>
<Center>
{isExpanded ? (
<MinusIcon w='20px' h='20px' color='primary' />
) : (
<AddIcon w='20px' h='20px' color='primary' />
)}
</Center>
</Stack>
<AccordionPanel borderBottom='2px solid' borderColor='primary' px={0} py={4}>
<LinksList links={items} />
</AccordionPanel>
)}
</AccordionButton>
{items && (
<AccordionPanel borderBottom='2px solid' borderColor='primary' px={0} py={4}>
<LinksList links={items} />
</AccordionPanel>
)}
</>
)}
</AccordionItem>
</Accordion>
);
})}
</Stack>
);
</>
)}
</AccordionItem>
</Accordion>
);
})}
</Stack>
);
}

@ -1,35 +0,0 @@
import { FC } from 'react';
import { Link, Stack, Text } from '@chakra-ui/react';
import NextLink from 'next/link';
import { NavLink } from '../../../types';
interface LinksListProps {
links: NavLink[];
}
export const LinksList: FC<LinksListProps> = ({ links }) => (
<Stack px={4}>
{links.map(({ id, to, items }) => {
return to ? (
<Stack key={id}>
<NextLink href={to} passHref key={id}>
<Link>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
</Link>
</NextLink>
{items && <LinksList links={items} />}
</Stack>
) : (
<Stack key={id}>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
{items && <LinksList links={items} />}
</Stack>
);
})}
</Stack>
);

@ -0,0 +1,57 @@
import { FC } from 'react';
import { Link, Stack, Text } from '@chakra-ui/react';
import NextLink from 'next/link';
import { useRouter } from 'next/router';
import { NavLink } from '../../../types';
interface LinksListProps {
links: NavLink[];
}
export const LinksList: FC<LinksListProps> = ({ links }) => {
const router = useRouter();
const { slug } = router.query;
return (
<Stack px={4}>
{links.map(({ id, to, items }) => {
const split = to?.split('/')
const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1];
return to ? (
<Stack key={id} pb={items ? 6 : 0} _hover={{ background: 'primary', color: 'bg' }} data-group>
<NextLink href={to} passHref key={id}>
<Link textDecoration='none !important'>
<Text
textStyle='docs-nav-links'
color={items || isActive ? 'primary' : 'body'}
_before={{
content: '"■"',
verticalAlign: '-1.25px',
marginInlineEnd: 2,
fontSize: 'lg',
display: isActive ? 'unset' : 'none',
}}
_groupHover={{
color: 'bg',
boxShadow: '0 0 0 var(--chakra-space-2) var(--chakra-colors-primary)',
}}
>
{id}
</Text>
</Link>
</NextLink>
{items && <LinksList links={items} />}
</Stack>
) : (
<Stack key={id} pb={6}>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
{items && <LinksList links={items} />}
</Stack>
);
})}
</Stack>
);
};

@ -143,7 +143,7 @@ const MDComponents = {
);
},
li: ({ children }: any) => {
return <ListItem color='primary'>{children}</ListItem>;
return <ListItem>{children}</ListItem>;
},
note: ({ children }: any) => {
return <Note>{children}</Note>;

@ -3,6 +3,6 @@ export * from './Code';
export * from './DocsLinks';
export * from './DocsNav';
export * from './DocumentNav';
export * from './LinkList';
export * from './LinksList';
export * from './Note';
export { default } from './MDComponents';

@ -1,4 +1,4 @@
import { Box, Button, Center, Grid, HStack, Image, Link, Stack, Text } from '@chakra-ui/react';
import { Box, Button, Center, Grid, HStack, Link, Stack, Text } from '@chakra-ui/react';
import { FC } from 'react';
import NextLink from 'next/link';
@ -32,7 +32,7 @@ export const DownloadsHero: FC<DownloadsHero> = ({
return (
<Grid
border='3px solid'
border='2px solid'
borderColor='primary'
p={4}
templateColumns={{ base: 'repeat(1, 1fr)', lg: '1fr 430px' }}

@ -33,6 +33,8 @@ export const DownloadsTable: FC<Props> = ({
androidData.length
];
const LAST_2_LINUX_RELEASES = amountOfReleasesToShow + 12;
return (
<Stack sx={{ mt: '0 !important' }} borderBottom='2px solid' borderColor='primary'>
<Tabs variant='unstyled' onChange={idx => setTotalReleases(totalReleases[idx])}>
@ -61,7 +63,7 @@ export const DownloadsTable: FC<Props> = ({
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOADS_TABLE_TAB_COLUMN_HEADERS}
data={linuxData.slice(0, amountOfReleasesToShow)}
data={linuxData.slice(0, LAST_2_LINUX_RELEASES)}
/>
</TabPanel>
<TabPanel p={0}>

@ -0,0 +1,21 @@
import { IconProps } from '@chakra-ui/react';
import { createIcon } from '@chakra-ui/icons';
const [w, h] = [24, 24];
const Icon = createIcon({
displayName: 'AddIcon',
viewBox: `0 0 ${w} ${h}`,
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<g fill="currentColor">
<rect height="2" width="20" x="2" y="11"></rect>
<rect height="20" width="2" x="11" y="2"></rect>
</g>
</svg>
)
});
export const AddIcon: React.FC<IconProps> = props => (
<Icon h={h} w={w} color='primary' {...props} />
);

@ -0,0 +1,20 @@
import { IconProps } from '@chakra-ui/react';
import { createIcon } from '@chakra-ui/icons';
const [w, h] = [24, 24];
const Icon = createIcon({
displayName: 'MinusIcon',
viewBox: `0 0 ${w} ${h}`,
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<g fill="currentColor">
<rect height="2" width="20" x="2" y="11"></rect>
</g>
</svg>
)
});
export const MinusIcon: React.FC<IconProps> = props => (
<Icon h={h} w={w} color='primary' {...props} />
);

@ -1,5 +1,7 @@
export * from './AddIcon';
export * from './GlyphHome';
export * from './GopherDownloads';
export * from './GopherHomeFront';
export * from './GopherHomeLinks';
export * from './GopherHomeNodes';
export * from './MinusIcon';

@ -12,6 +12,12 @@ import {
import { DiscordIcon, GitHubIcon, TwitterIcon } from '../UI/icons';
const hoverStyles = {
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
};
export const Footer: FC = () => {
return (
<Flex mt={4} direction={{ base: 'column', lg: 'row' }}>
@ -32,11 +38,7 @@ export const Footer: FC = () => {
<Center
flex={1}
color='primary'
_hover={{
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
}}
_hover={hoverStyles}
borderRight='2px solid'
borderColor='primary'
p={4}
@ -51,11 +53,7 @@ export const Footer: FC = () => {
<Center
flex={1}
color='primary'
_hover={{
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
}}
_hover={hoverStyles}
borderRight={{
base: 'none',
md: '2px solid'
@ -81,9 +79,7 @@ export const Footer: FC = () => {
lg: 'none'
}}
borderColor='primary !important'
_hover={{
bg: 'primary'
}}
_hover={hoverStyles}
p={4}
>
<NextLink href={GETH_TWITTER_URL} passHref>
@ -96,9 +92,7 @@ export const Footer: FC = () => {
<Center
data-group
flex={1}
_hover={{
bg: 'primary'
}}
_hover={hoverStyles}
borderWidth='2px'
borderStyle='none solid'
borderColor='primary'
@ -114,9 +108,7 @@ export const Footer: FC = () => {
<Center
data-group
flex={1}
_hover={{
bg: 'primary'
}}
_hover={hoverStyles}
p={4}
>
<NextLink href={GETH_REPO_URL} passHref>

@ -12,7 +12,7 @@ interface Props {
export const Layout: FC<Props> = ({ children }) => {
return (
<Container maxW={{ base: 'container.sm', md: 'container.2xl' }} my={{ base: 4, md: 7 }}>
<Container maxW={{ base: 'full', md: 'container.2xl' }} my={{ base: 4, md: 7 }}>
<Header />
{children}

@ -20,7 +20,7 @@ export const GETH_DISCORD_URL = 'https://discord.com/invite/nthXNEv';
export const GO_URL = 'https://go.dev/';
// Downloads
export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 10;
export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 12;
export const DOWNLOAD_HEADER_BUTTONS: {
[index: string]: {
name: string;

@ -1,6 +1,7 @@
- id: Getting started
to: /docs/getting-started
items:
- id: Introduction
to: /docs/getting-started
- id: Hardware requirements
to: /docs/getting-started/hardware-requirements
- id: Installing Geth
@ -8,8 +9,9 @@
- id: Consensus clients
to: /docs/getting-started/consensus-clients
- id: Fundamentals
to: /docs/fundamentals
items:
- id: Introduction
to: /docs/fundamentals
- id: Node architecture
to: /docs/fundamentals/node-architecture
- id: Command-line options
@ -35,8 +37,9 @@
- id: Interacting with Geth
items:
- id: JSON-RPC Server
to: /docs/interacting-with-geth/rpc
items:
- id: Introduction
to: /docs/interacting-with-geth/rpc
- id: Batch requests
to: /docs/interacting-with-geth/rpc/batch
- id: GraphQL server
@ -70,8 +73,9 @@
- id: 'JavaScript Console 2: Contracts'
to: /docs/interacting-with-geth/javascript-console-contracts
- id: Developers
to: /docs/developers
items:
- id: Introduction
to: /docs/developers
- id: Dapp developers
items:
- id: Go API
@ -83,8 +87,9 @@
- id: Geth for Mobile
to: /docs/developers/dapp-developer/mobile
- id: EVM tracing
to: /docs/developers/evm-tracing
items:
- id: Introduction
to: /docs/developers/evm-tracing
- id: Basic traces
to: /docs/developers/evm-tracing/basic-traces
- id: Built-in tracers

@ -115,8 +115,8 @@ const DocPage: NextPage<Props> = ({ frontmatter, content, navLinks, lastModified
</Text>
</Stack>
<Flex width='100%' placeContent='space-between'>
<Stack maxW='768px'>
<Flex width='100%' placeContent='space-between' gap={8}>
<Stack maxW='768px' sx={{ "*:first-of-type": { marginTop: '0 !important' } }}>
<ReactMarkdown
remarkPlugins={[gfm]}
rehypePlugins={[rehypeRaw]}
@ -126,7 +126,7 @@ const DocPage: NextPage<Props> = ({ frontmatter, content, navLinks, lastModified
</ReactMarkdown>
</Stack>
<Stack display={{ base: 'none', xl: 'block' }} w={48}>
<Stack display={{ base: 'none', xl: 'block' }} w="clamp(var(--chakra-sizes-40), 12.5%, var(--chakra-sizes-56))">
<DocumentNav content={content} />
</Stack>
</Flex>

@ -287,11 +287,11 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
const [totalDevBuilds, setTotalDevBuilds] = useState(ALL_LINUX_DEV_BUILDS.length);
const showMoreStableReleases = () => {
setAmountStableReleases(amountStableReleases + 10);
setAmountStableReleases(amountStableReleases + 12);
};
const showMoreDevBuilds = () => {
setAmountDevBuilds(amountDevBuilds + 10);
setAmountDevBuilds(amountDevBuilds + 12);
};
return (
@ -374,25 +374,14 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
<Flex
sx={{ mt: '0 !important' }}
flexDirection={{ base: 'column', md: 'row' }}
justifyContent='space-between'
justifyContent='flex-end'
alignItems='center'
>
<Stack p={4} display={{ base: 'none', md: 'block' }} mx='auto'>
<Text textStyle='hero-text-small'>
{totalStableReleases > 0
? `Showing ${Math.min(
amountStableReleases,
totalStableReleases
)} latest releases of
a total ${totalStableReleases} releases`
: `No releases`}
</Text>
</Stack>
{totalStableReleases > amountStableReleases && (
<Stack
sx={{ mt: '0 !important' }}
borderLeft={{ base: 'none', md: '2px solid #11866f' }}
borderLeft={{ base: 'none', md: '2px solid var(--chakra-colors-primary)' }}
w={{ base: '100%', md: 'auto' }}
>
<Link
as='button'
@ -440,22 +429,14 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
<Flex
sx={{ mt: '0 !important' }}
flexDirection={{ base: 'column', md: 'row' }}
justifyContent='space-between'
justifyContent='flex-end'
alignItems='center'
>
<Stack p={4} display={{ base: 'none', md: 'block' }} mx='auto'>
<Text textStyle='hero-text-small'>
{totalDevBuilds > 0
? `Showing ${Math.min(amountDevBuilds, totalDevBuilds)} latest releases of
a total ${totalDevBuilds} releases`
: `No releases`}
</Text>
</Stack>
{totalDevBuilds > amountDevBuilds && (
<Stack
sx={{ mt: '0 !important' }}
borderLeft={{ base: 'none', md: '2px solid #11866f' }}
borderLeft={{ base: 'none', md: '2px solid var(--chakra-colors-primary)' }}
w={{ base: '100%', md: 'auto' }}
>
<Link as='button' variant='button-link-secondary' onClick={showMoreDevBuilds}>
<Text
@ -504,6 +485,7 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
borderColor='primary'
gap={4}
flexDirection={{ base: 'column', md: 'row' }}
alignItems='center'
>
<Stack flex={1}>
<Text textStyle='quick-link-text'>
@ -512,7 +494,7 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
</Text>
</Stack>
<Stack flex={1} w={'100%'} bg='terminal-bg'>
<Stack flex={1} w={'100%'}>
<Code p={4} bg='code-bg'>
gpg --recv-keys F9585DE6 C2FF8BBF 9BA28146 7B9E2481 D2A67EAC
</Code>
@ -525,6 +507,8 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
borderColor='primary'
gap={4}
flexDirection={{ base: 'column', md: 'row' }}
alignItems='center'
sx={{ mt: '0 !important' }}
>
<Stack flex={1}>
<Text textStyle='quick-link-text'>
@ -533,7 +517,7 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
</Text>
</Stack>
<Stack flex={1} w={'100%'} bg='terminal-bg'>
<Stack flex={1} w={'100%'}>
<Code p={4} bg='code-bg'>
gpg --recv-keys E058A81C 05A5DDF0 1CCB7DD2
</Code>
@ -542,10 +526,11 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
<Flex
p={4}
borderBottom='2px'
borderColor='primary'
gap={4}
flexDirection={{ base: 'column', md: 'row' }}
alignItems='center'
sx={{ mt: '0 !important' }}
>
<Stack flex={1}>
<Text textStyle='quick-link-text'>

@ -15,13 +15,13 @@ export const Link = {
light: {
textDecoration: 'underline',
color: 'primary',
_hover: { color: 'body', textDecorationColor: 'body' },
_hover: { color: 'body', textDecorationColor: 'secondary' },
_focus: {
color: 'primary',
boxShadow: '0 0 0 1px var(--chakra-colors-primary)',
boxShadow: '0 0 0 1px var(--chakra-colors-primary) !important',
textDecoration: 'none'
},
_pressed: {
_active: {
color: 'secondary',
textDecorationColor: 'secondary'
}

@ -137,7 +137,7 @@ export const textStyles = {
fontWeight: 700,
textTransform: 'uppercase',
textAlign: 'center',
fontSize: 'sm'
fontSize: { base: 'xs', sm: 'sm' }
},
'docs-nav-dropdown': {
fontFamily: 'heading',

Loading…
Cancel
Save