MouseEvent.webkitForce is a non-standard read-only number: how hard the user is pressing on a Force Touch trackpad or touchscreen. Learn feature detection, threshold compares, Force Touch events, and safer Pointer Events alternatives.
01
Kind
Instance property
02
Returns
Number (pressure)
03
Status
Non-standard
04
Access
event.webkitForce
05
Engine
WebKit / Safari
06
Prefer
pressure
Fundamentals
Introduction
On Apple Force Touch hardware, a light press and a deep “force click” are different. WebKit exposes the live pressure as webkitForce on mouse events so pages can react to how hard the user presses—mostly useful for Safari experiments.
JavaScript
element.addEventListener("mousedown", (event) => {
console.log(event.webkitForce); // number on supporting WebKit; often undefined elsewhere
});
💡
Beginner tip
Treat webkitForce as Safari/WebKit reading material. For new apps, listen to pointerdown / pointermove and read event.pressure instead.
Concept
Understanding the Property
MDN: MouseEvent.webkitForce is a proprietary, WebKit-specific numeric property whose value represents the amount of pressure applied on the touchpad or touchscreen. It is not part of any specification.
Instance — read event.webkitForce in a handler.
Number — pressure intensity when the engine supports Force Touch.
Non-standard — WebKit proprietary; missing in most other browsers.
Guard the instance pressure and both static thresholds. Only then compare bands the way Apple’s Force Touch docs describe.
Example 4 — Listen for webkitmouseforcechanged
MDN: this event fires as pressure changes between mouse down and up.
JavaScript
document.addEventListener("webkitmouseforcechanged", (e) => {
if (typeof e.webkitForce === "number") {
console.log("pressure:", e.webkitForce);
}
});
// On non-WebKit browsers this listener never runs — that is expected.
Related Force Touch events include webkitmouseforcedown, webkitmouseforceup, and webkitmouseforcewillbegin. All are non-standard and Safari-oriented.
Example 5 — Prefer PointerEvent.pressure
A more standard path for pressure-aware UI.
JavaScript
element.addEventListener("pointerdown", (e) => {
// 0–1 when the device reports pressure; often 0.5 for a normal mouse click
console.log(e.pressure);
});
element.addEventListener("pointermove", (e) => {
if (e.pressure > 0) {
console.log("pressure:", e.pressure);
}
});
Pointer Events are the modern, standardized way to read pressure. Keep webkitForce for learning Safari Force Touch history—not as your primary production path.
Applications
🚀 Common Use Cases
Safari / WebKit Force Touch experiments and demos.
Detecting force clicks vs normal clicks with the static thresholds.
Logging pressure while learning proprietary Force Touch events.
Teaching why non-standard APIs need feature detection.
MouseEvent.webkitForce is a Non-standard WebKit proprietary instance property. Logos use the shared browser-image-sprite.png sprite. Expect support mainly in Safari/WebKit Force Touch contexts; Chromium and Firefox typically omit it.
✓ Non-standard · WebKit
MouseEvent.webkitForce
Live Force Touch pressure on mouse events. Feature-detect; do not require it for Chrome/Firefox users.
LimitedWebKit-oriented
Google ChromeTypically not available
No support
Mozilla FirefoxTypically not available
No support
Apple SafariWebKit Force Touch builds may expose it
Limited
Microsoft EdgeTypically not available (Chromium)
No support
OperaTypically not available
No support
Internet ExplorerNot available
No support
webkitForceLimited
Bottom line: Instance Force Touch pressure on MouseEvent in WebKit; missing elsewhere—prefer PointerEvent.pressure.
Wrap Up
Conclusion
event.webkitForce is a WebKit-only pressure reading for Force Touch. Feature-detect it, compare against the static thresholds when present, and prefer PointerEvent.pressure for real products.
Feature-detect with typeof event.webkitForce === "number"
Compare to the static WEBKIT_FORCE_AT_* thresholds when present
Prefer PointerEvent.pressure for production pressure UX
Keep Force Touch as an optional enhancement
Test on real Force Touch hardware when possible
❌ Don’t
Require webkitForce for core Chrome/Firefox features
Skip feature detection before comparing numbers
Confuse instance webkitForce with the static thresholds
Assume every Safari machine has Force Touch hardware
Mutate event.webkitForce on live user events
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about webkitForce
Non-standard WebKit Force Touch pressure—learn it, prefer standards.
5
Core concepts
🖱️01
Instance
on the event
Kind
🔢02
Number
pressure value
Type
🍎03
WebKit
Safari-oriented
Engine
⚖️04
Thresholds
static cutoffs
Compare
🛡️05
Non-standard
detect first
Status
❓ Frequently Asked Questions
It is a proprietary WebKit numeric property on a mouse event that represents how much pressure is being applied on a Force Touch trackpad or touchscreen. On non-WebKit browsers it is usually undefined.
MDN marks it Non-standard — not part of any specification. It is not labeled Deprecated or Experimental on that MDN page, but you should not rely on it in production cross-browser code.
Feature-detect both event.webkitForce and MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, then check whether webkitForce is greater than or equal to that static threshold.
MDN’s Force Touch docs list it on webkitmouseforcewillbegin, mousedown, webkitmouseforcechanged, webkitmouseforcedown, webkitmouseforceup, mousemove, and mouseup when the engine supports Force Touch.
Prefer Pointer Events with event.pressure (0–1) on pointerdown / pointermove when you need more standard, cross-browser pressure sensing.
Instance. Read event.webkitForce on a live mouse event. The related WEBKIT_FORCE_AT_* values are static constants on the MouseEvent constructor.
Did you know?
Apple’s Force Touch docs note that trackpads without Force Touch may still report a webkitForce equal to MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN on click-related events—so a numeric value alone does not always mean deep-press hardware is present.