From 21e178f2ece7a15bcf09b61a0224cbbfe360e9c3 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Rajak Date: Sat, 18 Jul 2026 04:31:24 +0000 Subject: [PATCH 1/2] feat(home): add custom feature-section icons --- components/HomePage/FeaturesSection/index.jsx | 104 +++-------------- components/Icons/FeatureSectionIcons.jsx | 106 ++++++++++++++++++ 2 files changed, 120 insertions(+), 90 deletions(-) create mode 100644 components/Icons/FeatureSectionIcons.jsx diff --git a/components/HomePage/FeaturesSection/index.jsx b/components/HomePage/FeaturesSection/index.jsx index a8c811a8..cd14930f 100644 --- a/components/HomePage/FeaturesSection/index.jsx +++ b/components/HomePage/FeaturesSection/index.jsx @@ -1,125 +1,49 @@ import styles from './index.module.css'; +import { + ModuleFederation, + CodeSplitting, + TreeShaking, + HotModuleReplacement, + PersistentCaching, + Plugins, +} from '../../Icons/FeatureSectionIcons'; const Features = [ { title: 'Module Federation', description: 'Share code across separately-deployed applications at runtime. The micro-frontend pattern, done right.', - icon: ( - - - - ), + icon: , }, { title: 'Code splitting', description: "Split bundles by route, by demand, or by vendor. Load what's needed, when it's needed.", - icon: ( - - - - ), + icon: , }, { title: 'Tree shaking', description: 'Static analysis of ES modules eliminates dead code in production builds — automatically.', - icon: ( - - - - ), + icon: , }, { title: 'Hot module replacement', description: 'Edit and see the result without losing application state. The fastest feedback loop in JavaScript tooling.', - icon: ( - - - - ), + icon: , }, { title: 'Persistent caching', description: "v5's filesystem cache makes warm builds near-instant. Cold builds are 38% faster than v4 on large monorepos.", - icon: ( - - - - ), + icon: , }, { title: '11,000+ plugins', description: "The largest ecosystem in JavaScript tooling. If a build problem exists, there's a webpack plugin for it.", - icon: ( - - - - ), + icon: , }, ]; diff --git a/components/Icons/FeatureSectionIcons.jsx b/components/Icons/FeatureSectionIcons.jsx new file mode 100644 index 00000000..f7c5f819 --- /dev/null +++ b/components/Icons/FeatureSectionIcons.jsx @@ -0,0 +1,106 @@ +const Svg = ({ children, ...props }) => ( + +); + +const ModuleFederation = props => ( + + + + + + + + + +); + +const CodeSplitting = props => ( + + + + + + + + + + +); + +const TreeShaking = props => ( + + + + + + + +); + +const HotModuleReplacement = props => ( + + + + + + + +); + +const PersistentCaching = props => ( + + + + + + +); + +const Plugins = props => ( + + + +); + +export { + ModuleFederation, + CodeSplitting, + TreeShaking, + HotModuleReplacement, + PersistentCaching, + Plugins, +}; From fe315814833a64d622d332f0e114a50764a6efd2 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Rajak Date: Sat, 18 Jul 2026 06:20:35 +0000 Subject: [PATCH 2/2] refactor: use lucide-preact icons in the feature section --- components/HomePage/FeaturesSection/index.jsx | 26 ++--- components/Icons/FeatureSectionIcons.jsx | 106 ------------------ package-lock.json | 53 ++------- package.json | 1 + 4 files changed, 24 insertions(+), 162 deletions(-) delete mode 100644 components/Icons/FeatureSectionIcons.jsx diff --git a/components/HomePage/FeaturesSection/index.jsx b/components/HomePage/FeaturesSection/index.jsx index cd14930f..db2dca6d 100644 --- a/components/HomePage/FeaturesSection/index.jsx +++ b/components/HomePage/FeaturesSection/index.jsx @@ -1,49 +1,49 @@ import styles from './index.module.css'; import { - ModuleFederation, - CodeSplitting, - TreeShaking, - HotModuleReplacement, - PersistentCaching, - Plugins, -} from '../../Icons/FeatureSectionIcons'; + Waypoints, + Split, + Trees, + RefreshCcwDot, + DatabaseZap, + Puzzle, +} from 'lucide-preact'; const Features = [ { title: 'Module Federation', description: 'Share code across separately-deployed applications at runtime. The micro-frontend pattern, done right.', - icon: , + icon: , }, { title: 'Code splitting', description: "Split bundles by route, by demand, or by vendor. Load what's needed, when it's needed.", - icon: , + icon: , }, { title: 'Tree shaking', description: 'Static analysis of ES modules eliminates dead code in production builds — automatically.', - icon: , + icon: , }, { title: 'Hot module replacement', description: 'Edit and see the result without losing application state. The fastest feedback loop in JavaScript tooling.', - icon: , + icon: , }, { title: 'Persistent caching', description: "v5's filesystem cache makes warm builds near-instant. Cold builds are 38% faster than v4 on large monorepos.", - icon: , + icon: , }, { title: '11,000+ plugins', description: "The largest ecosystem in JavaScript tooling. If a build problem exists, there's a webpack plugin for it.", - icon: , + icon: , }, ]; diff --git a/components/Icons/FeatureSectionIcons.jsx b/components/Icons/FeatureSectionIcons.jsx deleted file mode 100644 index f7c5f819..00000000 --- a/components/Icons/FeatureSectionIcons.jsx +++ /dev/null @@ -1,106 +0,0 @@ -const Svg = ({ children, ...props }) => ( - -); - -const ModuleFederation = props => ( - - - - - - - - - -); - -const CodeSplitting = props => ( - - - - - - - - - - -); - -const TreeShaking = props => ( - - - - - - - -); - -const HotModuleReplacement = props => ( - - - - - - - -); - -const PersistentCaching = props => ( - - - - - - -); - -const Plugins = props => ( - - - -); - -export { - ModuleFederation, - CodeSplitting, - TreeShaking, - HotModuleReplacement, - PersistentCaching, - Plugins, -}; diff --git a/package-lock.json b/package-lock.json index ceac1875..fc1c25a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "@tailwindcss/node": "^4.3.0", "classnames": "^2.5.1", "gray-matter": "^4.0.3", + "lucide-preact": "^1.25.0", "npm-run-all": "^4.1.5", "semver": "^7.8.1", "typedoc": "^0.28.19", @@ -1483,9 +1484,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1502,9 +1500,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1521,9 +1516,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1540,9 +1532,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1559,9 +1548,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1578,9 +1564,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1597,9 +1580,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1616,9 +1596,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2598,9 +2575,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2617,9 +2591,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2636,9 +2607,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2655,9 +2623,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2674,9 +2639,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2693,9 +2655,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6780,6 +6739,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/lucide-preact": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/lucide-preact/-/lucide-preact-1.25.0.tgz", + "integrity": "sha512-bGGOLwNk4khtQYhTgsc5/MLYvZAf5KONZUSH4Lbc7vhtfmK0hfCaucKFnN6GBHkDozx4bmaoN2ulmn3u8r0W1g==", + "license": "ISC", + "peerDependencies": { + "preact": "^10.27.2" + } + }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -8772,7 +8740,6 @@ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.7.0.tgz", "integrity": "sha512-Z4WR8fmLMRpdYqJ9i7vrlXSsSrxVJydwrkEXHapexfARbWfGb7vGcnvNQnIzN0cXciMVOlz/XLoiMCi9gUsy9Q==", "license": "MIT", - "peer": true, "peerDependencies": { "preact": ">=10 || >= 11.0.0-0" } diff --git a/package.json b/package.json index fbaed220..72c5f490 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@tailwindcss/node": "^4.3.0", "classnames": "^2.5.1", "gray-matter": "^4.0.3", + "lucide-preact": "^1.25.0", "npm-run-all": "^4.1.5", "semver": "^7.8.1", "typedoc": "^0.28.19",