Skip to content

Commit 3bfb052

Browse files
committed
Update styles for mobile and print
1 parent f213c02 commit 3bfb052

11 files changed

Lines changed: 42 additions & 32 deletions

File tree

.github/workflows/test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ jobs:
2222
node-version: '24'
2323
cache: 'pnpm'
2424

25+
# Uses packageManager field in package.json
26+
- name: Setup pnpm
27+
uses: pnpm/action-setup@v4
28+
2529
- name: Install dependencies
2630
run: pnpm install
2731

.vscode/settings.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,32 @@
1111
},
1212
"editor.defaultFormatter": "oxc.oxc-vscode",
1313
"cSpell.words": [
14+
"Archant",
15+
"Artworker",
16+
"Calluna",
1417
"catchall",
1518
"Disko",
19+
"Filmstro",
20+
"Hons",
1621
"imagetools",
1722
"italo",
1823
"Maskable",
1924
"matthewbalaam",
25+
"Newsquest",
2026
"oxfmt",
2127
"oxlint",
2228
"pluginutils",
2329
"reactrouter",
2430
"reactrouterdom",
2531
"remixrun",
2632
"Renae",
33+
"Simpplr",
2734
"slackcityradio",
35+
"Solent",
2836
"StringToLink",
2937
"subgrid",
3038
"Theinhardt",
39+
"Thunks",
3140
"tsgo",
3241
"tsgolint",
3342
"zodresume"

app/components/cube/cube.css.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ export const cubeWrapper = style({
6666
margin: "auto",
6767
containerName: cubeContainerName,
6868
containerType: "size",
69+
"@media": {
70+
print: {
71+
maxWidth: "unset",
72+
},
73+
},
6974
});
7075

7176
export const cube = style({

app/components/typography/typography.css.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ export const paragraph = style({
99

1010
export const variants = styleVariants({
1111
default: {
12-
marginBlockEnd: vars.rhythmVertical,
12+
selectors: {
13+
"&:not(:last-child)": {
14+
marginBlockEnd: vars.rhythmVertical,
15+
},
16+
},
1317
},
1418
indent: {
1519
selectors: {

app/css/print.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
@page {
22
size: A4;
3-
margin: 0;
3+
margin: 0 2cm;
44
}

app/json/cv.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@
4545
"Added RBAC permissions for apps.",
4646
"Introduced Zod-based schemas for forms, closing the contract circle with the backend to reduce potential for data or API errors.",
4747
"Diagnosed and mitigated performance issues in relating to AWS IaC reducing app latency (in extreme cases) up to 10 times.",
48-
"Migrated simulated jsdom/Jest component tests to browser-based Playwright tests with features like a mocked API layer using MSW for quick test development and easy DX.",
49-
"Introduced visual snapshot testing for confidence against regressions across multiple browsers and automated web accessibility testing."
48+
"Migrated simulated jsdom/Jest component tests to browser-based Playwright tests with features like a mocked API layer using MSW for quick test development and easy DX, visual snapshot testing for confidence against regressions across multiple browsers and automated web accessibility testing."
5049
]
5150
},
5251
{
@@ -55,7 +54,7 @@
5554
"url": "pure360.com",
5655
"startDate": "2018-11-12",
5756
"endDate": "2021-02-15",
58-
"summary": "Building a React/Typescript SPA interfacing with the API layer using REST for handling customer creation and scheduling of multi-channel marketing campaigns. Originally using Redux for data fetching and state management, this was later migrated to Tanstack React Query. Working in an Agile/Scrum environment.",
57+
"summary": "React/Typescript SPA with REST for handling customer creation and scheduling of multi-channel marketing campaigns. Redux for data fetching and state management, charts for data visualisation. Agile/Scrum environment.",
5958
"highlights": [
6059
"Building a graph-style decision tree with a clear simple graphic interface for multiple journeys of customer engagement",
6160
"working with UX to create a new image editor",
@@ -115,7 +114,7 @@
115114
"position": "Graphic designer",
116115
"startDate": "2001-07-08",
117116
"endDate": "2009-10-10",
118-
"summary": "Design conception through to final artworking on a very broad range of print and digital projects. Working in a collaborative design team. Liaising with all departments, as well as external clients and printers."
117+
"summary": "Design conception through to final artwork on a very broad range of print and digital projects. Working in a collaborative design team. Liaising with all departments, as well as external clients and printers."
119118
},
120119
{
121120
"name": "Archant Media",
@@ -154,7 +153,7 @@
154153
"tsdown",
155154
"Rollup",
156155
"Webpack",
157-
"Redux, Redux Thunks"
156+
"Redux, Redux Thunk"
158157
]
159158
}
160159
]

app/routes/cv/cv.css.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
import { style } from "@vanilla-extract/css";
2+
23
import { dimensions, vars } from "~/css/theme.css";
34

45
export const cvGrid = style({
56
display: "grid",
67
gap: `${vars.rhythmVertical2} ${vars.columnGap}`,
7-
"@media": {
8-
print: {
9-
width: "21cm",
10-
padding: "0.5cm 2cm",
11-
maxWidth: "none",
12-
},
13-
},
148
});
159

1610
export const technologyList = style({
17-
columnCount: 3,
18-
11+
columnCount: 2,
1912
whiteSpace: "nowrap",
2013
"@container": {
14+
[dimensions.breakMediumMin]: {
15+
columnCount: 3,
16+
},
2117
[dimensions.breakHorizontalMin]: {
2218
gridColumn: "main / end",
2319
columnCount: 4,

app/routes/cv/cv.route.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function CV({
4343

4444
<CvSection.Child variant="main">
4545
<TextList className={styles.technologyList}>
46-
{[...skills[0].keywords.slice(0, 11), <>And many more</>]}
46+
{[...skills[0].keywords.slice(0, 11), <>More</>]}
4747
</TextList>
4848
</CvSection.Child>
4949
</CvSection>

app/routes/cv/download.css.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@ import { dimensions, vars } from "~/css/theme.css";
55
export const downloadPDF = style({
66
color: "white",
77
textAlign: "center",
8-
display: "inline-block",
98
position: "absolute",
10-
insetInlineEnd: vars.bodyMargin,
9+
zIndex: 10,
10+
maxWidth: "12ch",
11+
insetInlineEnd: "1rem",
1112
"@media": {
1213
print: {
1314
display: "none",
1415
},
16+
[dimensions.breakMediumMin]: {
17+
maxWidth: "unset",
18+
},
1519
[dimensions.breakHorizontalMin]: {
16-
position: "fixed",
17-
zIndex: 10,
1820
transform: "rotate(45deg)",
1921
insetBlockStart: 0,
2022
insetInlineEnd: 0,
@@ -45,16 +47,6 @@ export const link = style({
4547
},
4648
});
4749

48-
export const text = style({
49-
"@media": {
50-
[dimensions.breakHorizontalMin]: {
51-
display: "inline-block",
52-
verticalAlign: "middle",
53-
width: "6em",
54-
},
55-
},
56-
});
57-
5850
export const icon = style({
5951
border: "2px solid",
6052
display: "inline-block",

app/routes/cv/download.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export function Download() {
1010
rel="noreferrer"
1111
>
1212
<>
13-
<span className={styles.text}>Download CV as PDF</span>
13+
<span>Download CV as PDF</span>
1414
<span className={styles.icon} />
1515
</>
1616
</a>

0 commit comments

Comments
 (0)