JavaScript MouseEvent WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN Property

Beginner
⏱️ 10 min read
📚 Updated: Jul 2026
🎯 5 Examples
🚀 5 Try-it labs
Non-standard
Static property

What You’ll Learn

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a static numeric constant: the minimum force for a force click on supporting WebKit browsers. Learn how to read it safely, why it is not on event instances, how it pairs with webkitForce, and five try-it labs.

01

Kind

Static property

02

Returns

Number (when present)

03

Status

Non-standard

04

Engine

WebKit / Safari

05

Means

Force-click threshold

06

Access

On MouseEvent

Introduction

Some Apple trackpads support Force Touch: pressing harder can mean a different action than a normal click. WebKit exposed helpers on MouseEvent so pages could read press force and compare it to fixed thresholds.

WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is one of those thresholds—the minimum force for a force click. Because it is static, you always write:

JavaScript
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
💡
Beginner tip

Think of it like Math.PI: a constant on the constructor, not on every number or every event object.

Understanding the Static Property

MDN: a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a force click.

  • Static — read from MouseEvent, not from event.
  • Number — a force threshold (when the property exists).
  • Non-standard — not in any official web specification.
  • Force Touch family — related to webkitForce and WEBKIT_FORCE_AT_MOUSE_DOWN.

📝 Syntax

JavaScript
const threshold = MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;

Value

A number representing the force-click threshold on supporting engines. If the property is missing, feature detection should treat it as unavailable.

Correct vs incorrect access

JavaScript
// Correct — static on MouseEvent
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;

// Incorrect — not an instance property
someMouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN; // usually undefined

⚖️ Related WebKit Force Helpers

APIKindRole
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWNStaticMinimum force for a force click
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWNStaticMinimum force for a normal mouse down
event.webkitForceInstanceCurrent force on that mouse event

Typical check on Safari with Force Touch: if event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, treat it as a force click (after confirming both APIs exist).

⚡ Quick Reference

GoalCode
Feature-detect"WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent
Read thresholdMouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
Compare live forceevent.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
Normal-click thresholdMouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
MDN statusNon-standard (WebKit proprietary)

🔍 At a Glance

Four facts about this static constant.

Kind
static

On MouseEvent

Type
number

When present

Status
non-standard

WebKit only

Use for
force click

Threshold compare

Examples Gallery

Examples follow MDN MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN. On non-WebKit browsers, expect the property to be missing—that is normal.

📚 Getting Started

Feature-detect and read the static constant.

Example 1 — Feature Detection

Always check before reading a non-standard static.

JavaScript
const supported =
  typeof MouseEvent !== "undefined" &&
  "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent;

console.log(supported); // true on some Safari/WebKit builds, else false
Try It Yourself

How It Works

The in operator asks whether the constructor exposes that static name. Most engines answer false.

Example 2 — Read the Threshold Safely

Branch on support, then log the number.

JavaScript
if ("WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent) {
  console.log(MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN);
  console.log(typeof MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN);
} else {
  console.log("not supported");
}
Try It Yourself

How It Works

On supporting Safari, you should see a numeric threshold and typeof "number". Elsewhere, the fallback message runs.

📈 Thresholds, Instances & Live Force

Compare constants, avoid instance access, use webkitForce.

Example 3 — Compare Both Static Thresholds

Force-click threshold is higher than the normal mouse-down threshold.

JavaScript
const hasForce =
  "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent &&
  "WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent;

if (hasForce) {
  const normal = MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;
  const force = MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;
  console.log(normal, force);
  console.log(force > normal); // typically true
} else {
  console.log("thresholds unavailable");
}
Try It Yourself

How It Works

Both constants live on MouseEvent. When present, the force-click value is meant to be stricter than a normal press.

Example 4 — Not Available on Event Instances

MDN: always use the static form on MouseEvent.

JavaScript
const event = new MouseEvent("mousedown");

console.log("on constructor:", "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent);
console.log("on instance:", event.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN);
console.log("hasOwn on instance:", Object.prototype.hasOwnProperty.call(
  event,
  "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN"
));
Try It Yourself

How It Works

Even when the static exists on Safari, instances still should not be your lookup path. Teach beginners: static → constructor; live force → event.webkitForce.

Example 5 — Compare webkitForce to the Threshold

Pattern for a Force Touch handler (runs only where APIs exist).

JavaScript
function isForceClick(event) {
  if (
    !("WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent) ||
    typeof event.webkitForce !== "number"
  ) {
    return false;
  }
  return event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;
}

// Demo with a synthetic event (webkitForce usually absent):
const fake = new MouseEvent("mousedown");
console.log(isForceClick(fake)); // false on most browsers

document.addEventListener("mousedown", (e) => {
  if (isForceClick(e)) {
    console.log("force click");
  }
});
Try It Yourself

How It Works

Guard both the static threshold and event.webkitForce. Without Force Touch hardware and WebKit support, the helper correctly returns false.

🚀 Common Use Cases

  • Learning WebKit Force Touch APIs while reading Safari-only code.
  • Feature-detecting force-click thresholds in experimental Safari demos.
  • Comparing event.webkitForce against documented static cutoffs.
  • Documenting why a codebase should not depend on this for Chrome/Firefox users.
  • Teaching the difference between static constants and instance event fields.

🔧 How It Works

1

Engine exposes MouseEvent

WebKit may attach Force Touch static constants.

Engine
2

Read the static threshold

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN

Static
3

Read live force on events

Use event.webkitForce during mouse handlers.

Instance
4

Compare and branch

Force click if live force meets or exceeds the threshold.

📝 Notes

Limited / Non-standard Support

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a Non-standard WebKit proprietary static. 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

WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN

Force-click threshold constant. Feature-detect; do not require it for Chrome/Firefox users.

Limited WebKit-oriented
Google Chrome Typically not available
No support
Mozilla Firefox Typically not available
No support
Apple Safari WebKit Force Touch builds may expose it
Limited
Microsoft Edge Typically not available (Chromium)
No support
Opera Typically not available
No support
Internet Explorer Not available
No support
WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN Limited

Bottom line: Static Force Touch threshold on MouseEvent in WebKit; missing elsewhere.

Conclusion

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a WebKit-only static number: the force-click cutoff. Read it from MouseEvent, detect support first, and compare against event.webkitForce only in experimental Safari scenarios.

Continue with WEBKIT_FORCE_AT_MOUSE_DOWN, MouseEvent(), or the JavaScript hub.

💡 Best Practices

✅ Do

  • Feature-detect with in MouseEvent
  • Access the constant on MouseEvent only
  • Pair with event.webkitForce when both exist
  • Provide non-Force-Touch fallbacks for other browsers
  • Prefer standard Pointer Events pressure when possible

❌ Don’t

  • Ship production UX that requires this constant
  • Read it from a MouseEvent instance
  • Assume Chrome or Firefox expose WebKit Force Touch statics
  • Skip detection and throw when the property is missing
  • Confuse normal vs force thresholds

Key Takeaways

Knowledge Unlocked

Five things to remember about this static

WebKit force-click threshold—detect before you use it.

5
Core concepts
🔢 02

Static

on MouseEvent

Kind
📈 03

Number

force threshold

Value
👆 04

Pair with

webkitForce

Use
🛡️ 05

Detect first

fallback always

Safety

❓ Frequently Asked Questions

It is a proprietary WebKit static numeric property on MouseEvent. Its value is the minimum force needed for a force click (Force Touch). Always read it as MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, not on an event instance.
MDN marks it Non-standard — not part of any web specification. It is not labeled Deprecated or Experimental on that MDN page, but non-standard APIs should not be relied on in production cross-browser code.
Because it is a static property of the MouseEvent constructor/interface. Instance events do not carry this constant; reading event.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is typically undefined.
MouseEvent.webkitForce (also WebKit) reports the current force on a mouse event. Compare that value to WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN to detect a force click threshold on supporting Safari/WebKit builds.
That related static constant is the minimum force for a normal mouse down (lighter threshold). Force-click uses the higher WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN value.
Only behind feature detection for Safari/WebKit Force Touch experiments. Prefer Pointer Events force/pressure where available for broader, more standard approaches.
Did you know?

MDN groups this constant with Force Touch events and notes it is not part of any specification—Apple documented it historically in Mac developer materials. That is why production apps should treat it as optional spice, not a required ingredient.

Next: WEBKIT_FORCE_AT_MOUSE_DOWN

Learn the non-standard WebKit static normal-click force threshold.

Normal threshold →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful