Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ce3ec5bbc8 | |||
| 22dd43b6ed | |||
| a9d4c896dd |
4 changed files with 4 additions and 153 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
<link rel="icon" href="/signature.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
%sveltekit.head%
|
%sveltekit.head%
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
|
|
@ -81,102 +81,3 @@
|
||||||
<br />
|
<br />
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
<!-- Brief Bio
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--OPEN SOURCE PROJECTS -->
|
|
||||||
<!-- Description
|
|
||||||
-->
|
|
||||||
<!-- Gallery
|
|
||||||
<...images...>
|
|
||||||
-->
|
|
||||||
<!-- Technical Details
|
|
||||||
Technology behind Dazzle:
|
|
||||||
-->
|
|
||||||
<!-- Source Code
|
|
||||||
Check out the source code on any of the official mirrors or on the main self-hosted repo.
|
|
||||||
Self-hosted with <3 using Forgejo (a fork of Gittea)
|
|
||||||
CodeBerg mirror
|
|
||||||
GitLab mirror
|
|
||||||
GitHub mirror
|
|
||||||
<Commit_Tiles/>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Brief Light
|
|
||||||
Light is an awesome bleeding-edge, *all the buzzwords* game-engine...
|
|
||||||
-->
|
|
||||||
<!-- Gallery
|
|
||||||
* Insert awesome renders here *
|
|
||||||
-->
|
|
||||||
<!-- Technical Details
|
|
||||||
Features:
|
|
||||||
MSAA
|
|
||||||
SSAO
|
|
||||||
PBR Lighting
|
|
||||||
|
|
||||||
Technology behind Light:
|
|
||||||
Languages:
|
|
||||||
C++23, CMake, Shell-script, Lua, Python
|
|
||||||
Graphics APIs:
|
|
||||||
OpenGL, Vulkan, Metal, DirectX12
|
|
||||||
CICD:
|
|
||||||
Drone, Docker,
|
|
||||||
|
|
||||||
Check out the source code on any of the official mirrors or on the main self-hosted repo.
|
|
||||||
Self-hosted with <3 using Forgejo (a fork of Gittea)
|
|
||||||
CodeBerg mirror
|
|
||||||
GitLab mirror
|
|
||||||
GitHub mirror
|
|
||||||
|
|
||||||
<Commit_Tiles/>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Brief Bonfire
|
|
||||||
You're enjoying its warmth on your eyes! It's my portfolio v2.0 rebuilt from scratch using the rightfully
|
|
||||||
loved Svelte framework. 0 uninterresting information. 0 tabs/navigaroins, just scroll down :)
|
|
||||||
-->
|
|
||||||
<!-- Gallery
|
|
||||||
-->
|
|
||||||
<!-- Technical Details
|
|
||||||
Bonfire is powered by:
|
|
||||||
Svelte,
|
|
||||||
Tailwindcss,
|
|
||||||
Nginx
|
|
||||||
Segs
|
|
||||||
-->
|
|
||||||
<!-- Source Code
|
|
||||||
Self-hosted with <3 using Forgejo (a fork of Gittea)
|
|
||||||
CodeBerg mirror
|
|
||||||
GitLab mirror
|
|
||||||
GitHub mirror
|
|
||||||
|
|
||||||
<Commit_Tiles/>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Work Experience -->
|
|
||||||
<!-- Brief Bitwyre -->
|
|
||||||
<!-- Details -->
|
|
||||||
|
|
||||||
<!-- Brief STG -->
|
|
||||||
<!-- Details -->
|
|
||||||
|
|
||||||
<!-- Call to action (Got a problem?)
|
|
||||||
Let me have a shot at it!
|
|
||||||
...
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Contact
|
|
||||||
Location: Iran - Tehran Province - Tehran
|
|
||||||
|
|
||||||
Call: +________________
|
|
||||||
Mail: job@light7734.com
|
|
||||||
Mail: light7734@tuta.io
|
|
||||||
Message:
|
|
||||||
Telegram: @Light7734
|
|
||||||
Matrix: matrix.org:@light7734
|
|
||||||
|
|
||||||
[Download] Resume (pdf)
|
|
||||||
[Download] Business Card (pdf)
|
|
||||||
|
|
||||||
PS: I may not respond till Saturday (unless you call my phone) since I'm **locked in** on other days.
|
|
||||||
-->
|
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,11 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
const bio = `
|
const bio = `
|
||||||
`;
|
`;
|
||||||
|
|
||||||
let tiltX = 0;
|
|
||||||
let tiltY = 0;
|
|
||||||
|
|
||||||
function handleMouseMove(event: MouseEvent) {
|
|
||||||
const card = event.currentTarget as HTMLElement;
|
|
||||||
const rect = card.getBoundingClientRect();
|
|
||||||
const x = event.clientX - rect.left;
|
|
||||||
const y = event.clientY - rect.top;
|
|
||||||
const centerX = rect.width / 2;
|
|
||||||
const centerY = rect.height / 2;
|
|
||||||
const percentX = (x - centerX) / centerX;
|
|
||||||
const percentY = (centerY - y) / centerY; // Invert Y for natural tilt
|
|
||||||
const maxTilt = 2;
|
|
||||||
tiltX = percentY * maxTilt;
|
|
||||||
tiltY = percentX * maxTilt;
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleMouseLeave() {
|
|
||||||
tiltX = 0;
|
|
||||||
tiltY = 0;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
||||||
<div
|
<div
|
||||||
class="bg-card border-border relative mx-auto w-full max-w-2xl rounded-lg border border-dark-muted transition-all duration-300 ease-out hover:scale-[1.01] hover:shadow-[5px_5px_5px_#000000]"
|
class="bg-card border-border relative mx-auto w-full max-w-2xl rounded-lg border border-dark-muted transition-all duration-100 ease-out hover:scale-[1.01] hover:shadow-[5px_5px_5px_#000000]"
|
||||||
style="transform: perspective(1000px) rotateX({tiltX}deg) rotateY({tiltY}deg);"
|
|
||||||
on:mousemove={handleMouseMove}
|
|
||||||
on:mouseleave={handleMouseLeave}
|
|
||||||
>
|
>
|
||||||
<div class="mx-auto flex max-w-2xl origin-center">
|
<div class="mx-auto flex max-w-2xl origin-center">
|
||||||
<img
|
<img
|
||||||
|
|
|
||||||
|
|
@ -35,36 +35,11 @@
|
||||||
let expanded = false;
|
let expanded = false;
|
||||||
|
|
||||||
import { slide } from 'svelte/transition';
|
import { slide } from 'svelte/transition';
|
||||||
|
|
||||||
let tiltX = 0;
|
|
||||||
let tiltY = 0;
|
|
||||||
|
|
||||||
function handleMouseMove(event: MouseEvent) {
|
|
||||||
const card = event.currentTarget as HTMLElement;
|
|
||||||
const rect = card.getBoundingClientRect();
|
|
||||||
const x = event.clientX - rect.left;
|
|
||||||
const y = event.clientY - rect.top;
|
|
||||||
const centerX = rect.width / 2;
|
|
||||||
const centerY = rect.height / 2;
|
|
||||||
const percentX = (x - centerX) / centerX;
|
|
||||||
const percentY = (centerY - y) / centerY; // Invert Y for natural tilt
|
|
||||||
const maxTilt = 2;
|
|
||||||
tiltX = percentY * maxTilt;
|
|
||||||
tiltY = percentX * maxTilt;
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleMouseLeave() {
|
|
||||||
tiltX = 0;
|
|
||||||
tiltY = 0;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
||||||
<div
|
<div
|
||||||
class="bg-card border-border relative mx-auto w-full max-w-2xl rounded-lg border transition-all duration-300 ease-out hover:scale-[1.01] hover:shadow-[5px_5px_5px_#000000]"
|
class="bg-card border-border relative mx-auto w-full max-w-2xl rounded-lg border transition-all duration-100 ease-out hover:scale-[1.01] hover:shadow-[5px_5px_5px_#000000]"
|
||||||
style="transform: perspective(1000px) rotateX({tiltX}deg) rotateY({tiltY}deg);"
|
|
||||||
on:mousemove={handleMouseMove}
|
|
||||||
on:mouseleave={handleMouseLeave}
|
|
||||||
>
|
>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<div class="mb-4 flex items-center gap-4">
|
<div class="mb-4 flex items-center gap-4">
|
||||||
|
|
@ -156,7 +131,7 @@
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href={data.gitlab}
|
href={data.codeberg}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="text-accent-foreground flex items-center gap-1 transition-colors duration-200 hover:underline"
|
class="text-accent-foreground flex items-center gap-1 transition-colors duration-200 hover:underline"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue