animated background is good enough for now

This commit is contained in:
Liam Fitzpatrick 2025-01-05 11:35:12 -05:00
parent 5fbd2d8956
commit e415037bf8
8 changed files with 41 additions and 37 deletions

View File

@ -30,7 +30,7 @@ pub fn ProfessionalExperienceCard(
} }
} }
view!{ view!{
<div id={id} class="border border-4 m-auto mt-4 rounded w-9/12 bg-[#0C120C] md:flex md:flex-row justify-around p-4"> <div id={id} class="border border-4 m-auto mt-4 rounded w-11/12 md:w-9/12 bg-[#0C120C] md:flex md:flex-row justify-around p-4">
<div class="flex flex-col justify-center space-y-2 md:w-1/4"> <div class="flex flex-col justify-center space-y-2 md:w-1/4">
<img src={img_path} class="w-full" /> <img src={img_path} class="w-full" />
<H2>{heading}</H2> <H2>{heading}</H2>

View File

@ -1 +1 @@
(spawn_rate:0.01,spawn_amount:22,emission_shape:Circle(0.0),lifetime:(12.0,0.0),linear_speed:Some((400.0,0.46)),linear_acceleration:Some((0.0,0.0)),direction:Some(((0.0,0.0),1.0)),angular_speed:Some((0.0,0.18)),angular_acceleration:Some((0.0,0.3)),scale:Some((5.0,1.0)),color:None,gravity_direction:None,gravity_speed:None,linear_damp:Some((0.0,0.0)),angular_damp:Some((0.0,0.25)),scale_curve:None,color_curve:Some((points:[((red:0.012286487,green:0.046665076,blue:0.10946172,alpha:1.0),0.1,None),((red:0.9646863,green:0.1651323,blue:0.004391431,alpha:1.0),0.12,None)]))) (spawn_rate:0.1,spawn_amount:22,emission_shape:Circle(0.0),lifetime:(12.0,0.6),linear_speed:Some((400.0,0.46)),linear_acceleration:Some((0.0,0.0)),direction:Some(((0.0,0.0),1.0)),angular_speed:Some((0.0,0.18)),angular_acceleration:Some((0.0,0.3)),scale:Some((5.0,1.0)),color:None,gravity_direction:None,gravity_speed:None,linear_damp:Some((0.0,0.0)),angular_damp:Some((0.0,0.25)),scale_curve:None,color_curve:Some((points:[((red:0.012286487,green:0.046665076,blue:0.10946172,alpha:1.0),0.1,None),((red:0.9646863,green:0.1651323,blue:0.004391431,alpha:1.0),0.12,None)])))

View File

@ -259,7 +259,7 @@ function __wbg_adapter_36(arg0, arg1) {
} }
function __wbg_adapter_39(arg0, arg1, arg2) { function __wbg_adapter_39(arg0, arg1, arg2) {
wasm.closure69995_externref_shim(arg0, arg1, arg2); wasm.closure69994_externref_shim(arg0, arg1, arg2);
} }
function __wbg_adapter_42(arg0, arg1, arg2) { function __wbg_adapter_42(arg0, arg1, arg2) {
@ -267,7 +267,7 @@ function __wbg_adapter_42(arg0, arg1, arg2) {
} }
function __wbg_adapter_45(arg0, arg1, arg2) { function __wbg_adapter_45(arg0, arg1, arg2) {
wasm.closure71432_externref_shim(arg0, arg1, arg2); wasm.closure71431_externref_shim(arg0, arg1, arg2);
} }
function __wbg_adapter_50(arg0, arg1) { function __wbg_adapter_50(arg0, arg1) {
@ -275,7 +275,7 @@ function __wbg_adapter_50(arg0, arg1) {
} }
function __wbg_adapter_55(arg0, arg1, arg2, arg3) { function __wbg_adapter_55(arg0, arg1, arg2, arg3) {
wasm.closure71440_externref_shim(arg0, arg1, arg2, arg3); wasm.closure71439_externref_shim(arg0, arg1, arg2, arg3);
} }
const __wbindgen_enum_GamepadMappingType = ["", "standard"]; const __wbindgen_enum_GamepadMappingType = ["", "standard"];
@ -2127,56 +2127,56 @@ function __wbg_get_imports() {
const ret = false; const ret = false;
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper84541 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper84536 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 69599, __wbg_adapter_36); const ret = makeMutClosure(arg0, arg1, 69598, __wbg_adapter_36);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper85884 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper85879 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 69996, __wbg_adapter_39); const ret = makeMutClosure(arg0, arg1, 69995, __wbg_adapter_39);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89495 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89490 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_42); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_42);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89497 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89492 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89499 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89494 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89501 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89496 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_50); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_50);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89503 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89498 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89505 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89500 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_55); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_55);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89507 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89502 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89509 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89504 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89511 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89506 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89513 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89508 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_closure_wrapper89515 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper89510 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 71429, __wbg_adapter_45); const ret = makeMutClosure(arg0, arg1, 71428, __wbg_adapter_45);
return ret; return ret;
}; };
imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {

Binary file not shown.

View File

@ -1 +1 @@
(spawn_rate:0.01,spawn_amount:22,emission_shape:Circle(0.0),lifetime:(12.0,0.0),linear_speed:Some((400.0,0.46)),linear_acceleration:Some((0.0,0.0)),direction:Some(((0.0,0.0),1.0)),angular_speed:Some((0.0,0.18)),angular_acceleration:Some((0.0,0.3)),scale:Some((5.0,1.0)),color:None,gravity_direction:None,gravity_speed:None,linear_damp:Some((0.0,0.0)),angular_damp:Some((0.0,0.25)),scale_curve:None,color_curve:Some((points:[((red:0.012286487,green:0.046665076,blue:0.10946172,alpha:1.0),0.1,None),((red:0.9646863,green:0.1651323,blue:0.004391431,alpha:1.0),0.12,None)]))) (spawn_rate:0.1,spawn_amount:22,emission_shape:Circle(0.0),lifetime:(12.0,0.6),linear_speed:Some((400.0,0.46)),linear_acceleration:Some((0.0,0.0)),direction:Some(((0.0,0.0),1.0)),angular_speed:Some((0.0,0.18)),angular_acceleration:Some((0.0,0.3)),scale:Some((5.0,1.0)),color:None,gravity_direction:None,gravity_speed:None,linear_damp:Some((0.0,0.0)),angular_damp:Some((0.0,0.25)),scale_curve:None,color_curve:Some((points:[((red:0.012286487,green:0.046665076,blue:0.10946172,alpha:1.0),0.1,None),((red:0.9646863,green:0.1651323,blue:0.004391431,alpha:1.0),0.12,None)])))

View File

@ -44,13 +44,17 @@ function drawConnections() {
} }
function moveBevy() { function moveBevy() {
const canvas_el = document.getElementById("bevy-canvas1"); var canvas_el = document.getElementById("bevy-canvas1");
const content_el = document.getElementById("hero"); const content_el = document.getElementById("hero");
const content_box = content_el.getBoundingClientRect(); const content_box = content_el.getBoundingClientRect();
canvas_el.setAttribute("width", content_box.width); canvas_el.setAttribute("width", content_box.width);
canvas_el.setAttribute("height", content_box.height); canvas_el.setAttribute("height", content_box.height);
canvas_el.setAttribute("top", content_box.top); canvas_el.setAttribute("top", content_box.top);
canvas_el.setAttribute("left", content_box.left); canvas_el.setAttribute("left", content_box.left);
canvas_el.style.width = content_box.width;
canvas_el.style.height = content_box.height;
canvas_el.style.top = content_box.top;
canvas_el.style.left = content_box.left;
} }
window.addEventListener("scroll", (event) => { window.addEventListener("scroll", (event) => {

View File

@ -1,5 +1,5 @@
body{ body{
background-color: #0C120C; background-color: rgb(12,18,12);
color: #E4FDE1; color: #E4FDE1;
} }

View File

@ -71,7 +71,7 @@ fn HomePage() -> impl IntoView {
<H2>"I'm Liam Fitzpatrick."</H2> <H2>"I'm Liam Fitzpatrick."</H2>
<P>"I'm an engineer with expertise in programming, simulation, and process improvement. I have a proven ability <P>"I'm an engineer with expertise in programming, simulation, and process improvement. I have a proven ability
to develop innovative solutions, optimize complex systems, and lead successful projects. I have some of my experiences to develop innovative solutions, optimize complex systems, and lead successful projects. I have some of my experiences
projects outlined on this website. If you want to hire me or ask questions about my projects reach out to me "<a class="underline" href="mailto:liam.fitzpatrick@live.com">here</a>.</P> outlined on this website. If you want to hire me or ask questions about my projects reach out to me "<a class="underline" href="mailto:liam.fitzpatrick@live.com">here</a>.</P>
</div> </div>
</div> </div>
@ -94,7 +94,7 @@ fn HomePage() -> impl IntoView {
"Developed a web application PyCAM to assist control account managers in tracking costs within programs.".into(), "Developed a web application PyCAM to assist control account managers in tracking costs within programs.".into(),
"Additionally: recognized as Top Performer, mentored & trained other engineers".into(), "Additionally: recognized as Top Performer, mentored & trained other engineers".into(),
] /> ] />
<div class="my-16 mx-auto w-fit bg-[#0C120C]"> <div class="my-16 mx-auto w-fit">
<p>2023</p> <p>2023</p>
</div> </div>
<ProfessionalExperienceCard <ProfessionalExperienceCard
@ -109,7 +109,7 @@ fn HomePage() -> impl IntoView {
"Installed RF Gen barcoding system to allow for real time inventory tracking off production lines. Developed new standard procedures and trained with the new process. Developed project dashboards to display real time data to management and to line workers.".into() "Installed RF Gen barcoding system to allow for real time inventory tracking off production lines. Developed new standard procedures and trained with the new process. Developed project dashboards to display real time data to management and to line workers.".into()
] /> ] />
<div class="my-16 mx-auto w-fit bg-[#0C120C]"> <div class="my-16 mx-auto w-fit">
<p>2021</p> <p>2021</p>
</div> </div>
<ProfessionalExperienceCard <ProfessionalExperienceCard