Documentation Index
Fetch the complete documentation index at: https://mintlify.com/felipe-software/react-native-jelly-tabs/llms.txt
Use this file to discover all available pages before exploring further.
PillMaskedView is the low-level animated masking primitive that powers the selected-tab reveal effect inside JellyTabBarHeadless. It clips its children to a pill-shaped region that can be repositioned and resized via Reanimated animated styles.
Import
Overview
PillMaskedView is the low-level animated masking primitive that powers the selected-tab reveal effect inside JellyTabBarHeadless. It clips its children to a pill-shaped region that can be repositioned and resized via Reanimated animated styles.
Platform behavior
- iOS / Android — uses
@react-native-masked-view/masked-viewwith a hardware-rendered mask element. The mask is an absolutely-positionedAnimated.ViewwithborderRadius: 999, driven byanimatedStyle. - Web — uses a CSS
overflow: hiddenclip box withborder-radius(stable across Safari animation frames) driven byclipStylefor the pill shape, pluscontentStylefor the inverse transform that keeps children fixed to the track coordinate system. This avoids an animatedclip-path, which Safari drops on stray frames.
When to use
UsePillMaskedView when building a fully custom tab UI that needs the jelly pill masking primitive independently of the full JellyTabBarHeadless component. For most use-cases JellyTabBarHeadless already handles this internally.
Props
Reanimated animated style applied to the pill mask element on native platforms. This style drives the position and shape of the mask. Unused on web — see
clipStyle instead.Reanimated animated style applied to the pill-shaped clip box on web. Typically contains a
transform that repositions and scales the clip rect. The box’s border-radius is set from the height prop and stays stable across animation frames.The total height of the content layer placed inside the clip box on web. Should equal
trackHeight + maskOverscanY * 2 to cover the track plus its vertical overscan region.Reanimated animated style applied to the content container on web. This style carries the inverse transform of
clipStyle, so children remain anchored to the track coordinate system while the clip box moves.The total width of the content layer placed inside the clip box on web. Should equal
trackWidth + maskOverscanX * 2 to cover the full track plus its horizontal overscan.Pixel height of the pill-shaped mask region. Corresponds to the tab item height — typically
config.layout.itemHeight * displayScale (default 56).Pixel offset from the left edge of the mask overscan area to the starting position of the first pill. Typically
maskOverscanX + trackInset.Width of a single tab slot used as the initial
width of the web clip box. Computed as (trackWidth - trackInset * 2) / tabCount.Pixel offset from the top edge of the mask overscan area to the pill’s vertical position. Typically
maskOverscanY + trackInset.The content revealed through the pill mask. In
JellyTabBarHeadless this is the selected-surface layer (background color + selectedBackdrop), the selected touch feedback glow, and the active-state tab icons/labels row.