# BrowserBar **📖 Live documentation:** https://cds.coinbase.com/components/navigation/BrowserBar/ A navigation bar designed for browser-like interfaces, featuring slots for start, end, and central content. It provides a structured layout for controls and information within a browser context. ## Import ```tsx import { BrowserBar } from '@coinbase/cds-mobile/navigation/BrowserBar' ``` ## Examples ### Basic usage A `BrowserBar` can be used to display information and actions, like in a web browser. ```tsx } end={} > Coinbase ``` ### With Search Input A common use case is to include a search or URL input field. ```tsx } end={ } > ``` ### Contextual Hiding `BrowserBar` provides a `BrowserBarContext`. Components rendered inside the `BrowserBar` can use the `useBrowserBarContext` hook to gain access to `setHideStart` and `setHideEnd` functions. These functions allow children components to dynamically hide the `start` and `end` content of the `BrowserBar`, which can be useful to maximize space for the primary content. ## Props | Prop | Type | Required | Default | Description | | --- | --- | --- | --- | --- | | `alignContent` | `flex-start \| flex-end \| center \| stretch \| space-between \| space-around \| space-evenly` | No | `-` | - | | `alignItems` | `FlexAlignType` | No | `-` | - | | `alignSelf` | `auto \| FlexAlignType` | No | `-` | - | | `animated` | `boolean` | No | `-` | - | | `aspectRatio` | `string \| number` | No | `-` | - | | `background` | `Color` | No | `-` | - | | `borderBottomLeftRadius` | `BorderRadius` | No | `-` | - | | `borderBottomRightRadius` | `BorderRadius` | No | `-` | - | | `borderBottomWidth` | `BorderWidth` | No | `-` | - | | `borderColor` | `Color` | No | `-` | - | | `borderEndWidth` | `BorderWidth` | No | `-` | - | | `borderRadius` | `BorderRadius` | No | `-` | - | | `borderStartWidth` | `BorderWidth` | No | `-` | - | | `borderTopLeftRadius` | `BorderRadius` | No | `-` | - | | `borderTopRightRadius` | `BorderRadius` | No | `-` | - | | `borderTopWidth` | `BorderWidth` | No | `-` | - | | `borderWidth` | `BorderWidth` | No | `-` | - | | `bordered` | `boolean` | No | `-` | Add a border around all sides of the box. | | `borderedBottom` | `boolean` | No | `-` | Add a border to the bottom side of the box. | | `borderedEnd` | `boolean` | No | `-` | Add a border to the trailing side of the box. | | `borderedHorizontal` | `boolean` | No | `-` | Add a border to the leading and trailing sides of the box. | | `borderedStart` | `boolean` | No | `-` | Add a border to the leading side of the box. | | `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. | | `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. | | `bottom` | `DimensionValue` | No | `-` | - | | `color` | `Color` | No | `-` | - | | `columnGap` | `Space` | No | `-` | - | | `dangerouslySetBackground` | `string` | No | `-` | - | | `display` | `none \| flex` | No | `-` | - | | `elevation` | `Elevation` | No | `-` | Determines box shadow styles. Parent should have overflow set to visible to ensure styles are not clipped. | | `end` | `ReactNode` | No | `-` | end node | | `flexBasis` | `DimensionValue` | No | `-` | - | | `flexDirection` | `row \| column \| row-reverse \| column-reverse` | No | `-` | - | | `flexGrow` | `number` | No | `-` | - | | `flexShrink` | `number` | No | `-` | - | | `flexWrap` | `wrap \| nowrap \| wrap-reverse` | No | `-` | - | | `font` | `FontFamily \| inherit` | No | `-` | - | | `fontFamily` | `FontFamily \| inherit` | No | `-` | - | | `fontSize` | `inherit \| FontSize` | No | `-` | - | | `fontWeight` | `inherit \| FontWeight` | No | `-` | - | | `gap` | `Space` | No | `-` | - | | `height` | `DimensionValue` | No | `-` | - | | `justifyContent` | `flex-start \| flex-end \| center \| space-between \| space-around \| space-evenly` | No | `-` | - | | `left` | `DimensionValue` | No | `-` | - | | `lineHeight` | `inherit \| LineHeight` | No | `-` | - | | `margin` | `NegativeSpace` | No | `-` | - | | `marginBottom` | `NegativeSpace` | No | `-` | - | | `marginEnd` | `NegativeSpace` | No | `-` | - | | `marginStart` | `NegativeSpace` | No | `-` | - | | `marginTop` | `NegativeSpace` | No | `-` | - | | `marginX` | `NegativeSpace` | No | `-` | - | | `marginY` | `NegativeSpace` | No | `-` | - | | `maxHeight` | `DimensionValue` | No | `-` | - | | `maxWidth` | `DimensionValue` | No | `-` | - | | `minHeight` | `DimensionValue` | No | `-` | - | | `minWidth` | `DimensionValue` | No | `-` | - | | `onPointerCancel` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerCancelCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerDown` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerDownCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerEnter` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerEnterCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerLeave` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerLeaveCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerMove` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerMoveCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerUp` | `((event: PointerEvent) => void)` | No | `-` | - | | `onPointerUpCapture` | `((event: PointerEvent) => void)` | No | `-` | - | | `opacity` | `AnimatableNumericValue` | No | `-` | - | | `overflow` | `visible \| hidden \| scroll` | No | `-` | - | | `padding` | `Space` | No | `-` | - | | `paddingBottom` | `Space` | No | `-` | - | | `paddingEnd` | `Space` | No | `-` | - | | `paddingStart` | `Space` | No | `-` | - | | `paddingTop` | `Space` | No | `-` | - | | `paddingX` | `Space` | No | `-` | - | | `paddingY` | `Space` | No | `-` | - | | `pin` | `PinningDirection` | No | `-` | Direction in which to absolutely pin the box. | | `position` | `Position` | No | `-` | - | | `right` | `DimensionValue` | No | `-` | - | | `rowGap` | `Space` | No | `-` | - | | `start` | `ReactNode` | No | `-` | start node | | `style` | `false \| RegisteredStyle \| WithAnimatedObject \| Value \| AnimatedInterpolation \| WithAnimatedArray \| RecursiveArray> \| readonly (ViewStyle \| Falsy \| RegisteredStyle)[]> \| null` | No | `-` | - | | `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID Used to locate this element in unit and end-to-end tests. Used to locate this view in end-to-end tests. | | `textAlign` | `left \| right \| auto \| center \| justify` | No | `-` | - | | `textDecorationLine` | `none \| underline \| line-through \| underline line-through` | No | `-` | - | | `textDecorationStyle` | `solid \| double \| dotted \| dashed` | No | `-` | - | | `textTransform` | `none \| capitalize \| uppercase \| lowercase` | No | `-` | - | | `top` | `DimensionValue` | No | `-` | - | | `transform` | `string \| (({ perspective: AnimatableNumericValue; } & { rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotate: AnimatableStringValue; } & { perspective?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateX: AnimatableStringValue; } & { perspective?: undefined; rotate?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateY: AnimatableStringValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateZ: AnimatableStringValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ scale: AnimatableNumericValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ scaleX: AnimatableNumericValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ scaleY: AnimatableNumericValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ translateX: AnimatableNumericValue \| ${number}%; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ translateY: AnimatableNumericValue \| ${number}%; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ skewX: AnimatableStringValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ skewY: AnimatableStringValue; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; matrix?: undefined; }) \| ({ matrix: AnimatableNumericValue[]; } & { perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; skewX?: undefined; skewY?: undefined; }))[]` | No | `-` | - | | `userSelect` | `none \| auto \| text \| contain \| all` | No | `-` | - | | `width` | `DimensionValue` | No | `-` | - | | `zIndex` | `number` | No | `-` | - |