From a130cd007b63f3a5fffe98678f046f1ac1a852c1 Mon Sep 17 00:00:00 2001 From: Kirkland Gee Date: Wed, 4 Mar 2026 15:36:25 -0500 Subject: [PATCH 1/3] Add TooltipHoverCard code component Generated component following the Webflow code components scaffold pattern. Includes full and simple prop surface variations. --- tooltip-hover-card/README.md | 93 +++++ tooltip-hover-card/index.html | 17 + tooltip-hover-card/package.json | 25 ++ tooltip-hover-card/screenshot-brand.png | Bin 0 -> 47790 bytes tooltip-hover-card/screenshot-dark.png | Bin 0 -> 41288 bytes tooltip-hover-card/screenshot-light.png | Bin 0 -> 40972 bytes .../TooltipHoverCard/TooltipHoverCard.css | 239 ++++++++++++ .../TooltipHoverCard/TooltipHoverCard.tsx | 269 +++++++++++++ .../TooltipHoverCard.webflow.tsx | 105 +++++ .../TooltipHoverCardSimple.webflow.tsx | 54 +++ tooltip-hover-card/src/main.tsx | 362 ++++++++++++++++++ tooltip-hover-card/src/vite-env.d.ts | 1 + tooltip-hover-card/tsconfig.app.json | 27 ++ tooltip-hover-card/tsconfig.json | 11 + tooltip-hover-card/tsconfig.node.json | 23 ++ tooltip-hover-card/vite.config.ts | 6 + tooltip-hover-card/webflow.json | 10 + 17 files changed, 1242 insertions(+) create mode 100644 tooltip-hover-card/README.md create mode 100644 tooltip-hover-card/index.html create mode 100644 tooltip-hover-card/package.json create mode 100644 tooltip-hover-card/screenshot-brand.png create mode 100644 tooltip-hover-card/screenshot-dark.png create mode 100644 tooltip-hover-card/screenshot-light.png create mode 100644 tooltip-hover-card/src/components/TooltipHoverCard/TooltipHoverCard.css create mode 100644 tooltip-hover-card/src/components/TooltipHoverCard/TooltipHoverCard.tsx create mode 100644 tooltip-hover-card/src/components/TooltipHoverCard/TooltipHoverCard.webflow.tsx create mode 100644 tooltip-hover-card/src/components/TooltipHoverCard/TooltipHoverCardSimple.webflow.tsx create mode 100644 tooltip-hover-card/src/main.tsx create mode 100644 tooltip-hover-card/src/vite-env.d.ts create mode 100644 tooltip-hover-card/tsconfig.app.json create mode 100644 tooltip-hover-card/tsconfig.json create mode 100644 tooltip-hover-card/tsconfig.node.json create mode 100644 tooltip-hover-card/vite.config.ts create mode 100644 tooltip-hover-card/webflow.json diff --git a/tooltip-hover-card/README.md b/tooltip-hover-card/README.md new file mode 100644 index 0000000..3ad3045 --- /dev/null +++ b/tooltip-hover-card/README.md @@ -0,0 +1,93 @@ +# TooltipHoverCard + +A versatile tooltip and hover card component that displays contextual information when hovering over or focusing on a trigger element. + +## Getting Started + +Install dependencies: +```bash +npm install +``` + +Share the component to your Webflow workspace: +```bash +npx webflow library share +``` + +For local development: +```bash +npm run dev +``` + +## Designer Properties + +| Property | Type | Default | Description | +|----------|------|---------|-------------| +| ID | Id | — | HTML ID attribute for targeting and accessibility | +| Mode | Variant | tooltip | Display mode: simple text tooltip or rich hover card | +| Theme | Variant | dark | Visual theme for the tooltip/card background and text | +| Placement | Variant | top | Preferred placement relative to trigger element | +| Trigger Text | TextNode | Hover me | Text content of the trigger element | +| Tooltip Text | Text | This is helpful information | Plain text content for tooltip mode | +| Card Title | Text | More Information | Title text for hover card mode | +| Card Description | RichText | This hover card provides detailed contextual information with formatting support for better readability. | Rich text description content for hover card mode | +| Card Image | Image | — | Optional image displayed in hover card mode | +| Show Card Image | Visibility | — | Show or hide the image in hover card mode | +| Hover Delay | Number | 200 | Delay in milliseconds before tooltip appears on hover | +| Show Arrow | Boolean | true | Display arrow pointer to trigger element | +| Auto Flip | Boolean | true | Automatically flip placement when near viewport edges | +| Max Width | Number | 300 | Maximum width of tooltip/card in pixels | +| Aria Label | Text | Additional information | Accessible label for screen readers | + +## Styling + +This component automatically adapts to your Webflow site's design system through site variables and inherited properties. + +### Site Variables + +To match your site's design system, define these CSS variables in your Webflow project settings. The component will use the fallback values shown below until you configure them. + +| Site Variable | What It Controls | Fallback | +|---------------|------------------|----------| +| --background-primary | Light theme background color | #ffffff | +| --background-secondary | Hover state background color | #f5f5f5 | +| --text-primary | Light theme text color | #1a1a1a | +| --text-secondary | Secondary text elements and borders on hover | #737373 | +| --border-color | Border and divider colors | #e5e5e5 | +| --accent-color | Dark theme background and focus outline color | #1a1a1a | +| --accent-text-color | Dark theme text color | #ffffff | +| --border-radius | Corner rounding for all elements | 8px | + +### Inherited Properties + +The component inherits these CSS properties from its parent element: +- `font-family` — Typography style +- `color` — Text color +- `line-height` — Text spacing + +## Extending in Code + +### Custom Tooltip Positioning Logic + +You can extend the component's positioning behavior by accessing the tooltip element and implementing custom placement calculations: + +```javascript +const tooltip = document.querySelector('[data-tooltip-id="my-tooltip"]'); +// Add custom viewport boundary detection +// Implement custom offset calculations based on trigger position +``` + +### Dynamic Content Updates + +Update tooltip or hover card content dynamically based on user interactions or data changes: + +```javascript +const tooltipComponent = document.querySelector('#my-tooltip'); +// Update tooltip text based on context +// Swap between tooltip and hover card modes programmatically +// Adjust hover delay based on user preferences +``` + +## Dependencies + +No external dependencies. \ No newline at end of file diff --git a/tooltip-hover-card/index.html b/tooltip-hover-card/index.html new file mode 100644 index 0000000..87289b7 --- /dev/null +++ b/tooltip-hover-card/index.html @@ -0,0 +1,17 @@ + + + + + + TooltipHoverCard + + + +
+ + + diff --git a/tooltip-hover-card/package.json b/tooltip-hover-card/package.json new file mode 100644 index 0000000..d7b02ec --- /dev/null +++ b/tooltip-hover-card/package.json @@ -0,0 +1,25 @@ +{ + "name": "tooltip-hover-card", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.1.1", + "react-dom": "^19.1.1" + }, + "devDependencies": { + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.3", + "@webflow/data-types": "^1.0.1", + "@webflow/react": "^1.0.1", + "@webflow/webflow-cli": "^1.8.44", + "typescript": "~5.8.3", + "vite": "^7.1.7" + } +} \ No newline at end of file diff --git a/tooltip-hover-card/screenshot-brand.png b/tooltip-hover-card/screenshot-brand.png new file mode 100644 index 0000000000000000000000000000000000000000..96b3236d5060926c61cbfa176d66b735e589e831 GIT binary patch literal 47790 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

Q3O_CebzrfpgoF200-q+_njbW` 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 literal 0 HcmV?d00001 diff --git a/tooltip-hover-card/screenshot-light.png b/tooltip-hover-card/screenshot-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f3fe962266bd4cfa6824c4e87bf32fa6f351afb5 GIT binary patch literal 40972 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 + const contentRef = useRef(null); + const timeoutRef = useRef(null); + + const calculatePosition = () => { + if (!triggerRef.current || !contentRef.current) return; + + const triggerRect = triggerRef.current.getBoundingClientRect(); + const contentRect = contentRef.current.getBoundingClientRect(); + const viewportWidth = window.innerWidth; + const viewportHeight = window.innerHeight; + const gap = 8; + const arrowSize = 6; + + let finalPlacement = placement; + let top = 0; + let left = 0; + + const calculateForPlacement = (p: string) => { + let t = 0; + let l = 0; + + switch (p) { + case "top": + t = triggerRect.top - contentRect.height - gap - arrowSize; + l = triggerRect.left + triggerRect.width / 2 - contentRect.width / 2; + break; + case "bottom": + t = triggerRect.bottom + gap + arrowSize; + l = triggerRect.left + triggerRect.width / 2 - contentRect.width / 2; + break; + case "left": + t = triggerRect.top + triggerRect.height / 2 - contentRect.height / 2; + l = triggerRect.left - contentRect.width - gap - arrowSize; + break; + case "right": + t = triggerRect.top + triggerRect.height / 2 - contentRect.height / 2; + l = triggerRect.right + gap + arrowSize; + break; + } + + return { t, l }; + }; + + const pos = calculateForPlacement(placement); + top = pos.t; + left = pos.l; + + if (autoFlip) { + const wouldOverflowTop = top < 0; + const wouldOverflowBottom = top + contentRect.height > viewportHeight; + const wouldOverflowLeft = left < 0; + const wouldOverflowRight = left + contentRect.width > viewportWidth; + + if (placement === "top" && wouldOverflowTop && !wouldOverflowBottom) { + finalPlacement = "bottom"; + const newPos = calculateForPlacement("bottom"); + top = newPos.t; + left = newPos.l; + } else if (placement === "bottom" && wouldOverflowBottom && !wouldOverflowTop) { + finalPlacement = "top"; + const newPos = calculateForPlacement("top"); + top = newPos.t; + left = newPos.l; + } else if (placement === "left" && wouldOverflowLeft && !wouldOverflowRight) { + finalPlacement = "right"; + const newPos = calculateForPlacement("right"); + top = newPos.t; + left = newPos.l; + } else if (placement === "right" && wouldOverflowRight && !wouldOverflowLeft) { + finalPlacement = "left"; + const newPos = calculateForPlacement("left"); + top = newPos.t; + left = newPos.l; + } + } + + left = Math.max(gap, Math.min(left, viewportWidth - contentRect.width - gap)); + top = Math.max(gap, Math.min(top, viewportHeight - contentRect.height - gap)); + + setActualPlacement(finalPlacement); + setPosition({ top, left }); + + let arrowTop = 0; + let arrowLeft = 0; + + switch (finalPlacement) { + case "top": + arrowTop = contentRect.height; + arrowLeft = triggerRect.left + triggerRect.width / 2 - left; + break; + case "bottom": + arrowTop = -arrowSize * 2; + arrowLeft = triggerRect.left + triggerRect.width / 2 - left; + break; + case "left": + arrowTop = triggerRect.top + triggerRect.height / 2 - top; + arrowLeft = contentRect.width; + break; + case "right": + arrowTop = triggerRect.top + triggerRect.height / 2 - top; + arrowLeft = -arrowSize * 2; + break; + } + + setArrowPosition({ top: arrowTop, left: arrowLeft }); + }; + + const handleMouseEnter = () => { + if (timeoutRef.current) { + window.clearTimeout(timeoutRef.current); + } + timeoutRef.current = window.setTimeout(() => { + setIsVisible(true); + }, hoverDelay); + }; + + const handleMouseLeave = () => { + if (timeoutRef.current) { + window.clearTimeout(timeoutRef.current); + } + setIsVisible(false); + }; + + const handleFocus = () => { + setIsVisible(true); + }; + + const handleBlur = () => { + setIsVisible(false); + }; + + useEffect(() => { + if (isVisible) { + calculatePosition(); + window.addEventListener("resize", calculatePosition); + window.addEventListener("scroll", calculatePosition); + return () => { + window.removeEventListener("resize", calculatePosition); + window.removeEventListener("scroll", calculatePosition); + }; + } + }, [isVisible, placement, autoFlip]); + + useEffect(() => { + return () => { + if (timeoutRef.current) { + window.clearTimeout(timeoutRef.current); + } + }; + }, []); + + return ( +

+ + + {isVisible && ( +