Skip to content

Update NPM dependencies#452

Merged
externl merged 5 commits intoicerpc:mainfrom
externl:npm-updates
Dec 8, 2025
Merged

Update NPM dependencies#452
externl merged 5 commits intoicerpc:mainfrom
externl:npm-updates

Conversation

@externl
Copy link
Member

@externl externl commented Dec 4, 2025

Updates all of the NPM dependencies including:

  • Nextj.js 16
  • Tailwind 4
  • Eslint 5

It is preferable for reviewers to check out the branch locally and run the site to compare it to the live version rather than just reviewing the code. Many fixes are done by the tooling.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates major NPM dependencies to their latest versions, including Next.js 16, Tailwind CSS 4, and ESLint 9. The migration involves significant configuration changes, removal of the PDF generation tool, and extensive Tailwind class name updates throughout the codebase.

Key changes:

  • Migrated to Tailwind CSS v4 with new CSS-first configuration approach
  • Updated Next.js to v16 with async params pattern
  • Converted ESLint to flat config format (eslint.config.mjs)
  • Removed PDF generation tooling (tools/pdf/ directory)

Reviewed changes

Copilot reviewed 62 out of 67 changed files in this pull request and generated 21 comments.

Show a summary per file
File Description
package.json Updated all dependencies to latest versions
tailwind.config.js Removed - replaced with CSS-based config
postcss.config.js Simplified to use new Tailwind PostCSS plugin
app/globals.css Migrated to Tailwind v4 @theme and @import syntax
eslint.config.mjs New flat config format replacing .eslintrc.json
tsconfig.json Updated JSX transform and include paths
next.config.ts Converted from JS to TypeScript
app/[...slug]/page.tsx Updated to use async params (Next.js 16)
app/layout.tsx Fixed type annotations
context/state.tsx Code style improvements (fixed conditionals)
components/* Extensive Tailwind class name updates for v4
tools/pdf/* Removed PDF generation tool entirely
Files not reviewed (1)
  • tools/pdf/package-lock.json: Language not supported

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

<Hero />
<div className="flex shrink flex-row justify-center overflow-y-clip lg:justify-start">
<article className="mx-6 mb-20 mt-10 size-full max-w-[52rem] md:mx-10 lg:mx-16">
<article className="mx-6 mt-10 mb-20 size-full max-w-208 md:mx-10 lg:mx-16">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name max-w-208 is invalid. Should be max-w-[52rem] (original value).

Suggested change
<article className="mx-6 mt-10 mb-20 size-full max-w-208 md:mx-10 lg:mx-16">
<article className="mx-6 mt-10 mb-20 size-full max-w-[52rem] md:mx-10 lg:mx-16">

Copilot uses AI. Check for mistakes.
return (
<div className="mt-[6.4rem] flex grow flex-row justify-center">
<div className="flex max-w-[100rem] grow flex-row justify-center">
<div className="flex max-w-400 grow flex-row justify-center">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name max-w-400 is invalid. Should be max-w-[100rem] (original value).

Copilot uses AI. Check for mistakes.
>
<div className="w-full max-w-[100rem] ">
<div className="flex h-[3.75rem] w-full grow items-center justify-between text-sm">
<div className="w-full max-w-400">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name max-w-400 is invalid. Tailwind CSS doesn't have a max-w-400 utility. This should likely be max-w-[100rem] (which was the original value) or another valid max-width utility.

Copilot uses AI. Check for mistakes.
<div className="dark:bg-dark sticky top-0 space-y-5 bg-white pr-6">
<SideNavSelector isSlicePage={isSlicePage} path={path} />
<div className="pointer-events-none absolute inset-x-0 -bottom-9 h-9 w-full bg-gradient-to-t from-transparent to-white dark:to-dark" />
<div className="dark:to-dark pointer-events-none absolute inset-x-0 -bottom-9 h-9 w-full bg-linear-to-t from-transparent to-white" />
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name conversion from bg-gradient-to-t to bg-linear-to-t is incorrect. In Tailwind CSS v4, gradient utilities still use the bg-gradient-to-{direction} format. This should be bg-gradient-to-t.

Copilot uses AI. Check for mistakes.
export const Hero = () => {
return (
<div className="relative flex w-full max-w-[52rem] flex-col items-center space-y-2 border-b border-b-lightBorder py-10 dark:border-b-darkBorder dark:bg-transparent sm:mx-6 md:mx-10 lg:mx-16">
<div className="border-b-light-border dark:border-b-dark-border relative flex w-full max-w-208 flex-col items-center space-y-2 border-b py-10 sm:mx-6 md:mx-10 lg:mx-16 dark:bg-transparent">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name max-w-208 is invalid. Tailwind CSS doesn't have a max-w-208 utility. This should be max-w-[52rem] (the original value).

Suggested change
<div className="border-b-light-border dark:border-b-dark-border relative flex w-full max-w-208 flex-col items-center space-y-2 border-b py-10 sm:mx-6 md:mx-10 lg:mx-16 dark:bg-transparent">
<div className="border-b-light-border dark:border-b-dark-border relative flex w-full max-w-[52rem] flex-col items-center space-y-2 border-b py-10 sm:mx-6 md:mx-10 lg:mx-16 dark:bg-transparent">

Copilot uses AI. Check for mistakes.
<div className="absolute left-1/2 top-1/2 -z-10 hidden size-[19rem] -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 dark:border-darkBorder/40 lg:block" />
<div className="absolute left-1/2 top-1/2 -z-10 hidden size-[35rem] -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 dark:border-darkBorder/40 lg:block" />
<div className="dark:border-dark-border/40 absolute top-1/2 left-1/2 -z-10 hidden size-76 -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 lg:block" />
<div className="dark:border-dark-border/40 absolute top-1/2 left-1/2 -z-10 hidden size-140 -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 lg:block" />
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name size-140 is invalid. Tailwind CSS doesn't have a size-140 utility. This should be size-[35rem] (the original value).

Suggested change
<div className="dark:border-dark-border/40 absolute top-1/2 left-1/2 -z-10 hidden size-140 -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 lg:block" />
<div className="dark:border-dark-border/40 absolute top-1/2 left-1/2 -z-10 hidden size-[35rem] -translate-x-1/2 -translate-y-1/2 rounded-full border border-neutral-300/40 opacity-40 lg:block" />

Copilot uses AI. Check for mistakes.
readingTime={readingTime}
/>
)}
<article className="mx-6 mt-10 size-full max-w-208 md:mx-10 lg:mx-16">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name max-w-208 is invalid. Should be max-w-[52rem] (original value).

Suggested change
<article className="mx-6 mt-10 size-full max-w-208 md:mx-10 lg:mx-16">
<article className="mx-6 mt-10 size-full max-w-[52rem] md:mx-10 lg:mx-16">

Copilot uses AI. Check for mistakes.
{readingTime && <p className="pl-1 text-xs md:pl-0">{readingTime}</p>}
</div>
<h1 className="bg-gradient-to-b from-slate-800 to-black bg-clip-text pr-10 text-4xl font-bold leading-[2.65rem] text-transparent dark:text-white">
<h1 className="bg-linear-to-b from-slate-800 to-black bg-clip-text pr-10 text-4xl leading-[2.65rem] font-bold text-transparent dark:text-white">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name conversion from bg-gradient-to-b to bg-linear-to-b is incorrect. In Tailwind CSS v4, gradient utilities still use the bg-gradient-to-{direction} format, not bg-linear-to-{direction}. This should be bg-gradient-to-b.

Copilot uses AI. Check for mistakes.
IceRPC
</h1>
<h2 className="max-w-lg bg-gradient-to-b from-slate-800 to-black bg-clip-text text-center text-[40px] font-[750] leading-none tracking-[-0.04em] text-transparent md:max-w-xl md:text-5xl lg:max-w-5xl lg:text-7xl">
<h2 className="max-w-lg bg-linear-to-b from-slate-800 to-black bg-clip-text text-center text-[40px] leading-none font-[750] tracking-[-0.04em] text-transparent md:max-w-xl md:text-5xl lg:max-w-5xl lg:text-7xl dark:text-white">
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name conversion from bg-gradient-to-b to bg-linear-to-b is incorrect. Should be bg-gradient-to-b.

Suggested change
<h2 className="max-w-lg bg-linear-to-b from-slate-800 to-black bg-clip-text text-center text-[40px] leading-none font-[750] tracking-[-0.04em] text-transparent md:max-w-xl md:text-5xl lg:max-w-5xl lg:text-7xl dark:text-white">
<h2 className="max-w-lg bg-gradient-to-b from-slate-800 to-black bg-clip-text text-center text-[40px] leading-none font-[750] tracking-[-0.04em] text-transparent md:max-w-xl md:text-5xl lg:max-w-5xl lg:text-7xl dark:text-white">

Copilot uses AI. Check for mistakes.
</button>
<button
className="flex-1 rounded-lg bg-gradient-to-r from-cyan-500 to-blue-500 px-3 py-[10px] text-center text-white"
className="flex-1 rounded-lg bg-linear-to-r from-cyan-500 to-blue-500 px-3 py-[10px] text-center text-white"
Copy link

Copilot AI Dec 4, 2025

Choose a reason for hiding this comment

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

The class name conversion from bg-gradient-to-r to bg-linear-to-r is incorrect. Should be bg-gradient-to-r.

Suggested change
className="flex-1 rounded-lg bg-linear-to-r from-cyan-500 to-blue-500 px-3 py-[10px] text-center text-white"
className="flex-1 rounded-lg bg-gradient-to-r from-cyan-500 to-blue-500 px-3 py-[10px] text-center text-white"

Copilot uses AI. Check for mistakes.
Copy link
Member

@InsertCreativityHere InsertCreativityHere left a comment

Choose a reason for hiding this comment

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

Alot of stuff shifted around (padding, offsets, etc.)
But the site seems functional and everything looks close enough to how it was.

Didn't really look at the code too much, just the rendered site.

@externl externl merged commit dc2caaf into icerpc:main Dec 8, 2025
10 checks passed
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.

4 participants