heyiam 0.3.4 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export.js +19 -5
- package/dist/llm/project-enhance.js +11 -5
- package/dist/mount.js +9 -7
- package/dist/public/assets/{index-Cq04whgG.js → index-BDh4ne9u.js} +3 -3
- package/dist/public/assets/index-ByoBtx7P.css +1 -0
- package/dist/public/index.html +2 -2
- package/dist/render/build-render-data.js +1 -0
- package/dist/render/liquid.js +12 -2
- package/dist/render/mock-data.js +6 -0
- package/dist/render/select-profile-skills.js +54 -0
- package/dist/render/templates/aurora/portfolio.liquid +4 -4
- package/dist/render/templates/aurora/project.liquid +1 -1
- package/dist/render/templates/aurora/styles.css +6 -6
- package/dist/render/templates/bauhaus/portfolio.liquid +4 -4
- package/dist/render/templates/bauhaus/project.liquid +1 -1
- package/dist/render/templates/bauhaus/styles.css +1 -1
- package/dist/render/templates/blueprint/portfolio.liquid +4 -4
- package/dist/render/templates/blueprint/project.liquid +1 -1
- package/dist/render/templates/blueprint/styles.css +1 -1
- package/dist/render/templates/canvas/portfolio.liquid +4 -4
- package/dist/render/templates/canvas/project.liquid +1 -1
- package/dist/render/templates/canvas/styles.css +2 -2
- package/dist/render/templates/carbon/portfolio.liquid +4 -4
- package/dist/render/templates/carbon/project.liquid +1 -1
- package/dist/render/templates/carbon/styles.css +7 -7
- package/dist/render/templates/chalk/portfolio.liquid +4 -4
- package/dist/render/templates/chalk/project.liquid +1 -1
- package/dist/render/templates/chalk/styles.css +44 -2
- package/dist/render/templates/circuit/portfolio.liquid +4 -4
- package/dist/render/templates/circuit/project.liquid +1 -1
- package/dist/render/templates/cosmos/portfolio.liquid +4 -4
- package/dist/render/templates/cosmos/project.liquid +1 -1
- package/dist/render/templates/cosmos/styles.css +4 -4
- package/dist/render/templates/daylight/portfolio.liquid +4 -4
- package/dist/render/templates/daylight/project.liquid +1 -1
- package/dist/render/templates/editorial/portfolio.liquid +4 -4
- package/dist/render/templates/editorial/project.liquid +1 -1
- package/dist/render/templates/editorial/styles.css +6 -1
- package/dist/render/templates/ember/portfolio.liquid +4 -4
- package/dist/render/templates/ember/project.liquid +1 -1
- package/dist/render/templates/ember/styles.css +2 -2
- package/dist/render/templates/glacier/portfolio.liquid +4 -4
- package/dist/render/templates/glacier/project.liquid +1 -1
- package/dist/render/templates/glacier/styles.css +2 -2
- package/dist/render/templates/grid/portfolio.liquid +4 -4
- package/dist/render/templates/grid/project.liquid +1 -1
- package/dist/render/templates/grid/styles.css +2 -2
- package/dist/render/templates/kinetic/portfolio.liquid +5 -5
- package/dist/render/templates/kinetic/project.liquid +1 -1
- package/dist/render/templates/kinetic/styles.css +20 -14
- package/dist/render/templates/meridian/portfolio.liquid +4 -4
- package/dist/render/templates/meridian/project.liquid +1 -1
- package/dist/render/templates/meridian/styles.css +1 -1
- package/dist/render/templates/minimal/portfolio.liquid +3 -3
- package/dist/render/templates/minimal/project.liquid +1 -1
- package/dist/render/templates/mono/portfolio.liquid +4 -4
- package/dist/render/templates/mono/project.liquid +1 -1
- package/dist/render/templates/mono/styles.css +15 -1
- package/dist/render/templates/neon/portfolio.liquid +4 -4
- package/dist/render/templates/neon/project.liquid +1 -1
- package/dist/render/templates/neon/styles.css +11 -20
- package/dist/render/templates/noir/portfolio.liquid +4 -4
- package/dist/render/templates/noir/project.liquid +1 -1
- package/dist/render/templates/noir/styles.css +5 -5
- package/dist/render/templates/obsidian/portfolio.liquid +4 -4
- package/dist/render/templates/obsidian/project.liquid +1 -1
- package/dist/render/templates/obsidian/styles.css +2 -2
- package/dist/render/templates/paper/portfolio.liquid +4 -4
- package/dist/render/templates/paper/project.liquid +1 -1
- package/dist/render/templates/paper/styles.css +60 -1
- package/dist/render/templates/parallax/portfolio.liquid +4 -4
- package/dist/render/templates/parallax/project.liquid +1 -1
- package/dist/render/templates/parallax/styles.css +1 -1
- package/dist/render/templates/parchment/portfolio.liquid +4 -4
- package/dist/render/templates/parchment/project.liquid +1 -1
- package/dist/render/templates/parchment/styles.css +3 -3
- package/dist/render/templates/project.liquid +1 -1
- package/dist/render/templates/radar/portfolio.liquid +4 -4
- package/dist/render/templates/radar/project.liquid +1 -1
- package/dist/render/templates/radar/styles.css +4 -4
- package/dist/render/templates/showcase/portfolio.liquid +4 -4
- package/dist/render/templates/showcase/project.liquid +1 -1
- package/dist/render/templates/showcase/styles.css +7 -7
- package/dist/render/templates/signal/portfolio.liquid +4 -4
- package/dist/render/templates/signal/project.liquid +1 -1
- package/dist/render/templates/signal/styles.css +5 -5
- package/dist/render/templates/strata/portfolio.liquid +4 -4
- package/dist/render/templates/strata/project.liquid +1 -1
- package/dist/render/templates/strata/styles.css +3 -3
- package/dist/render/templates/styles.css +39 -28
- package/dist/render/templates/terminal/portfolio.liquid +2 -2
- package/dist/render/templates/terminal/project.liquid +1 -1
- package/dist/render/templates/verdant/portfolio.liquid +4 -4
- package/dist/render/templates/verdant/project.liquid +1 -1
- package/dist/render/templates/verdant/styles.css +17 -2
- package/dist/render/templates/zen/portfolio.liquid +4 -4
- package/dist/render/templates/zen/project.liquid +1 -1
- package/dist/render/templates/zen/styles.css +8 -8
- package/dist/routes/export.js +1 -0
- package/dist/routes/github.js +1 -1
- package/dist/routes/portfolio-render-data.js +17 -3
- package/dist/routes/preview.js +33 -3
- package/dist/routes/project-session-upload.js +4 -3
- package/dist/routes/publish.js +120 -17
- package/dist/settings.js +14 -1
- package/package.json +1 -1
- package/dist/public/assets/index-CMyamplX.css +0 -1
|
@@ -98,17 +98,17 @@
|
|
|
98
98
|
{% for p in projects %}
|
|
99
99
|
<article class="chalk-card fade-in">
|
|
100
100
|
<h3 class="project-name"><a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a></h3>
|
|
101
|
-
{% if p.
|
|
102
|
-
<p class="project-narrative">{{ p.
|
|
101
|
+
{% if p.tagline != blank %}
|
|
102
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
103
103
|
{% endif %}
|
|
104
104
|
<div class="project-meta" aria-label="Project statistics">
|
|
105
105
|
<span>{{ p.totalSessions }} sessions</span>
|
|
106
106
|
<span>{{ p.totalDurationMinutes | formatDuration }}</span>
|
|
107
107
|
<span>{{ p.totalLoc | formatLoc }} LOC</span>
|
|
108
108
|
</div>
|
|
109
|
-
{% if p.
|
|
109
|
+
{% if p.profileSkills.size > 0 %}
|
|
110
110
|
<ul class="skills-list" aria-label="Skills">
|
|
111
|
-
{% for skill in p.
|
|
111
|
+
{% for skill in p.profileSkills %}
|
|
112
112
|
<li class="skill-chip">{{ skill }}</li>
|
|
113
113
|
{% endfor %}
|
|
114
114
|
</ul>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project chalk" data-render-version="2" data-template="chalk"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project chalk" data-render-version="2" data-template="chalk"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} SVG filters {%- endcomment -%}
|
|
4
4
|
<svg class="svg-filters" aria-hidden="true">
|
|
@@ -326,7 +326,7 @@ a:visited { color: inherit; }
|
|
|
326
326
|
}
|
|
327
327
|
.stat-label {
|
|
328
328
|
font-family: var(--font-mono);
|
|
329
|
-
font-size:
|
|
329
|
+
font-size: 12px;
|
|
330
330
|
text-transform: uppercase;
|
|
331
331
|
letter-spacing: 0.06em;
|
|
332
332
|
color: var(--fg-muted);
|
|
@@ -389,7 +389,7 @@ a:visited { color: inherit; }
|
|
|
389
389
|
}
|
|
390
390
|
.stat-item-label {
|
|
391
391
|
font-family: var(--font-mono);
|
|
392
|
-
font-size:
|
|
392
|
+
font-size: 12px;
|
|
393
393
|
text-transform: uppercase;
|
|
394
394
|
letter-spacing: 0.06em;
|
|
395
395
|
color: var(--fg-muted);
|
|
@@ -1156,6 +1156,48 @@ a.project-card:hover, a.session-card:hover {
|
|
|
1156
1156
|
}
|
|
1157
1157
|
}
|
|
1158
1158
|
|
|
1159
|
+
@media (max-width: 480px) {
|
|
1160
|
+
.hero {
|
|
1161
|
+
padding: 24px 0 20px;
|
|
1162
|
+
}
|
|
1163
|
+
.hero h1 {
|
|
1164
|
+
font-size: 1.5rem;
|
|
1165
|
+
}
|
|
1166
|
+
.heyiam-project .hero h1,
|
|
1167
|
+
.heyiam-session .hero h1 {
|
|
1168
|
+
font-size: 1.375rem;
|
|
1169
|
+
}
|
|
1170
|
+
.stats-grid {
|
|
1171
|
+
grid-template-columns: 1fr;
|
|
1172
|
+
}
|
|
1173
|
+
.chalk-card {
|
|
1174
|
+
padding: 16px;
|
|
1175
|
+
}
|
|
1176
|
+
.project-name {
|
|
1177
|
+
font-size: 1.125rem;
|
|
1178
|
+
}
|
|
1179
|
+
.sessions-table {
|
|
1180
|
+
font-size: 11px;
|
|
1181
|
+
}
|
|
1182
|
+
.sessions-table thead th,
|
|
1183
|
+
.sessions-table tbody td {
|
|
1184
|
+
padding: 6px 4px;
|
|
1185
|
+
}
|
|
1186
|
+
.agent-row {
|
|
1187
|
+
grid-template-columns: 80px 1fr 48px;
|
|
1188
|
+
gap: 6px;
|
|
1189
|
+
font-size: 12px;
|
|
1190
|
+
}
|
|
1191
|
+
.hero-meta {
|
|
1192
|
+
flex-direction: column;
|
|
1193
|
+
gap: 4px;
|
|
1194
|
+
}
|
|
1195
|
+
.profile-links {
|
|
1196
|
+
flex-direction: column;
|
|
1197
|
+
gap: 4px;
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1159
1201
|
|
|
1160
1202
|
/* Live-edit empty field hiding */
|
|
1161
1203
|
[data-portfolio-empty="true"] { display: none; }
|
|
@@ -126,17 +126,17 @@
|
|
|
126
126
|
<div class="project-card-header">
|
|
127
127
|
<h3><a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a></h3>
|
|
128
128
|
</div>
|
|
129
|
-
{% if p.
|
|
130
|
-
<p class="project-card-narrative">{{ p.
|
|
129
|
+
{% if p.tagline != blank %}
|
|
130
|
+
<p class="project-card-narrative">{{ p.tagline }}</p>
|
|
131
131
|
{% endif %}
|
|
132
132
|
<div class="project-card-stats">
|
|
133
133
|
<span><span class="val">{{ p.totalSessions }}</span> sessions</span>
|
|
134
134
|
<span><span class="val">{{ p.totalDurationMinutes | formatDuration }}</span></span>
|
|
135
135
|
<span><span class="val">{{ p.totalLoc | formatLoc }}</span> LOC</span>
|
|
136
136
|
</div>
|
|
137
|
-
{% if p.
|
|
137
|
+
{% if p.profileSkills.size > 0 %}
|
|
138
138
|
<div class="skill-pins">
|
|
139
|
-
{% for skill in p.
|
|
139
|
+
{% for skill in p.profileSkills %}
|
|
140
140
|
<span class="skill-pin">{{ skill }}</span>
|
|
141
141
|
{% endfor %}
|
|
142
142
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project circuit" data-render-version="2" data-template="circuit"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project circuit" data-render-version="2" data-template="circuit"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Breadcrumb {%- endcomment -%}
|
|
4
4
|
<div class="breadcrumb" aria-label="Breadcrumb">
|
|
@@ -119,17 +119,17 @@
|
|
|
119
119
|
<div class="cos-project-card-header">
|
|
120
120
|
<h3><a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a></h3>
|
|
121
121
|
</div>
|
|
122
|
-
{% if p.
|
|
123
|
-
<p class="cos-project-card-narrative">{{ p.
|
|
122
|
+
{% if p.tagline != blank %}
|
|
123
|
+
<p class="cos-project-card-narrative">{{ p.tagline }}</p>
|
|
124
124
|
{% endif %}
|
|
125
125
|
<div class="cos-project-card-meta">
|
|
126
126
|
<span><strong>{{ p.totalSessions }}</strong> sessions</span>
|
|
127
127
|
<span><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
|
|
128
128
|
<span><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
|
|
129
129
|
</div>
|
|
130
|
-
{% if p.
|
|
130
|
+
{% if p.profileSkills.size > 0 %}
|
|
131
131
|
<div class="cos-skill-chips">
|
|
132
|
-
{% for skill in p.
|
|
132
|
+
{% for skill in p.profileSkills %}
|
|
133
133
|
<span class="cos-skill-chip">{{ skill }}</span>
|
|
134
134
|
{% endfor %}
|
|
135
135
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project cosmos" data-render-version="2" data-template="cosmos"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project cosmos" data-render-version="2" data-template="cosmos"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
<div class="starfield" aria-hidden="true"></div>
|
|
4
4
|
|
|
@@ -246,7 +246,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
|
|
|
246
246
|
}
|
|
247
247
|
.cosmos .cos-narrative p {
|
|
248
248
|
color: var(--cos-text-secondary);
|
|
249
|
-
font-size:
|
|
249
|
+
font-size: 1rem;
|
|
250
250
|
line-height: 1.75;
|
|
251
251
|
margin-block-end: 1rem;
|
|
252
252
|
}
|
|
@@ -431,7 +431,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
|
|
|
431
431
|
}
|
|
432
432
|
.cosmos .cos-project-card-narrative {
|
|
433
433
|
color: var(--cos-text-secondary);
|
|
434
|
-
font-size:
|
|
434
|
+
font-size: 1rem;
|
|
435
435
|
line-height: 1.6;
|
|
436
436
|
margin-block-end: 1.25rem;
|
|
437
437
|
}
|
|
@@ -710,7 +710,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
|
|
|
710
710
|
}
|
|
711
711
|
.cosmos .cos-decision p {
|
|
712
712
|
color: var(--cos-text-secondary);
|
|
713
|
-
font-size:
|
|
713
|
+
font-size: 1rem;
|
|
714
714
|
line-height: 1.5;
|
|
715
715
|
}
|
|
716
716
|
|
|
@@ -890,7 +890,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
|
|
|
890
890
|
}
|
|
891
891
|
.cosmos .cos-dev-take blockquote {
|
|
892
892
|
color: var(--cos-text-secondary);
|
|
893
|
-
font-size:
|
|
893
|
+
font-size: 1rem;
|
|
894
894
|
line-height: 1.7;
|
|
895
895
|
font-style: italic;
|
|
896
896
|
border: none;
|
|
@@ -92,15 +92,15 @@
|
|
|
92
92
|
<h3 class="dl-project-title">
|
|
93
93
|
<a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a>
|
|
94
94
|
</h3>
|
|
95
|
-
{% if p.
|
|
96
|
-
<p class="dl-project-narrative">{{ p.
|
|
95
|
+
{% if p.tagline != blank %}
|
|
96
|
+
<p class="dl-project-narrative">{{ p.tagline }}</p>
|
|
97
97
|
{% endif %}
|
|
98
98
|
<p class="dl-project-meta">
|
|
99
99
|
{{ p.totalSessions }} session{% if p.totalSessions != 1 %}s{% endif %} · {{ p.totalDurationMinutes | formatDuration }} · {{ p.totalLoc | localeNumber }} LOC
|
|
100
100
|
</p>
|
|
101
|
-
{% if p.
|
|
101
|
+
{% if p.profileSkills.size > 0 %}
|
|
102
102
|
<div class="dl-project-skills">
|
|
103
|
-
{% for skill in p.
|
|
103
|
+
{% for skill in p.profileSkills %}
|
|
104
104
|
<span class="dl-skill-chip">{{ skill }}</span>
|
|
105
105
|
{% endfor %}
|
|
106
106
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project daylight" data-render-version="2" data-template="daylight"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project daylight" data-render-version="2" data-template="daylight"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
<div class="dl-container">
|
|
4
4
|
|
|
@@ -86,17 +86,17 @@
|
|
|
86
86
|
{% for p in projects %}
|
|
87
87
|
<a href="/{{ user.username }}/{{ p.slug }}" class="ed-project-card">
|
|
88
88
|
<h3 class="ed-project-card-title">{{ p.title }}</h3>
|
|
89
|
-
{% if p.
|
|
90
|
-
<p class="ed-project-card-narrative">{{ p.
|
|
89
|
+
{% if p.tagline != blank %}
|
|
90
|
+
<p class="ed-project-card-narrative">{{ p.tagline }}</p>
|
|
91
91
|
{% endif %}
|
|
92
92
|
<div class="ed-project-card-stats">
|
|
93
93
|
<span class="ed-project-card-stat"><strong>{{ p.totalSessions }}</strong> sessions</span>
|
|
94
94
|
<span class="ed-project-card-stat"><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
|
|
95
95
|
<span class="ed-project-card-stat"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
|
|
96
96
|
</div>
|
|
97
|
-
{% if p.
|
|
97
|
+
{% if p.profileSkills.size > 0 %}
|
|
98
98
|
<div class="ed-chip-list">
|
|
99
|
-
{% for skill in p.
|
|
99
|
+
{% for skill in p.profileSkills %}
|
|
100
100
|
<span class="chip chip--violet">{{ skill }}</span>
|
|
101
101
|
{% endfor %}
|
|
102
102
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project editorial" data-render-version="2" data-template="editorial"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project editorial" data-render-version="2" data-template="editorial"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Breadcrumb {%- endcomment -%}
|
|
4
4
|
<div class="ed-breadcrumb" aria-label="Breadcrumb">
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
.editorial .ed-stat-label {
|
|
157
157
|
display: block;
|
|
158
158
|
font-family: var(--font-mono);
|
|
159
|
-
font-size: 0.
|
|
159
|
+
font-size: 0.75rem;
|
|
160
160
|
text-transform: uppercase;
|
|
161
161
|
letter-spacing: 0.05em;
|
|
162
162
|
color: var(--on-surface-variant);
|
|
@@ -707,6 +707,11 @@
|
|
|
707
707
|
border-radius: 3px;
|
|
708
708
|
transition: width 0.6s ease-out;
|
|
709
709
|
}
|
|
710
|
+
@media (prefers-reduced-motion: reduce) {
|
|
711
|
+
.editorial .ed-agent-bar-fill {
|
|
712
|
+
transition: none;
|
|
713
|
+
}
|
|
714
|
+
}
|
|
710
715
|
.editorial .ed-agent-meta {
|
|
711
716
|
font-family: var(--font-mono);
|
|
712
717
|
font-size: 0.6875rem;
|
|
@@ -88,12 +88,12 @@
|
|
|
88
88
|
<h3 class="project-card-title">{{ p.title }}</h3>
|
|
89
89
|
<span class="project-card-arrow" aria-hidden="true">→</span>
|
|
90
90
|
</div>
|
|
91
|
-
{% if p.
|
|
92
|
-
<p class="project-card-narrative">{{ p.
|
|
91
|
+
{% if p.tagline != blank %}
|
|
92
|
+
<p class="project-card-narrative">{{ p.tagline }}</p>
|
|
93
93
|
{% endif %}
|
|
94
|
-
{% if p.
|
|
94
|
+
{% if p.profileSkills.size > 0 %}
|
|
95
95
|
<div class="project-card-skills">
|
|
96
|
-
{% for skill in p.
|
|
96
|
+
{% for skill in p.profileSkills %}
|
|
97
97
|
<span class="skill-chip">{{ skill }}</span>
|
|
98
98
|
{% endfor %}
|
|
99
99
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project ember" data-render-version="2" data-template="ember"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project ember" data-render-version="2" data-template="ember"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Breadcrumb {%- endcomment -%}
|
|
4
4
|
<div class="breadcrumb ember-section" aria-label="Breadcrumb">
|
|
@@ -302,7 +302,7 @@ body { background: var(--bg); color: var(--text); }
|
|
|
302
302
|
}
|
|
303
303
|
.ember .stat-label {
|
|
304
304
|
font-family: var(--font-mono);
|
|
305
|
-
font-size:
|
|
305
|
+
font-size: 12px;
|
|
306
306
|
color: var(--text-muted);
|
|
307
307
|
text-transform: uppercase;
|
|
308
308
|
letter-spacing: 0.05em;
|
|
@@ -319,7 +319,7 @@ body { background: var(--bg); color: var(--text); }
|
|
|
319
319
|
white-space: nowrap;
|
|
320
320
|
}
|
|
321
321
|
.ember.heyiam-project .stat-label {
|
|
322
|
-
font-size:
|
|
322
|
+
font-size: 12px;
|
|
323
323
|
margin-top: 2px;
|
|
324
324
|
}
|
|
325
325
|
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
<div class="project-card-header">
|
|
92
92
|
<a href="/{{ user.username }}/{{ p.slug }}" class="project-name">{{ p.title }}</a>
|
|
93
93
|
</div>
|
|
94
|
-
{% if p.
|
|
95
|
-
<p class="project-narrative">{{ p.
|
|
94
|
+
{% if p.tagline != blank %}
|
|
95
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
96
96
|
{% endif %}
|
|
97
|
-
{% if p.
|
|
97
|
+
{% if p.profileSkills.size > 0 %}
|
|
98
98
|
<div class="project-skills">
|
|
99
|
-
{% for skill in p.
|
|
99
|
+
{% for skill in p.profileSkills %}
|
|
100
100
|
<span class="skill-chip">{{ skill }}</span>
|
|
101
101
|
{% endfor %}
|
|
102
102
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project glacier" data-render-version="2" data-template="glacier"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project glacier" data-render-version="2" data-template="glacier"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Breadcrumb {%- endcomment -%}
|
|
4
4
|
<div class="container">
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
font-size: 24px;
|
|
165
165
|
}
|
|
166
166
|
.glacier.heyiam-project .stat-label {
|
|
167
|
-
font-size:
|
|
167
|
+
font-size: 12px;
|
|
168
168
|
text-transform: uppercase;
|
|
169
169
|
letter-spacing: 0.04em;
|
|
170
170
|
}
|
|
@@ -817,7 +817,7 @@ a.session-card:hover, a.featured-card:hover {
|
|
|
817
817
|
}
|
|
818
818
|
.session-stat-label {
|
|
819
819
|
font-family: var(--font-mono);
|
|
820
|
-
font-size:
|
|
820
|
+
font-size: 12px;
|
|
821
821
|
color: var(--fg-muted);
|
|
822
822
|
text-transform: uppercase;
|
|
823
823
|
letter-spacing: 0.04em;
|
|
@@ -151,17 +151,17 @@
|
|
|
151
151
|
<h2 class="project-title">{{ p.title }}</h2>
|
|
152
152
|
<svg class="project-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="7" y1="17" x2="17" y2="7"/><polyline points="7 7 17 7 17 17"/></svg>
|
|
153
153
|
</div>
|
|
154
|
-
{% if p.
|
|
155
|
-
<p class="project-narrative">{{ p.
|
|
154
|
+
{% if p.tagline != blank %}
|
|
155
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
156
156
|
{% endif %}
|
|
157
157
|
<div class="project-meta">
|
|
158
158
|
<span class="project-meta-item"><strong>{{ p.totalSessions }}</strong> sessions</span>
|
|
159
159
|
<span class="project-meta-item"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
|
|
160
160
|
<span class="project-meta-item"><strong>{{ p.totalLoc | formatLoc }}</strong> LOC</span>
|
|
161
161
|
</div>
|
|
162
|
-
{% if p.
|
|
162
|
+
{% if p.profileSkills.size > 0 %}
|
|
163
163
|
<div class="project-skills">
|
|
164
|
-
{% for skill in p.
|
|
164
|
+
{% for skill in p.profileSkills %}
|
|
165
165
|
<span class="skill-chip chip">{{ skill }}</span>
|
|
166
166
|
{% endfor %}
|
|
167
167
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project grid" data-render-version="2" data-template="grid"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project grid" data-render-version="2" data-template="grid"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
<div class="container">
|
|
4
4
|
<div class="breadcrumb" aria-label="Breadcrumb">
|
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
}
|
|
334
334
|
.grid .stat-label {
|
|
335
335
|
font-family: var(--font-mono);
|
|
336
|
-
font-size:
|
|
336
|
+
font-size: 12px;
|
|
337
337
|
text-transform: uppercase;
|
|
338
338
|
letter-spacing: 0.06em;
|
|
339
339
|
color: var(--fg-muted);
|
|
@@ -1435,7 +1435,7 @@
|
|
|
1435
1435
|
gap: 4px;
|
|
1436
1436
|
}
|
|
1437
1437
|
.grid .nav-links a {
|
|
1438
|
-
font-size:
|
|
1438
|
+
font-size: 14px;
|
|
1439
1439
|
padding: 6px 10px;
|
|
1440
1440
|
}
|
|
1441
1441
|
}
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
{% if projects.size > 0 %}
|
|
82
82
|
<section class="section" aria-label="Projects">
|
|
83
83
|
<div class="section-tag">Projects</div>
|
|
84
|
-
<h2 class="section-title">{{ projects.size }} project{
|
|
84
|
+
<h2 class="section-title">{{ projects.size }} project{% if projects.size != 1 %}s{% endif %} built with AI</h2>
|
|
85
85
|
<p class="section-desc">Each project is a case study with real sessions, real decisions, and real stats.</p>
|
|
86
86
|
|
|
87
87
|
<div class="projects-grid">
|
|
@@ -107,12 +107,12 @@
|
|
|
107
107
|
<span class="project-stat-label">Lines changed</span>
|
|
108
108
|
</div>
|
|
109
109
|
</div>
|
|
110
|
-
{% if p.
|
|
111
|
-
<div class="narrative-card">{{ p.
|
|
110
|
+
{% if p.tagline != blank %}
|
|
111
|
+
<div class="narrative-card">{{ p.tagline }}</div>
|
|
112
112
|
{% endif %}
|
|
113
|
-
{% if p.
|
|
113
|
+
{% if p.profileSkills.size > 0 %}
|
|
114
114
|
<div class="chips">
|
|
115
|
-
{% for skill in p.
|
|
115
|
+
{% for skill in p.profileSkills %}
|
|
116
116
|
<span>{{ skill }}</span>
|
|
117
117
|
{% endfor %}
|
|
118
118
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project kinetic" data-render-version="2" data-template="kinetic"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project kinetic" data-render-version="2" data-template="kinetic"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Hero {%- endcomment -%}
|
|
4
4
|
<section class="hero hero--project" aria-label="Project header">
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
--font-display: 'Space Grotesk', sans-serif;
|
|
19
19
|
--font-body: 'Inter', -apple-system, sans-serif;
|
|
20
20
|
--font-mono: 'IBM Plex Mono', monospace;
|
|
21
|
+
/* Scale up on wide monitors (wall-mounted 2k+) instead of leaving a dead
|
|
22
|
+
band on each side, but keep a ceiling so line length doesn't go wild. */
|
|
23
|
+
--content-max: min(2000px, calc(100vw - 4rem));
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
body {
|
|
@@ -66,6 +69,9 @@ body {
|
|
|
66
69
|
.kinetic .hero-content {
|
|
67
70
|
position: relative;
|
|
68
71
|
z-index: 1;
|
|
72
|
+
width: 100%;
|
|
73
|
+
max-width: var(--content-max);
|
|
74
|
+
margin: 0 auto;
|
|
69
75
|
}
|
|
70
76
|
.kinetic .eyebrow {
|
|
71
77
|
display: inline-flex; align-items: center; gap: 0.75rem;
|
|
@@ -167,11 +173,11 @@ body {
|
|
|
167
173
|
.kinetic .stats-row {
|
|
168
174
|
display: flex;
|
|
169
175
|
gap: 2.5rem;
|
|
170
|
-
padding: 2rem
|
|
176
|
+
padding: 2rem 2.5rem;
|
|
171
177
|
border-top: 1px solid var(--border);
|
|
172
178
|
border-bottom: 1px solid var(--border);
|
|
173
179
|
margin: 0 auto;
|
|
174
|
-
max-width:
|
|
180
|
+
max-width: var(--content-max);
|
|
175
181
|
}
|
|
176
182
|
.kinetic .stat-item {
|
|
177
183
|
display: flex;
|
|
@@ -184,7 +190,7 @@ body {
|
|
|
184
190
|
}
|
|
185
191
|
.kinetic .stat-label {
|
|
186
192
|
font-family: var(--font-mono);
|
|
187
|
-
font-size: 0.
|
|
193
|
+
font-size: 0.75rem;
|
|
188
194
|
text-transform: uppercase;
|
|
189
195
|
letter-spacing: 0.08em;
|
|
190
196
|
color: var(--text-3);
|
|
@@ -216,7 +222,7 @@ body {
|
|
|
216
222
|
}
|
|
217
223
|
.kinetic .leverage-row .leverage-sub {
|
|
218
224
|
font-family: var(--font-mono);
|
|
219
|
-
font-size: 0.
|
|
225
|
+
font-size: 0.75rem;
|
|
220
226
|
text-transform: uppercase;
|
|
221
227
|
letter-spacing: 0.08em;
|
|
222
228
|
color: var(--text-3);
|
|
@@ -242,7 +248,7 @@ body {
|
|
|
242
248
|
display: flex;
|
|
243
249
|
justify-content: space-between;
|
|
244
250
|
font-family: var(--font-mono);
|
|
245
|
-
font-size: 0.
|
|
251
|
+
font-size: 0.75rem;
|
|
246
252
|
text-transform: uppercase;
|
|
247
253
|
letter-spacing: 0.08em;
|
|
248
254
|
color: var(--text-3);
|
|
@@ -251,7 +257,7 @@ body {
|
|
|
251
257
|
/* ── Sections ── */
|
|
252
258
|
.kinetic .section {
|
|
253
259
|
padding: 6rem 2.5rem;
|
|
254
|
-
max-width:
|
|
260
|
+
max-width: var(--content-max);
|
|
255
261
|
margin: 0 auto;
|
|
256
262
|
}
|
|
257
263
|
.kinetic .section--flush { padding-top: 0; }
|
|
@@ -348,7 +354,7 @@ body {
|
|
|
348
354
|
}
|
|
349
355
|
.kinetic .project-stat-label {
|
|
350
356
|
font-family: var(--font-mono);
|
|
351
|
-
font-size: 0.
|
|
357
|
+
font-size: 0.75rem;
|
|
352
358
|
text-transform: uppercase;
|
|
353
359
|
letter-spacing: 0.08em;
|
|
354
360
|
color: var(--text-3);
|
|
@@ -491,7 +497,7 @@ body {
|
|
|
491
497
|
}
|
|
492
498
|
.kinetic .split-stat-label {
|
|
493
499
|
font-family: var(--font-mono);
|
|
494
|
-
font-size: 0.
|
|
500
|
+
font-size: 0.75rem;
|
|
495
501
|
color: var(--text-3);
|
|
496
502
|
text-transform: uppercase;
|
|
497
503
|
letter-spacing: 0.08em;
|
|
@@ -507,7 +513,7 @@ body {
|
|
|
507
513
|
/* ── Project hero (project page) ── */
|
|
508
514
|
.kinetic .hero--project {
|
|
509
515
|
min-height: 60vh;
|
|
510
|
-
max-width:
|
|
516
|
+
max-width: var(--content-max);
|
|
511
517
|
margin: 0 auto;
|
|
512
518
|
}
|
|
513
519
|
.kinetic .hero--project h1 {
|
|
@@ -527,7 +533,7 @@ body {
|
|
|
527
533
|
padding: 2rem 2.5rem;
|
|
528
534
|
border-top: 1px solid var(--border);
|
|
529
535
|
border-bottom: 1px solid var(--border);
|
|
530
|
-
max-width:
|
|
536
|
+
max-width: var(--content-max);
|
|
531
537
|
margin: 0 auto;
|
|
532
538
|
}
|
|
533
539
|
|
|
@@ -674,7 +680,7 @@ body {
|
|
|
674
680
|
padding: 8rem 2.5rem 3rem;
|
|
675
681
|
position: relative;
|
|
676
682
|
overflow: hidden;
|
|
677
|
-
max-width:
|
|
683
|
+
max-width: var(--content-max);
|
|
678
684
|
margin: 0 auto;
|
|
679
685
|
}
|
|
680
686
|
.kinetic .hero--session h1 {
|
|
@@ -704,7 +710,7 @@ body {
|
|
|
704
710
|
|
|
705
711
|
/* ── Dev take section ── */
|
|
706
712
|
.kinetic .dev-take-section {
|
|
707
|
-
max-width:
|
|
713
|
+
max-width: var(--content-max);
|
|
708
714
|
margin: 0 auto;
|
|
709
715
|
padding: 0 2.5rem 3rem;
|
|
710
716
|
}
|
|
@@ -714,7 +720,7 @@ body {
|
|
|
714
720
|
display: grid;
|
|
715
721
|
grid-template-columns: 1fr 320px;
|
|
716
722
|
gap: 2.5rem;
|
|
717
|
-
max-width:
|
|
723
|
+
max-width: var(--content-max);
|
|
718
724
|
margin: 0 auto;
|
|
719
725
|
padding: 0 2.5rem 6rem;
|
|
720
726
|
}
|
|
@@ -900,7 +906,7 @@ body {
|
|
|
900
906
|
border-top: 1px solid var(--border);
|
|
901
907
|
display: flex; justify-content: space-between;
|
|
902
908
|
font-size: 0.75rem; color: var(--text-3);
|
|
903
|
-
max-width:
|
|
909
|
+
max-width: var(--content-max); margin: 0 auto;
|
|
904
910
|
}
|
|
905
911
|
.kinetic .footer a { color: var(--text-3); }
|
|
906
912
|
.kinetic .footer a:hover { color: var(--orange); }
|
|
@@ -142,17 +142,17 @@
|
|
|
142
142
|
<span class="project-card__source">{{ p.publishedCount }} session{% if p.publishedCount != 1 %}s{% endif %} published</span>
|
|
143
143
|
{% endif %}
|
|
144
144
|
</div>
|
|
145
|
-
{% if p.
|
|
146
|
-
<p class="project-card__narrative">{{ p.
|
|
145
|
+
{% if p.tagline != blank %}
|
|
146
|
+
<p class="project-card__narrative">{{ p.tagline }}</p>
|
|
147
147
|
{% endif %}
|
|
148
148
|
<div class="project-card__stats">
|
|
149
149
|
<span><strong>{{ p.totalSessions }}</strong> sessions</span>
|
|
150
150
|
<span><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
|
|
151
151
|
<span><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
|
|
152
152
|
</div>
|
|
153
|
-
{% if p.
|
|
153
|
+
{% if p.profileSkills.size > 0 %}
|
|
154
154
|
<div class="project-card__skills">
|
|
155
|
-
{% for skill in p.
|
|
155
|
+
{% for skill in p.profileSkills %}
|
|
156
156
|
<span class="skill-chip">{{ skill }}</span>
|
|
157
157
|
{% endfor %}
|
|
158
158
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="heyiam-project meridian" data-render-version="2" data-template="meridian"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
1
|
+
<div class="heyiam-project meridian" data-render-version="2" data-template="meridian"{% if sessionBaseUrl %} data-session-base-url="{{ sessionBaseUrl }}"{% endif %} data-session-suffix="{{ sessionSuffix }}" data-username="{{ user.username }}" data-project-slug="{{ project.slug }}">
|
|
2
2
|
|
|
3
3
|
{%- comment -%} Topographic contour background {%- endcomment -%}
|
|
4
4
|
<div class="topo-bg" aria-hidden="true">
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
<li class="mn-project-item">
|
|
53
53
|
<a href="/{{ user.username }}/{{ p.slug }}" class="mn-project-link">{{ p.title }}</a>
|
|
54
54
|
<span class="mn-meta">{{ p.totalSessions }} sessions · {{ p.totalDurationMinutes | formatDuration }} · {{ p.totalLoc | formatLoc }} lines</span>
|
|
55
|
-
{% if p.
|
|
56
|
-
{% if p.
|
|
57
|
-
<span class="mn-meta mn-skill-line">{% for skill in p.
|
|
55
|
+
{% if p.tagline != blank %}<span class="mn-meta">{{ p.tagline }}</span>{% endif %}
|
|
56
|
+
{% if p.profileSkills.size > 0 %}
|
|
57
|
+
<span class="mn-meta mn-skill-line">{% for skill in p.profileSkills %}{{ skill }}{% unless forloop.last %}, {% endunless %}{% endfor %}</span>
|
|
58
58
|
{% endif %}
|
|
59
59
|
</li>
|
|
60
60
|
{% endfor %}
|