How to Create Custom Card Suit Icons in FigmaCreating custom card suit icons (hearts, diamonds, clubs, and spades) in Figma is a great way to add personality and polish to card games, dashboards, and UI projects. This guide walks through a complete, practical workflow: planning your style, setting up the file, building each suit as a reusable component, adding variants and color styles, exporting for web and apps, and tips for consistency and accessibility.
Why design custom card suit icons?
- Brand fit: Standard glyphs can feel generic. Custom icons match your visual identity.
- Scalability: Designing vectors in Figma ensures crisp rendering at any size.
- Flexibility: You can adapt shape, stroke, color, and effects for different themes or states (hover, active, disabled).
Preparation: define style & constraints
Before drawing, decide on these constraints:
- Size: typical icons 16–64 px. Design at a multiple (e.g., 64×64) so you can scale down.
- Stroke vs. filled: do you want solid shapes, outlined icons, or both?
- Corner style: sharp, rounded, or a mix.
- Aspect ratio & padding: keep icons square with consistent internal padding.
- Grid & pixel alignment: use a 4px or 8px grid for consistency if you’ll target small UI sizes.
Create a small reference board in Figma and collect examples for inspiration.
File setup in Figma
- Create a new Figma file and name it (e.g., “Card Suit Icons — Base”).
- Set up a frame for each working icon at your design size (e.g., 64×64 px). Use multiple frames for stroke and filled versions.
- Enable Layout Grid on frames (Grid: 8px, Columns: 1, Gutter: 0) or set a square grid (View → Layout Grids → Grid) to help align points.
- Create color styles for primary suit colors (e.g., red and black) and neutral strokes.
Designing the heart (filled)
- Draw two circles: place them side-by-side and overlapping slightly near the top of the frame.
- Draw a downward-pointing triangle beneath the circles so the triangle’s top edge overlaps the lower part of the circles.
- Select the two circles and triangle, then use the boolean operation “Union” (or “Subtract” depending on alignment) to create a single heart shape. Use “Union” after aligning so the shape merges cleanly.
- Use the Pen tool or Vector edit mode (press Enter on the shape) to smooth corners: convert sharp join points to curves by dragging handles.
- Align and center within the 64×64 frame; add 8–12 px of padding around the silhouette. Set the fill to your red color style.
- For a stroke variant: duplicate the shape, remove fill, set stroke (e.g., 2 px), and enable “Corner: Round” for a softer look.
Tip: For pixel-perfect small sizes, test a 16px preview and tweak curves to avoid blurry 1-pixel antialiasing artifacts.
Designing the diamond
- Start from a square: draw a square and rotate it 45° (hold Shift while rotating to snap).
- Convert to vector if you want to adjust anchor points; pull the left and right midpoints slightly inward to adjust proportions, or elongate vertically for a more elegant diamond.
- For filled style, keep a single filled shape; for outlined, remove fill and apply stroke.
- Ensure symmetry using vertical axis constraints (use the mirror technique: design half the diamond on a vertical guide, then duplicate and flip to ensure perfect symmetry).
Designing the club
- Compose the club from three circles (top-left, top-right, bottom-center) overlapping a small stem rectangle or path. The three circles form the trefoil top; a small curved stem completes it.
- Use Union boolean to combine circles into a single silhouette. Add the stem and union again.
- Adjust anchor points to create slight indentations between lobes if you want a classic club look—use Boolean Subtract with small inner shapes to carve a notch.
- Make sure the club’s overall width and height match the other suits so they feel balanced in the set.
Designing the spade
- Start from an inverted heart shape (draw a heart then rotate 180°) or construct from a teardrop shape with a pointed top.
- Add a short stem at the bottom: a small rectangle or tapered path that merges with the main body. Use Boolean Union to combine.
- Adjust the spade’s tip so it aligns visually with the diamond’s tip and maintains consistent vertical rhythm across the set.
Consistency: align and refine
- Visual balance: Even when geometric shapes differ, ensure optical balance so icons read as a set. Check widths, heights, and negative space.
- Baseline and visual center: Although mathematically centered, some shapes (like the heart) may appear off-center visually; nudge slightly until they feel aligned.
- Stroke weight: Keep stroke widths identical across outlined variants. If using filled + stroke, consider inner strokes or compound paths to preserve consistent look at small sizes.
Creating components & variants
- Select each finished suit and create a component (Right-click → Create component).
- Name components clearly: e.g., “Heart / Filled / Red” and “Heart / Outline / Black”.
- Use Variants to combine related states: create a single component with variant properties like Type: Heart/Diamond/Club/Spade and Style: Filled/Outline and Color: Red/Black.
- Set boolean properties (dropdowns) so designers can switch suits and styles without swapping assets.
Color, styles, and tokens
- Create Color Styles in Figma: “Suit / Red,” “Suit / Black,” “Suit / Accent.”
- If your project uses a design system, link these to tokens (if using a token plugin) so changing a color updates all icons.
- Consider adding hover/active states: lighter/darker fills or subtle drop shadows as separate variants.
Exporting
- Select component instances or master components to export.
- Export sizes: 16, 24, 32, 48 px for UI; also export 2x/3x raster PNGs for apps if needed.
- Export formats: SVG (preferred for web and scalability), PNG for legacy projects, and PDF for print.
- When exporting SVGs, turn off hidden layers and check for unnecessary groups or attributes. Use “Outline strokes” if target platforms don’t support stroke scaling consistently.
Accessibility & localization
- Color contrast: Red vs. black conveys suit but not for color-blind users. Provide text labels or alternate shapes (e.g., slight pattern) in contexts where meaning is critical.
- Size: Ensure icons are large enough to be tappable (minimum 44 px recommended for touch targets) even if the icon symbol itself is smaller.
- Use semantic markup in code: inline SVG with role=“img” and aria-label or a hidden text label to describe the suit.
Export-ready checklist
- All four suits are components with Filled and Outline variants.
- Color and effect styles created and applied.
- Pixel-tested at target sizes (16–64 px).
- SVG exports cleaned and optimized (remove metadata, simplify paths).
- Accessibility labels prepared for developers.
Example quick workflow (short)
- Set frame 64×64 with 8px grid.
- Design heart by combining circles + triangle → union → refine.
- Build diamond from rotated square → refine.
- Create club from three circles + stem → union → carve notches.
- Make spade from inverted heart + stem → union.
- Create components → add variants → define color styles.
- Export SVGs at required sizes and test in-app.
Tips & variations
- Minimal outline set: Use 2 px rounded strokes; remove fills.
- Retro set: Add inner cutlines or slight texture overlays.
- Neon/glossy: Use gradients and subtle inner shadows for decorative UIs.
- Animated states: Convert to Lottie or use simple SVG transforms for hover effects (scale, color shift).
If you want, I can:
- Provide step-by-step Figma vector coordinates for a pixel-perfect 64×64 heart and spade.
- Export ready-to-use SVG code for all four suits in both filled and outline styles.