@@ -87,40 +87,55 @@ private struct UserView: HTML {
87
87
};
88
88
"""
89
89
case . none:
90
- h1 ( . aria. label ( " Name " ) ) { " Erik Bautista Santibanez " }
91
- p ( . aria. label ( " Occupation " ) ) { " Mobile & Web Developer " }
92
- . inlineStyle ( " color " , " #e0e0e0 " )
93
- p ( . aria. label ( " Residency " ) ) {
94
- svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . aria. label ( " Map pin icon " ) ) {
95
- path (
96
- . d( " M128,16a88.1,88.1,0,0,0-88,88c0,75.3,80,132.17,83.41,134.55a8,8,0,0,0,9.18,0C136,236.17,216,179.3,216,104A88.1,88.1,0,0,0,128,16Zm0,56a32,32,0,1,1-32,32A32,32,0,0,1,128,72Z " )
97
- )
98
- }
99
- . svgIconStyling ( )
100
- . inlineStyle ( " margin-right " , " 0.25rem " )
101
-
102
- " \( residency ?? . default) "
90
+ h1 ( . aria. label ( " Name " ) ) {
91
+ span { " # " }
92
+ . inlineStyle ( " color " , " #808080 " )
93
+ . inlineStyle ( " font-weight " , " 700 " )
94
+ " "
95
+ " Erik Bautista Santibanez "
103
96
}
104
- . inlineStyle ( " color " , " #e0e0e0 " )
97
+ . inlineStyle ( " margin-bottom " , " 0.25rem " )
105
98
106
- if let currentLocation {
107
- p ( . aria. label ( " Current location " ) ) {
108
- svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . aria. label ( " Navigation icon " ) ) {
109
- path ( . d( " M234.35,129,152,152,129,234.35a8,8,0,0,1-15.21.27l-65.28-176A8,8,0,0,1,58.63,48.46l176,65.28A8,8,0,0,1,234.35,129Z " ) )
110
- path ( . d( " M237.33,106.21,61.41,41l-.16-.05A16,16,0,0,0,40.9,61.25a1,1,0,0,0,.05.16l65.26,175.92A15.77,15.77,0,0,0,121.28,248h.3a15.77,15.77,0,0,0,15-11.29l.06-.2,21.84-78,78-21.84.2-.06a16,16,0,0,0,.62-30.38ZM149.84,144.3a8,8,0,0,0-5.54,5.54L121.3,232l-.06-.17L56,56l175.82,65.22.16.06Z " ) )
99
+ HTMLGroup {
100
+ p ( . aria. label ( " Occupation " ) ) { " Mobile & Web Developer " }
101
+
102
+ p ( . aria. label ( " Residency " ) ) {
103
+ svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . aria. label ( " Map pin icon " ) ) {
104
+ path (
105
+ . d( " M128,16a88.1,88.1,0,0,0-88,88c0,75.3,80,132.17,83.41,134.55a8,8,0,0,0,9.18,0C136,236.17,216,179.3,216,104A88.1,88.1,0,0,0,128,16Zm0,56a32,32,0,1,1-32,32A32,32,0,0,1,128,72Z " )
106
+ )
111
107
}
112
- . inlineStyle ( " scale " , " calc(100% * -1) 100% " )
113
108
. svgIconStyling ( )
114
109
. inlineStyle ( " margin-right " , " 0.25rem " )
115
110
116
- " Currently in "
117
-
118
- em { currentLocation }
119
- . inlineStyle ( " font-weight " , " 600 " )
111
+ " \( residency ?? . default) "
120
112
}
121
- . inlineStyle ( " color " , " #a0a0a0 " )
122
113
114
+ if let currentLocation {
115
+ p ( . aria. label ( " Current location " ) ) {
116
+ svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . aria. label ( " Navigation icon " ) ) {
117
+ path ( . d( " M234.35,129,152,152,129,234.35a8,8,0,0,1-15.21.27l-65.28-176A8,8,0,0,1,58.63,48.46l176,65.28A8,8,0,0,1,234.35,129Z " ) )
118
+ path ( . d( " M237.33,106.21,61.41,41l-.16-.05A16,16,0,0,0,40.9,61.25a1,1,0,0,0,.05.16l65.26,175.92A15.77,15.77,0,0,0,121.28,248h.3a15.77,15.77,0,0,0,15-11.29l.06-.2,21.84-78,78-21.84.2-.06a16,16,0,0,0,.62-30.38ZM149.84,144.3a8,8,0,0,0-5.54,5.54L121.3,232l-.06-.17L56,56l175.82,65.22.16.06Z " ) )
119
+ }
120
+ . inlineStyle ( " scale " , " calc(100% * -1) 100% " )
121
+ . svgIconStyling ( )
122
+ . inlineStyle ( " margin-right " , " 0.25rem " )
123
+
124
+ " Currently in "
125
+
126
+ span { " *** " }
127
+ . inlineStyle ( " color " , " #808080 " )
128
+ . inlineStyle ( " font-weight " , " 700 " )
129
+ em { currentLocation }
130
+ . inlineStyle ( " font-weight " , " 700 " )
131
+ . inlineStyle ( " color " , " #fafafa " )
132
+ span { " *** " }
133
+ . inlineStyle ( " color " , " #808080 " )
134
+ . inlineStyle ( " font-weight " , " 700 " )
135
+ }
136
+ }
123
137
}
138
+ . inlineStyle ( " color " , " #d8d8d8 " )
124
139
}
125
140
} content: {
126
141
// div {
@@ -135,25 +150,41 @@ private struct UserView: HTML {
135
150
136
151
private struct PostsView : HTML {
137
152
let selected : Vue . Expression < CodeLang ? >
153
+
154
+ static let description = " A curated list of projects I've worked on. "
155
+
138
156
var body : some HTML {
139
157
SectionView ( id: " dev-logs " , selected: selected) { lang in
140
158
switch lang {
141
159
case . swift:
142
160
"""
161
+ // \( Self . description)
143
162
let logs: [DevLog] = await fetch(.all)
144
163
"""
145
164
case . typescript:
146
165
"""
166
+ // \( Self . description)
147
167
const logs = await fetch(Filter.All);
148
168
"""
149
169
case . rust:
150
170
"""
171
+ // \( Self . description)
151
172
let logs = fetch(Filter::All).await;
152
173
"""
153
174
case . none:
154
- h1 { " Dev Logs " }
155
- p { " A curated list of projects I've worked on. " }
156
- . inlineStyle ( " color " , " #e0e0e0 " )
175
+ h1 {
176
+ span { " # " }
177
+ . inlineStyle ( " color " , " #808080 " )
178
+ . inlineStyle ( " font-weight " , " 700 " )
179
+ " "
180
+ " Dev Logs "
181
+ }
182
+ . inlineStyle ( " margin-bottom " , " 0.25rem " )
183
+
184
+ HTMLGroup {
185
+ p { Self . description }
186
+ }
187
+ . inlineStyle ( " color " , " #d8d8d8 " )
157
188
}
158
189
} content: {
159
190
for (num, post) in Post . allCases. enumerated ( ) . reversed ( ) {
0 commit comments