Skip to content

Commit 633bb14

Browse files
MaxDatenclaude
andcommitted
feat: redesign OG card with value proposition and design principles
- Add role: DevOps · Cloud · Functional Architecture - Add tagline: functional & automated (from maxdaten.io brand) - Add skill tags: Cloud Native, Infrastructure as Code, Automation, CI/CD - Apply design principles: 4px grid, borders-only depth, sharp radius system - Use symmetrical padding and proper typography hierarchy - Optimize for small social media preview legibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 0401fc3 commit 633bb14

1 file changed

Lines changed: 91 additions & 52 deletions

File tree

src/templates/og-card.html

Lines changed: 91 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,25 @@
55
<meta name="viewport" content="width=1200, height=630">
66
<title>OG Card - Jan-Philip Loos</title>
77
<style>
8-
/* Force light mode variables for consistent OG image */
8+
/*
9+
* OG Card Design
10+
* Direction: Precision & Density
11+
* Grid: 4px base (all values multiples of 4)
12+
* Depth: Borders-only
13+
* Border radius: Sharp system (4, 6, 8)
14+
* Padding: Symmetrical
15+
*/
916
:root {
10-
--bg-color: #fafbfc;
11-
--bg-secondary: #f0f2f5;
12-
--text-color: #1a202c;
13-
--text-muted: #64748b;
14-
--text-heading: #0f172a;
15-
--accent-color: #ff8000;
16-
--border-color: #e2e8f0;
17-
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
18-
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
17+
--bg-primary: #fafbfc;
18+
--bg-secondary: #f4f5f7;
19+
--text-foreground: #0f172a;
20+
--text-secondary: rgba(15, 23, 42, 0.72);
21+
--text-muted: rgba(15, 23, 42, 0.56);
22+
--accent: #d97706;
23+
--border: rgba(0, 0, 0, 0.08);
24+
25+
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
26+
--font-mono: "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
1927
}
2028

2129
* {
@@ -28,8 +36,9 @@
2836
width: 1200px;
2937
height: 630px;
3038
overflow: hidden;
31-
font-family: var(--font-body);
32-
background: var(--bg-color);
39+
font-family: var(--font-sans);
40+
background: var(--bg-primary);
41+
-webkit-font-smoothing: antialiased;
3342
}
3443

3544
.og-card {
@@ -38,80 +47,103 @@
3847
display: flex;
3948
align-items: center;
4049
justify-content: center;
41-
background: linear-gradient(135deg, var(--bg-color) 0%, var(--bg-secondary) 100%);
42-
padding: 80px;
50+
background: linear-gradient(145deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
51+
/* Symmetrical padding */
52+
padding: 56px;
4353
position: relative;
4454
}
4555

4656
.og-content {
4757
display: flex;
4858
align-items: center;
49-
gap: 64px;
59+
gap: 56px;
60+
width: 100%;
61+
max-width: 1000px;
5062
}
5163

64+
/* Photo - 224px on 4px grid */
5265
.og-photo {
53-
width: 220px;
54-
height: 220px;
55-
border-radius: 16px;
66+
width: 224px;
67+
height: 224px;
68+
border-radius: 8px;
5669
object-fit: cover;
57-
border: 4px solid var(--accent-color);
58-
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12);
70+
border: 1px solid var(--border);
5971
flex-shrink: 0;
6072
}
6173

6274
.og-text {
6375
display: flex;
6476
flex-direction: column;
65-
gap: 12px;
77+
flex: 1;
6678
}
6779

68-
.og-text h1 {
69-
font-family: var(--font-heading);
80+
/* Name - 72px on grid */
81+
.og-name {
82+
font-family: var(--font-sans);
7083
font-size: 72px;
7184
font-weight: 700;
72-
line-height: 1.1;
73-
letter-spacing: -0.02em;
74-
color: var(--text-heading);
85+
line-height: 1.0;
86+
letter-spacing: -0.03em;
87+
color: var(--text-foreground);
7588
}
7689

77-
.og-text h1::after {
90+
.og-name::after {
7891
content: '';
7992
display: block;
80-
width: 80px;
93+
width: 56px;
8194
height: 4px;
82-
background: var(--accent-color);
83-
margin-top: 20px;
95+
background: var(--accent);
96+
margin-top: 16px;
8497
border-radius: 2px;
8598
}
8699

87-
.og-text h2 {
88-
font-family: var(--font-body);
89-
font-size: 32px;
100+
/* Role - 28px on grid */
101+
.og-role {
102+
font-family: var(--font-sans);
103+
font-size: 28px;
104+
font-weight: 500;
105+
letter-spacing: -0.01em;
106+
color: var(--text-secondary);
107+
margin-top: 20px;
108+
}
109+
110+
/* Tagline - 24px on grid */
111+
.og-tagline {
112+
font-family: var(--font-sans);
113+
font-size: 24px;
90114
font-weight: 400;
91115
color: var(--text-muted);
92-
margin-top: 8px;
116+
margin-top: 12px;
93117
}
94118

119+
/* Skills - 16px on grid */
120+
.og-skills {
121+
display: flex;
122+
flex-wrap: wrap;
123+
gap: 12px;
124+
margin-top: 28px;
125+
}
126+
127+
.og-skill {
128+
font-family: var(--font-mono);
129+
font-size: 14px;
130+
font-weight: 500;
131+
color: var(--text-secondary);
132+
background: var(--bg-primary);
133+
padding: 8px 16px;
134+
border-radius: 6px;
135+
border: 1px solid var(--border);
136+
}
137+
138+
/* Domain - 24px on grid */
95139
.og-domain {
96140
position: absolute;
97-
bottom: 48px;
98-
right: 64px;
99-
font-family: var(--font-body);
141+
bottom: 40px;
142+
right: 56px;
143+
font-family: var(--font-sans);
100144
font-size: 24px;
101145
font-weight: 600;
102-
color: var(--accent-color);
103-
letter-spacing: 0.01em;
104-
}
105-
106-
/* Subtle corner accent */
107-
.og-card::before {
108-
content: '';
109-
position: absolute;
110-
top: 0;
111-
left: 0;
112-
width: 8px;
113-
height: 100%;
114-
background: var(--accent-color);
146+
color: var(--accent);
115147
}
116148
</style>
117149
</head>
@@ -120,8 +152,15 @@
120152
<div class="og-content">
121153
<img class="og-photo" src="../img/profile-current.png" alt="Jan-Philip Loos">
122154
<div class="og-text">
123-
<h1>Jan-Philip Loos</h1>
124-
<h2>MSc: Computer Science</h2>
155+
<h1 class="og-name">Jan-Philip Loos</h1>
156+
<p class="og-role">DevOps · Cloud · Functional Architecture</p>
157+
<p class="og-tagline">functional & automated</p>
158+
<div class="og-skills">
159+
<span class="og-skill">Cloud Native</span>
160+
<span class="og-skill">Infrastructure as Code</span>
161+
<span class="og-skill">Automation</span>
162+
<span class="og-skill">CI/CD</span>
163+
</div>
125164
</div>
126165
</div>
127166
<div class="og-domain">cv.maxdaten.io</div>

0 commit comments

Comments
 (0)