Skip to content

chore(deps): lucide-react 1.x (major) - #80

Merged
lacymorrow merged 2 commits into
mainfrom
chore/deps-m-lucide
Sep 16, 2026
Merged

lacymorrow merged 2 commits into
mainfrom
chore/deps-m-lucide

Conversation

@lacymorrow

Copy link
Copy Markdown
Contributor

One sentence

Major bump of lucide-react from 0.564 to 1.46 with the two files that used its removed brand icons switched to @tabler/icons-react (left open for review because it is a major with source changes).

Bumps

Package From To
lucide-react 0.564.0 1.46.0

Breaking changes (1.0)

Source: https://github.com/lucide-icons/lucide/releases/tag/1.0.1 and the React migration guide in docs/guide/react/migration.md.

  • All brand icons were removed (Chromium, Codepen, Codesandbox, Dribbble, Facebook, Figma, Framer, Github, Gitlab, Instagram, LinkedIn, Pocket, RailSymbol, Slack, Twitter, Youtube). This repo used seven of them:
    • src/components/ui/share.tsx: Twitter, Facebook, Linkedin
    • src/components/ui/social-links.tsx: Github, Twitter, Linkedin, Instagram, Facebook, Youtube, Dribbble
      Both now import the matching IconBrand* components from @tabler/icons-react, which is already a dependency (Twitter and X both map to IconBrandX). The platformIcon record is typed ComponentType<{ className?: string }> so lucide and tabler icons coexist. Neither file is rendered by a route today; both are tsc-excluded (src/components/ui/**), so I type-checked them in isolation and the only error left is a pre-existing one (siteConfig.social does not exist on SiteConfig).
  • Icons now render aria-hidden="true" by default; absoluteStrokeWidth is deprecated for nonScalingStroke; IconNode is deprecated for LucideIconNode; UMD build dropped. None of these are used here. LucideIcon/LucideProps types remain.
  • Checked every named import from lucide-react across src/ (35 names): all exist in 1.46.0.

Supersedes dependabot #50 (which targeted 1.33.0 without the source fix).

Verification

  • pnpm typecheck clean
  • pnpm test: 4 files, 16 tests green
  • pnpm exec vitest run --config vitest.config.node.ts: 3 files, 21 tests green
  • pnpm build passes
  • next start smoke: / 200, /changelog 200, /changelog/nope-xyz 404, /faq 200, /nope-404 404

Installed with --ignore-scripts (isolated-vm postinstall fails under Node 26 locally; matches how Vercel builds).

https://claude.ai/code/session_01KLWmWU1KLE2diUH14ryqv1

lucide-react 1.0 removed all brand icons. This repo used seven of them
(Facebook, Linkedin, Twitter, Youtube, Github, Instagram, Dribbble) in
src/components/ui/share.tsx and src/components/ui/social-links.tsx. Those now
come from @tabler/icons-react (already a dependency, IconBrand* set); Twitter
maps to IconBrandX. The platformIcon record is typed as
ComponentType<{ className?: string }> so both icon libraries fit.

Other 1.0 changes (aria-hidden default, absoluteStrokeWidth deprecated for
nonScalingStroke, IconNode renamed LucideIconNode, UMD build dropped) do not
affect this code. All 35 other named imports across src/ still exist in 1.46.0.

Claude-Session: https://claude.ai/code/session_01KLWmWU1KLE2diUH14ryqv1
@vercel

vercel Bot commented Sep 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
bones Ready Ready Preview Sep 16, 2026 6:26pm UTC

Request Review

Resolves the package.json conflict by keeping main's jotai 3.0.0 and
motion ^13.3.0 alongside this branch's lucide-react 1.46.0.

The lockfile was regenerated from main's rather than hand-merged: the
branch lockfile predated several major bumps on main (framer-motion 13,
jotai 3, motion 13, vitest 5, uuid 14). Regenerated delta against main
is the four lucide-react lines plus a transitive picomatch 4.0.5 to
4.0.7 re-resolution.
@lacymorrow
lacymorrow merged commit 1148af9 into main Sep 16, 2026
6 checks passed
@lacymorrow
lacymorrow deleted the chore/deps-m-lucide branch September 16, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant