Skip to content

Commit 27823e2

Browse files
committed
feat: typed cursor blink
1 parent 0985332 commit 27823e2

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/components/stateless/TypedText/index.jsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { memo, useState, useEffect } from 'react'
2-
2+
import styles from './index.module.less'
33
const TypedText = ({ children, delay = 110 }) => {
44
const [revealedLetters, setRevealedLetters] = useState(0)
55
const interval = setInterval(() => setRevealedLetters((l) => l + 1), delay)
@@ -10,7 +10,12 @@ const TypedText = ({ children, delay = 110 }) => {
1010

1111
useEffect(() => () => clearInterval(interval), [interval])
1212

13-
return <>{children.substring(0, revealedLetters)}</>
13+
return (
14+
<>
15+
{children.substring(0, revealedLetters)}
16+
<span className={styles.typedCursorBlink}>|</span>
17+
</>
18+
)
1419
}
1520

1621
export default memo(TypedText)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.typedCursorBlink {
2+
opacity: 1;
3+
animation: typed-blink 0.7s infinite;
4+
}
5+
6+
@keyframes typed-blink {
7+
50% {
8+
opacity: 0;
9+
}
10+
}

0 commit comments

Comments
 (0)