Compare commits

...

4 Commits

Author SHA1 Message Date
Avraham Sakal 9909ee6d94 feat: responsive headshot 2026-05-24 11:39:35 -04:00
Avraham Sakal 91931039bc more mobile-friendly 2026-05-24 10:18:24 -04:00
Avraham Sakal f983fe5b83 include latest pdf in deployment bundle, not previous pdf 2025-09-30 09:34:47 -04:00
Avraham Sakal acb5d225c4 ensure wrangler doesn't ignore pdf 2025-09-30 09:17:41 -04:00
3 changed files with 28 additions and 16 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
"dev": "vike dev", "dev": "vike dev",
"build": "vike build", "build": "vike build",
"preview": "run-s build preview:wrangler", "preview": "run-s build preview:wrangler",
"generate-pdf": "concurrently -k -s first 'pnpm vike preview' 'wait-on http://localhost:3000 && chromium --headless --no-pdf-header-footer --print-to-pdf=./assets/resume-brian-sakal.pdf --timeout=1500 http://localhost:3000'", "generate-pdf": "concurrently -k -s first 'pnpm vike preview' 'wait-on http://localhost:3000 && chromium --headless --no-pdf-header-footer --print-to-pdf=./assets/resume-brian-sakal.pdf --timeout=1500 http://localhost:3000' && cp ./assets/resume-brian-sakal.pdf ./dist/client/assets/static/resume-brian-sakal.pdf",
"lint": "eslint .", "lint": "eslint .",
"preview:wrangler": "wrangler pages dev", "preview:wrangler": "wrangler pages dev",
"deploy:wrangler": "wrangler pages deploy", "deploy:wrangler": "wrangler pages deploy",
+18 -15
View File
@@ -38,7 +38,8 @@ export default function Page() {
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column",
width: "70%", width: "70%",
padding: "1em", paddingLeft: "1em",
paddingRight: "1em",
position: "relative", position: "relative",
}} }}
> >
@@ -53,7 +54,7 @@ export default function Page() {
> >
<a <a
className="floating-print-btn" className="floating-print-btn"
href="./assets/resume-brian-sakal.pdf" href={/*pdfUrl*/ "assets/static/resume-brian-sakal.pdf"}
download download
> >
{/* Print */} {/* Print */}
@@ -88,11 +89,11 @@ function Header() {
}} }}
> >
<section> <section>
<div> <div css={{ display: "flex", justifyContent: "center" }}>
<img <img
src={resumeImage} src={resumeImage}
alt="headshot" alt="headshot"
css={{ width: "14em", borderRadius: "50%", objectFit: "contain" }} css={{ width: "70%", borderRadius: "50%", objectFit: "contain" }}
/> />
</div> </div>
</section> </section>
@@ -123,7 +124,7 @@ function MainSkills() {
<section className="relevant-skills"> <section className="relevant-skills">
<h3>Main Skills/Technologies</h3> <h3>Main Skills/Technologies</h3>
<div> <div>
<ul className="inline"> <ul className="inline" css={{ textAlign: "justify" }}>
{mainSkills.map((skill) => ( {mainSkills.map((skill) => (
<li>{skill}</li> <li>{skill}</li>
))} ))}
@@ -139,7 +140,7 @@ function ExposedSkills() {
<section className="relevant-skills"> <section className="relevant-skills">
<h3>Have Used</h3> <h3>Have Used</h3>
<div> <div>
<ul className="inline"> <ul className="inline" css={{ textAlign: "justify" }}>
{exposedSkills.map((skill) => ( {exposedSkills.map((skill) => (
<li>{skill}</li> <li>{skill}</li>
))} ))}
@@ -153,21 +154,21 @@ function Employment() {
const { employment } = useData<Data>(); const { employment } = useData<Data>();
return ( return (
<section className="employment"> <section className="employment">
<h1> <h2>
<div className="fit-content"> <div className="fit-content">
<span className="bold">Employment </span> <span className="bold">Employment </span>
<span css={{ fontWeight: 300 }} className="sm italic right"> <span css={{ fontWeight: 300 }} className="sm italic right">
(Most recent) (Most recent)
</span> </span>
</div> </div>
</h1> </h2>
<div> <div>
<ul className="no-bullet"> <ul className="no-bullet">
{employment.map((employment) => ( {employment.map((employment) => (
<li> <li>
<div className="space-between"> <div className="space-between" key={employment.title}>
<div> <div>
<span className="bold">{employment.title},</span> <span className="bold">{employment.title},</span>{" "}
<span> <span>
{employment.company}, {employment.location} {employment.company}, {employment.location}
</span> </span>
@@ -179,7 +180,9 @@ function Employment() {
<div> <div>
<ul> <ul>
{employment.highlights.map((highlight) => ( {employment.highlights.map((highlight) => (
<li>{highlight}</li> <li key={highlight} css={{ textAlign: "justify" }}>
{highlight}
</li>
))} ))}
</ul> </ul>
</div> </div>
@@ -195,11 +198,11 @@ function ProjectsHobbies() {
const { projectsHobbies } = useData<Data>(); const { projectsHobbies } = useData<Data>();
return ( return (
<section className="projects-hobbies"> <section className="projects-hobbies">
<h1> <h2>
<div className="fit-content"> <div className="fit-content">
<div className="bold">Projects/Hobbies</div> <div className="bold">Projects/Hobbies</div>
</div> </div>
</h1> </h2>
<div> <div>
<ul className="no-bullet"> <ul className="no-bullet">
{projectsHobbies.map((projectHobby) => ( {projectsHobbies.map((projectHobby) => (
@@ -238,9 +241,9 @@ function Education() {
const { education } = useData<Data>(); const { education } = useData<Data>();
return ( return (
<section className="education"> <section className="education">
<h1> <h2>
<span className="bold">Education</span> <span className="bold">Education</span>
</h1> </h2>
<div> <div>
<ul className="no-bullet"> <ul className="no-bullet">
{education.map((education) => ( {education.map((education) => (
+9
View File
@@ -100,3 +100,12 @@ a {
font-weight: 500; font-weight: 500;
text-decoration: none; text-decoration: none;
} }
.employment > :first-child {
margin-block-start: 0.3em;
}
h2 {
margin-block-start: 0.3em;
margin-block-end: 0.3em;
}