19 Weex Rendering Bugs That Will Haunt Your Cross-Platform Build
Weex promises write-once-run-anywhere, but this list shows that promise has cracks: teams must build and test platform-specific workarounds for each feature, which multiplies maintenance cost and can slip into production as flickering UI, broken navigation, or invisible ellipsis marks.
Weex development runs into a wall of platform-specific rendering idiosyncrasies. The list covers CSS shorthand failures, layout bugs, timer quirks, and refresh component issues. Android forces explicit width/height on every div; iOS breaks overflow with box-shadow; HarmonyOS ignores ellipsis with nowrap. Workarounds range from wrapping elements in extra divs to slicing images for arrows.
The patterns are concrete: background shorthand is unusable, `border-radius` with four different values fails on iOS, and the `refresh` component cannot be dynamically shown or hidden. Several issues stem from how Weex maps CSS to native rendering on each platform, leaving developers to guess which properties behave where. The list also includes platform-specific traps like the Baidu app session reset and HarmonyOS image loading stalling after a translate plus transition-delay.
All 19 items are practical field notes, not theoretical warnings. Each one names a symptom and a fix, giving teams a checklist to consult before shipping Weex features. The recurring theme is that "write once, run anywhere" breaks down in the details — the only reliable path is to test every style and component on every target platform.
The list is a direct symptom of Weex's rendering engine diverging from standard CSS across platforms, forcing developers to maintain a platform-aware mental model instead of a single component API.
Most items are silent at compile time and only appear at runtime, so without a shared pitfall register every new team member re-discovers the same bugs.
The technical corrections to the bug list are the core of the discussion. Font-weight is a text-only style, and Android's mapping to 400/700 makes a 500 weight impossible without a font-family workaround. Box-shadow is an iOS-only property, so the listed overflow failure simply doesn't occur on Android. White-space is unsupported, and single-line ellipsis requires lines and text-overflow, tied to the parent-specified width. On the lifecycle side, sentiment is grim: one developer reports a prior employer used Weex and that two years spent on it were wasted.
The first item isn't "maybe" ineffective — it's definitely ineffective: font-weight in Weex belongs to text styles, only applying to text / input / richtext; div has no font concept. And the documentation says iOS supports 9 levels from 100 to 900, while Android recognizes only 400 and 700 — any other number is forced down to 400 or 700. So a design-specified 500 Medium will definitely be thinner on Android; tweaking the number won't help, the only approach is loading the Medium weight via font-family.
Whoa, there's a pro here. Your company is still using this? [watching]