diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..70918f2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.devenv
+/.direnv/
+~^
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..4252c5c
--- /dev/null
+++ b/about.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ About Me
+
+
+
+
+
+
+
+
+
+
+
+
+
+ I'm just a girl!
+
+
diff --git a/about.js b/about.js
new file mode 100644
index 0000000..5f598e9
--- /dev/null
+++ b/about.js
@@ -0,0 +1,3 @@
+function loadDependencies() {
+ loadHTML("header", "/header.html");
+}
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..8be54a5
Binary files /dev/null and b/favicon.ico differ
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..36cac4c
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,112 @@
+{
+ "nodes": {
+ "devshell": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1764011051,
+ "narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=",
+ "owner": "numtide",
+ "repo": "devshell",
+ "rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "devshell",
+ "type": "github"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1763759067,
+ "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1762156382,
+ "narHash": "sha256-Yg7Ag7ov5+36jEFC1DaZh/12SEXo6OO3/8rqADRxiqs=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "7241bcbb4f099a66aafca120d37c65e8dda32717",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1761765539,
+ "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1764947035,
+ "narHash": "sha256-EYHSjVM4Ox4lvCXUMiKKs2vETUSL5mx+J2FfutM7T9w=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "a672be65651c80d3f592a89b3945466584a22069",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "devshell": "devshell",
+ "flake-parts": "flake-parts",
+ "nixpkgs": "nixpkgs_2",
+ "systems": "systems"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..1d4e865
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: Unlicense
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+ flake-parts.url = "github:hercules-ci/flake-parts";
+ systems.url = "github:nix-systems/default";
+ devshell.url = "github:numtide/devshell";
+ };
+
+ outputs =
+ inputs@{
+ flake-parts,
+ devshell,
+ ...
+ }:
+ flake-parts.lib.mkFlake { inherit inputs; } {
+ systems = import inputs.systems;
+
+ imports = [
+ devshell.flakeModule
+ ];
+
+ perSystem =
+ {
+ system,
+ pkgs,
+ inputs',
+ ...
+ }:
+ {
+ _module.args.pkgs = inputs.nixpkgs.legacyPackages.${system};
+
+ devshells.default = {
+ packages = with pkgs; [
+ http-server
+ prettier
+ vscode-langservers-extracted
+ ];
+ };
+ };
+ };
+}
diff --git a/footer/footer.css b/footer/footer.css
new file mode 100644
index 0000000..b57bc0b
--- /dev/null
+++ b/footer/footer.css
@@ -0,0 +1,11 @@
+footer {
+ font-weight: 900;
+ position: fixed bottom;
+
+ margin: 5px;
+ padding: 0.25rem;
+ border-style: solid;
+ border-radius: 0.5rem;
+ border-width: 2px;
+ background: linear-gradient(15deg, #dc8a78, #f2d5cf);
+}
diff --git a/footer/footer.html b/footer/footer.html
new file mode 100644
index 0000000..0144c04
--- /dev/null
+++ b/footer/footer.html
@@ -0,0 +1,7 @@
+
+
+I'm just a foot!
+
+
+
+
diff --git a/global.css b/global.css
new file mode 100644
index 0000000..98d89e7
--- /dev/null
+++ b/global.css
@@ -0,0 +1,34 @@
+body {
+ background: linear-gradient(170deg, #dce0e8, #dc8a78);
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ height: max-content;
+ margin: 0;
+
+ font-family: "Radio Canada", sans-serif;
+ font-weight: 375;
+ font-style: normal;
+ color: #232634;
+
+ display: grid;
+ grid-template-rows: auto 1fr auto;
+ grid-template-columns: 100%;
+
+ min-height: 100svh;
+
+ a {
+ color: #232634;
+ font-style: italic;
+ }
+
+ li {
+ img {
+ height: 1rem;
+ }
+ }
+}
+
+.centered {
+ text-align: center;
+ width: 100%;
+}
diff --git a/header.css b/header.css
new file mode 100644
index 0000000..733aba0
--- /dev/null
+++ b/header.css
@@ -0,0 +1,18 @@
+header {
+ margin: 5px;
+ padding: 0.25rem;
+ border-style: solid;
+ border-radius: 0.5rem;
+ border-width: 2px;
+ background: linear-gradient(15deg, #f2d5cf, #dc8a78);
+
+ .logo {
+ height: 1rem;
+ }
+
+ a {
+ color: #232634;
+ text-decoration: none;
+ font-style: normal;
+ }
+}
diff --git a/header.html b/header.html
new file mode 100644
index 0000000..fa7987a
--- /dev/null
+++ b/header.html
@@ -0,0 +1,3 @@
+
+About
+Links
diff --git a/index.css b/index.css
new file mode 100644
index 0000000..25fa51c
--- /dev/null
+++ b/index.css
@@ -0,0 +1,2 @@
+body {
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..4f49ded
--- /dev/null
+++ b/index.html
@@ -0,0 +1,36 @@
+
+
+
+
+ April Eaton
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..7dd8f3d
--- /dev/null
+++ b/index.js
@@ -0,0 +1,4 @@
+function loadDependencies() {
+ loadHTML("header", "/header.html");
+ loadHTML("footer", "/footer/footer.html");
+}
diff --git a/links.css b/links.css
new file mode 100644
index 0000000..be34d85
--- /dev/null
+++ b/links.css
@@ -0,0 +1,17 @@
+body {
+ li {
+ /* list-style-type: none; */
+ display: flex;
+ align-items: center;
+
+ img {
+ height: 1rem;
+ margin: 0.2rem;
+ }
+ }
+
+ a {
+ font-style: normal;
+ text-decoration: none;
+ }
+}
diff --git a/links.html b/links.html
new file mode 100644
index 0000000..73e63a0
--- /dev/null
+++ b/links.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+ Personal Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/links.js b/links.js
new file mode 100644
index 0000000..5f598e9
--- /dev/null
+++ b/links.js
@@ -0,0 +1,3 @@
+function loadDependencies() {
+ loadHTML("header", "/header.html");
+}
diff --git a/loadin.js b/loadin.js
new file mode 100644
index 0000000..45d2695
--- /dev/null
+++ b/loadin.js
@@ -0,0 +1,8 @@
+function loadHTML(elementId, url) {
+ fetch(url)
+ .then((response) => response.text())
+ .then((data) => {
+ document.getElementById(elementId).innerHTML = data;
+ })
+ .catch((error) => console.error("Error loading HTML:", error));
+}
diff --git a/logo.kra b/logo.kra
new file mode 100644
index 0000000..b2bb66e
Binary files /dev/null and b/logo.kra differ
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000..d86bce0
Binary files /dev/null and b/logo.png differ
diff --git a/logo.svg b/logo.svg
new file mode 100644
index 0000000..c855c48
--- /dev/null
+++ b/logo.svg
@@ -0,0 +1,225 @@
+
+
+
+
diff --git a/logo.webp b/logo.webp
new file mode 100644
index 0000000..0336d4a
Binary files /dev/null and b/logo.webp differ