Skip to content

Revamp docs with Apple-style design and fullpage scroll#7

Merged
DusKing1 merged 3 commits intomasterfrom
hugo-improve-fydelix-overview
Jan 11, 2026
Merged

Revamp docs with Apple-style design and fullpage scroll#7
DusKing1 merged 3 commits intomasterfrom
hugo-improve-fydelix-overview

Conversation

@DusKing1
Copy link
Contributor

Introduced a new Apple-inspired CSS design system and added a fullpage.js script for smooth section-based scrolling on the homepage. Major content and style updates were made to both English and Chinese documentation, including new hero sections, feature highlights, and improved structure for product and feature pages. Updated mkdocs.yml to reflect these changes.

Introduced a new Apple-inspired CSS design system and added a fullpage.js script for smooth section-based scrolling on the homepage. Major content and style updates were made to both English and Chinese documentation, including new hero sections, feature highlights, and improved structure for product and feature pages. Added new index_updated.md files for both languages. Updated mkdocs.yml to reflect these changes.
@DusKing1 DusKing1 self-assigned this Jan 11, 2026
Copilot AI review requested due to automatic review settings January 11, 2026 14:56
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces a comprehensive design overhaul of the documentation with an Apple-inspired aesthetic and adds fullpage.js for smooth, section-based scrolling. The changes affect both English and Chinese documentation, transforming the homepage and product pages with new hero sections, feature highlights, and refined visual styling.

Changes:

  • Added fullpage.js script for Apple-style section scrolling on homepage
  • Introduced comprehensive Apple-inspired CSS design system with gradient text, refined typography, and smooth animations
  • Restructured content across homepage, product pages, and features pages in both English and Chinese with new hero sections and card-based layouts

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
mkdocs.yml Added fullpage.js to extra_javascript
docs/assets/js/fullpage.js New JavaScript for section-based scroll snapping with touch and keyboard support
docs/assets/css/extra.css Comprehensive Apple-inspired design system with hero sections, cards, and fullpage layouts
docs/zh/index.md Redesigned Chinese homepage with hero section, feature highlights, and card-based content
docs/zh/fydelix/index.md Restructured Chinese product page with product hero and organized feature sections
docs/zh/fydelix/features.md Updated Chinese features page with refined content structure and presentation
docs/en/index.md Redesigned English homepage matching Chinese version structure
docs/en/index_updated.md New alternate English homepage (appears to be duplicate)
docs/en/fydelix/index.md Restructured English product page with product hero and organized feature sections
docs/en/fydelix/features.md Updated English features page with refined content structure and presentation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 1 to 100
---
hide:
- navigation
- toc
---

<div class="hero-section" markdown>

# Fidelity X

## Flight. Reimagined.

Real-time kernel. Microsecond response. Absolute safety.

[Get Started](fydelix/index.md){ .md-button .md-button--primary }
[Download Firmware](https://github.com/flightng/firmware/releases){ .md-button }

</div>

<div class="feature-highlight" markdown>

## Between you and the sky, just a thought away.

From stick to prop, latency measured in microseconds. Not optimization—reconstruction. Built from scratch on a real-time OS, every control intent translates instantly and precisely into flight.

</div>

<div class="snap-section cards-section" markdown>

## Why Fidelity X

<div class="grid cards" markdown>

- :material-lightning-bolt:{ .lg .middle } **Instant Response**

---

Your intent, delivered instantly. From fingertip to propeller, seamless

- :material-shield-lock:{ .lg .middle } **Always Protected**

---

Independent safety thread, never sleeps. Safe landing, guaranteed

- :material-tune-variant:{ .lg .middle } **Silky Control**

---

Precision filtering finds the perfect balance between sharp response and buttery feel

- :material-atom:{ .lg .middle } **True to Physics**

---

Built on rigid body dynamics. Every response behaves exactly as physics intended

</div>

</div>

<div class="snap-section" markdown>

## Supported Hardware

| Model | MCU | Form Factor |
|-------|-----|-------------|
| NeutronRC F435 SE | AT32F435RGT7 | LQFP64 |
| NeutronRC F435 MINI | AT32F435CGU7 | QFN48 |
| Hummingbird 200RS | AT32F435 | 20x20mm |
| Hummingbird 255 V1 | AT32F435 | 25.5x25.5mm |
| StingerBee | AT32F435 | Whoop |

[View All Hardware](fydelix/supported-boards.md){ .md-button }

</div>

<div class="snap-section" markdown>

## More Projects

<div class="grid cards" markdown>

- :material-airplane:{ .lg .middle } **atbetaflight**

---

AT32 port of Betaflight, crafted for pilots who know Betaflight inside out

[Learn More](atbetaflight/index.md)

</div>

<div class="footer-links" markdown>

:fontawesome-brands-github: [GitHub](https://github.com/flightng) · :material-heart: [Sponsor Us](sponsor.md)

</div>

</div>
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A new file docs/en/index_updated.md has been created but appears to be a duplicate or alternate version of the main English index. Having two index files can cause confusion. Consider whether this file should replace the existing index.md, be removed, or be given a more descriptive name that clarifies its purpose.

Copilot uses AI. Check for mistakes.
Comment on lines +73 to +79
function handleKeydown(e) {
if (isScrolling) return;

if (e.key === 'ArrowDown' || e.key === 'PageDown') {
e.preventDefault();
scrollToSection(currentSection + 1);
} else if (e.key === 'ArrowUp' || e.key === 'PageUp') {
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The keyboard event handler prevents default behavior for ArrowUp/ArrowDown keys, which will break normal keyboard navigation for users who want to scroll the page traditionally. Consider allowing default behavior in certain contexts, such as when a user is inside a text input or when the page content is taller than the viewport sections.

Suggested change
function handleKeydown(e) {
if (isScrolling) return;
if (e.key === 'ArrowDown' || e.key === 'PageDown') {
e.preventDefault();
scrollToSection(currentSection + 1);
} else if (e.key === 'ArrowUp' || e.key === 'PageUp') {
function isEditableTarget(target) {
if (!target) return false;
const tagName = target.tagName;
if (!tagName) return false;
const editableTags = ['INPUT', 'TEXTAREA', 'SELECT'];
if (editableTags.includes(tagName)) return true;
if (target.isContentEditable) return true;
return false;
}
function handleKeydown(e) {
if (isScrolling) return;
const key = e.key;
// Allow default behavior inside editable/interactive elements
if ((key === 'ArrowDown' || key === 'ArrowUp' || key === 'PageDown' || key === 'PageUp') &&
isEditableTarget(e.target)) {
return;
}
if (key === 'ArrowDown' || key === 'PageDown') {
e.preventDefault();
scrollToSection(currentSection + 1);
} else if (key === 'ArrowUp' || key === 'PageUp') {

Copilot uses AI. Check for mistakes.
[下载固件](https://github.com/flightng/firmware/releases){ .md-button }

</div>

Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The horizontal rule (line 19) appears between closing and opening div tags without clear purpose. This creates an inconsistent structure where some sections are separated by horizontal rules and others aren't. Consider removing this or applying consistent separation between all major sections.

Copilot uses AI. Check for mistakes.
Comment on lines 59 to 127

---
</div>

<div class="snap-section cards-section" markdown>

## 专业能力

<div class="grid cards" markdown>

- :material-atom:{ .lg .middle } **物理建模**

---

基于刚体动力学,飞行器的每一个响应都符合它本该有的样子

- :material-compass-outline:{ .lg .middle } **一键校准**

---

传感器自校准,静置片刻即可完成——复杂的事情,交给固件来做

- :material-palette-outline:{ .lg .middle } **直观配置**

---

## 支持的硬件
简洁的界面,清晰的逻辑——看一眼就懂,上手即会

Fidelity X 支持多款主流飞控板:
- :material-record-circle-outline:{ .lg .middle } **无损记录**

---

全新研发的无损黑盒日志,你的每一个动作都被精准记录、完整还原

</div>

| 飞控板 | MCU | 封装 |
|--------|-----|------|
</div>

<div class="snap-section" markdown>

## 支持的飞控

| 型号 | 芯片 | 尺寸 |
|------|------|------|
| NeutronRC F435 SE | AT32F435RGT7 | LQFP64 |
| NeutronRC F435 MINI | AT32F435CGU7 | QFN48 |
| Hummingbird 200RS | AT32F435 | 20x20mm |
| Hummingbird 255 V1 | AT32F435 | 25.5x25.5mm |
| StingerBee | AT32F435 | Whoop |

[查看完整硬件列表 :material-arrow-right:](fydelix/supported-boards.md)
[查看全部硬件](fydelix/supported-boards.md){ .md-button }

---
</div>

## 其他项目
<div class="snap-section" markdown>

除了 Fidelity X,FlightNG 团队还维护以下开源项目:
## 更多项目

<div class="grid cards" markdown>

- :material-airplane:{ .lg .middle } **atbetaflight**

---

Betaflight 的 AT32 移植版本,适合熟悉 Betaflight 的用户
Betaflight 的 AT32 移植版,为熟悉 Betaflight 的飞手打造

[:octicons-arrow-right-24: 了解更多](atbetaflight/index.md)
[了解更多](atbetaflight/index.md)

</div>

Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent use of horizontal rules for section separation. Lines 59, 109, and 127 use horizontal rules outside of divs, while line 19 uses it between divs. This inconsistency makes the document structure harder to understand and maintain. Consider adopting a consistent pattern throughout the document.

Copilot uses AI. Check for mistakes.
Comment on lines +128 to +134
<div class="footer-links" markdown>

## 快速链接
:fontawesome-brands-github: [GitHub](https://github.com/flightng) · :material-heart: [赞助我们](sponsor.md)

- :fontawesome-brands-github: [GitHub](https://github.com/flightng)
- :material-heart: [赞助我们](sponsor.md)
</div>

</div>
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing closing div tag. The document starts a div with class "footer-links" on line 128 but ends with two closing div tags on lines 132 and 134. This creates an unbalanced div structure where the outermost container div opened at the beginning of the document is closed, but the nesting is unclear. Verify the div nesting structure is correct.

Copilot uses AI. Check for mistakes.
currentSection = index;

const section = sections[index];
const headerOffset = 60; // MkDocs header height
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The magic number 60 is used for the header offset without explanation. This should be either defined as a named constant at the top of the file or documented with a comment explaining that it corresponds to the MkDocs Material header height, making it easier to update if the header height changes.

Copilot uses AI. Check for mistakes.
Comment on lines +94 to +100
<div class="footer-links" markdown>

## Quick Links
:fontawesome-brands-github: [GitHub](https://github.com/flightng) · :material-heart: [Sponsor Us](sponsor.md)

- :fontawesome-brands-github: [GitHub](https://github.com/flightng)
- :material-heart: [Sponsor Us](sponsor.md)
</div>

</div>
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing closing div tag. The document starts a div with class "footer-links" on line 94 but ends with two closing div tags on lines 98 and 100. Similar to the Chinese version, this creates an unbalanced div structure. Verify the div nesting structure is correct.

Copilot uses AI. Check for mistakes.
Comment on lines 94 to 100
<div class="footer-links" markdown>

:fontawesome-brands-github: [GitHub](https://github.com/flightng) · :material-heart: [Sponsor Us](sponsor.md)

</div>

</div>
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing closing div tag. The document starts a div with class "footer-links" on line 94 but ends with two closing div tags on lines 98 and 100. This creates an unbalanced div structure. Verify the div nesting structure is correct.

Copilot uses AI. Check for mistakes.

## 你与天空之间,只差一个念头的距离

不是优化,是从零构建——基于实时操作系统从零打造,精心调校的信号链路确保锐利响应与丝滑手感并存,渐进式安全机制让每一次降落都在掌控之中。从摇杆到桨叶,每一个操控意图都被即时、精准地转化为飞行
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent Chinese spacing and punctuation. Line 24 uses "转化为飞行" (ends abruptly without proper punctuation), which appears to be an incomplete sentence or missing punctuation mark. This should end with proper punctuation for better readability.

Suggested change
不是优化,是从零构建——基于实时操作系统从零打造,精心调校的信号链路确保锐利响应与丝滑手感并存,渐进式安全机制让每一次降落都在掌控之中。从摇杆到桨叶,每一个操控意图都被即时、精准地转化为飞行
不是优化,是从零构建——基于实时操作系统从零打造,精心调校的信号链路确保锐利响应与丝滑手感并存,渐进式安全机制让每一次降落都在掌控之中。从摇杆到桨叶,每一个操控意图都被即时、精准地转化为飞行

Copilot uses AI. Check for mistakes.
Comment on lines 5 to 314
/* ===== Apple-inspired Design System ===== */

/* Hero Section - Centered, impactful */
.hero-section {
text-align: center;
padding: 3rem 1rem 2rem;
}

.hero-section h1 {
font-size: 3.5rem;
font-weight: 700;
letter-spacing: -0.03em;
margin-bottom: 0.5rem;
background: linear-gradient(135deg, #1d1d1f 0%, #424245 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}

[data-md-color-scheme="slate"] .hero-section h1 {
background: linear-gradient(135deg, #f5f5f7 0%, #a1a1a6 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}

.hero-section h2 {
font-size: 1.5rem;
font-weight: 400;
color: #86868b;
margin-bottom: 1.5rem;
letter-spacing: -0.01em;
}

.hero-section p {
font-size: 1.25rem;
color: #1d1d1f;
font-weight: 500;
letter-spacing: 0.1em;
}

[data-md-color-scheme="slate"] .hero-section p {
color: #f5f5f7;
}

/* Product Hero - For product pages */
.product-hero {
text-align: center;
padding: 2rem 1rem;
}

.product-hero h2 {
font-size: 2rem;
font-weight: 600;
color: #1d1d1f;
margin-bottom: 1.5rem;
}

[data-md-color-scheme="slate"] .product-hero h2 {
color: #f5f5f7;
}

/* Feature Highlight - Centered emphasis text */
.feature-highlight {
text-align: center;
padding: 2rem 1rem;
max-width: 680px;
margin: 0 auto;
}

.feature-highlight h2 {
font-size: 2rem;
font-weight: 600;
letter-spacing: -0.02em;
margin-bottom: 1rem;
}

.feature-highlight p {
font-size: 1.125rem;
line-height: 1.7;
color: #424245;
}

[data-md-color-scheme="slate"] .feature-highlight p {
color: #a1a1a6;
}

/* Intro Statement - Elegant lead-in paragraph */
.intro-statement {
max-width: 640px;
margin: 0 auto;
padding: 2rem 1rem;
text-align: center;
}

.intro-statement p {
font-size: 1.125rem;
line-height: 1.9;
color: #6e6e73;
font-weight: 400;
}

.intro-statement p:first-child {
font-size: 1.25rem;
font-weight: 500;
color: #1d1d1f;
margin-bottom: 0.75rem;
}

[data-md-color-scheme="slate"] .intro-statement p {
color: #a1a1a6;
}

[data-md-color-scheme="slate"] .intro-statement p:first-child {
color: #f5f5f7;
}

/* Page Intro - Centered opening statement */
.page-intro {
text-align: center;
padding: 2rem 1rem;
max-width: 600px;
margin: 0 auto;
}

.page-intro p {
font-size: 1.25rem;
line-height: 1.8;
color: #424245;
font-weight: 400;
}

[data-md-color-scheme="slate"] .page-intro p {
color: #a1a1a6;
}

/* Feature Section - Structured content */
.feature-section h3 {
font-size: 1.5rem;
font-weight: 600;
margin-top: 2rem;
margin-bottom: 0.75rem;
}

.feature-section p {
font-size: 1.0625rem;
line-height: 1.75;
color: #424245;
}

[data-md-color-scheme="slate"] .feature-section p {
color: #a1a1a6;
}

/* Footer Links - Centered minimal footer */
.footer-links {
text-align: center;
padding: 1rem;
color: #86868b;
}

/* Enhanced Grid Cards */
.grid.cards > ul > li {
border-radius: 12px;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.grid.cards > ul > li:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

[data-md-color-scheme="slate"] .grid.cards > ul > li:hover {
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

/* Refined Tables */
.md-typeset table:not([class]) {
font-size: 0.9rem;
border-radius: 8px;
overflow: hidden;
}

.md-typeset table:not([class]) th {
background: #f5f5f7;
font-weight: 600;
text-transform: none;
letter-spacing: 0;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
background: #2d2d2d;
}

/* Buttons - More refined */
.md-button {
border-radius: 980px;
padding: 0.75em 1.5em;
font-weight: 500;
letter-spacing: -0.01em;
transition: all 0.2s ease;
}

.md-button--primary {
background: #0071e3;
border-color: #0071e3;
}

.md-button--primary:hover {
background: #0077ed;
border-color: #0077ed;
transform: scale(1.02);
}

.md-button:not(.md-button--primary):hover {
border-color: #0071e3;
color: #0071e3;
}

/* ===== Fullpage Scroll Sections (Apple-style) ===== */

/* Hero section - full viewport */
.hero-section {
min-height: calc(100vh - 8rem);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
padding: 2rem 1rem;
box-sizing: border-box;
}

/* Scroll hint arrow */
.hero-section::after {
content: "";
position: absolute;
bottom: 2rem;
left: 50%;
width: 20px;
height: 20px;
border-right: 2px solid #86868b;
border-bottom: 2px solid #86868b;
transform: translateX(-50%) rotate(45deg);
animation: scrollHint 2s ease-in-out infinite;
opacity: 0.4;
}

@keyframes scrollHint {
0%, 100% { transform: translateX(-50%) rotate(45deg) translateY(0); opacity: 0.4; }
50% { transform: translateX(-50%) rotate(45deg) translateY(6px); opacity: 0.7; }
}

/* Feature highlight section - full viewport */
.feature-highlight {
min-height: calc(100vh - 8rem);
display: flex;
flex-direction: column;
justify-content: center;
padding: 2rem 1rem;
box-sizing: border-box;
}

/* Snap sections - full viewport */
.snap-section {
min-height: calc(100vh - 8rem);
display: flex;
flex-direction: column;
justify-content: center;
padding: 2rem 1rem;
box-sizing: border-box;
}

.snap-section h2 {
text-align: center;
margin-bottom: 2rem;
}

/* Cards section specific */
.snap-section.cards-section .grid.cards {
max-width: 900px;
margin: 0 auto;
}

/* Force 2-column grid layout for cards sections */
.snap-section.cards-section .grid.cards > ul {
display: grid !important;
grid-template-columns: repeat(2, 1fr) !important;
gap: 1rem;
}

@media (max-width: 768px) {
.snap-section.cards-section .grid.cards > ul {
grid-template-columns: 1fr !important;
}
}

/* Mobile: disable fullpage, normal scroll */
@media (max-width: 768px) {
.hero-section,
.feature-highlight,
.snap-section {
min-height: auto;
padding: 3rem 1rem;
}

.hero-section::after {
display: none;
}
} No newline at end of file
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple magic numbers used throughout the CSS without clear documentation. Values like 8rem (lines 228, 261, 270), 3.5rem (line 14), 980px (line 201) are used without explanation. Consider defining these as CSS custom properties (variables) at the top of the file with descriptive names to improve maintainability.

Copilot uses AI. Check for mistakes.
Deleted docs/en/index_updated.md as it is no longer needed or has been replaced by updated documentation.
Introduced CSS custom properties (design tokens) for layout, typography, spacing, border radius, colors, and effects. Updated all relevant selectors to use these variables, improving maintainability and enabling easier theme customization.
@DusKing1 DusKing1 merged commit bf26d8a into master Jan 11, 2026
@DusKing1 DusKing1 deleted the hugo-improve-fydelix-overview branch January 11, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant