mirror of
https://github.com/meshtastic/meshtastic.git
synced 2025-01-12 14:27:45 -08:00
Merge branch 'master' into rcarteraz-patch-2
This commit is contained in:
commit
bafa446941
|
@ -49,6 +49,9 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
|
|||
### Michigan
|
||||
- [Michigan Meshtastic Network](https://discord.gg/3A5RREcBcc)
|
||||
|
||||
### Oklahoma
|
||||
- [Oklahoma Meshtastic Group] (https://www.facebook.com/groups/942404880478488)
|
||||
|
||||
### Texas
|
||||
- [Austin Mesh](https://austinmesh.org/)
|
||||
|
||||
|
|
|
@ -8,11 +8,15 @@ description: This module allows you to send information about your immediate(0 h
|
|||
import Tabs from "@theme/Tabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
The Neighbor Info Module is for sending information on each node's 0-hop neighbors to the mesh. Config options are: Enabled and Update Interval.
|
||||
The Neighbor Info Module is for sending information on each node's 0-hop neighbors to the mesh. Config options are: Enabled and Update Interval.
|
||||
|
||||
:::info
|
||||
Neighbor Info is informative only and does not affect the routing behavior of the mesh network. It is therefore optional and disabled by default.
|
||||
:::
|
||||
|
||||
In order to save bandwidth, Meshtastic does not keep track of the route a packet is taking to get to the destination, except when using Traceroute. When enabling this module, your node will periodically send out a packet with a list of its direct neighbors and the quality (SNR) of the corresponding link. If you enable this on all nodes, you can build up a graph of the full network to see how it is connected. At the time of writing, there are no clients visualizing it for you, but you can use e.g. MQTT to gather all the data.
|
||||
|
||||
In order to use it, make sure your devices use firmware version 2.2.0 or higher.
|
||||
In order to use it, make sure your devices use firmware version 2.2.0 or higher. From 2.3.2 on, the module can detect neighbors even if other nodes do not have the module enabled.
|
||||
|
||||
## Neighbor Info Module Config Values
|
||||
|
||||
|
|
|
@ -94,14 +94,6 @@ pytest --durations=0
|
|||
make slow
|
||||
```
|
||||
|
||||
### Generate the Python API documentation
|
||||
|
||||
Pre-generated: [API documentation](https://python.meshtastic.org)
|
||||
|
||||
```shell
|
||||
bin/regen-docs.sh
|
||||
```
|
||||
|
||||
## Wire encoding
|
||||
|
||||
When sending protobuf packets over serial or TCP each packet is preceded by uint32 sent in network byte order (big endian).
|
||||
|
|
|
@ -17,11 +17,12 @@ values={[
|
|||
{label: 'LoRa32 V3/V3.1', value:'v3'},
|
||||
{label: 'Wireless Stick Lite V3', value:'Wireless Stick Lite V3'},
|
||||
{label: 'Wireless Tracker', value: 'tracker'},
|
||||
{label: 'Wireless Paper', value: 'paper'}
|
||||
{label: 'Wireless Paper v1.0', value: 'paper-v1.0'},
|
||||
{label: 'Wireless Paper v1.1', value: 'paper-v1.1'}
|
||||
]}>
|
||||
<TabItem value="v2.1">
|
||||
|
||||
## HELTEC v2.1
|
||||
## V2.1
|
||||
|
||||
:::warning
|
||||
Not recommended because of design issues! Support is being phased out. Use V3 in new projects.
|
||||
|
@ -54,7 +55,7 @@ Not recommended because of design issues! Support is being phased out. Use V3 in
|
|||
|
||||
<TabItem value="v3">
|
||||
|
||||
## HELTEC v3/v3.1
|
||||
## V3/V3.1
|
||||
|
||||
:::info
|
||||
This device may have issues charging a connected battery if utilizing a USB-C to USB-C cable. It's recommended to use a USB-A to USB-C cable.
|
||||
|
@ -110,7 +111,7 @@ Image Source: [Heltec](<https://resource.heltec.cn/download/WiFi_LoRa32_V3/HTIT-
|
|||
|
||||
<TabItem value="Wireless Stick Lite V3">
|
||||
|
||||
## HELTEC Wireless Stick Lite V3
|
||||
## Wireless Stick Lite V3
|
||||
|
||||
:::info
|
||||
This device may have issues charging a connected battery if utilizing a USB-C to USB-C cable. It's recommended to use a USB-A to USB-C cable.
|
||||
|
@ -161,7 +162,7 @@ Image Source: [Heltec](https://resource.heltec.cn/download/Wireless_Stick_Lite_V
|
|||
|
||||
<TabItem value="tracker">
|
||||
|
||||
## HELTEC Tracker
|
||||
## Wireless Tracker
|
||||
|
||||
:::info
|
||||
This device may have issues charging a connected battery if utilizing a USB-C to USB-C cable. It's recommended to use a USB-A to USB-C cable.
|
||||
|
@ -221,16 +222,56 @@ Image Source: [Heltec](https://heltec.org/project/wireless-tracker/)
|
|||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="paper">
|
||||
<TabItem value="paper-v1.0">
|
||||
|
||||
## HELTEC Paper
|
||||
## Wireless Paper V1.0
|
||||
|
||||
:::caution
|
||||
|
||||
Currently the display is only supported in devices labeled v1.1.
|
||||
:::info
|
||||
**The Wireless Paper V1.0 is listed as "Wireless Paper V1.0" in the firmware files and on the web flasher.**
|
||||
|
||||
This device may have issues charging a connected battery if utilizing a USB-C to USB-C cable. It's recommended to use a USB-A to USB-C cable.
|
||||
:::
|
||||
|
||||
|
||||
|
||||
- **MCU:**
|
||||
- ESP32-S3FN8 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver:**
|
||||
- Semtech SX1262
|
||||
- **Frequency Options:**
|
||||
- 433 MHz
|
||||
- 470 - 510 MHz
|
||||
- 863 - 870 MHz
|
||||
- 902 - 928 MHz
|
||||
- **Connectors:**
|
||||
- USB-C
|
||||
- Antenna:
|
||||
- U.FL/IPEX antenna connector for LoRa
|
||||
- Integrated 2.4 GHz PCB antenna
|
||||
|
||||
### Features
|
||||
|
||||
- Onboard 2.13-inch black and white E-Ink display screen
|
||||
- User and Reset switches
|
||||
- No GPS
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-heltec-wireless-paper-v1_0-X.X.X.xxxxxxx.bin`
|
||||
- Purchase Links:
|
||||
- International
|
||||
- [Heltec](https://heltec.org/project/wireless-paper/)
|
||||
- [AliExpress](https://www.aliexpress.us/item/3256805461611876.html)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="paper-v1.1">
|
||||
|
||||
## Wireless Paper V1.1
|
||||
|
||||
:::info
|
||||
**The Wireless Paper V1.1 is listed as "Wireless Paper" in the firmware files and on the web flasher.**
|
||||
|
||||
This device may have issues charging a connected battery if utilizing a USB-C to USB-C cable. It's recommended to use a USB-A to USB-C cable.
|
||||
:::
|
||||
|
||||
|
||||
|
@ -239,6 +280,7 @@ This device may have issues charging a connected battery if utilizing a USB-C to
|
|||
- **LoRa Transceiver:**
|
||||
- Semtech SX1262
|
||||
- **Frequency Options:**
|
||||
- 433 MHz
|
||||
- 470 - 510 MHz
|
||||
- 863 - 870 MHz
|
||||
- 902 - 928 MHz
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
---
|
||||
id: linux-native-hardware
|
||||
title: Meshtastic on Linux-Native Devices
|
||||
sidebar_label: Linux Native Devices
|
||||
sidebar_position: 11
|
||||
description: Set up and configure Meshtastic on Linux-native devices using the meshtasticd binary.
|
||||
---
|
||||
|
||||
This page outlines the setup of Meshtastic on Linux-native devices, utilizing portduino to run the Meshtastic firmware under Linux.
|
||||
|
||||
## Prerequisites and Hardware Compatibility
|
||||
|
||||
Before proceeding with the setup, ensure the device meets the following requirements:
|
||||
|
||||
### Tested Devices
|
||||
- Raspberry Pi zero, zero 2 , 3,4, Pi 400, and Pi 5.[^1]
|
||||
- Ubuntu 22.04 X86_64 with a CH341-SX1262 DIY dongle.[^2]
|
||||
- Debian GNU/Linux trixie/sid riscv64 on Cvitek CV180X ASIC, C906 (Milk-V Duo), on the SPI bus.
|
||||
|
||||
[^1]: While the Raspberry Pi Zero has been tested with meshtasticd, building as a native ARM32 binary has proven challenging. As a workaround, consider building on a Raspberry Pi 4 or 5 with a 32-bit OS and copying the output file to the Pi Zero.
|
||||
[^2]: **Limited Functionality with CH341-SX1262 Device:** Please be aware that the CH341-SX1262 device is currently experiencing partial functionality issues. For reasons yet to be determined, this device struggles with sending packets larger than a few bytes.
|
||||
|
||||
### Hardware Compatibility
|
||||
- Tested radios include Waveshare SX126X, Adafruit RFM9x, and Elecrow Lora RFM95 IOT.
|
||||
- Support for I2C displays, SPI displays, and keyboard input has been confirmed. It is necessary to be aware of potential pin conflicts when stacking hats.
|
||||
- UART HATs and SX1302/SX1303 chip-based HATs are not supported.
|
||||
|
||||
### System Requirements
|
||||
- The Meshtastic binary, `meshtasticd`, necessitates root access or a user with permissions to access GPIO, SPI, and other interfaces.
|
||||
- A Linux distribution compatible with the Meshtastic installation package, which is compiled for Debian Bookworm and not compatible with Bullseye.
|
||||
|
||||
## Installation
|
||||
|
||||
### Installing Meshtasticd
|
||||
|
||||
- Necessary system libraries should be installed before building or installing Meshtastic.
|
||||
|
||||
```shell
|
||||
sudo apt install libgpiod-dev libyaml-cpp-dev libbluetooth-dev
|
||||
```
|
||||
- And optionally for web server support
|
||||
```shell
|
||||
sudo apt install openssl libssl-dev libulfius-dev liborcania-dev
|
||||
```
|
||||
|
||||
- The .deb Package is available as part of the release, installing the binary, a systemd service, and a config file. It is compiled for Debian Bookworm and incompatible with Bullseye.
|
||||
```shell
|
||||
sudo apt install ./meshtasticd_{version}arm64.deb
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Hardware Interfaces
|
||||
|
||||
For devices requiring SPI or I2C:
|
||||
|
||||
- SPI support can be enabled in `/boot/config.txt` or `/boot/firmware/config.txt`:
|
||||
|
||||
```plaintext
|
||||
dtparam=spi=on
|
||||
dtoverlay=spi0-0cs
|
||||
```
|
||||
|
||||
- I2C support is enabled with:
|
||||
|
||||
```plaintext
|
||||
dtparam=i2c_arm=on
|
||||
```
|
||||
|
||||
### Meshtasticd Configuration
|
||||
|
||||
- The meshtasticd configuration is at `/etc/meshtasticd/config.yaml` by default. If a `config.yaml` is found in the current directory, that takes precedence. And a config file specified with the `-c/--config` option has the highest precedence.
|
||||
|
||||
To enable a LoRa radio connected to your device, uncomment the appropriate lines in the config file, including the Module line. As an example, the Waveshare SX126X module would have a Lora section that looks like this:
|
||||
|
||||
```yaml
|
||||
Lora:
|
||||
Module: sx1262 # Waveshare SX126X XXXM
|
||||
DIO2_AS_RF_SWITCH: true
|
||||
CS: 21
|
||||
IRQ: 16
|
||||
Busy: 20
|
||||
Reset: 18
|
||||
```
|
||||
:::info
|
||||
The config.yaml file is sensitive to spacing, so ensure that the indentation and spacing are correct.
|
||||
:::
|
||||
|
||||
### Web Server
|
||||
|
||||
- Meshtasticd has web server support starting with release 2.3.0 To enable this:
|
||||
|
||||
```plaintext
|
||||
Webserver:
|
||||
Port: 443 # Port for Webserver & Webservices
|
||||
RootPath: /usr/share/doc/meshtasticd/web # Root Dir of WebServer
|
||||
```
|
||||
|
||||
### GPS Support
|
||||
|
||||
Enabling UART for GPS hats requires modifications in `/boot/firmware/config.txt`:
|
||||
|
||||
```plaintext
|
||||
# Needed for all Pi device.
|
||||
enable_uart=1
|
||||
|
||||
# Needed for the Pi 5 only.
|
||||
dtoverlay=uart0
|
||||
```
|
||||
|
||||
- The correct port for UART GPS on the Pi 5 after a reboot is `/dev/ttyAMA0`.
|
||||
- The correct port for UART GPS on earlier Pi versions after a reboot is `/dev/ttyS0`.
|
||||
|
||||
### Persistence
|
||||
|
||||
- The persistent .proto db files of the portduino version of meshtasticd are stored under: `/root/.portduino/default/prefs/`.
|
||||
|
||||
### Advanced Setup and Troubleshooting
|
||||
|
||||
- Installation of drivers for CH341 is required for Ubuntu 22.04 and other systems for SPI/I2C/GPIO support.
|
||||
|
||||
```shell
|
||||
git clone https://github.com/frank-zago/ch341-i2c-spi-gpio.git
|
||||
cd ch341-i2c-spi-gpio
|
||||
make
|
||||
sudo insmod ch341-core.ko
|
||||
sudo insmod gpio-ch341.ko
|
||||
sudo insmod i2c-ch341.ko
|
||||
sudo insmod spi-ch341.ko
|
||||
```
|
||||
|
||||
- Devices with kernels older than 5.16 may need to blacklist ch341, while kernels 6.0 and newer are observed to work more reliably.
|
||||
|
||||
## CLI Configuration
|
||||
|
||||
Interaction with Meshtastic can be conducted via the command line:
|
||||
|
||||
```shell
|
||||
meshtastic --host localhost ...
|
||||
```
|
|
@ -115,7 +115,20 @@ We have provided design files for these logos in our [Meshtastic Design reposito
|
|||
|
||||
### Social Media
|
||||
|
||||
In the past, community members have inquired whether it is permissible to use the Meshtastic Trademarks, including the term "Meshtastic" in a Social Media account. It is not permissible without written permission of Meshtastic.
|
||||
In the past, community members have inquired whether it is permissible to use the Meshtastic Trademarks, including the term "Meshtastic" in a Social Media account. This is permitted provided that the phrasing doesn't indicate official sponsorship by Meshtastic. Examples:
|
||||
|
||||
- Meshtastic South Africa Users Group
|
||||
- Meshtastic North America Community
|
||||
- Cardiff Meshtastic Club
|
||||
- Meshtastic UK Association
|
||||
|
||||
|
||||
Examples not permitted:
|
||||
|
||||
- Meshtastic
|
||||
- Meshtastic UK
|
||||
|
||||
Meshtastic also grants communities and user groups permission to use the Meshtastic logo, provided it is displayed in a secondary position to the group's primary branding. For example, a hiking club's newsletter might feature their own logo prominently at the top, with the Meshtastic logo placed smaller and below, indicating the technology's support for their activities.
|
||||
|
||||
### Domain names
|
||||
|
||||
|
|
|
@ -63,17 +63,9 @@ First, some environment variables need to be set up with command:
|
|||
|
||||
`. ~/.platformio/penv/bin/activate`
|
||||
|
||||
You also want to make some adjustments in the bin/build-all.sh to conform the amd64 build:
|
||||
|
||||
```shell
|
||||
sed -i 's/^BOARDS_ESP32.*/BOARDS_ESP32=""/' bin/build-all.sh
|
||||
sed -i 's/^BOARDS_NRF52.*/BOARDS_NRF52=""/' bin/build-all.sh
|
||||
sed -i 's/echo "Building SPIFFS.*/exit/' bin/build-all.sh
|
||||
```
|
||||
|
||||
You can build amd64 image with command
|
||||
|
||||
`bin/build-all.sh`
|
||||
`./bin/build-native.sh`
|
||||
|
||||
### Executing the application interactively
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import TabItem from "@theme/TabItem";
|
|||
|
||||
This library provides a command-line interface (CLI) for managing the user settings of Meshtastic nodes and provides an easy API for sending and receiving messages over mesh radios. Events are delivered using a publish-subscribe model, and you can subscribe to only the message types you are interested in.
|
||||
|
||||
The [Meshtastic-python repo](https://github.com/meshtastic/Meshtastic-python) and [API documentation](https://python.meshtastic.org) are excellent sources of information. If you wish to view the code or contribute to the development of the Python library or the command-line interface, please visit the Meshtastic Python [GitHub page](https://github.com/meshtastic/Meshtastic-python).
|
||||
The [Meshtastic-python repo](https://github.com/meshtastic/Meshtastic-python) is an excellent source of information. If you wish to view the code or contribute to the development of the Python library or the command-line interface, please visit the Meshtastic Python [GitHub page](https://github.com/meshtastic/Meshtastic-python).
|
||||
|
||||
### Prerequisites
|
||||
|
||||
|
|
|
@ -3621,8 +3621,8 @@ packages:
|
|||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/body-parser@1.20.1:
|
||||
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
|
||||
/body-parser@1.20.2:
|
||||
resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
|
||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
||||
dependencies:
|
||||
bytes: 3.1.2
|
||||
|
@ -3634,7 +3634,7 @@ packages:
|
|||
iconv-lite: 0.4.24
|
||||
on-finished: 2.4.1
|
||||
qs: 6.11.0
|
||||
raw-body: 2.5.1
|
||||
raw-body: 2.5.2
|
||||
type-is: 1.6.18
|
||||
unpipe: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
|
@ -4095,8 +4095,8 @@ packages:
|
|||
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
||||
dev: false
|
||||
|
||||
/cookie@0.5.0:
|
||||
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
|
||||
/cookie@0.6.0:
|
||||
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
|
@ -5220,16 +5220,16 @@ packages:
|
|||
strip-final-newline: 2.0.0
|
||||
dev: false
|
||||
|
||||
/express@4.18.2:
|
||||
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
|
||||
/express@4.19.2:
|
||||
resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
|
||||
engines: {node: '>= 0.10.0'}
|
||||
dependencies:
|
||||
accepts: 1.3.8
|
||||
array-flatten: 1.1.1
|
||||
body-parser: 1.20.1
|
||||
body-parser: 1.20.2
|
||||
content-disposition: 0.5.4
|
||||
content-type: 1.0.5
|
||||
cookie: 0.5.0
|
||||
cookie: 0.6.0
|
||||
cookie-signature: 1.0.6
|
||||
debug: 2.6.9
|
||||
depd: 2.0.0
|
||||
|
@ -5724,18 +5724,11 @@ packages:
|
|||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dev: false
|
||||
|
||||
/hasown@2.0.0:
|
||||
resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
function-bind: 1.1.2
|
||||
|
||||
/hasown@2.0.1:
|
||||
resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
function-bind: 1.1.2
|
||||
dev: false
|
||||
|
||||
/hast-util-from-parse5@8.0.1:
|
||||
resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
|
||||
|
@ -6223,7 +6216,7 @@ packages:
|
|||
/is-core-module@2.13.1:
|
||||
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
|
||||
dependencies:
|
||||
hasown: 2.0.0
|
||||
hasown: 2.0.1
|
||||
|
||||
/is-decimal@2.0.1:
|
||||
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
|
||||
|
@ -8587,8 +8580,8 @@ packages:
|
|||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/raw-body@2.5.1:
|
||||
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
|
||||
/raw-body@2.5.2:
|
||||
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
bytes: 3.1.2
|
||||
|
@ -10206,7 +10199,7 @@ packages:
|
|||
compression: 1.7.4
|
||||
connect-history-api-fallback: 2.0.0
|
||||
default-gateway: 6.0.3
|
||||
express: 4.18.2
|
||||
express: 4.19.2
|
||||
graceful-fs: 4.2.11
|
||||
html-entities: 2.4.0
|
||||
http-proxy-middleware: 2.0.6(@types/express@4.17.21)
|
||||
|
|
|
@ -241,3 +241,24 @@ td {
|
|||
display: block !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tabs {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.tabs__item {
|
||||
border-bottom-color: var(--ifm-tabs-color-inactive-border);
|
||||
border-radius: 0;
|
||||
margin-right: 4px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.tabs__item--active {
|
||||
border-bottom-color: var(--ifm-tabs-color-active-border);
|
||||
}
|
||||
|
||||
.tabs__item:hover {
|
||||
background-color: var(--ifm-hover-overlay);
|
||||
border-radius: 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue