Elementor Flip Card Widget
A custom Elementor widget that displays a clickable flip card with fully styled front and back faces — headers, body text, colors, typography, border radius, shadow, and card dimensions all controllable from the Elementor panel.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/cbanksbluecanopy/elementor-flip-card/archive/refs/heads/main.zipA lightweight, zero-dependency WordPress plugin that adds a fully customisable Flip Card widget to Elementor. Click the card to reveal a styled back face — every aspect of both faces is controlled directly from the Elementor panel with no custom CSS required.
Requirements
| Requirement | Version |
|---|---|
| WordPress | 5.6 or higher |
| Elementor (free) | 3.0 or higher |
| PHP | 7.4 or higher |
Installation
Option A — As a Plugin (Recommended)
- On your server, navigate to
wp-content/plugins/. - Create a new folder named
elementor-flip-card. - Place
elementor-flip-card.phpinside that folder so the path reads:wp-content/plugins/elementor-flip-card/elementor-flip-card.php - In your WordPress admin, go to Plugins → Installed Plugins.
- Find Elementor Flip Card Widget and click Activate.
Option B — As a Code Snippet
- Install a code snippet plugin such as WPCode or Code Snippets.
- Create a new snippet, set the type to PHP Snippet.
- Paste the entire contents of
elementor-flip-card.phpinto the snippet body. - Save and activate the snippet.
Note: If Elementor is not active when this plugin loads, a dismissible admin notice will appear reminding you to install and activate Elementor first. The widget will register automatically once Elementor is running.
Usage
- Open any page or post in the Elementor editor.
- In the widget panel, search for "Flip Card" (it lives in the General category).
- Drag the widget onto your canvas.
- Configure content and styles using the three-tab panel described below.
Controls Reference
Content Tab
Card Settings
| Control | Type | Description |
|---|---|---|
| Card Height | Slider (px / em / vh) | Sets the overall height of the card. Width follows the column it sits in. |
| Flip Direction | Select | Horizontal rotates left-to-right; Vertical rotates top-to-bottom. |
| Show Flip Icon | Toggle | Displays a subtle ↻ icon in the bottom-right corner as a click hint. |
Front Face — Content
| Control | Type | Description |
|---|---|---|
| Header Text | Text | The heading displayed on the front face. |
| Header HTML Tag | Select | Choose the semantic tag: H1–H6, p, span, or div. |
| Body Text | WYSIWYG | Rich text editor for the front body content. |
| Icon | Icon Picker | Optional Elementor icon shown on the front face. |
| Icon Position | Select | Place the icon above the header or below the body text. |
Back Face — Content
| Control | Type | Description |
|---|---|---|
| Header Text | Text | The heading displayed on the back face. |
| Header HTML Tag | Select | Choose the semantic tag: H1–H6, p, span, or div. |
| Body Text | WYSIWYG | Rich text editor for the back body content. |
| Icon | Icon Picker | Optional Elementor icon shown on the back face. |
| Icon Position | Select | Place the icon above the header or below the body text. |
| Button Text | Text | Adds an optional CTA button. Leave blank to hide. |
| Button URL | URL | Destination link for the button. Supports external and nofollow options. Clicks on the button do not trigger the card flip. |
Style Tab
Both the Front Face and Back Face have identical, fully independent style sections.
Background
| Control | Options | Description |
|---|---|---|
| Background Type | Solid Color / Gradient / Image | Switches between the three background modes. |
| Background Color | Color picker | Solid fill color (Solid mode). |
| Gradient Color 1 & 2 | Color pickers | Start and end colors for the gradient (Gradient mode). |
| Gradient Angle | Slider (0–360°) | Direction of the gradient (Gradient mode). |
| Background Image | Media picker | Uploads or selects an image from the media library (Image mode). |
| Image Overlay Color | Color picker | Semi-transparent color layer over the image for contrast (Image mode). |
Layout & Spacing
| Control | Description |
|---|---|
| Padding | Responsive — controls inner spacing on all four sides (px / em / %). |
| Text Alignment | Left, Center, or Right. |
| Vertical Alignment | Aligns content to the Top, Middle, or Bottom of the face. |
| Border Radius | Rounds the corners of the card face independently (px / %). |
| Box Shadow | Full Elementor box shadow group control (Front face only — applies to the card wrapper). |
Header Typography
| Control | Description |
|---|---|
| Header Color | Text color for the face heading. |
| Header Typography | Full Elementor typography group: font family, size, weight, style, line height, letter spacing, decoration, and transform. |
Body Typography
| Control | Description |
|---|---|
| Body Color | Text color for the face body content. |
| Body Typography | Full Elementor typography group (same options as header). |
Icon (shown when an icon is selected)
| Control | Description |
|---|---|
| Icon Color | Fill/stroke color for the icon. |
| Icon Size | Width and font-size of the icon (px / em). |
| Icon Spacing | Bottom margin between the icon and the header (top position only). |
Back Button (shown when Button Text is not empty)
| Control | Description |
|---|---|
| Button Background | Fill color of the button. |
| Button Text Color | Label color. |
| Button Padding | Responsive inner padding (px / em). |
| Button Border Radius | Corner rounding (px / %). |
| Button Typography | Full Elementor typography group. |
How It Works
The flip animation is driven entirely by CSS 3D transforms — no jQuery or heavy libraries. A small vanilla JavaScript listener toggles the class is-flipped on the card wrapper when clicked (or when Enter/Space is pressed for keyboard accessibility). The CSS perspective and rotateY / rotateX properties handle the rest.
All styles are injected as inline CSS via wp_add_inline_style, so no separate stylesheet file is needed and there are no extra HTTP requests.
Accessibility
- The card wrapper is rendered with
role="button"andtabindex="0"so it is reachable and activatable via keyboard. - Pressing Enter or Space triggers the flip, matching standard button behaviour.
- The optional flip icon carries
aria-hidden="true"so screen readers ignore it. - The back-face button uses a standard
<a>tag and stops click propagation so it can be activated independently without re-flipping the card.
Customisation Notes
- Changing the flip speed — find
.efc-flip-card-innerinefc_get_inline_css()and adjust thetransitionduration (default0.65s). - Starting on the back face — add the class
is-flippedto the wrapper via a custom HTML attribute or a small JS snippet after page load. - Multiple cards on one page — all instances are independent; each manages its own flipped state.
File Structure
elementor-flip-card/
└── elementor-flip-card.php ← Everything in one file
All PHP, CSS, and JavaScript lives in the single plugin file. There are no build steps, no node_modules, and no external dependencies beyond Elementor itself.
Changelog
1.0.0
- Initial release.
- Front and back face content controls: header, body (WYSIWYG), icon, HTML tag selector.
- Back face optional CTA button with URL, external link, and nofollow support.
- Full independent style sections for both faces: solid / gradient / image backgrounds, typography groups, padding, alignment, border radius, box shadow.
- Horizontal and vertical flip directions.
- Keyboard-accessible flip interaction.
- Inline CSS and JS — zero extra HTTP requests.
License
GPL-2.0+ See https://www.gnu.org/licenses/gpl-2.0.html for details.