Releases: mdjastrzebski/react-native-plain-text
Releases · mdjastrzebski/react-native-plain-text
Release list
v0.8.0
v0.7.2
v0.7.1
v0.7.0
v0.6.1
0.6.1 (2026-08-08)
⚡ Performance
- android: shared layout view by @mdjastrzebski in #5
- android: font variation typeface cache by @mdjastrzebski in #6
v0.6.0
0.6.0 (2026-08-06)
✨ Features
- font variant (#2) (496d6b9)
- font variation settings (#3) (a85b6c7)
- example app improvements (0885f1e)
- example app: minor improvements (adba4cf)
🐛 Bug Fixes
- android: borders support (2743fae)
- android: text padding (e84e9cf)
- ios: enable view recycling (ceba9d0)
- ios: resolve fontFamily through the family's font names (#4) (de2f28a)
- ios: underline location with custom line height (be4e6aa)
🙌 New Contributors
- @AlshehriAli0 made their first contribution in #4
v0.5.2
v0.5.1
v0.5.0
0.5.0 (2026-07-28)
Initial public release 🎉
PlainText renders a single string straight to the platform's native text
widget — UILabel on iOS, TextView on Android — instead of going through
React Native's own text layout pipeline.
Performance vs RN <Text>
Release builds, mean of 3 runs, measured with the example app's Performance
tab. Compare each figure against RN <Text> on the same device and text size;
see measuring.md for the method.
| iOS | Android | |
|---|---|---|
| Memory per mounted view | 15–25% lower | ~33% lower |
| Time to mount 1000 views | 13–21% faster | ~30% faster |
What's supported
Styles
fontSizecolorfontWeightfontFamilylineHeightfontStyle:'normal' | 'italic'textAligntextDecorationLine:'none' | 'underline' | 'line-through' | 'underline line-through'letterSpacingverticalAlign/textAlignVertical:Android only, matching RN<Text>- Every other
ViewStyleprop (width,height,margin,padding,backgroundColor,opacity, …), forwarded to the native view as-is
Props
children: plainstringonlynumberOfLinesellipsizeMode:'head' | 'middle' | 'tail' | 'clip'allowFontScaling/maxFontSizeMultiplier: accessibility text scalingtestID,accessibilityRole,accessibilityLabel,accessibilityHint,accessibilityState,nativeIDand the rest of the accessibility props- Self-sizing: views measure to their content, so no explicit
width/heightis needed
Not supported
Deliberately excluded:
- Nested
<Text>and mixed-style fragments: one string, one style onPress/onLongPress/onResponder*: wrap it inPressableselectable/selectionColor/suppressHighlighting:UILabelisn't selectable by design; use RN's<Text>dataDetectorType: auto-linking needs attributed text spanstextTransform: do it in JS (children.toUpperCase())writingDirection: RTL belongs inI18nManager, globallytextBreakStrategy/lineBreakStrategyIOS/android_hyphenationFrequencyonTextLayout: heavy line-metrics payload; deferred until there's demand