This component is created on top of the Mantine library.
Mantine Flip is a two-face container that animates between a front and a back view, ideal for compact UIs that need progressive disclosure (e.g., editing panels, settings, sign-in/sign-up toggles, or profile details). It supports both uncontrolled usage with Flip.Target to wire any element as a click trigger, and controlled usage via flipped/defaultFlipped using React state for full synchronization with your app logic. The component enforces exactly two children, accepts size constraints (w/h), and offers transition customization such as vertical flipping and distinct rotation directions for flip-in and flip-out. Styling hooks (classNames/Styles API) let you target inner parts for design refinement, while examples demonstrate practical patterns like credit-card editing, modal-like settings panes, and multi-target triggers within a single face.
npm install @gfazioli/mantine-flipor
yarn add @gfazioli/mantine-flipAfter installation import package styles at the root of your application:
import '@gfazioli/mantine-flip/styles.css';import { Flip } from '@gfazioli/mantine-flip';
function Demo() {
return (
<Flip h={200} w={200}>
<Paper radius="md" withBorder p="lg" shadow="md">
<h3>Front Card</h3>
<Flip.Target>
<Button>Flip Back</Button>
</Flip.Target>
</Paper>
<Paper radius="md" withBorder p="lg" shadow="md">
<h3>Back Card</h3>
<Flip.Target>
<Button>Flip Front</Button>
</Flip.Target>
</Paper>
</Flip>
);
}As you can see, the Flip component wraps two children, which are the two views that you want to flip between.
The Flip.Target component is used to define the trigger for the flip animation. It can be any component, such as a button, or a link, or even a div.
Your support helps me:
- Keep the project actively maintained with timely bug fixes and security updates
- Add new features, improve performance, and refine the developer experience
- Expand test coverage and documentation for smoother adoption
- Ensure long‑term sustainability without relying on ad hoc free time
- Prioritize community requests and roadmap items that matter most
Open source thrives when those who benefit can give back—even a small monthly contribution makes a real difference. Sponsorships help cover maintenance time, infrastructure, and the countless invisible tasks that keep a project healthy.
Your help truly matters.
💚 Become a sponsor today and help me keep this project reliable, up‑to‑date, and growing for everyone.
