-
>;
-};
-
-const Socials: Component = () => {
- return <>
-
- >
-};
+}
-const Divider: Component = () => {
+function Divider(): JSX.Element {
return
;
-};
+}
-const Bio: Component = () => {
+function Bio(): JSX.Element {
return
Hi, I'm {" "}
rushii!
-
-
/ruːʃi/
+
+ /ruːʃi/
I'm a self-taught student developer living on the US west coast.
@@ -56,15 +53,16 @@ const Bio: Component = () => {
You can find me in various communities you've probably never heard of.
I am available for freelance work/jobs/internships.
-};
+}
-const Footer: Component = () => {
+function Footer(): JSX.Element {
return <>
rushii © All rights reserved
-
Source Code
❤️ GitHub
+
Source Code
❤️ GitHub
>
-};
+}
export default App;
diff --git a/src/Link.tsx b/src/Link.tsx
index 568f3e7..e31a5e3 100644
--- a/src/Link.tsx
+++ b/src/Link.tsx
@@ -1,9 +1,28 @@
-import { Component, JSX } from "solid-js";
+import { JSX } from "solid-js";
-type LinkProps
= P & { children?: JSX.Element, url: string, secure?: boolean };
-type LinkComponent
= Component>;
+interface LinkProps {
+ children: JSX.Element,
+ url: string,
+ class?: string,
+ secure?: boolean,
+ noReferrer?: boolean,
+}
-export const Link: LinkComponent = (props: LinkProps) => {
- let rel = props.secure ? "noopener noreferrer" : "noopener";
- return {props.children};
-}
\ No newline at end of file
+export function Link(props: LinkProps): JSX.Element {
+ let rel = props.secure
+ ? "noopener noreferrer"
+ : "noopener";
+ let referrer: JSX.HTMLReferrerPolicy = props.noReferrer
+ ? "no-referrer"
+ : "strict-origin"
+
+ return <>
+
+ {props.children}
+
+ >;
+}
diff --git a/src/Socials.tsx b/src/Socials.tsx
new file mode 100644
index 0000000..23ce24e
--- /dev/null
+++ b/src/Socials.tsx
@@ -0,0 +1,40 @@
+import { For, JSX } from "solid-js";
+import { Link } from "./Link";
+import { BLOG_URL, GITHUB_PROFILE_URL } from "./constants";
+import { ImBlog } from "solid-icons/im";
+import { OcMarkgithub2 } from "solid-icons/oc";
+
+const SOCIALS = [
+ {
+ name: "GitHub",
+ url: GITHUB_PROFILE_URL,
+ icon: () => ,
+ },
+ {
+ name: "Blog",
+ url: BLOG_URL,
+ icon: () => ,
+ }
+]
+
+function SocialsItem(props: (typeof SOCIALS)[0]): JSX.Element {
+ return <>
+
+
+ {props.icon()}
+
{props.name}
+
+
+ >;
+}
+
+export function Socials(): JSX.Element {
+ return <>
+
+
+ {(item) => SocialsItem(item)}
+
+
+ >;
+}
\ No newline at end of file
diff --git a/src/constants.ts b/src/constants.ts
index ce0ce52..777d46b 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -1,2 +1,2 @@
-/** My current GitHub profile. */
-export const GITHUB: string = "https://github.com/rushiiMachine";
\ No newline at end of file
+export const GITHUB_PROFILE_URL: string = "https://github.com/rushiiMachine";
+export const BLOG_URL: string = "https://rushii.materii.dev"
diff --git a/src/index.css b/src/index.css
index 9814a3e..4ded9f2 100644
--- a/src/index.css
+++ b/src/index.css
@@ -13,6 +13,9 @@ a {
.site-background {
background-size: 100%;
background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
- url("/background.webp")
- no-repeat;
+ url("/background.webp") no-repeat;
+}
+
+.hover-offset {
+ @apply transition hover:-translate-y-0.5 hover:translate-x-0.5
}