diff --git a/src/components/UpperSearchBar.astro b/src/components/UpperSearchBar.astro
new file mode 100644
index 0000000..1f8841b
--- /dev/null
+++ b/src/components/UpperSearchBar.astro
@@ -0,0 +1,113 @@
+---
+import { Icon } from "astro-icon/components";
+---
+
+
+
+
+
+
diff --git a/src/pages/about-404.astro b/src/pages/about-404.astro
new file mode 100644
index 0000000..ffd3dc2
--- /dev/null
+++ b/src/pages/about-404.astro
@@ -0,0 +1,53 @@
+---
+import Layout from "@layouts/Layout.astro";
+import { Icon } from "astro-icon/components";
+import { Image } from "astro:assets";
+
+import type { ImageMetadata } from "astro";
+const images = import.meta.glob<{ default: ImageMetadata }>(
+ "/src/assets/images/general/*.{jpeg,jpg,png,gif,webp}"
+);
+---
+
+
+
+
+
+
+
+
About: 404
+
+
+
+ This is the about page for 404 errors.
+
+
+ Error 404: Page Not Found
+
+
+
+
Common Causes:
+
+ - The page you're looking for doesn't exist
+ - The URL might be mistyped
+ - The page may have been moved or deleted
+
+
+
+
+
+
+
+
diff --git a/src/pages/about-home.astro b/src/pages/about-home.astro
new file mode 100644
index 0000000..723d6d3
--- /dev/null
+++ b/src/pages/about-home.astro
@@ -0,0 +1,52 @@
+---
+import Layout from "@layouts/Layout.astro";
+import { Icon } from "astro-icon/components";
+
+import splash from "@assets/splash.json";
+
+const genSplash = (): String => {
+ const idx = Math.floor(Math.random() * splash.length);
+ return splash[idx].splash;
+};
+
+const randomSplash = genSplash();
+---
+
+
+
+
+
+
+
Radius
+
+
+
About: Home
+
+ Welcome to Radius - Your gateway to unrestricted web browsing
+
+
+
Features:
+
+ - Advanced proxy support (Ultraviolet & Scramjet)
+ - Multiple routing modes (Wisp & Bare Server)
+ - Customizable search engines
+ - Modern, sleek interface
+
+
+
+
+
{ randomSplash }
+
+
+
+
+
diff --git a/src/pages/about-settings.astro b/src/pages/about-settings.astro
new file mode 100644
index 0000000..4b1bfc6
--- /dev/null
+++ b/src/pages/about-settings.astro
@@ -0,0 +1,48 @@
+---
+import Layout from "@layouts/Layout.astro";
+import { Icon } from "astro-icon/components";
+---
+
+
+
+
+
+
+
+
About: Settings
+
+
+
+ Configure Radius to match your preferences and needs
+
+
+
+
Available Settings:
+
+ - Proxy Switcher: Choose between Ultraviolet and Scramjet
+ - Routing Mode: Select Wisp Server or Bare Server
+ - Transport: Configure Libcurl or Epoxy transport
+ - Search Engine: Customize your default search provider
+ - Appearance: Personalize themes and visual settings
+ - Cloaking: Customize tab title and favicon
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 737b9d0..e07fb86 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -63,8 +63,30 @@ const link = Astro.url.searchParams.get("redir");
const sw = SW.getInstance().next().value!;
await sw.ready();
+ // Function to handle about: URLs
+ const handleAboutURL = (value: string): boolean => {
+ const aboutMatch = value.match(/^about:(home|settings|404)$/i);
+ if (aboutMatch) {
+ const page = aboutMatch[1].toLowerCase();
+ if (page === 'home') {
+ window.location.href = '/about-home';
+ } else if (page === 'settings') {
+ window.location.href = '/about-settings';
+ } else if (page === '404') {
+ window.location.href = '/about-404';
+ }
+ return true;
+ }
+ return false;
+ };
+
input.addEventListener("keypress", async (event: any) => {
if (event.key === "Enter") {
+ // Check if it's an about: URL first
+ if (handleAboutURL(input.value)) {
+ return;
+ }
+
const settings = await Settings.getInstance();
iframe.classList.remove("hidden");
iframe.src = sw.encodeURL(input.value);