Skip to content

feat(site): Adds survey overlay to website#4380

Merged
ericfennis merged 11 commits into
mainfrom
add-tally-survey
May 15, 2026
Merged

feat(site): Adds survey overlay to website#4380
ericfennis merged 11 commits into
mainfrom
add-tally-survey

Conversation

@ericfennis

Copy link
Copy Markdown
Member

Add survey popover for user research

This PR adds a survey popover to the website to help gather feedback and learn more about Lucide users.

The survey is intended to support ongoing user and audience research by helping better understand:

  • Who uses Lucide
  • How people use the icon library
  • What users value most
  • Interest in potential future offerings
  • General expectations and feedback from the community

The collected feedback will help guide future product and community decisions.

Notes

  • The popup is intentionally lightweight and easy to dismiss
  • Opens after 10 seconds
  • Focus is on gathering insights from users
  • Will be removed after some time when data is collected

@github-actions github-actions Bot added the 🌍 site Has to do something with the Lucide website label May 15, 2026
@ericfennis ericfennis requested a review from Copilot May 15, 2026 15:44
@ericfennis ericfennis changed the title feat(site): Add tally overlay feat(site): Adds survey overlay to website May 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Tally-powered survey popup to the Lucide docs site. After a 10-second delay, an overlay invites users to take a feedback survey; clicking the CTA lazy-loads Tally's embed script and opens a modal. Dismissal/submission state is tracked in session storage. The unused LayoutTop import is also removed from the theme entry.

Changes:

  • New SurveyAskOverlay.vue component teleported into <body> from the footer override, with delayed appearance and Tally lazy-loading.
  • Type declarations for window.Tally.openPopup added to types.d.ts.
  • Cleanup: dead LayoutTop import removed from theme/index.ts.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
docs/.vitepress/types.d.ts Adds Tally global type with openPopup signature/options.
docs/.vitepress/theme/index.ts Removes unused LayoutTop import (still referenced in a commented-out slot).
docs/.vitepress/theme/components/SurveyAskOverlay.vue New survey popup component that loads Tally on demand.
docs/.vitepress/theme/components/overrides/VPFooter.vue Mounts SurveyAskOverlay inside the footer override.
Comments suppressed due to low confidence (4)

docs/.vitepress/theme/components/SurveyAskOverlay.vue:107

  • Stray double semicolon in z-index: 99;;.
  z-index: 99;;

docs/.vitepress/theme/components/SurveyAskOverlay.vue:152

  • There are two .ask-overlay.show-popup rule blocks (lines 136-140 and 148-152). They should be consolidated into a single block; splitting them makes maintenance harder and risks one block being modified without the other.
.ask-overlay.show-popup {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.ask-overlay .buttons {
  margin-top: 16px;
  display: flex;
  gap: 16px;
}

.ask-overlay.show-popup {
  transition:
    opacity 0.5s,
    transform 0.25s ease;
}

docs/.vitepress/theme/components/SurveyAskOverlay.vue:43

  • The script src uses a protocol-relative URL (//tally.so/...). Modern guidance is to use an explicit https: scheme to avoid issues in non-HTTP contexts (e.g. file://) and to make the intent explicit.
      s.src = `//tally.so/widgets/embed.js`

docs/.vitepress/theme/components/SurveyAskOverlay.vue:53

  • The try/catch around initTally won't catch failures of the asynchronously loaded script (e.g. network blocked, ad-blocker rejecting the request, or startTally failing inside the onload callback) — the synchronous createElement/appendChild calls don't throw in those cases. To actually fall back to opening https://tally.so/r/EkvOpB, attach an onerror handler to the script element (and ideally guard startTally against window.Tally being undefined).
function initTally() {
  try {
    if (!isInitialized) {
      isInitialized = true
      const s = document.createElement('script')
      s.src = `//tally.so/widgets/embed.js`
      s.async = true
      s.onload = startTally
      document.body.appendChild(s)
    } else {
      startTally();
    }
  } catch (error) {
    window.open('https://tally.so/r/EkvOpB', '_blank');
  }
}

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/.vitepress/theme/components/SurveyAskOverlay.vue Outdated
@github-actions github-actions Bot added the 📖 documentation Improvements or additions to documentation label May 15, 2026
@ericfennis ericfennis merged commit 5b40f2c into main May 15, 2026
3 checks passed
@ericfennis ericfennis deleted the add-tally-survey branch May 15, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📖 documentation Improvements or additions to documentation 🌍 site Has to do something with the Lucide website

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants