Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b2d95bf
Built rough structure using Solid-nextjs template.
AOzmond Nov 4, 2025
cbd8e08
Update README.md to include Solid-Next.js template details
AOzmond Nov 4, 2025
1b2a957
Replace FunFact section with Download component in the main page layout
AOzmond Nov 4, 2025
73fc9f7
ran prettier formatting and added link to readme.
AOzmond Nov 4, 2025
8deacb9
Update dependencies and improve ESLint configuration
AOzmond Nov 4, 2025
39e4af9
Fix typo in ErrorPage component and minor updates in Footer and layou…
AOzmond Nov 4, 2025
63a10fc
Removed unused svgs and files.
AOzmond Nov 4, 2025
b6b5777
Update shape dimensions in Hero component for consistency.
AOzmond Nov 4, 2025
9685c3a
Remove `ToasterContext` and added spacing after "use client".
AOzmond Nov 4, 2025
f77e0b1
Simplify Header component by removing unused `navigationOpen` state a…
AOzmond Nov 4, 2025
4959e5a
Replace `Image` components with `img` tags, remove unused SVGs, and c…
AOzmond Nov 4, 2025
1a2c740
Refactor components to use named function declarations for consistenc…
AOzmond Nov 6, 2025
3260508
Update Contact component styling and content
AOzmond Nov 6, 2025
7d43d4b
styled Download dropdown/button and view on github button
AOzmond Nov 6, 2025
6c6efc7
Replace `Link` components with `a` tags in Header for simplicity and …
AOzmond Nov 6, 2025
2505a91
Replace social media SVGs in Footer with `img` tags, update hrefs to …
AOzmond Nov 6, 2025
940d7e8
Remove `animate_top` CSS class from components for cleaner code. Adju…
AOzmond Nov 6, 2025
c7df044
Add new social media SVG icons (Bluesky, dev.to, GitHub, LinkedIn) to…
AOzmond Nov 7, 2025
76b0818
Add `suppressHydrationWarning` to `<html>` for dark mode support via …
AOzmond Nov 7, 2025
41e15a2
Update Feature icons with new images and add corresponding assets.
AOzmond Nov 7, 2025
1cbd49c
Update Feature icons with new images and add corresponding assets.
AOzmond Nov 7, 2025
484e21c
Update `SkillBox` styling, expand skills list in YAML, and add string…
AOzmond Nov 7, 2025
a53d2da
Update dependencies and devDependencies in `bun.lock` file to specifi…
AOzmond Nov 7, 2025
22758a8
Update styling for `Contact` and `SkillBox`, add `text-body`, `highli…
AOzmond Nov 7, 2025
c0164fd
Add OS-specific download URLs with improved UI/UX for `Download` comp…
AOzmond Nov 7, 2025
b058f73
update ESLint config to disable `react/no-unescaped-entities` and `@…
AOzmond Nov 7, 2025
fe0e5e1
Update Footer and Header link styling; add hover effects for images a…
AOzmond Nov 7, 2025
8171178
Add OS detection to `Download` component; simplify `ThemeProvider` pr…
AOzmond Nov 7, 2025
342cf45
Refactor `SectionHeader` to remove unused `subtitle` and `description…
AOzmond Nov 7, 2025
8465287
Enhance accessibility across components with improved `alt` attribute…
AOzmond Nov 7, 2025
7bd348e
Refactor `Header` component to use flex-row layout
AOzmond Nov 7, 2025
b03d04b
Update metadata for Error Page to reflect USB Tree branding
AOzmond Nov 7, 2025
6894dba
Remove unused SVG icon from Error Page link button
AOzmond Nov 7, 2025
684fb9d
Update metadata to include detailed description for USB Tree
AOzmond Nov 7, 2025
c01eaa1
Remove unused icons, deprecated `Menu` type, and related assets; rena…
AOzmond Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"plugins": ["prettier-plugin-tailwindcss"]
}
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# usb-tree.github.io
Project Website for usb-tree

Project Website for usb-tree

[Built using the Solid-Next.js template.](https://nextjstemplates.com/templates/solid)
Copy link

Choose a reason for hiding this comment

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

Suggested change
[Built using the Solid-Next.js template.](https://nextjstemplates.com/templates/solid)
Built using the [Solid-Next.js template](https://nextjstemplates.com/templates/solid).

34 changes: 34 additions & 0 deletions app/(site)/error/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Metadata } from "next";
import Link from "next/link";

export const metadata: Metadata = {
title: "Error Page - USB Tree",

// other metadata
description: "This is Error page for USB Tree",
};

export default function ErrorPage() {
return (
<section className="overflow-hidden pt-45 pb-25 lg:pt-50 lg:pb-32.5 xl:pt-55 xl:pb-37.5">
<div className="mx-auto max-w-[518px] text-center">
<img src="/images/shape/404.svg" alt="404" className="mx-auto mb-7.5" />

<h2 className="mb-5 text-2xl font-semibold text-black md:text-4xl dark:text-white">
This Page Does Not Exist
</h2>
<p className="mb-7.5">
The page you were looking for appears to have been moved, deleted or
does not exist.
</p>

<Link
href="/"
className="hover:bg-blackho dark:bg-btndark dark:hover:bg-blackho inline-flex items-center gap-2.5 rounded-full bg-black px-6 py-3 font-medium text-white duration-300 ease-in-out"
>
Return to Home
</Link>
</div>
</section>
);
}
Comment on lines +11 to +34
Copy link

Choose a reason for hiding this comment

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

Image

This file appears unused, you seem to be missing some configuration somewhere?

Copy link

Choose a reason for hiding this comment

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

13 changes: 13 additions & 0 deletions app/(site)/head.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export default function Head() {
return (
<>
<title> USB Tree - The USB device tree viewer and monitor.</title>
Copy link

Choose a reason for hiding this comment

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

Suggested change
<title> USB Tree - The USB device tree viewer and monitor.</title>
<title>USB Tree - A cross-platform USB device tree viewer and monitor</title>

<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta
name="description"
content="USB Tree - A free, open-source desktop app for Windows and Linux. View connected USB devices in a tree structure and monitor real-time connection changes."
/>
<link rel="icon" href="/images/favicon.ico" />
</>
);
}
32 changes: 32 additions & 0 deletions app/(site)/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"use client";

import Footer from "@/components/Footer";
import Header from "@/components/Header";
import Lines from "@/components/Lines";
import ScrollToTop from "@/components/ScrollToTop";
import { ThemeProvider } from "next-themes";
import { Inter } from "next/font/google";
import "@/app/globals.css";

const inter = Inter({ subsets: ["latin"] });

export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
// suppressHydrationWarning is for dark mode support (next-themes).
<html lang="en" suppressHydrationWarning>
<body className={`dark:bg-black ${inter.className}`}>
<ThemeProvider attribute="class">
<Lines />
<Header />
{children}
<Footer />
<ScrollToTop />
</ThemeProvider>
</body>
</html>
);
}
24 changes: 24 additions & 0 deletions app/(site)/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { Metadata } from "next";
import Hero from "@/components/Hero";
import Feature from "@/components/Features";
import Download from "@/components/Download";
import Contact from "@/components/Contact";

export const metadata: Metadata = {
title: "USB Tree - The USB device tree viewer and monitor.",
Copy link

Choose a reason for hiding this comment

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

Same update as in head


// other metadata
description:
"USB Tree - A free, open-source desktop app for Windows and Linux. View connected USB devices in a tree structure and monitor real-time connection changes.",
};

export default function Home() {
return (
<main>
<Hero />
<Download />
<Feature />
<Contact />
</main>
);
}
Binary file modified app/favicon.ico
Copy link

Choose a reason for hiding this comment

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

What's the difference between these two files:

Image

Binary file not shown.
198 changes: 182 additions & 16 deletions app/globals.css
Original file line number Diff line number Diff line change
@@ -1,26 +1,192 @@
@import "tailwindcss";

:root {
--background: #ffffff;
--foreground: #171717;
@custom-variant dark (&:is(.dark *));

@theme {
--font-*: initial;
--font-inter: Inter, sans-serif;

--color-current: currentColor;
--color-transparent: transparent;
--color-stroke: #eeeeee;
--color-strokedark: #2d2f40;
--color-hoverdark: #252a42;
--color-titlebg: #adfff8;
--color-titlebg2: #ffeac2;
--color-titlebgdark: #46495a;
--color-btndark: #292e45;
--color-white: #ffffff;
--color-black: #181c31;
--color-blackho: #2c3149;
--color-blacksection: #1c2136;
--color-primary: #006bff;
--color-primaryho: #0063ec;
--color-meta: #20c5a8;
--color-waterloo: #757693;
--color-manatee: #999aa1;
--color-alabaster: #fbfbfb;
--color-zumthor: #edf5ff;
--color-socialicon: #d1d8e0;

--text-metatitle: 12px, 20px;
--text-sectiontitle: 14px, 22px;
--text-regular: 16px, 26px;
--text-metatitle3: 18px, 26px;
--text-metatitle2: 20px, 32px;
--text-para2: 22px, 35px;
--text-itemtitle: 26px, 32px;
--text-itemtitle2: 24px, 32px;
--text-hero: 48px;
--text-sectiontitle3: 44px, 55px;
--text-sectiontitle2: 40px, 52px;
--text-sectiontitle4: 34px, 48px;

--container-c-1390: 86.875rem;
--container-c-1315: 82.188rem;
--container-c-1280: 80rem;
--container-c-1235: 77.188rem;
--container-c-1154: 72.125rem;
--container-c-1016: 63.5rem;

--z-index-1: 1;
--z-index-999: 999;
--z-index-99999: 99999;

--transition-property-width: width;

--shadow-solid-l: 0px 10px 120px 0px rgba(45, 74, 170, 0.1);
--shadow-solid-2: 0px 2px 10px rgba(122, 135, 167, 0.05);
--shadow-solid-3: 0px 6px 90px rgba(8, 14, 40, 0.04);
--shadow-solid-4: 0px 6px 90px rgba(8, 14, 40, 0.1);
--shadow-solid-5: 0px 8px 24px rgba(45, 74, 170, 0.08);
--shadow-solid-6: 0px 8px 24px rgba(10, 16, 35, 0.08);
--shadow-solid-7: 0px 30px 50px rgba(45, 74, 170, 0.1);
--shadow-solid-8: 0px 12px 120px rgba(45, 74, 170, 0.06);
--shadow-solid-9: 0px 12px 30px rgba(45, 74, 170, 0.06);
--shadow-solid-10: 0px 8px 30px rgba(45, 74, 170, 0.06);
--shadow-solid-11: 0px 6px 20px rgba(45, 74, 170, 0.05);
--shadow-solid-12: 0px 2px 10px rgba(0, 0, 0, 0.05);
--shadow-solid-13: 0px 2px 19px rgba(0, 0, 0, 0.05);

--animate-line1: line 3s linear infinite;
--animate-line2: line 6s linear infinite;
--animate-line3: line 9s linear infinite;

@keyframes line {
0%,
100% {
transform: translateY(100%);
}
50% {
transform: translateY(0);
}
}
}

/*
The default border color has changed to `currentcolor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.

If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentcolor);
}
}

@utility dropdown {
@apply border-stroke shadow-solid-13 dark:border-strokedark xl:before:border-stroke xl:dark:before:border-strokedark -left-7.5 mt-2 hidden min-w-max flex-col gap-4 rounded-md border bg-white px-8 py-5 duration-300 ease-in xl:invisible xl:absolute xl:mt-0 xl:flex xl:w-[250px] xl:translate-y-10 xl:opacity-0 xl:group-hover:visible xl:group-hover:translate-y-6.5 xl:group-hover:opacity-100 xl:before:absolute xl:before:-top-1.5 xl:before:left-10 xl:before:h-3 xl:before:w-3 xl:before:rotate-45 xl:before:border-t xl:before:border-l xl:before:bg-white dark:bg-black xl:dark:before:bg-black;
}

@utility no-scrollbar {
/* Chrome, Safari and Opera */
&::-webkit-scrollbar {
display: none;
}
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}

@utility img-white {
filter: invert(0%) sepia(96%) saturate(15%) hue-rotate(249deg)
brightness(100%) contrast(105%);
}

@layer base {
body {
@apply font-inter text-regular text-waterloo dark:text-manatee relative z-1 font-normal;
}
}

pre {
@apply bg-strokedark relative mb-2 rounded-lg px-4 py-2;
}
.prism-copy-button {
@apply text-primary absolute top-2 right-2 h-[26px] rounded-sm bg-white px-4;
}

.active-tab {
@apply bg-stroke dark:bg-blackho text-black dark:text-white;
}

.text-body {
color: var(--color-black);
&:is(.dark *) {
color: var(--color-zumthor);
}
}

.highlight {
background-color: #193cb8;
color: var(--color-white);
transition: background-color 0.3s ease;

&:hover {
background-color: var(--color-titlebg2);
}

&:is(.dark *) {
background-color: #193cb8;

color: var(--color-white);

&:hover {
background-color: var(--color-titlebgdark);
}
}
}

@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
.skill {
background-color: var(--color-socialicon);
&:is(.dark *) {
background-color: var(--color-blackho);
}
}

@media (prefers-color-scheme: dark) {
:root {
--background: #0a0a0a;
--foreground: #ededed;
.footer-link {
text-decoration: underline;
color: var(--color-black);

&:hover {
color: var(--color-primary);
}
&:is(.dark *) {
color: var(--color-white);
&:hover {
color: var(--color-primary);
}
}
}

body {
background: var(--background);
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
.img-svg-link {
&:hover {
filter: invert(0.5) sepia(1) saturate(5) hue-rotate(175deg);
}
}
34 changes: 0 additions & 34 deletions app/layout.tsx

This file was deleted.

Loading