From 3c7e28c523bb1b7c5a1df8de33ff0d079b0d8a32 Mon Sep 17 00:00:00 2001 From: jcf-junior Date: Mon, 16 Mar 2026 21:51:46 +0000 Subject: [PATCH 1/7] Created a full screen preview page for easier development --- src/main.tsx | 2 ++ src/pages/Preview.tsx | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 src/pages/Preview.tsx diff --git a/src/main.tsx b/src/main.tsx index 31c3039..4c73dfd 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -6,6 +6,7 @@ import { BrowserRouter, Routes, Route } from "react-router"; import Editor from "./pages/Editor.tsx"; import Home from "./pages/Home.tsx"; import Tips from "./pages/Tips.tsx"; +import Preview from "./pages/Preview.tsx"; createRoot(document.getElementById("root")!).render( @@ -16,6 +17,7 @@ createRoot(document.getElementById("root")!).render( } /> } /> + } /> , diff --git a/src/pages/Preview.tsx b/src/pages/Preview.tsx new file mode 100644 index 0000000..dea48f2 --- /dev/null +++ b/src/pages/Preview.tsx @@ -0,0 +1,12 @@ +import { useCvData } from "../hooks/useCvData"; +import JakesResume from "../templates/JakesResume"; + +export default function Preview() { + const { cvData } = useCvData(); + + return ( +
+ ; +
+ ); +} From a519fbbc3d0aa5869cfa0ebf805aadffc867c24f Mon Sep 17 00:00:00 2001 From: jcf-junior Date: Mon, 16 Mar 2026 21:52:18 +0000 Subject: [PATCH 2/7] Improved spacing consistency in CV layout and update CSS for improved styling --- src/data/initialCv.json | 1 + src/templates/JakesResume.tsx | 68 ++++++++++++++++++----------------- src/templates/jakesResume.css | 18 ++++++++-- 3 files changed, 52 insertions(+), 35 deletions(-) diff --git a/src/data/initialCv.json b/src/data/initialCv.json index 0b8ca38..34e8bb3 100644 --- a/src/data/initialCv.json +++ b/src/data/initialCv.json @@ -25,6 +25,7 @@ "value": "www.johnjohnson.com" } ] + }, "education": [ { diff --git a/src/templates/JakesResume.tsx b/src/templates/JakesResume.tsx index 0c97d79..673bcdc 100644 --- a/src/templates/JakesResume.tsx +++ b/src/templates/JakesResume.tsx @@ -1,4 +1,4 @@ -import './jakesResume.css'; +import "./jakesResume.css"; import type { Certification, @@ -15,7 +15,6 @@ type CvProps = { }; export default function JakesResume({ cvData }: CvProps) { - const hasSkills = cvData.skills?.programmingLanguages?.length > 0 || cvData.skills?.frameworks?.length > 0 || @@ -24,15 +23,14 @@ export default function JakesResume({ cvData }: CvProps) { return (
-
+

{cvData.personalInfo.name}

-
+
{cvData.personalInfo.socials.map((social: Social) => { - return social.value === "" ? null : ( {cvData.education?.length > 0 && ( -
+
Education {cvData.education.map((edu: Education) => { return (
-
+
{edu.institution} -

{edu.degree}

-
-

{formatPeriod(edu.startDate, edu.endDate)}

+
+ +
+

{edu.degree}

{edu.location}

@@ -72,7 +71,7 @@ export default function JakesResume({ cvData }: CvProps) { )} {cvData.workExperience?.length > 0 && ( -
+
Experience {cvData.workExperience.map((job: WorkExperience) => { @@ -84,25 +83,28 @@ export default function JakesResume({ cvData }: CvProps) { job.endDate.trim() == ""; return emptyExperience ? null : ( -
+
-
- {job.position} -

{job.company}

-
+ {job.position} +

{formatPeriod(job.startDate, job.endDate)}

+
-
-

{formatPeriod(job.startDate, job.endDate)}

-

{job.location}

-
+
+

{job.company}

+

{job.location}

-
    +
      {job.highlights.map((highlight: string, index: number) => { return highlight.trim() === "" ? ( "" ) : ( -
    • {highlight.trim()}
    • +
    • + {highlight.trim()} +
    • ); })}
    @@ -113,12 +115,12 @@ export default function JakesResume({ cvData }: CvProps) { )} {cvData.projects?.length > 0 && ( -
    +
    Projects -
    +
    {cvData.projects.map((project: Project) => { return ( -
    +
    @@ -135,11 +137,13 @@ export default function JakesResume({ cvData }: CvProps) {
    -
      +
        {project.highlights.map( (highlight: string, index: number) => { return ( -
      • {highlight}
      • +
      • + {highlight} +
      • ); }, )} @@ -152,7 +156,7 @@ export default function JakesResume({ cvData }: CvProps) { )} {cvData.certifications?.length > 0 && ( -
        +
        Certifications {cvData.certifications.map((certification: Certification) => { const emptyCert: boolean = @@ -163,7 +167,7 @@ export default function JakesResume({ cvData }: CvProps) { return emptyCert ? null : (
        @@ -179,9 +183,9 @@ export default function JakesResume({ cvData }: CvProps) { )} {hasSkills && ( -
        +
        Technical Skills -
        +
        {cvData.skills.programmingLanguages.length > 0 && (
        Programming Languages: diff --git a/src/templates/jakesResume.css b/src/templates/jakesResume.css index 463ef95..cbdd1c6 100644 --- a/src/templates/jakesResume.css +++ b/src/templates/jakesResume.css @@ -26,6 +26,11 @@ font-variant: small-caps; } +* { + box-sizing: border-box !important; + line-height: 1em !important; +} + .shadow { box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); } @@ -52,8 +57,15 @@ .section-title { font-family: "Latin Modern Caps", serif; font-variant: small-caps; - border-bottom: 1px solid black; - width: 100%; display: block; - margin-bottom: 2pt; + margin-bottom: 3pt; +} + +.section-title::after { + content: ""; + display: block; + width: 100%; + height: 1px; + background-color: black; + margin-top: 3pt; } From c23c8f4e666ca75c53a29fc8dee2cfdb29f993a7 Mon Sep 17 00:00:00 2001 From: jcf-junior Date: Mon, 16 Mar 2026 21:53:28 +0000 Subject: [PATCH 3/7] Fix formatting of date range separator in formatPeriod function to use en-dash instead of hyphen --- src/utils/formatDate.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/formatDate.ts b/src/utils/formatDate.ts index 825aa00..0b11c92 100644 --- a/src/utils/formatDate.ts +++ b/src/utils/formatDate.ts @@ -13,5 +13,5 @@ export const formatDate = (dateString: string | null): string => { }; export const formatPeriod = (start = "2020-01-01", end: string | null): string => { - return `${formatDate(start)} - ${formatDate(end)}`; + return `${formatDate(start)} \u2013 ${formatDate(end)}`; }; From cd8af6a6669e8dc00b03a31f428e4400153a62aa Mon Sep 17 00:00:00 2001 From: jcf-junior Date: Tue, 17 Mar 2026 12:39:41 +0000 Subject: [PATCH 4/7] - Fixed spacing in overflowing socials - Adjusted spacing in technical skills --- src/templates/JakesResume.tsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/templates/JakesResume.tsx b/src/templates/JakesResume.tsx index 673bcdc..a1e8fa4 100644 --- a/src/templates/JakesResume.tsx +++ b/src/templates/JakesResume.tsx @@ -29,7 +29,7 @@ export default function JakesResume({ cvData }: CvProps) { {cvData.personalInfo.name} -
        +
        {cvData.personalInfo.socials.map((social: Social) => { return social.value === "" ? null : ( { return ( -
      • +
      • {highlight}
      • ); @@ -185,30 +188,30 @@ export default function JakesResume({ cvData }: CvProps) { {hasSkills && (
        Technical Skills -
        +
        {cvData.skills.programmingLanguages.length > 0 && ( -
        +
        Programming Languages: {cvData.skills.programmingLanguages.join(", ")}
        )} {cvData.skills.frameworks.length > 0 && ( -
        +
        Frameworks / Libraries: {cvData.skills.frameworks.join(", ")}
        )} {cvData.skills.databases.length > 0 && ( -
        - Databases: +
        + Databases: {cvData.skills.databases.join(", ")}
        )} {cvData.skills.developerTools.length > 0 && ( -
        +
        Developer Tools: {cvData.skills.developerTools.join(", ")}
        From 9f9a8a6d126bb66e09e37d841b38d333ae707f15 Mon Sep 17 00:00:00 2001 From: Jose Junior Date: Wed, 18 Mar 2026 11:36:51 +0000 Subject: [PATCH 5/7] - Removed Preview component used for debugging. --- src/data/initialCv.json | 3 +-- src/main.tsx | 2 -- src/pages/Preview.tsx | 12 ------------ src/templates/JakesResume.tsx | 8 ++++---- src/templates/jakesResume.css | 5 ----- 5 files changed, 5 insertions(+), 25 deletions(-) delete mode 100644 src/pages/Preview.tsx diff --git a/src/data/initialCv.json b/src/data/initialCv.json index 34e8bb3..6a572a9 100644 --- a/src/data/initialCv.json +++ b/src/data/initialCv.json @@ -25,7 +25,6 @@ "value": "www.johnjohnson.com" } ] - }, "education": [ { @@ -118,4 +117,4 @@ "databases": ["MongoDB", "PostgreSQL", "MySQL"], "developerTools": ["Git", "Docker", "Jenkins", "AWS"] } -} +} \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx index 4c73dfd..31c3039 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -6,7 +6,6 @@ import { BrowserRouter, Routes, Route } from "react-router"; import Editor from "./pages/Editor.tsx"; import Home from "./pages/Home.tsx"; import Tips from "./pages/Tips.tsx"; -import Preview from "./pages/Preview.tsx"; createRoot(document.getElementById("root")!).render( @@ -17,7 +16,6 @@ createRoot(document.getElementById("root")!).render( } /> } /> - } /> , diff --git a/src/pages/Preview.tsx b/src/pages/Preview.tsx deleted file mode 100644 index dea48f2..0000000 --- a/src/pages/Preview.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { useCvData } from "../hooks/useCvData"; -import JakesResume from "../templates/JakesResume"; - -export default function Preview() { - const { cvData } = useCvData(); - - return ( -
        - ; -
        - ); -} diff --git a/src/templates/JakesResume.tsx b/src/templates/JakesResume.tsx index a1e8fa4..70ed72a 100644 --- a/src/templates/JakesResume.tsx +++ b/src/templates/JakesResume.tsx @@ -23,7 +23,7 @@ export default function JakesResume({ cvData }: CvProps) { return (
        -
        +

        {cvData.personalInfo.name} @@ -191,14 +191,14 @@ export default function JakesResume({ cvData }: CvProps) {
        {cvData.skills.programmingLanguages.length > 0 && (
        - Programming Languages: + Programming Languages: {cvData.skills.programmingLanguages.join(", ")}
        )} {cvData.skills.frameworks.length > 0 && (
        - Frameworks / Libraries: + Frameworks / Libraries: {cvData.skills.frameworks.join(", ")}
        )} @@ -212,7 +212,7 @@ export default function JakesResume({ cvData }: CvProps) { {cvData.skills.developerTools.length > 0 && (
        - Developer Tools: + Developer Tools: {cvData.skills.developerTools.join(", ")}
        )} diff --git a/src/templates/jakesResume.css b/src/templates/jakesResume.css index cbdd1c6..ab9808f 100644 --- a/src/templates/jakesResume.css +++ b/src/templates/jakesResume.css @@ -26,11 +26,6 @@ font-variant: small-caps; } -* { - box-sizing: border-box !important; - line-height: 1em !important; -} - .shadow { box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); } From fdc1f6515264300a58f05234991febb1d57c7009 Mon Sep 17 00:00:00 2001 From: Jose Junior Date: Wed, 18 Mar 2026 11:39:46 +0000 Subject: [PATCH 6/7] fix: fixed small isue in socials spacing --- src/templates/JakesResume.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/templates/JakesResume.tsx b/src/templates/JakesResume.tsx index 70ed72a..03d1ffc 100644 --- a/src/templates/JakesResume.tsx +++ b/src/templates/JakesResume.tsx @@ -25,11 +25,11 @@ export default function JakesResume({ cvData }: CvProps) {
        -

        +

        {cvData.personalInfo.name}

        -
        +
        {cvData.personalInfo.socials.map((social: Social) => { return social.value === "" ? null : ( Date: Wed, 18 Mar 2026 11:40:17 +0000 Subject: [PATCH 7/7] fix: adjust spacing for CV title to improve layout consistency --- src/templates/JakesResume.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/JakesResume.tsx b/src/templates/JakesResume.tsx index 03d1ffc..ddc6aba 100644 --- a/src/templates/JakesResume.tsx +++ b/src/templates/JakesResume.tsx @@ -25,7 +25,7 @@ export default function JakesResume({ cvData }: CvProps) {
        -

        +

        {cvData.personalInfo.name}