diff --git a/components/HomePage/ConfigSection/index.jsx b/components/HomePage/ConfigSection/index.jsx index ce988eed..75a8b795 100644 --- a/components/HomePage/ConfigSection/index.jsx +++ b/components/HomePage/ConfigSection/index.jsx @@ -11,46 +11,52 @@ export default ({ children }) => { return (
-
-

CONFIGURATION

-

- Sensible defaults. Configurable when you need it. -

-

- A single config file is enough for most projects. Compose loaders to - transform any input; reach for plugins when behavior is non-trivial. -

-
-
- {/* rendering the code block described at root index.md*/} - {children} -
-

Loaders for any input

-

- Through loaders, modules can be CommonJS, AMD, ES6 modules, CSS, - Images, JSON, Coffeescript, LESS — and your custom stuff. -

+
+
+

CONFIGURATION

+

+ Sensible defaults. +
+ Configurable when you need it. +

+

+ A single config file is enough for most projects. Compose + loaders and transforms around any input, then reach for plugins + when your build needs more control. +

+
-
    - {configFeatures.map((feature, index) => ( -
  • - - - - {feature} -
  • - ))} -
+
+

Loaders for any input

+

+ From CommonJS and ES modules to CSS, images, JSON, and custom + assets—webpack turns source files into a coherent build + pipeline. +

+ +
    + {configFeatures.map(feature => ( +
  • + + + + {feature} +
  • + ))} +
+
+ +
{children}
diff --git a/components/HomePage/ConfigSection/index.module.css b/components/HomePage/ConfigSection/index.module.css index be07719a..6f151180 100644 --- a/components/HomePage/ConfigSection/index.module.css +++ b/components/HomePage/ConfigSection/index.module.css @@ -2,70 +2,122 @@ .configSection { @apply flex - justify-center w-full - py-20 - border-neutral-200 - bg-neutral-100 - dark:border-neutral-800 + justify-center + bg-[#f8fafc] + py-21 dark:bg-[#070c13]; } .container { @apply flex - w-[80%] + w-[84%] max-w-7xl - flex-col - gap-3; + flex-col; +} + +.copyColumn { + @apply contents; } .configHeader { @apply w-full - max-w-xl - text-left; + order-1 + max-w-[34rem] + text-left + lg:col-start-1 + lg:row-start-1; } .preTitle { - @apply mb-4 + @apply mb-9 flex items-center - justify-center - text-[0.85rem] - font-normal + gap-3 + text-[0.72rem] + font-semibold uppercase - tracking-wider - text-blue-700 - dark:text-blue-500 - lg:justify-start; + tracking-[0.18em] + text-blue-600 + before:block + before:h-px + before:w-8 + before:bg-blue-600 + dark:text-blue-400 + dark:before:bg-blue-400; } .title { - @apply text-4xl - mb-4; + @apply mb-7 + max-w-2xl + font-semibold + leading-[0.98] + tracking-tight + text-[#0f172a] + dark:text-[#f8fafc]; + + font-size: 2.2rem; } .subtext { - @apply mb-8 + @apply mb-0 + max-w-[32rem] text-lg leading-relaxed - text-neutral-800 - dark:text-neutral-500; + text-[#334155] + dark:text-[#cbd5e1]; } .configGrid { - @apply flex + @apply grid w-full - flex-col - items-start + grid-cols-1 + items-center gap-12 - lg:flex-row - lg:items-start; + lg:grid-cols-2 + lg:gap-16; } .configGrid > * { @apply w-full - min-w-0 - lg:flex-1; + min-w-0; +} + +.codePanel { + @apply w-full + order-2 + max-w-[32rem] + justify-self-start + lg:col-start-2 + lg:row-start-1 + lg:row-span-2 + lg:justify-self-end + overflow-hidden + rounded-xl + border + border-[#cbd5e1] + bg-white + shadow-sm + dark:border-[#334155] + dark:bg-[#020617] + dark:shadow-[0_0_32px_rgba(30,64,175,0.12)]; +} + +.codePanel > * { + @apply !m-0 + !w-full + !max-w-none + rounded-lg; +} + +.codePanel pre, +.codePanel code { + @apply font-mono; +} + +.codePanel :global(is-land[data-island-name='CodeBox']) > div { + @apply rounded-none + border-0; } .configGrid code { @@ -75,24 +127,30 @@ .features { @apply flex - flex-1 - flex-col; + order-3 + flex-col + border-l-2 + border-blue-500 + pl-5 + dark:border-blue-400 + lg:col-start-1 + lg:row-start-2; } .featuresTitle { - @apply mb-4 + @apply mb-6 text-2xl - font-normal - text-neutral-900 - dark:text-white; + font-semibold + text-[#0f172a] + dark:text-[#f8fafc]; } .featuresText { @apply mb-4 text-base leading-relaxed - text-neutral-800 - dark:text-neutral-400; + text-[#475569] + dark:text-[#94a3b8]; } .checkList { @@ -107,8 +165,8 @@ gap-3 text-sm font-medium - text-neutral-800 - dark:text-neutral-300; + text-[#1e293b] + dark:text-[#e2e8f0]; } .checkIcon { diff --git a/components/HomePage/FeaturesSection/index.jsx b/components/HomePage/FeaturesSection/index.jsx index db2dca6d..44b6b7eb 100644 --- a/components/HomePage/FeaturesSection/index.jsx +++ b/components/HomePage/FeaturesSection/index.jsx @@ -61,8 +61,8 @@ export default () => {
- {Features.map((feature, index) => ( -
+ {Features.map(feature => ( +
{feature.icon}

{feature.title}

{feature.description}

diff --git a/components/HomePage/FeaturesSection/index.module.css b/components/HomePage/FeaturesSection/index.module.css index f96ca7ad..32a49d28 100644 --- a/components/HomePage/FeaturesSection/index.module.css +++ b/components/HomePage/FeaturesSection/index.module.css @@ -26,19 +26,30 @@ @apply mb-4 flex items-center - justify-center - text-[0.85rem] - font-normal + justify-start + gap-3 + text-[0.72rem] + font-semibold uppercase - tracking-wider + tracking-[0.18em] text-blue-600 - dark:text-blue-500 - lg:justify-start; + before:block + before:h-px + before:w-8 + before:bg-blue-600 + dark:text-blue-400 + dark:before:bg-blue-400; } .title { - @apply text-4xl - mb-4; + @apply mb-4 + max-w-2xl + text-[2.2rem] + font-semibold + leading-[1.4] + tracking-tight + text-[#32434a] + dark:text-[#f8fafc]; } .subtext { diff --git a/components/HomePage/Hero/index.jsx b/components/HomePage/Hero/index.jsx index 667f0608..177e5b8f 100644 --- a/components/HomePage/Hero/index.jsx +++ b/components/HomePage/Hero/index.jsx @@ -20,7 +20,6 @@ export default ({ children }) => { splitting allows for loading parts of the application on demand — designed for modern JavaScript apps.

- {/* rendering the code block described at root index.md*/}
{children}
diff --git a/components/HomePage/Hero/index.module.css b/components/HomePage/Hero/index.module.css index ac780b9a..1da5805a 100644 --- a/components/HomePage/Hero/index.module.css +++ b/components/HomePage/Hero/index.module.css @@ -18,7 +18,7 @@ } .webpack { - @apply pb-20 + @apply pb-18 flex max-w-6xl w-[75%] @@ -28,14 +28,17 @@ gap-16 text-center lg:flex-row - lg:gap-10 + lg:gap-5 lg:text-left; } .description { - @apply w-full + @apply flex + flex-col + w-full max-w-full flex-1 + gap-5 lg:max-w-[520px]; } @@ -44,35 +47,36 @@ flex items-center justify-center - text-[0.85rem] - font-normal + gap-2 + text-[0.8rem] + font-semibold uppercase - tracking-wider + tracking-[0.16em] text-blue-600 dark:text-blue-500 lg:justify-start; } .dot { - @apply mr-2 - inline-block - h-1.5 - w-1.5 - rounded-full + @apply inline-block + h-px + w-6 bg-blue-600 dark:bg-blue-500; } .title { @apply mb-2 - font-normal - text-5xl - leading-[1.1] - md:text-6xl; + text-[3.5rem] + font-semibold + leading-none + tracking-tight + md:text-[3rem]; } .highlight { - @apply text-blue-600 + @apply font-semibold + text-blue-600 dark:text-blue-500; } @@ -176,19 +180,44 @@ } .stats { - @apply flex + @apply grid + grid-cols-2 w-[90%] max-w-350 - flex-col items-center justify-center - gap-6 - py-6 + gap-0 + py-3 text-center - dark:border-neutral-800 - lg:flex-row - lg:justify-around - lg:gap-0; + md:grid-cols-4; +} + +.statItem { + @apply w-full + py-3; +} + +.statItem:nth-child(even) { + border-left: 1px solid var(--color-neutral-200); +} + +.statItem:nth-child(n + 3) { + border-top: 1px solid var(--color-neutral-200); +} + +@media (min-width: 48rem) { + .statItem:nth-child(n + 2) { + border-left: 1px solid var(--color-neutral-200); + } + + .statItem:nth-child(n + 3) { + border-top: 0; + } +} + +:global([data-theme='dark']) .statItem:nth-child(even), +:global([data-theme='dark']) .statItem:nth-child(n + 3) { + border-color: var(--color-neutral-800); } .statItem h2 {