tauri/packages/api
Jamie Ridding f5851ee00d
feat: Expose ScrollBarStyle webview option to tauri. (#14089)
* Expose `ScrollBarStyle` webview option to tauri.

This commit exposes the scroll_bar_style option from wry via the tauri
WebviewWindowBuilder API. By itself, the commit does not include changes
to the configuration file or JavaScript APIs: These will be added in a
later commit.

* Fix a compile error on macOS and Linux.

* Add `scroll_bar_style` to WindowConfig.

This commit exposes the `scroll_bar_style` option in tauri.conf.json/
.json5/.toml as `scrollBarStyle` and `scroll-bar-style`.

* Expose `scroll_bar_style` to JavaScript API.

This commit exposes the `scroll_bar_style` in the options object passed
to the JavaScript API `Webview` and `WebviewWindow` constructors.

While testing this, I discovered that on Windows, attempting to create
a webview from the JavaScript API will cause the hosting window to
immediately hang if it attempts to use the same data directory as
another webview without sharing the same environment options. This
commit includes no mitigation for this behaviour, as I will be opening
a separate issue about it at some point in the near future.

* Document WebView2 environment requirements.

This commit adds a message to the documentation for all components of
the `scroll_bar_style` configuration option, telling users that all
webviews that use the same data directory must use the same value for
this option.

* Fix formatting.

* Add change files to .changes directory.

* Remove `tauri-schema-generator` from change file.

* Remove quotes from change tags.

* Add tags to change files.

I did not realise that these were needed, as the pull request that I
used as my reference when building this feature did not have them.

* update conf

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-09-02 07:14:59 -03:00
..
src feat: Expose ScrollBarStyle webview option to tauri. (#14089) 2025-09-02 07:14:59 -03:00
.gitignore Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00
CHANGELOG.md Apply Version Updates From Current Changes (#13887) 2025-08-18 15:50:13 -03:00
eslint.config.js feat(api): add SERIALIZE_TO_IPC_FN const and implement it for dpi types, add more constructors (#11191) 2024-11-05 23:30:17 +02:00
LICENSE_APACHE-2.0 Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00
LICENSE_MIT Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00
package.json chore(deps): update dependency rollup to v4.50.0 (#14127) 2025-08-31 17:51:26 +08:00
README.md Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00
rollup.config.ts Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00
tsconfig.json Restructure the repository (#10796) 2024-08-27 18:42:30 -03:00

@tauri-apps/api

status License lint js FOSSA Status Chat Server website https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg support

Component Version
@tauri-apps/api

About Tauri

Tauri is a polyglot and generic system that is very composable and allows engineers to make a wide variety of applications. It is used for building applications for Desktop Computers using a combination of Rust tools and HTML rendered in a Webview. Apps built with Tauri can ship with any number of pieces of an optional JS API / Rust API so that webviews can control the system via message passing. In fact, developers can extend the default API with their own functionality and bridge the Webview and Rust-based backend easily.

Tauri apps can have custom menus and have tray-type interfaces. They can be updated, and are managed by the user's operating system as expected. They are very small, because they use the system's webview. They do not ship a runtime, since the final binary is compiled from rust. This makes the reversing of Tauri apps not a trivial task.

This module

This is a typescript library that creates cjs and esm JavaScript endpoints for you to import into your Frontend framework so that the Webview can call and listen to backend activity. We also ship the pure typescript, because for some frameworks this is more optimal. It uses the message passing of webviews to their hosts.

To learn more about the details of how all of these pieces fit together, please consult this ARCHITECTURE.md document.

Installation

The preferred method is to install this module locally as a dependency:

$ pnpm add @tauri-apps/api
$ yarn add @tauri-apps/api
$ npm add @tauri-apps/api

Semver

tauri is following Semantic Versioning 2.0.

Licenses

Code: (c) 2019 - 2021 - The Tauri Programme within The Commons Conservancy.

MIT or MIT/Apache 2.0 where applicable.

Logo: CC-BY-NC-ND