Skip to content

Commit ea48e09

Browse files
committed
fix: mobile layout improvements, deployment configuration, and ui polish
1 parent 92542db commit ea48e09

21 files changed

Lines changed: 405 additions & 348 deletions

‎next.config.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const isProd = process.env.NODE_ENV === 'production';
44

55
const nextConfig: NextConfig = {
66
output: 'export',
7-
basePath: isProd ? '/axion' : '',
7+
// basePath no longer needed for root domain deployment
88
images: {
99
unoptimized: true,
1010
},

‎package-lock.json‎

Lines changed: 169 additions & 158 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,9 @@
3535
"eslint-config-next": "16.2.12",
3636
"tailwindcss": "^4",
3737
"typescript": "^5"
38+
},
39+
"overrides": {
40+
"postcss": "^8.5.23",
41+
"sharp": "^0.35.0"
3842
}
3943
}

‎src/app/blog/[slug]/page.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ export default async function BlogPostPage({ params }: { params: Promise<{ slug:
2626

2727
let content = post.content;
2828
if (process.env.NODE_ENV === "production") {
29-
content = content.replaceAll('="/blog/', '="/axion/blog/');
30-
content = content.replaceAll('(/blog/', '(/axion/blog/');
29+
content = content.replaceAll('="/blog/', '="/blog/');
30+
content = content.replaceAll('(/blog/', '(/blog/');
3131
}
3232

3333
return (

‎src/app/blog/page.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default function BlogPage() {
2828
<Link href={`/blog/${featuredPost.slug}`} className="block group mb-20">
2929
<article className="relative bg-white/5 border border-white/10 rounded-3xl overflow-hidden hover:bg-white/10 hover:border-white/20 transition-all duration-300">
3030
<div className="flex flex-col lg:flex-row">
31-
<div className="relative w-full lg:w-3/5 aspect-video lg:aspect-auto min-h-[300px]">
31+
<div className="relative w-full lg:w-3/5 aspect-video lg:aspect-auto min-h-[300px] overflow-hidden">
3232
<Image
3333
src={featuredPost.banner}
3434
alt={featuredPost.title}
@@ -72,7 +72,7 @@ export default function BlogPage() {
7272
{regularPosts.map((post) => (
7373
<Link key={post.slug} href={`/blog/${post.slug}`} className="group block">
7474
<article className="bg-white/5 border border-white/10 rounded-3xl overflow-hidden hover:bg-white/10 hover:border-white/20 transition-all duration-300 h-full flex flex-col">
75-
<div className="relative w-full aspect-video">
75+
<div className="relative w-full aspect-video overflow-hidden">
7676
<Image
7777
src={post.banner}
7878
alt={post.title}

‎src/app/download/[codename]/DeviceHeaderClient.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default function DeviceHeaderClient({
6262
className="overflow-hidden w-full bg-[#0a0706]/90 backdrop-blur-xl border border-white/10 rounded-2xl md:rounded-3xl shadow-[0_20px_50px_rgba(0,0,0,0.5)]"
6363
>
6464
<div className="p-4 sm:p-6 md:p-8 max-h-[600px] overflow-y-auto scrollbar-thin select-text" data-lenis-prevent>
65-
<article className="prose prose-invert max-w-none prose-headings:text-white prose-headings:font-bold prose-a:text-[var(--color-axion-accent)] hover:prose-a:text-[var(--color-axion-accent-hover)] hover:prose-a:underline prose-strong:text-white prose-p:text-zinc-200 prose-p:leading-relaxed prose-li:text-zinc-200 prose-li:leading-relaxed prose-code:text-white prose-code:bg-white/10 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-pre:bg-black/60 prose-pre:border prose-pre:border-white/5 prose-pre:max-w-full prose-pre:overflow-x-auto">
65+
<article className="prose prose-invert max-w-none break-words prose-headings:text-white prose-headings:font-bold prose-a:text-[var(--color-axion-accent)] hover:prose-a:text-[var(--color-axion-accent-hover)] hover:prose-a:underline prose-strong:text-white prose-p:text-zinc-200 prose-p:leading-relaxed prose-li:text-zinc-200 prose-li:leading-relaxed prose-code:text-white prose-code:bg-white/10 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-pre:bg-black/60 prose-pre:border prose-pre:border-white/5 prose-pre:max-w-full prose-pre:overflow-x-auto">
6666
<ReactMarkdown remarkPlugins={[remarkGfm]}>
6767
{guideText}
6868
</ReactMarkdown>

‎src/app/download/[codename]/page.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ export default async function DevicePage({
178178

179179
{/* Device Header */}
180180
<div className="flex flex-col md:flex-row items-start md:items-center justify-between gap-12 mb-16 relative">
181-
<div className="flex-1 space-y-4">
181+
<div className="flex-1 w-full space-y-4">
182182
<span className="text-[var(--color-axion-accent)] text-sm font-bold uppercase tracking-[0.2em] mb-1 block">
183183
{device.brand}
184184
</span>

‎src/app/globals.css‎

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
body {
2020
background-color: var(--color-axion-bg);
2121
color: var(--color-axion-text);
22-
overflow-x: hidden;
22+
overflow-x: clip;
2323
-webkit-font-smoothing: antialiased;
2424
-moz-osx-font-smoothing: grayscale;
2525
}
@@ -141,3 +141,18 @@ html.lenis, html.lenis body {
141141
.prose ol > li::marker, .prose ul > li::marker {
142142
color: var(--color-axion-text) !important;
143143
}
144+
145+
@layer utilities {
146+
.hide-scrollbar::-webkit-scrollbar {
147+
display: none;
148+
}
149+
.hide-scrollbar {
150+
-ms-overflow-style: none;
151+
scrollbar-width: none;
152+
}
153+
}
154+
155+
@keyframes slide {
156+
0% { transform: translateX(-100%); }
157+
100% { transform: translateX(300%); }
158+
}

‎src/app/layout.tsx‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,17 @@ export default function RootLayout({
3333
return (
3434
<html
3535
lang="en"
36-
className={`${geistSans.variable} ${geistMono.variable} antialiased overflow-x-hidden`}
36+
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
3737
>
38-
<body className="overflow-x-hidden">
39-
<ParticleBackground />
40-
<Navbar />
41-
<SmoothScrolling>
42-
{children}
43-
<Footer />
44-
</SmoothScrolling>
38+
<body>
39+
<div className="relative w-full overflow-x-clip min-h-screen flex flex-col">
40+
<ParticleBackground />
41+
<Navbar />
42+
<SmoothScrolling>
43+
{children}
44+
<Footer />
45+
</SmoothScrolling>
46+
</div>
4547
</body>
4648
</html>
4749
);

‎src/app/page.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const ResearchShowcase = dynamic(() => import("@/components/ResearchShowcase"));
99
export default function Home() {
1010

1111
return (
12-
<main className="block w-full min-h-screen overflow-x-hidden relative">
12+
<main className="block w-full min-h-screen overflow-x-clip relative">
1313

1414
<div className="hidden md:block">
1515
<HeroScene />

0 commit comments

Comments
 (0)