Chart primitives
Layouts & specialized
Interactions
Data utilities
Umbrella package
@vx/text
The @vx/text
provides a better SVG <Text>
component with the following features
- Word-wrapping (when
width
prop is defined) - Vertical alignment (
verticalAnchor
prop) - Rotation (
angle
prop) - Scale-to-fit text (
scaleToFit
prop)
Example
Simple demo to show off a useful feature. Since svg <text>
itself does not support
verticalAnchor
, normally text rendered at 0,0
would be outside the viewport and thus not
visible. By using <Text>
with the verticalAnchor="start"
prop, the text will now be visible as
you'd expect.
import React from 'react';
import { render } from 'react-dom';
import { Text } from '@vx/text';
const App = () => (
<svg>
<Text verticalAnchor="start">Hello world</Text>
</svg>
);
render(<App />, document.getElementById('root'));
Installation
npm install --save @vx/text
Examples
<Text.Text />
Components
APIs
#<Text />
Rotational angle of the text.
Cap height of the text.
Default 0.71em
String (or number coercible to one) to be styled and positioned.
className to apply to the SVGText element.
dx offset of the text.
Default 0
dy offset of the text.
Default 0
Fill color of text.
Font family of text.
Font size of text.
((instance: SVGSVGElement | null) => void) | RefObject<SVGSVGElement> | null | undefined
optional Ref passed to the Text SVG element.
Desired "line height" of the text, implemented as y offsets.
Default 1em
Whether to scale the fontSize to accommodate the specified width.
Default false
Styles to be applied to the text (and used in computation of its size).
Horizontal text anchor.
Default start
Vertical text anchor.
Default end
Maximum width to occupy (approximate as words are not split).
x position of the text.
Default 0
y position of the text.
Default 0