1.1.1 • Published 2 years ago

react-wavy-transitions v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

react-wavy-transitions

Show wavy transitions between route changes, in your React 18 apps.

Click here for a demo.

Installation

Just a few quick steps to get started:

1. Create a React app

npx create-react-app my-wavy-app

2. Install dependencies

Our project depends upon React's router library

npm i react-wavy-transitions react-router-dom

3. Add components

The package relies on two components being present.

WavyContainer

This is what houses our wave transition between route changes and does not require any props.

WavyLink

This button can be declared anywhere inside your Router component.

It takes the following props:

PropDescriptionExampletyperequireddefault
childrenThe content inside the linkAboutString / Componenttrue
toThe route that the link will take you to/aboutStringtrue
colorThe background color of the wave shapes. Must be a hexcode or rgba value#8f44fdStringfalse#8f44fd
directionThe direction that the wave shapes will move (options are up/down)upStringfalsedown
durationThe duration in milliseconds of the total wave transition1200Stringfalse1500
  • Be careful with the duration (too fast/slow can ruin the effect) - my recommended duration is between 1000ms and 1600ms.
Example App.tsx

Copy this whole code snippet into your App.tsx for a basic example:

import { BrowserRouter, Routes, Route, Outlet } from "react-router-dom";

import { WavyContainer, WavyLink } from "react-wavy-transitions";

const Home = () => <div>Home</div>;
const About = () => <div>About</div>;
const Contact = () => <div>Contact</div>;

function App() {
  return (
    <BrowserRouter>
      <WavyContainer />
      <Routes>
        <Route
          path="/"
          element={
            <>
              <WavyLink to="/" color="#ff44fd">
                Home
              </WavyLink>
              <WavyLink direction="up" to="/about" color="#8f44fd">
                About
              </WavyLink>
              <WavyLink duration={1000} to="/contact" color="#2f44fd">
                Contact
              </WavyLink>
              <Outlet />
            </>
          }
        >
          <Route index element={<Home />} />
          <Route path="about" element={<About />} />
          <Route path="contact" element={<Contact />} />
          <Route path="*" element={<>No Match</>} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

export default App;

4. Styling

To style the WavyLink component you can target it via css (just be more specific than me 😄):

body .react-wavy-transitions__wavy-link {
  color: #af44fd;
  ...;
}

5. DRY (Don't Repeat Yourself)

To avoid repeating certain WavyLink props, I recommend creating your own generic link component that sets the props here by default.

import { FC, ReactNode } from "react";
import { WavyLink } from "react-wavy-transitions";

type Props = {
  to: string;
  children: ReactNode;
};

export const MyWavyLink: FC<Props> = ({ to, children }) => (
  <WavyLink duration={1000} direction="up" color="#af44fd" to={to}>
    {children}
  </WavyLink>
);

6. Have fun with it!

Please hit me up on My Instagram page for any support or suggestions 🙂

1.1.1

2 years ago

1.1.0

2 years ago

1.0.19

2 years ago

1.0.2

2 years ago

1.0.18

2 years ago

1.0.1

2 years ago

1.0.17

2 years ago

1.0.0

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

0.1.10

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.0

3 years ago