heyiam 0.3.6 → 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/llm/project-enhance.js +11 -5
- package/dist/public/assets/{index-7mUuxgqY.js → index-BDh4ne9u.js} +1 -1
- package/dist/public/assets/index-ByoBtx7P.css +1 -0
- package/dist/public/index.html +2 -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/styles.css +6 -6
- package/dist/render/templates/bauhaus/portfolio.liquid +4 -4
- package/dist/render/templates/bauhaus/styles.css +1 -1
- package/dist/render/templates/blueprint/portfolio.liquid +4 -4
- package/dist/render/templates/blueprint/styles.css +1 -1
- package/dist/render/templates/canvas/portfolio.liquid +4 -4
- package/dist/render/templates/canvas/styles.css +2 -2
- package/dist/render/templates/carbon/portfolio.liquid +4 -4
- package/dist/render/templates/carbon/styles.css +7 -7
- package/dist/render/templates/chalk/portfolio.liquid +4 -4
- package/dist/render/templates/chalk/styles.css +44 -2
- package/dist/render/templates/circuit/portfolio.liquid +4 -4
- package/dist/render/templates/cosmos/portfolio.liquid +4 -4
- package/dist/render/templates/cosmos/styles.css +4 -4
- package/dist/render/templates/daylight/portfolio.liquid +4 -4
- package/dist/render/templates/editorial/portfolio.liquid +4 -4
- package/dist/render/templates/editorial/styles.css +6 -1
- package/dist/render/templates/ember/portfolio.liquid +4 -4
- package/dist/render/templates/ember/styles.css +2 -2
- package/dist/render/templates/glacier/portfolio.liquid +4 -4
- package/dist/render/templates/glacier/styles.css +2 -2
- package/dist/render/templates/grid/portfolio.liquid +4 -4
- package/dist/render/templates/grid/styles.css +2 -2
- package/dist/render/templates/kinetic/portfolio.liquid +4 -4
- package/dist/render/templates/kinetic/styles.css +5 -5
- package/dist/render/templates/meridian/portfolio.liquid +4 -4
- package/dist/render/templates/meridian/styles.css +1 -1
- package/dist/render/templates/minimal/portfolio.liquid +3 -3
- package/dist/render/templates/mono/portfolio.liquid +4 -4
- package/dist/render/templates/mono/styles.css +15 -1
- package/dist/render/templates/neon/portfolio.liquid +4 -4
- package/dist/render/templates/neon/styles.css +11 -20
- package/dist/render/templates/noir/portfolio.liquid +4 -4
- package/dist/render/templates/noir/styles.css +5 -5
- package/dist/render/templates/obsidian/portfolio.liquid +4 -4
- package/dist/render/templates/obsidian/styles.css +2 -2
- package/dist/render/templates/paper/portfolio.liquid +4 -4
- package/dist/render/templates/paper/styles.css +60 -1
- package/dist/render/templates/parallax/portfolio.liquid +4 -4
- package/dist/render/templates/parallax/styles.css +1 -1
- package/dist/render/templates/parchment/portfolio.liquid +4 -4
- package/dist/render/templates/parchment/styles.css +3 -3
- package/dist/render/templates/radar/portfolio.liquid +4 -4
- package/dist/render/templates/radar/styles.css +4 -4
- package/dist/render/templates/showcase/portfolio.liquid +4 -4
- package/dist/render/templates/showcase/styles.css +7 -7
- package/dist/render/templates/signal/portfolio.liquid +4 -4
- package/dist/render/templates/signal/styles.css +5 -5
- package/dist/render/templates/strata/portfolio.liquid +4 -4
- 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/verdant/portfolio.liquid +4 -4
- package/dist/render/templates/verdant/styles.css +17 -2
- package/dist/render/templates/zen/portfolio.liquid +4 -4
- 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 +15 -1
- package/dist/routes/preview.js +15 -1
- package/dist/routes/publish.js +2 -1
- package/package.json +1 -1
- package/dist/public/assets/index-CMyamplX.css +0 -1
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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
|
}
|
|
@@ -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>
|
|
@@ -190,7 +190,7 @@ body {
|
|
|
190
190
|
}
|
|
191
191
|
.kinetic .stat-label {
|
|
192
192
|
font-family: var(--font-mono);
|
|
193
|
-
font-size: 0.
|
|
193
|
+
font-size: 0.75rem;
|
|
194
194
|
text-transform: uppercase;
|
|
195
195
|
letter-spacing: 0.08em;
|
|
196
196
|
color: var(--text-3);
|
|
@@ -222,7 +222,7 @@ body {
|
|
|
222
222
|
}
|
|
223
223
|
.kinetic .leverage-row .leverage-sub {
|
|
224
224
|
font-family: var(--font-mono);
|
|
225
|
-
font-size: 0.
|
|
225
|
+
font-size: 0.75rem;
|
|
226
226
|
text-transform: uppercase;
|
|
227
227
|
letter-spacing: 0.08em;
|
|
228
228
|
color: var(--text-3);
|
|
@@ -248,7 +248,7 @@ body {
|
|
|
248
248
|
display: flex;
|
|
249
249
|
justify-content: space-between;
|
|
250
250
|
font-family: var(--font-mono);
|
|
251
|
-
font-size: 0.
|
|
251
|
+
font-size: 0.75rem;
|
|
252
252
|
text-transform: uppercase;
|
|
253
253
|
letter-spacing: 0.08em;
|
|
254
254
|
color: var(--text-3);
|
|
@@ -354,7 +354,7 @@ body {
|
|
|
354
354
|
}
|
|
355
355
|
.kinetic .project-stat-label {
|
|
356
356
|
font-family: var(--font-mono);
|
|
357
|
-
font-size: 0.
|
|
357
|
+
font-size: 0.75rem;
|
|
358
358
|
text-transform: uppercase;
|
|
359
359
|
letter-spacing: 0.08em;
|
|
360
360
|
color: var(--text-3);
|
|
@@ -497,7 +497,7 @@ body {
|
|
|
497
497
|
}
|
|
498
498
|
.kinetic .split-stat-label {
|
|
499
499
|
font-family: var(--font-mono);
|
|
500
|
-
font-size: 0.
|
|
500
|
+
font-size: 0.75rem;
|
|
501
501
|
color: var(--text-3);
|
|
502
502
|
text-transform: uppercase;
|
|
503
503
|
letter-spacing: 0.08em;
|
|
@@ -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>
|
|
@@ -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 %}
|
|
@@ -119,17 +119,17 @@
|
|
|
119
119
|
<h3 class="project-name">{{ p.title }}</h3>
|
|
120
120
|
</div>
|
|
121
121
|
<div class="project-card-body">
|
|
122
|
-
{% if p.
|
|
123
|
-
<p class="project-narrative">{{ p.
|
|
122
|
+
{% if p.tagline != blank %}
|
|
123
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
124
124
|
{% endif %}
|
|
125
125
|
<div class="project-stats-row">
|
|
126
126
|
<span class="project-stat"><strong>{{ p.totalSessions }}</strong> sessions</span>
|
|
127
127
|
<span class="project-stat"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
|
|
128
128
|
<span class="project-stat"><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
|
|
129
129
|
</div>
|
|
130
|
-
{% if p.
|
|
130
|
+
{% if p.profileSkills.size > 0 %}
|
|
131
131
|
<div class="project-tags">
|
|
132
|
-
{% for skill in p.
|
|
132
|
+
{% for skill in p.profileSkills %}
|
|
133
133
|
<span class="tag">[{{ skill }}]</span>
|
|
134
134
|
{% endfor %}
|
|
135
135
|
</div>
|
|
@@ -12,7 +12,7 @@ body { background: var(--mono-bg, #0a0a0a); color: var(--mono-text, #e0e0e0); }
|
|
|
12
12
|
background: var(--mono-bg, #0a0a0a);
|
|
13
13
|
color: var(--mono-text, #e0e0e0);
|
|
14
14
|
font-family: var(--font, 'JetBrains Mono', monospace);
|
|
15
|
-
font-size:
|
|
15
|
+
font-size: 16px;
|
|
16
16
|
line-height: 1.6;
|
|
17
17
|
-webkit-font-smoothing: antialiased;
|
|
18
18
|
}
|
|
@@ -996,6 +996,20 @@ body { background: var(--mono-bg, #0a0a0a); color: var(--mono-text, #e0e0e0); }
|
|
|
996
996
|
.mono .git-log-entry { font-size: 0.75rem; }
|
|
997
997
|
}
|
|
998
998
|
|
|
999
|
+
@media (max-width: 480px) {
|
|
1000
|
+
.mono .mono-page { padding: 1rem 0.75rem; }
|
|
1001
|
+
.mono .hero-title { font-size: 1.25rem; }
|
|
1002
|
+
.mono .hero-title--project { font-size: 1.25rem; }
|
|
1003
|
+
.mono .hero-title--session { font-size: 1.0625rem; }
|
|
1004
|
+
.mono .stats-row,
|
|
1005
|
+
.mono .stats-grid { grid-template-columns: 1fr; }
|
|
1006
|
+
.mono .stat-cell { padding: 0.625rem 0.75rem; }
|
|
1007
|
+
.mono .terminal-header { padding: 0.375rem 0.75rem; font-size: 0.6875rem; }
|
|
1008
|
+
.mono .ascii-label { width: 50px; font-size: 0.5625rem; }
|
|
1009
|
+
.mono .hero-meta { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
|
|
1010
|
+
.mono .hero-contact { flex-direction: column; align-items: center; gap: 0.25rem; }
|
|
1011
|
+
}
|
|
1012
|
+
|
|
999
1013
|
@media (prefers-reduced-motion: reduce) {
|
|
1000
1014
|
.mono .hero-title,
|
|
1001
1015
|
.mono .hero-title--project {
|
|
@@ -85,12 +85,12 @@
|
|
|
85
85
|
{% for p in projects %}
|
|
86
86
|
<article class="project-card fade-in">
|
|
87
87
|
<a href="/{{ user.username }}/{{ p.slug }}" class="project-title">{{ p.title }}</a>
|
|
88
|
-
{% if p.
|
|
89
|
-
<p class="project-narrative">{{ p.
|
|
88
|
+
{% if p.tagline != blank %}
|
|
89
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
90
90
|
{% endif %}
|
|
91
|
-
{% if p.
|
|
91
|
+
{% if p.profileSkills.size > 0 %}
|
|
92
92
|
<ul class="skills-list" aria-label="Skills used in {{ p.title }}">
|
|
93
|
-
{% for skill in p.
|
|
93
|
+
{% for skill in p.profileSkills %}
|
|
94
94
|
<li class="skill-chip">{{ skill }}</li>
|
|
95
95
|
{% endfor %}
|
|
96
96
|
</ul>
|
|
@@ -17,8 +17,8 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
17
17
|
--neon-cyan-dim: rgba(34, 211, 238, 0.15);
|
|
18
18
|
--neon-cyan-glow: rgba(34, 211, 238, 0.3);
|
|
19
19
|
--neon-text: #f0e6ff;
|
|
20
|
-
--neon-text-secondary: #
|
|
21
|
-
--neon-text-tertiary: #
|
|
20
|
+
--neon-text-secondary: #c4abd9;
|
|
21
|
+
--neon-text-tertiary: #a894c0;
|
|
22
22
|
--neon-border: rgba(244, 114, 182, 0.2);
|
|
23
23
|
--neon-border-cyan: rgba(34, 211, 238, 0.2);
|
|
24
24
|
--neon-font-display: 'Space Grotesk', system-ui, sans-serif;
|
|
@@ -165,10 +165,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
165
165
|
font-family: var(--neon-font-display);
|
|
166
166
|
font-size: clamp(2.25rem, 5vw, 3.5rem);
|
|
167
167
|
font-weight: 700;
|
|
168
|
-
|
|
169
|
-
-webkit-background-clip: text;
|
|
170
|
-
-webkit-text-fill-color: transparent;
|
|
171
|
-
background-clip: text;
|
|
168
|
+
color: var(--neon-text);
|
|
172
169
|
margin-bottom: 1rem;
|
|
173
170
|
line-height: 1.15;
|
|
174
171
|
}
|
|
@@ -339,7 +336,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
339
336
|
.neon .project-narrative {
|
|
340
337
|
color: var(--neon-text-secondary);
|
|
341
338
|
margin-top: 0.75rem;
|
|
342
|
-
font-size:
|
|
339
|
+
font-size: 1rem;
|
|
343
340
|
line-height: 1.65;
|
|
344
341
|
}
|
|
345
342
|
|
|
@@ -577,10 +574,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
577
574
|
font-family: var(--neon-font-display);
|
|
578
575
|
font-size: clamp(2rem, 4.5vw, 3rem);
|
|
579
576
|
font-weight: 700;
|
|
580
|
-
|
|
581
|
-
-webkit-background-clip: text;
|
|
582
|
-
-webkit-text-fill-color: transparent;
|
|
583
|
-
background-clip: text;
|
|
577
|
+
color: var(--neon-text);
|
|
584
578
|
line-height: 1.15;
|
|
585
579
|
margin-bottom: 0.75rem;
|
|
586
580
|
}
|
|
@@ -638,7 +632,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
638
632
|
.neon .narrative p {
|
|
639
633
|
color: var(--neon-text-secondary);
|
|
640
634
|
margin-bottom: 1rem;
|
|
641
|
-
font-size:
|
|
635
|
+
font-size: 1rem;
|
|
642
636
|
line-height: 1.7;
|
|
643
637
|
}
|
|
644
638
|
|
|
@@ -666,7 +660,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
666
660
|
.neon .stat-item:nth-child(odd) .value { color: var(--neon-pink); }
|
|
667
661
|
.neon .stat-item:nth-child(even) .value { color: var(--neon-cyan); }
|
|
668
662
|
.neon .stat-item .label {
|
|
669
|
-
font-size: 0.
|
|
663
|
+
font-size: 0.75rem;
|
|
670
664
|
color: var(--neon-text-tertiary);
|
|
671
665
|
margin-top: 0.15rem;
|
|
672
666
|
text-transform: uppercase;
|
|
@@ -789,7 +783,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
789
783
|
border: 1px solid var(--neon-border);
|
|
790
784
|
border-radius: var(--neon-radius-lg);
|
|
791
785
|
margin-bottom: 0.75rem;
|
|
792
|
-
font-size:
|
|
786
|
+
font-size: 1rem;
|
|
793
787
|
color: var(--neon-text-secondary);
|
|
794
788
|
position: relative;
|
|
795
789
|
padding-inline-start: 3rem;
|
|
@@ -911,10 +905,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
911
905
|
font-family: var(--neon-font-display);
|
|
912
906
|
font-size: clamp(1.5rem, 3.5vw, 2.25rem);
|
|
913
907
|
font-weight: 700;
|
|
914
|
-
|
|
915
|
-
-webkit-background-clip: text;
|
|
916
|
-
-webkit-text-fill-color: transparent;
|
|
917
|
-
background-clip: text;
|
|
908
|
+
color: var(--neon-text);
|
|
918
909
|
line-height: 1.2;
|
|
919
910
|
margin-bottom: 1rem;
|
|
920
911
|
}
|
|
@@ -957,7 +948,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
957
948
|
.neon .session-stat:nth-child(odd) .value { color: var(--neon-pink); }
|
|
958
949
|
.neon .session-stat:nth-child(even) .value { color: var(--neon-cyan); }
|
|
959
950
|
.neon .session-stat .label {
|
|
960
|
-
font-size: 0.
|
|
951
|
+
font-size: 0.75rem;
|
|
961
952
|
color: var(--neon-text-tertiary);
|
|
962
953
|
text-transform: uppercase;
|
|
963
954
|
letter-spacing: 0.04em;
|
|
@@ -995,7 +986,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
|
|
|
995
986
|
}
|
|
996
987
|
.neon .dev-take p {
|
|
997
988
|
color: var(--neon-text-secondary);
|
|
998
|
-
font-size:
|
|
989
|
+
font-size: 1rem;
|
|
999
990
|
font-style: italic;
|
|
1000
991
|
line-height: 1.65;
|
|
1001
992
|
}
|
|
@@ -97,12 +97,12 @@
|
|
|
97
97
|
<a href="/{{ user.username }}/{{ p.slug }}" class="noir-project" aria-label="{{ p.title }} project">
|
|
98
98
|
<div>
|
|
99
99
|
<h3 class="noir-project__title">{{ p.title }}</h3>
|
|
100
|
-
{% if p.
|
|
101
|
-
<p class="noir-project__narrative">{{ p.
|
|
100
|
+
{% if p.tagline != blank %}
|
|
101
|
+
<p class="noir-project__narrative">{{ p.tagline }}</p>
|
|
102
102
|
{% endif %}
|
|
103
|
-
{% if p.
|
|
103
|
+
{% if p.profileSkills.size > 0 %}
|
|
104
104
|
<div class="noir-project__skills" aria-label="Skills">
|
|
105
|
-
{% for skill in p.
|
|
105
|
+
{% for skill in p.profileSkills %}
|
|
106
106
|
<span class="noir-chip">{{ skill }}</span>
|
|
107
107
|
{% endfor %}
|
|
108
108
|
</div>
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
--noir-border: #2a2a2a;
|
|
11
11
|
--noir-border-strong: #404040;
|
|
12
12
|
--noir-text: #e5e5e5;
|
|
13
|
-
--noir-text-secondary: #
|
|
14
|
-
--noir-text-muted: #
|
|
13
|
+
--noir-text-secondary: #b8b8b8;
|
|
14
|
+
--noir-text-muted: #9a9a9a;
|
|
15
15
|
--noir-white: #ffffff;
|
|
16
16
|
--noir-highlight: #e5e5e5;
|
|
17
17
|
--noir-rule: #333333;
|
|
@@ -194,7 +194,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
|
|
|
194
194
|
|
|
195
195
|
.noir-stats-row__label {
|
|
196
196
|
font-family: var(--font-mono);
|
|
197
|
-
font-size: 0.
|
|
197
|
+
font-size: 0.75rem;
|
|
198
198
|
color: var(--noir-text-muted);
|
|
199
199
|
text-transform: uppercase;
|
|
200
200
|
letter-spacing: 0.1em;
|
|
@@ -345,7 +345,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
|
|
|
345
345
|
|
|
346
346
|
.noir-project__stat-label {
|
|
347
347
|
font-family: var(--font-mono);
|
|
348
|
-
font-size: 0.
|
|
348
|
+
font-size: 0.75rem;
|
|
349
349
|
color: var(--noir-text-muted);
|
|
350
350
|
text-transform: uppercase;
|
|
351
351
|
letter-spacing: 0.08em;
|
|
@@ -507,7 +507,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
|
|
|
507
507
|
|
|
508
508
|
.noir-stat-cell__label {
|
|
509
509
|
font-family: var(--font-mono);
|
|
510
|
-
font-size: 0.
|
|
510
|
+
font-size: 0.75rem;
|
|
511
511
|
color: var(--noir-text-muted);
|
|
512
512
|
text-transform: uppercase;
|
|
513
513
|
letter-spacing: 0.1em;
|
|
@@ -96,12 +96,12 @@
|
|
|
96
96
|
<span>{{ p.totalLoc | formatLoc }} LOC</span>
|
|
97
97
|
</div>
|
|
98
98
|
</div>
|
|
99
|
-
{% if p.
|
|
100
|
-
<p class="project-narrative">{{ p.
|
|
99
|
+
{% if p.tagline != blank %}
|
|
100
|
+
<p class="project-narrative">{{ p.tagline }}</p>
|
|
101
101
|
{% endif %}
|
|
102
|
-
{% if p.
|
|
102
|
+
{% if p.profileSkills.size > 0 %}
|
|
103
103
|
<div class="project-skills">
|
|
104
|
-
{% for skill in p.
|
|
104
|
+
{% for skill in p.profileSkills %}
|
|
105
105
|
<span class="skill-tag chip">{{ skill }}</span>
|
|
106
106
|
{% endfor %}
|
|
107
107
|
</div>
|
|
@@ -327,7 +327,7 @@ body { background: var(--obs-bg); color: var(--obs-text); }
|
|
|
327
327
|
}
|
|
328
328
|
.obsidian .stat-label {
|
|
329
329
|
font-family: var(--font-mono);
|
|
330
|
-
font-size:
|
|
330
|
+
font-size: 12px;
|
|
331
331
|
text-transform: uppercase;
|
|
332
332
|
letter-spacing: 0.08em;
|
|
333
333
|
color: var(--fg-dim);
|
|
@@ -340,7 +340,7 @@ body { background: var(--obs-bg); color: var(--obs-text); }
|
|
|
340
340
|
font-size: clamp(20px, 3vw, 28px);
|
|
341
341
|
}
|
|
342
342
|
.obsidian.heyiam-project .stat-label {
|
|
343
|
-
font-size:
|
|
343
|
+
font-size: 12px;
|
|
344
344
|
}
|
|
345
345
|
.obsidian .stat-card--leverage {
|
|
346
346
|
grid-column: span 2;
|