Card flip: screenshot backgrounds + front/back flip card - #7
Open
ekoslow1-creator wants to merge 20 commits into
Open
Card flip: screenshot backgrounds + front/back flip card#7ekoslow1-creator wants to merge 20 commits into
ekoslow1-creator wants to merge 20 commits into
Conversation
…r bucketing Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…pty experience trend - getToolUsageCounts now filters sefaria_tools_used to string entries before normalizing, so a non-string entry (null, number, etc.) in this free-text user-submitted field is skipped instead of throwing and blanking out all four Charts & Analytics charts via the outer catch handler. - Move the experienceTrend.length === 0 empty-state message inline (matching the pie chart's own conditional-render guard) instead of an early return, so the two bar charts and the pie chart still render when there's no experience-level data. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Shares VIBE_CODED_SERIES between submissionsTrend.js and ChartsAndAnalytics.jsx (mirroring the EXPERIENCE_LEVELS precedent) instead of hardcoding the strings twice, and adds a one-sentence caption noting vibe_coded is a newly-tracked field so the chart isn't misread as a real overnight trend reversal. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extracts known technology names from the free-text tech_used_raw field via case-insensitive substring matching, with "Claude Code" checked and excluded first so it doesn't double-count toward the generic Claude/Anthropic API bucket. Shows the top 8 by project count as a horizontal bar chart, matching the existing keyword-frequency chart's style.
Reuses the fixed-order categorical hue palette already used in the charts (blue/orange/aqua/violet/magenta, gray for Uncategorized). Background and border are computed via color-mix() at low strength so each pill stays pale; text is mixed toward --text-h for a muted look instead of a fully saturated hue.
…chart
Recharts' category axis auto-hides tick labels it calculates would
overlap; interval={0} disables that, and the wider axis column gives
longer labels like "Claude/Anthropic API" room to fit.
…, screenshot URL validation) - screenshots.test.js: update the positive-case test to expect the real manifest path now that screenshotManifest.json is populated, and add a case covering the numeric id form used by ProjectCard.jsx - index.css: give has-screenshot cards their own hover background on the scrim pseudo-element so hovering isn't washed out by the 88%-opacity overlay - generate-screenshots.mjs: validate project_link before navigating to it, rejecting non-http(s) schemes and localhost/private/link-local hosts to close an SSRF/file-read path from unauthenticated submissions
… link, tags+desc on back)
The flip-card's hidden face was still hit-testable in the region behind the visible face's centered content (backface-visibility only affects painting, not pointer events), so clicking the center of a flipped-back card could trigger the hidden front title's link instead of unflipping. Scope pointer-events to whichever face is currently visible. Also add a hover color (var(--accent)) on the project title link, per request, as a visual affordance that it's clickable.
…ip-away on text selection, remove stale CSS - Add visibility: hidden alongside pointer-events: none on the flipped front face so the title link is removed from the tab order and accessibility tree while visually hidden. - Guard the card's click-to-flip handler against active text selections so releasing a text-selection drag inside the back-face description no longer flips the card away. - Remove stale position: relative on .project-card (no longer needed now that faces position against .project-card-inner). - Update stale comment on .project-card-desc to reflect the back-face layout (no image/title/link on that face anymore).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
📊 Code Quality Score: 60/100
Was this score accurate? 👍 Yes · 👎 No Scored by GitVelocity · How are scores calculated? |
Collaborator
Author
|
Comments:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
npm run screenshotsto pre-generate project website screenshots into a manifestTest plan
npm run devand confirm cards flip on click/hover as expectednpm testReplaces #5, which GitHub auto-closed and permanently locked after a history rewrite (removing a sensitive CSV) force-pushed the branch. Same content as #5, minus the CSV.