@@ -11,32 +11,38 @@ public struct HomePage: Page {
11
11
let svgIcon = Class ( module: " svgIcon " )
12
12
13
13
var body : some Rule {
14
- container => {
15
- Display ( . flex)
16
- Background ( " #1c1c1c " )
17
- Color ( . white)
18
- // AnyProperty("justify-self", "center")
14
+ Pseudo ( class: . root) => {
15
+ Variable ( " pico-background-color " , value: " #1c1c1c " )
19
16
}
20
17
21
- container > Class ( " main " ) => {
18
+ // self.container => {
19
+ // Display(.flex)
20
+ // Background("#1c1c1c")
21
+ // Color(.white)
22
+ // // AnyProperty("justify-self", "center")
23
+ // }
24
+
25
+ // self.container > Class("main") => {
22
26
// Width(.full)
23
27
// Height(.full)
24
28
25
29
// Media(maxWidth: 2xl) => {
26
30
// MaxWidth(.rem(20))
27
31
// }
28
- }
29
-
30
- // .svg-icon {
31
- // display: inline-block;
32
- // vertical-align: middle;
33
- // position: relative;
34
- // bottom: 0.125em;
35
- // height: 1em;
36
- // width: 1em;
37
32
// }
38
- svgIcon => {
33
+
34
+ self . svgIcon => {
39
35
Display ( . inlineBlock)
36
+ AnyProperty ( " vertical-align " , " middle " )
37
+ AnyProperty ( " position " , " relative " )
38
+ AnyProperty ( " bottom " , " 0.125em " )
39
+ AnyProperty ( " width " , " 1em " )
40
+ AnyProperty ( " height " , " 1em " )
41
+ AnyProperty ( " margin-right " , " 0.25rem " )
42
+ }
43
+
44
+ Class ( " reversed " ) => {
45
+ AnyProperty ( " scale " , " calc(100% * -1) 100% " )
40
46
}
41
47
}
42
48
}
@@ -64,77 +70,76 @@ public struct HomePage: Page {
64
70
meta ( . charset( . utf8) )
65
71
meta ( name: . viewport, content: " width=device-width, initial-scale=1.0 " )
66
72
link ( . rel( . stylesheet) , . href( " https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css " ) )
67
- // style(styling)
73
+ style ( styling)
68
74
// script(.src("https://cdn.jsdelivr.net/npm/alpinejs@3.14.8/dist/cdn.min.js"), .defer) {}
69
75
}
70
- body {
71
- main ( . class ( " container " ) ) {
72
- section ( . class ( " p-8 pb-8 " ) , . ariaLabel ( " About " ) ) {
73
- h1 ( . class ( " font-bold " ) ) { " Erik Bautista Santibanez " }
74
- p ( . class ( " opacity-70 " ) ) { " Swift & Web Developer " }
76
+ body ( . class ( " container " ) ) {
77
+ header ( . ariaLabel ( " About " ) ) {
78
+ hgroup {
79
+ h1 { " Erik Bautista Santibanez " }
80
+ p { " Swift & Web Developer " }
75
81
76
82
let location = self . activityClient. location ( )
77
83
let residency = location? . residency ?? . default
78
84
79
- p ( . ariaLabel( " Residency " ) ) {
80
- svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . class ( " opacity-70 svg-icon mr-1 " ) , . ariaLabel ( " Map pin icon " ) ) {
85
+ p ( . ariaLabel( " Location " ) ) {
86
+ svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . ariaLabel ( " Map pin icon " ) , . class ( styling . svgIcon ) ) {
81
87
path (
82
88
. d( " M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z " )
83
89
)
84
90
}
85
91
86
92
" \( residency) "
87
- }
88
93
89
- if let location, location. city != residency. city || location. state != residency. state {
90
- p ( . ariaLabel ( " Location " ) , . class ( " italic pt-1 " ) ) {
91
- svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . class( " -scale-x-100 svg-icon mr-1 " ) , . ariaLabel( " Navigation icon " ) ) {
94
+ if let location, location. city != residency. city || location. state != residency. state {
95
+ " \u{2022} "
96
+ svg ( . xmlns( ) , . fill( " currentColor " ) , . viewBox( " 0 0 256 256 " ) , . class( styling . svgIcon ) , . class ( " reversed " ) , . ariaLabel( " Navigation icon " ) ) {
92
97
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 " ) )
93
98
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 " ) )
94
99
}
95
100
96
- span ( . class ( " opacity-60 " ) ) { " Currently in " }
101
+ span { " Currently in " }
97
102
[ location. city, location. state, location. region == " United States " ? nil : location. region]
98
103
. compactMap ( \. self)
99
104
. joined ( separator: " , " )
100
105
}
101
106
}
102
107
}
103
-
104
- section ( . class( " px-8 pb-8 " ) , . ariaLabel( " Experience " ) ) {
105
- h1 ( . class( " font-bold " ) ) { " Experience " }
108
+ }
109
+ main {
110
+ section ( . ariaLabel( " Experience " ) ) {
111
+ h3 { " Experience " }
106
112
}
107
113
108
- section ( . class ( " px-8 pb-8 " ) , . ariaLabel( " Projects " ) ) {
109
- h1 ( . class ( " font-bold " ) ) { " Projects " }
114
+ section ( . ariaLabel( " Projects " ) ) {
115
+ h3 { " Projects " }
110
116
}
111
117
112
- section ( . class ( " px-8 pb-8 " ) , . ariaLabel( " Education " ) ) {
113
- h1 ( . class ( " font-bold " ) ) { " Education " }
114
- div ( . class ( " flex flex-col md:flex-row " ) ) {
115
- div ( . class ( " flex-1 " ) ) {
116
- h2 ( . class ( " font-medium " ) ) {
117
- a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://stedwards.edu/ " ) ) {
118
- " St. Edward's University "
118
+ section ( . ariaLabel( " Education " ) ) {
119
+ h3 { " Education " }
120
+ div {
121
+ div {
122
+ h6 {
123
+ a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://stedwards.edu/ " ) ) {
124
+ " St. Edward's University "
119
125
}
120
126
}
121
- p ( . class ( " opacity-80 " ) ) { " Bachelor of Science in Computer Science " }
127
+ p { " Bachelor of Science in Computer Science " }
122
128
}
123
129
124
- p ( . class ( " md:self-baseline opacity-80 " ) ) { " 2018-2023 " }
130
+ p { " 2018-2023 " }
125
131
}
126
132
}
127
-
128
- footer ( . class( " px-8 pb-16 text-xs opacity-70 " ) , . ariaLabel( " Credits " ) ) {
129
- hr ( . class( " pb-6 border-top border-neutral-600 " ) )
130
- p ( . class( " px-6 text-center " ) ) { " © \( self . year) Erik Bautista Santibanez " }
131
- p ( . class( " pt-2 px-6 text-center " ) ) {
132
- " Made with \u{2764} using "
133
- a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://swift.org " ) ) { " Swift " }
134
- " + "
135
- a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://hummingbird.codes " ) ) { " Hummingbird " }
136
- " . "
137
- }
133
+ }
134
+ footer ( . ariaLabel( " Credits " ) ) {
135
+ hr ( )
136
+ p { " © \( self . year) Erik Bautista Santibanez " }
137
+ p {
138
+ " Made with \u{2764} using "
139
+ a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://swift.org " ) ) { " Swift " }
140
+ " + "
141
+ a ( . target( . blank) , . rel( " noopener noreferrer " ) , . href( " https://hummingbird.codes " ) ) { " Hummingbird " }
142
+ " . "
138
143
}
139
144
}
140
145
}
@@ -144,7 +149,7 @@ public struct HomePage: Page {
144
149
145
150
// private enum PackageTheme: Theme {
146
151
// static var className: String? { "swift-package-code-block" }
147
- //
152
+ //
148
153
// static func style(for tokenSyntax: TokenSyntax) -> [Token] {
149
154
// switch tokenSyntax.tokenKind {
150
155
// case .keyword: [Token("\(tokenSyntax)", className: "text-blue-400")]
0 commit comments