Skip to content

Commit

Permalink
v2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
namhong2001 committed Dec 25, 2022
1 parent 1c4ff82 commit 2dd8c32
Show file tree
Hide file tree
Showing 31 changed files with 277 additions and 12,731 deletions.
7 changes: 0 additions & 7 deletions .babelrc

This file was deleted.

5 changes: 0 additions & 5 deletions .eslintignore

This file was deleted.

25 changes: 0 additions & 25 deletions .eslintrc

This file was deleted.

6 changes: 1 addition & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
node_modules
*.log
.DS_Store
dist
lib
coverage
dist
6 changes: 0 additions & 6 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
.DS_Store
*.log
src
test
examples
coverage
3 changes: 0 additions & 3 deletions .travis.yml

This file was deleted.

32 changes: 0 additions & 32 deletions CHANGELOG.md

This file was deleted.

14 changes: 0 additions & 14 deletions CODE_OF_CONDUCT.md

This file was deleted.

4 changes: 2 additions & 2 deletions LICENSE.md → LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)
The MIT License

Copyright (c) 2015 react-textfit
Copyright (c) 2022 namhong2001/react-textfit

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
133 changes: 33 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,126 +1,59 @@
## Diff from malte-wessel/react-textfit
# @namhong2001/react-textfit

- make run possible on react v18

### install types

```bash
npm install @types/namhong2001__react-textfit@npm:@types/react-textfit --D
```
## v1

# react-textfit
### Diff from malte-wessel/react-textfit

[![npm](https://img.shields.io/badge/npm-react--textfit-brightgreen.svg?style=flat-square)]()
[![npm version](https://img.shields.io/npm/v/react-textfit.svg?style=flat-square)](https://www.npmjs.com/package/react-textfit)
[![npm downloads](https://img.shields.io/npm/dm/react-textfit.svg?style=flat-square)](https://www.npmjs.com/package/react-textfit)

- fit **headlines and paragraphs** into any element
- **fast:** uses binary search for efficiently find the correct fit
- **100%** react-goodness
- works with **any style** configuration (line-height, padding, ...)
- **[check out the demo](http://malte-wessel.github.io/react-textfit/)**
- make run possible on react v18

## Table of Contents
### Install

- [Installation](#installation)
- [Usage](#usage)
- [Modes](#modes)
- [API](#api)
- [License](#license)
```shell
npm install @namhong2001/react-textfit@1
```

## Installation
#### Types

```bash
npm install react-textfit --save
npm install @types/namhong2001__react-textfit@npm:@types/react-textfit --D
```

## Usage

### Headlines
## v2

```javascript
import { Textfit } from "react-textfit";
Originate from **_malte-wessel/react-textfit_** but fully rewritten with function component and hooks by typescript

class App extends Component {
render() {
return <Textfit mode="single">Fat headline!</Textfit>;
}
}
```

#### Respect the element's height when using single lines

```javascript
import { Textfit } from "react-textfit";
### Install

class App extends Component {
render() {
return (
<Textfit mode="single" forceSingleModeWidth={false}>
Fat headline!
</Textfit>
);
}
}
```shell
npm install @namhong2001/react-textfit
```

### Paragraphs

```javascript
import { Textfit } from "react-textfit";

class App extends Component {
render() {
return (
<Textfit mode="multi">
Lorem <strong>ipsum</strong> dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.
</Textfit>
);
}
}
```
#### Types

## Modes
Included

### `single`
### Supported props

**Algorithm steps:**
- `mode` (single|multi) force singleline or multiline. default `multi`
- `min` (Number) minimum font size. default `0`
- `max` (Number) maximum font size. default `300`

```
1. binary search to fit the element's width
2. if forceSingleModeWidth=false and text overflows height
2a. binary search to also fit the elements height
```
### example

### `multi`
```typescript
<Textfit>
{myText}
</Textfit>

**Algorithm steps:**
<Textfit mode="single">
{myText}
</Textfit>

<Textfit mode="single" min={10} max={50}>
{myText}
</Textfit>
```
1. binary search to fit the element's height
2. if text overflows width
2a. binary search to also fit the elements width
```

## API

### `<Textfit>`

#### Props

- `mode` (single|multi) Algorithm to fit the text. Use single for headlines and multi for paragraphs. Default is `multi`.
- `forceSingleModeWidth` (Boolean) When mode is single and forceSingleModeWidth is true, the element's height will be ignored. Default is `true`.
- `min` (Number) Minimum font size in pixel. Default is `1`.
- `max` (Number) Maximum font size in pixel. Default is `100`.
- `throttle` (Number) Window resize throttle in milliseconds. Default is `50`.
- `onReady` (Function) Will be called when text is fitted.

## License
## LICENSE

MIT
Loading

0 comments on commit 2dd8c32

Please sign in to comment.