feat: add technologies (#43)

### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: https://codeberg.org/nhcarrigan/portfolio/pulls/43
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit is contained in:
Naomi Carrigan 2024-11-16 04:21:37 +00:00 committed by Naomi the Technomancer
parent 25efbb1b90
commit 5ff1ebdaf3
2 changed files with 58 additions and 0 deletions

57
src/app/tech/page.tsx Normal file
View File

@ -0,0 +1,57 @@
/**
* @copyright nhcarrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
import { Rule } from "../../components/rule";
import type { JSX } from "react";
/**
* Renders the /tech page.
* @returns A React Component.
*/
const PlayPage = (): JSX.Element => {
return (
<main className="w-[95%] text-center
max-w-4xl m-auto mt-16 mb-16 rounded-lg">
<h1 className="text-5xl">{`Technologies`}</h1>
<p className="mb-2">
{`These are the technologies I use on a regular basis.`}
</p>
<section>
<Rule />
<h2 className="text-3xl">{`Environment`}</h2>
<div className="w-full flex flex-wrap justify-evenly">
<img alt="Arch Linux" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/archlinux/archlinux-original.svg" />
<img alt="VSCode" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vscode/vscode-original.svg"/>
<img alt="Prisma" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/prisma/prisma-original.svg" />
<img alt="Node.js" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nodejs/nodejs-original.svg" />
</div>
</section>
<section>
<Rule />
<h2 className="text-3xl">{`Languages`}</h2>
<div className="w-full flex flex-wrap justify-evenly">
<img alt="JavaScript" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg" />
<img alt="TypeScript" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg" />
<img alt="Python" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg" />
<img alt="Dotnet" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/dotnetcore/dotnetcore-original.svg" />
<img alt="Kotlin" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/kotlin/kotlin-original.svg" />
<img alt="Rust" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/rust/rust-original.svg" />
<img alt="Ruby" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/ruby/ruby-original.svg" />
</div>
</section>
<section>
<Rule />
<h2 className="text-3xl">{`Coming Soon!`}</h2>
<div className="w-full flex flex-wrap justify-evenly">
<img alt="Go" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg" />
<img alt="Dart" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/dart/dart-original.svg" />
<img alt="Flutter" className="w-[100px]" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/flutter/flutter-original.svg" />
</div>
</section>
</main>
);
};
export default PlayPage;

View File

@ -23,6 +23,7 @@ export const NavItems = [
{ href: "/manifesto", text: "Transfemme Manifesto" }, { href: "/manifesto", text: "Transfemme Manifesto" },
{ href: "/ask", text: "Ask Me Anything!" }, { href: "/ask", text: "Ask Me Anything!" },
{ href: "/play", text: "Play with Naomi" }, { href: "/play", text: "Play with Naomi" },
{ href: "/tech", text: "Technologies" },
].sort((a, b) => { ].sort((a, b) => {
return a.text.localeCompare(b.text); return a.text.localeCompare(b.text);
}); });