Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
cd2e63a
feature: 3.7 release blog
icecreamx10 Mar 27, 2026
fb196da
Convert SVG URL to Markdown image in lynx-3-7.mdx (#873)
MoonfaceX Mar 30, 2026
da45a63
feature: 3.7
icecreamx10 Mar 31, 2026
2e01e61
chore:blog
icecreamx10 Apr 3, 2026
eb9d0cf
feat(compat): add desktop platform support data
icecreamx10 Apr 9, 2026
d9ef1f1
docs(css): add cursor property documentation
icecreamx10 Apr 9, 2026
14cd21c
docs(blog): refine lynx 3.7 desktop updates
icecreamx10 Apr 9, 2026
8397b9f
docs(api): clarify mouse event desktop status
icecreamx10 Apr 9, 2026
46cec02
chore(docs): document asset import convention
icecreamx10 Apr 9, 2026
0443df8
docs: add desktop event and title-bar-view docs
icecreamx10 Apr 9, 2026
9379592
chore: add desktop compat for lynx api
icecreamx10 Apr 9, 2026
c78c405
chore(examples): update desktop example package versions
icecreamx10 Apr 9, 2026
ce4f09b
docs(blog): expand lynx 3.7 desktop coverage
icecreamx10 Apr 9, 2026
d872f9f
chore: update api stats
icecreamx10 Apr 10, 2026
7703baa
docs: add desktop native api docs
icecreamx10 Apr 10, 2026
e4923b6
docs: clean up native api desktop docs
icecreamx10 Apr 10, 2026
78773c4
feat: refine reactlynx in lynx-3-7.mdx
upupming Apr 13, 2026
8927083
docs(blog): update 3.7 desktop showcases and authors
icecreamx10 Apr 14, 2026
e36333f
chore(cspell): fix mdx comment syntax
icecreamx10 Apr 14, 2026
8db5f52
chore(examples): bump desktop and css-api packages
icecreamx10 Apr 15, 2026
2cbc03b
docs: fix svg highlight lines in 3.7 blog
icecreamx10 Apr 15, 2026
c87c8a9
docs: pin quick start binaries to lynx 3.7.0
icecreamx10 Apr 15, 2026
fd13b71
fix: polish 3.7 blog wording and consistency
Huxpro Apr 15, 2026
d068f48
fix: polish 3.7 blog structure, wording, and EN/ZH alignment
Huxpro Apr 15, 2026
bfb81f1
docs(3.7): clarify desktop rendering coverage section
Huxpro Apr 16, 2026
caa4085
docs(3.7): move rendering engine sentence into coverage section
Huxpro Apr 16, 2026
2b30844
docs(3.7): lead with reused core (positive), then custom backend
Huxpro Apr 16, 2026
25c5218
docs(3.7): replace em dashes with parentheses
Huxpro Apr 16, 2026
fcaa38c
docs(3.7): use relative clause instead of em dashes
Huxpro Apr 16, 2026
768d609
docs(3.7): link 'main thread' directive to main-thread-script doc
Huxpro Apr 16, 2026
9c69c18
docs(3.7): mention per-API compat tables before API Status Dashboard
Huxpro Apr 16, 2026
40bd620
chore: merge main into PR branch
Huxpro Apr 16, 2026
992d9f1
docs(3.7): remove redundant SVG intro sentence about external assets
Huxpro Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"VWVH",
"janks",
"Dugyu",
"icecreamx",
"NSUTF8StringEncoding",
"NSJSONSerialization",
"devtoolwrapper",
Expand Down
8 changes: 8 additions & 0 deletions docs/en/api/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -1460,6 +1460,14 @@
"collapsible": true,
"collapsed": true
},
{
"type": "file",
"name": "lynx-native-api/lynx-extension-module",
"label": "LynxExtensionModule",
"overviewHeaders": [],
"collapsible": true,
"collapsed": true
},
{
"type": "dir",
"name": "lynx-native-api/lynx-generic-resource-fetcher",
Expand Down
92 changes: 92 additions & 0 deletions docs/en/api/css/properties/cursor.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
api: css/properties/cursor
---

import cursorExampleImg from '@assets/doc/css/cursor.png?url';
import { APISummary, APITable, Go } from '@lynx';

# cursor

<APISummary />

## Introduction

The `cursor` CSS property controls the mouse pointer displayed when the pointer hovers over an element.

## Examples

<Go
example="desktop"
defaultFile="src/cursor/App.tsx"
img={cursorExampleImg}
defaultEntryFile="dist/cursor.lynx.bundle"
entry="src/cursor"
/>

## Syntax

```css
cursor: pointer;
```

### Values

Lynx currently supports keyword values only, such as `pointer`, `text`, `grab`, and other standard cursor keywords.

## Lynx Mini App Syntax

You can declare `cursor` the same way as other CSS properties.

```html
<view class="clickable">
<text>Hover me</text>
</view>
```

```css
.clickable {
cursor: pointer;
}
```

If your compiler pipeline does not apply `cursor` as expected, prefer declaring it in a stylesheet selector or class.

## React Syntax

```tsx
<view style={{ cursor: 'pointer' }}>
<text>Hover me</text>
</view>
```

## Formal Definition

import { PropertyDefinition } from '@/components/PropertyDefinition';

<PropertyDefinition
initialValue={<>auto</>}
appliesTo={<>all elements</>}
inherited="yes"
animatable="no"
/>

## Formal Syntax

```css
cursor: <cursor-keyword>;
```

## Differences from Web

- Only keyword values are supported.
- URL-based cursors, local image cursors, and custom hotspot positions are not supported.

## Notes

- To allow `cursor` to inherit in Lynx, enable CSS inheritance in your front-end configuration.
- You can also explicitly add `cursor` to `customCSSInheritanceList`.
- See [`enableCSSInheritance`](/api/rspeedy/react-rsbuild-plugin.pluginreactlynxoptions.enablecssinheritance) and [`customCSSInheritanceList`](/api/rspeedy/react-rsbuild-plugin.pluginreactlynxoptions.customcssinheritancelist) for more details.

## Compatibility

<APITable />
12 changes: 4 additions & 8 deletions docs/en/api/elements/built-in/title-bar-view-API.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
import { AndroidOnly, IOSOnly, ClayOnly, ClayWindowsOnly, ClayMacOSOnly, HarmonyOnly, Required, Deprecated, Go, PlatformTabs } from '@lynx';
import { VersionBadge, APITable } from '@lynx';
import { ClayMacOSOnly, ClayWindowsOnly } from '@lynx';


The title-bar-view element is similar to the app-region style in the web,
allowing developers to customize the window dragging area.
`<title-bar-view>` is similar to the `app-region` style on the web and allows developers to customize the draggable area of the window.

## Attributes

### `moveable`

<ClayWindowsOnly /> <ClayMacOSOnly />
<ClayWindowsOnly /> <ClayMacOSOnly />

```tsx
// @defaultValue: false
moveable?: boolean;
```

When set to true, the title bar view is able to move the window when dragged.

When set to `true`, dragging the title bar view moves the window.
17 changes: 8 additions & 9 deletions docs/en/api/elements/built-in/title-bar-view.mdx
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
---
tag: 'XElement'
api: elements/title-bar-view
tag: 'XElement'
---

import {
AndroidOnly,
Deprecated,
Go,
IOSOnly,
ClayWindowsOnly,
ClayMacOSOnly,
Required,
APISummary,
APITable,
ClayMacOSOnly,
ClayWindowsOnly,
Go,
} from '@lynx';

# `<title-bar-view>` <ClayWindowsOnly /> <ClayMacOSOnly />

`<title-bar-view>` element is designed to customize the drag area of the window.
<APISummary />

`<title-bar-view>` is designed to customize the draggable area of the window.

## Usage

Expand Down
13 changes: 12 additions & 1 deletion docs/en/api/lynx-api/event/event.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,18 @@ Lynx has many different types of event objects, all of which are directly or ind

`AnimationEvent` represents an animation event object, describing the state changes of the CSS animation life cycle.

[`MouseEvent`](./mouse-event.mdx)

`MouseEvent` represents a mouse event, describing the user's interaction with the mouse.

[`KeyEvent`](./key-event.mdx)

`KeyEvent` represents a keyboard event, describing the user's interaction with the keyboard.

[`WheelEvent`](./wheel-event.mdx)

`WheelEvent` represents a mouse wheel event, describing the user scrolling the mouse wheel or touchpad.

## Instance property

### type
Expand Down Expand Up @@ -96,7 +108,6 @@ Calling it in the [main thread script](../../../react/main-thread-script.mdx) ca
highlight="{34}"
entry="src/event_stop_propagation"
/>
s

### stopImmediatePropagation <RuntimeBadge type="mts" />

Expand Down
75 changes: 75 additions & 0 deletions docs/en/api/lynx-api/event/key-event.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
api: lynx-api/event/KeyEvent
---

import { APISummary, APITable } from '@lynx';

# KeyEvent

<APISummary />

Represents a keyboard event, inherited from [`Event`](./event), which describes the user's interaction with the keyboard. Each event describes a single interaction between the user and a key, or a key combined with modifier keys.

## Instance property

### key

```ts
key: string;
```

Represents the value of the physical key pressed by the user.

### repeat

```ts
repeat: boolean;
```

`true` indicates the key is being held down such that it is automatically repeating.

### altKey

```ts
altKey: boolean;
```

`true` indicates the Alt key, or Option (`⌥`) on macOS, was active when the key event was generated.

### ctrlKey

```ts
ctrlKey: boolean;
```

`true` indicates the Ctrl key was active when the key event was generated.

### metaKey

```ts
metaKey: boolean;
```

`true` indicates the Meta key was active when the key event was generated. On macOS, this is the Command (`⌘`) key. On Windows, this is the Windows key.

### shiftKey

```ts
shiftKey: boolean;
```

`true` indicates the Shift key was active when the key event was generated.

## KeyEvent type

### keydown

Indicates that a key has been pressed.

### keyup

Indicates that a key has been released.

## Compatibility

<APITable />
4 changes: 4 additions & 0 deletions docs/en/api/lynx-api/event/mouse-event.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ import { APISummary, APITable } from '@lynx';

Represents a mouse event, inherited from [`Event`](./event), which is a type of event that describes the user's interaction with the mouse. For example, mouse click.

:::warning
In Lynx 3.7 and earlier, `MouseEvent` behavior is not fully aligned with the W3C Web standard. We plan to align it with the web standard in Lynx 3.8.
:::

## Instance property

### button
Expand Down
39 changes: 39 additions & 0 deletions docs/en/api/lynx-api/event/wheel-event.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
api: lynx-api/event/WheelEvent
---

import { APISummary, APITable } from '@lynx';

# WheelEvent

<APISummary />

Represents a mouse wheel event, inherited from [`MouseEvent`](./mouse-event). It can also be fired by trackpads and other scrolling devices. [`target`](./event#target) is the `element` under the mouse pointer when the first `WheelEvent` occurs.

## Instance property

### deltaX

```ts
deltaX: number;
```

Indicates the horizontal scrolling distance in logical pixels.

### deltaY

```ts
deltaY: number;
```

Indicates the vertical scrolling distance in logical pixels.

## WheelEvent type

### wheel

Indicates that the user scrolls the mouse wheel or touchpad. [`target`](./event#target) is the `element` under the mouse pointer when the first `WheelEvent` occurs.

## Compatibility

<APITable />
19 changes: 19 additions & 0 deletions docs/en/api/lynx-native-api/lynx-env.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,22 @@
overview: true
overviewHeaders: [2]
---

# LynxEnv

`LynxEnv` is the process-level environment entry for Desktop public API. It exposes SDK information, DevTool switches, LogBox switches, and module registration for native and extension modules.

## Desktop (C++)

```cpp
lynx::pub::LynxEnv& env = lynx::pub::LynxEnv::GetInstance();
const char* version = env.GetVersion();
env.SetDevtoolAppInfo("app_id", "demo");
env.SetDevtoolEnabled(true);
bool devtool_enabled = env.IsDevtoolEnabled();
bool connected = env.ConnectDevtool("ws://127.0.0.1:9229");
env.SetLogboxEnabled(true);
bool logbox_enabled = env.IsLogboxEnabled();
env.RegisterNativeModule("DemoModule", creator, opaque);
env.RegisterExtensionModule("DemoExtension", extension_creator, true, opaque);
```
Loading
Loading