-
Notifications
You must be signed in to change notification settings - Fork 41
refactor: landing page UI made consistent and more structured #301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
yashdev9274
merged 4 commits into
yashdev9274:main
from
poswalsameer:refactor/landing-page
Sep 18, 2026
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
997d007
refactored the landing page by using better font and styles, core sti…
poswalsameer 1ce1f95
mobile responsive
poswalsameer 29eebc3
Merge pull request #1 from yashdev9274/main
poswalsameer 859bf84
fix: restore landing identity and banner behavior
yashdev9274 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| import { Geist_Mono, Schibsted_Grotesk } from "next/font/google"; | ||
| import LaunchBanner from "@/components/launch-banner"; | ||
|
|
||
| const schibstedGrotesk = Schibsted_Grotesk({ | ||
| variable: "--font-schibsted-grotesk", | ||
| subsets: ["latin"], | ||
| display: "swap", | ||
| }); | ||
|
|
||
| const geistMono = Geist_Mono({ | ||
| variable: "--font-geist-mono", | ||
| subsets: ["latin"], | ||
| display: "swap", | ||
| }); | ||
|
|
||
| export default function MarketingLayout({ | ||
| children, | ||
| }: Readonly<{ | ||
| children: React.ReactNode; | ||
| }>) { | ||
| return ( | ||
| <div | ||
| className={`${schibstedGrotesk.variable} ${geistMono.variable} landing-fonts`} | ||
| > | ||
| <LaunchBanner /> | ||
| {children} | ||
| </div> | ||
| ); | ||
| } |
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -83,7 +83,6 @@ const PIXEL_FONT: Record<string, number[][]> = { | |
| ], | ||
| } | ||
|
|
||
| const PIXEL_SIZE = 8 | ||
| const PIXEL_GAP = 1 | ||
|
|
||
| const PixelLogo = () => { | ||
|
|
@@ -93,17 +92,23 @@ const PixelLogo = () => { | |
| <div | ||
| className="relative cursor-pointer" | ||
| onMouseEnter={() => setHoverTick((t) => t + 1)} | ||
| style={{ | ||
| filter: "drop-shadow(0 0 6px hsl(var(--primary) / 0.3))", | ||
| }} | ||
| style={ | ||
| { | ||
| filter: "drop-shadow(0 0 6px hsl(var(--primary) / 0.3))", | ||
| // Fluid pixel size so the wordmark can never overflow a narrow screen. | ||
| // Width = 9 glyphs x (5 pixels + 4 gaps) + 8 x 3px gaps | ||
| // = 45 x pixelSize + 60, so keep 45 x px under the inner width. | ||
| "--px": "min(8px, calc((100vw - 120px) / 45))", | ||
| } as React.CSSProperties | ||
| } | ||
| > | ||
| {/* Scanline overlay */} | ||
| <div | ||
| className="absolute inset-0 pointer-events-none z-10 opacity-[0.08]" | ||
| style={{ | ||
| backgroundImage: | ||
| "repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(0,0,0,0.3) 1px, rgba(0,0,0,0.3) 2px)", | ||
| backgroundSize: `100% ${PIXEL_SIZE + PIXEL_GAP}px`, | ||
| backgroundSize: `100% calc(var(--px) + ${PIXEL_GAP}px)`, | ||
| }} | ||
| /> | ||
| <div className="flex gap-[3px]"> | ||
|
|
@@ -112,7 +117,7 @@ const PixelLogo = () => { | |
| key={`${hoverTick}-${ci}`} | ||
| className="grid" | ||
| style={{ | ||
| gridTemplateRows: `repeat(7, ${PIXEL_SIZE}px)`, | ||
| gridTemplateRows: "repeat(7, var(--px))", | ||
| gap: `${PIXEL_GAP}px`, | ||
| }} | ||
| > | ||
|
|
@@ -127,8 +132,8 @@ const PixelLogo = () => { | |
| key={`${ri}-${pi}`} | ||
| className={`${pixel ? "bg-primary" : "bg-transparent"}`} | ||
| style={{ | ||
| width: PIXEL_SIZE, | ||
| height: PIXEL_SIZE, | ||
| width: "var(--px)", | ||
| height: "var(--px)", | ||
| opacity: pixel ? undefined : 0, | ||
| borderRadius: "1px", | ||
| animation: pixel ? `pixelFadeIn 0.4s ease-out ${(ri * 5 + pi) * 20 + ci * 120}ms both` : undefined, | ||
|
|
@@ -176,8 +181,8 @@ interface LinkGroupProps { | |
|
|
||
| const LinkGroup = ({ title, links }: LinkGroupProps) => ( | ||
| <div> | ||
| <h3 className="text-[11px] font-mono text-primary uppercase tracking-[0.15em] mb-5"> | ||
| $ {title} | ||
| <h3 className="text-base font-semibold text-primary uppercase mb-5"> | ||
| {title} | ||
| </h3> | ||
| <ul className="space-y-3"> | ||
| {links.map((link, i) => ( | ||
|
|
@@ -194,7 +199,7 @@ const LinkGroup = ({ title, links }: LinkGroupProps) => ( | |
| href={link.href} | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="group inline-flex items-center gap-2 text-[13px] font-mono text-muted-foreground hover:text-foreground transition-colors duration-200" | ||
| className="group inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors duration-200" | ||
| > | ||
| <span className="w-0 group-hover:w-3 h-px bg-primary transition-all duration-200" /> | ||
| <span>{link.label}</span> | ||
|
|
@@ -203,7 +208,7 @@ const LinkGroup = ({ title, links }: LinkGroupProps) => ( | |
| ) : ( | ||
| <Link | ||
| href={link.href} | ||
| className="group inline-flex items-center gap-2 text-[13px] font-mono text-muted-foreground hover:text-foreground transition-colors duration-200" | ||
| className="group inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors duration-200" | ||
| > | ||
| <span className="w-0 group-hover:w-3 h-px bg-primary transition-all duration-200" /> | ||
| <span>{link.label}</span> | ||
|
|
@@ -295,47 +300,37 @@ const Footer = () => { | |
| /> | ||
| </div> | ||
|
|
||
| {/* Social links */} | ||
| <motion.div | ||
| initial={{ opacity: 0 }} | ||
| whileInView={{ opacity: 1 }} | ||
| viewport={{ once: true }} | ||
| transition={{ delay: 0.6, duration: 0.4 }} | ||
| className="flex justify-center gap-8 mb-12" | ||
| > | ||
| <a | ||
| href="https://github.com/yashdev9274/superCli" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="text-muted-foreground/60 hover:text-foreground transition-colors duration-200" | ||
| > | ||
| <Github className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| <a | ||
| href="https://x.com/supercodeai" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="text-muted-foreground/60 hover:text-foreground transition-colors duration-200" | ||
| > | ||
| <Twitter className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| <a | ||
| href="mailto:yashdev.yvd@gmail.com" | ||
| className="text-muted-foreground/60 hover:text-foreground transition-colors duration-200" | ||
| > | ||
| <Mail className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| </motion.div> | ||
|
|
||
| {/* Bottom bar */} | ||
| <div className="flex flex-col md:flex-row items-center justify-between gap-4"> | ||
| <p className="text-[11px] font-mono text-muted-foreground/40 tracking-[0.05em]"> | ||
| <div className="grid grid-cols-1 md:grid-cols-3 items-center gap-4"> | ||
| <p className="text-sm text-[#A1A1AA] text-center font-medium md:text-left"> | ||
| © 2026 SUPERCODE INC. | ||
| </p> | ||
| <div className="flex items-center gap-6"> | ||
| <span className="text-[11px] font-mono text-muted-foreground/20"> | ||
| v0.1.83-beta | ||
| </span> | ||
| <span className="text-sm text-[#A1A1AA] font-medium text-center"> | ||
| v0.1.83-beta | ||
| </span> | ||
| <div className="flex items-center justify-center md:justify-end gap-4"> | ||
| <a | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Add accessible names to the icon links. These anchors contain only icons. Screen readers cannot identify their destinations. Add an Proposed fix <a
href="https://github.com/yashdev9274/superCli"
+ aria-label="GitHub"
target="_blank"
>Also applies to: 320-320, 328-328 🤖 Prompt for AI Agents |
||
| href="https://github.com/yashdev9274/superCli" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="relative text-[#A1A1AA] hover:text-foreground transition-colors duration-200 after:absolute after:-inset-2 after:content-['']" | ||
| > | ||
| <Github className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| <a | ||
| href="https://x.com/supercodeai" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="relative text-[#A1A1AA] hover:text-foreground transition-colors duration-200 after:absolute after:-inset-2 after:content-['']" | ||
| > | ||
| <Twitter className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| <a | ||
| href="mailto:yashdev.yvd@gmail.com" | ||
| className="relative text-[#A1A1AA] hover:text-foreground transition-colors duration-200 after:absolute after:-inset-2 after:content-['']" | ||
| > | ||
| <Mail className="w-[18px] h-[18px]" /> | ||
| </a> | ||
| </div> | ||
| </div> | ||
| </div> | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment references the
(marketing)route group, but the group is actually named(landing).