- Optimized for browsers. Limited availability on mobile.
- Download thumbnail images
- Resize the canvas
- Fill the background with colors or pictures
- Select a blur effect
- Select font family, textAlign, size, stroke, color, angle, lineHeight
- Drag and Drop text on the canvas
- Add custom web font families
- Select the modal button and its location
- Choose the image type (png, jpg, webp, svg)
- Support TypeScript and Next(v13)
- 1: Background Picture
- 2: Text Align (start, center, end)
- 2: Background Color
- 3: Font Color
- 4: Font Stroke Color
- 5: Blur Effect
- Install Package
yarn add react-thumbnail-generator
or
npm install react-thumbnail-generator
- Add
<ThumbnailGenerator>
component. - ThumbnailGenerator is automatically rendered as a
document.body
child by default usingPortal
.
import ThumbnailGenerator from 'react-thumbnail-generator';
import iconImage from '../assets/colorImage.png';
const App = () => {
return (
<ThumbnailGenerator
iconSize="medium"
// Through this property, you can specify the size of the button icon.
// However, if you are inserting a custom button icon, this option is meaningless.
iconPosition={[0, 20, 20, 0]}
// Through this property, you can specify the position of the button icon.
// [top, right, bottom, left]
modalPosition='right'
// Through this property, you can specify the position of the thumbnail generator.
additionalFontFamily={['Noto Sans', ...]}
// You can add the font of your choice to your project, but that font must already applied to your project.
isFullWidth={true}
// Setting this property to true will make the thumbnail generator full-width.
isDefaultOpen={false}
// Setting this property to true will open the thumbnail generator by default.
/>
)
}
- Add a web font.
public/index.html
- or CSS fontFamily
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... -->
<!-- Add a web font -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Zeyada&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div id="root"></div>
</body>
</html>
- Enter font names in array form in the AdditionalFontFamily option
import ThumbnailGenerator from 'react-thumbnail-generator';
import iconImage from '../assets/colorImage.png';
const App = () => {
return (
<ThumbnailGenerator
additionalFontFamily={["Zeyada"]} // (*)
/>
)
}
- iconPosition
- Optional
- Sequence: [top, right, bottom, left]
- Default:
[0, 20, 20, 0]
- Type:
[number, number, number, number]
- modalPosition
- Optional
- Default:
right
- Type:
left | right | center
- iconSize
- Optional
- Default:
medium
- Type:
small | medium | large
- additionalFontFamily
- Optional
- Type:
string[]
- isFullWidth
- Optional
- Default:
false
- Type:
boolean
- isDefaultOpen
- Optional
- Default:
false
- Type:
boolean