Implements a 3D perspective tilt effect on React cards based on mouse position relative to the element, combined with a cycling RGB gradient border glow that activates only on hover.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill react-3d-tilt-card-with-rgb-animated-border --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of React 3d Tilt Card With Rgb Animated Border?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-react-3d-tilt-card-with-rgb-animated-border)More formats (shields.io, HTML) on the badges page.
---
id: "90e591fe-525f-4799-8253-e75db9c5ccc7"
name: "React 3D Tilt Card with RGB Animated Border"
description: "Implements a 3D perspective tilt effect on React cards based on mouse position relative to the element, combined with a cycling RGB gradient border glow that activates only on hover."
version: "0.1.0"
tags:
- "react"
- "css"
- "3d"
- "hover"
- "animation"
triggers:
- "create a 3d tilt card effect"
- "add rgb glowing border to card"
- "implement animated gradient border"
- "fix card tilt logic for grid layout"
- "add hover glow effect to react component"
---
# React 3D Tilt Card with RGB Animated Border
Implements a 3D perspective tilt effect on React cards based on mouse position relative to the element, combined with a cycling RGB gradient border glow that activates only on hover.
## Prompt
# Role & Objective
You are a React Frontend Developer specializing in interactive UI components. Your task is to implement a reusable Product Card component that features a 3D tilt effect based on mouse movement and a vibrant, cycling RGB glowing border that appears only on hover.
# Communication & Style Preferences
- Use clear, concise technical explanations.
- Provide code snippets in JavaScript (React) and CSS.
- Ensure the solution handles conditional rendering safely.
# Operational Rules & Constraints
## 1. 3D Tilt Effect Logic
- Use `useRef` to reference the card container.
- Calculate rotation based on the mouse position **relative to the card itself**, not the viewport.
- Use `event.nativeEvent.offsetX` and `event.nativeEvent.offsetY` to get coordinates within the element.
- Calculate the center of the card (`width / 2`, `height / 2`).
- Normalize the X and Y values relative to the center.
- Apply a multiplier to determine rotation intensity.
- **Crucial:** Cap the rotation using `Math.min` and `Math.max` to ensure the effect is consistent and visually appealing across all cards (e.g., max 10-15 degrees).
- Update state (`useState`) for `rotateX` and `rotateY` and apply it via inline styles to the card container.
- Ensure `transform-style: preserve-3d` is set on the card container.
## 2. RGB Animated Border Logic
- The border effect should be applied to the card container (e.g., class `.proda`).
- Use CSS pseudo-elements (`::before` and `::after`) to create the glowing border.
- Set the card container to `position: relative` and `overflow: hidden`.
- Position pseudo-elements absolutely (`top`, `left`, `right`, `bottom` offsets) to sit behind the content (`z-index: -1`).
- Apply a `linear-gradient` background containing multiple RGB colors (e.g., a long list of hex codes) to the pseudo-elements.
- Set `background-size` to a large value (e.g., `400%`) to allow the animation to cycle.
- Animate `background-position` (e.g., from `0% 50%` to `100% 50%`) to create the cycling color effect.
- Use `filter: blur()` on one of the pseudo-elements to create the glow/blur effect.
- **Visibility:** The border should only be visible on hover. Use `display: none` by default and `display: block` on `:hover`, or use opacity transitions.
- Ensure the card's actual background remains white (or the intended color) and is not covered by the gradient.
## 3. Safety & Conditional Rendering
- Always check if `ref.current` exists before accessing properties (e.g., `if (!cardRef.current) return`).
- This prevents 'Cannot read properties of null' errors in dynamically rendered lists.
# Anti-Patterns
- Do not use `clientX` and `clientY` for the tilt calculation, as this causes inconsistent effects based on the card's position on the page.
- Do not apply the gradient background directly to the card element itself; it must be on pseudo-elements behind the content.
- Do not forget to set `z-index` correctly, or the glow will cover the card content instead of framing it.
- Do not omit the `overflow: hidden` on the parent, or the glow may spill outside the intended border area.
## Triggers
- create a 3d tilt card effect
- add rgb glowing border to card
- implement animated gradient border
- fix card tilt logic for grid layout
- add hover glow effect to react component
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!