@prosophia/personal-portfolio 0.0.2 → 0.0.4
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/Divider.module.css +11 -0
- package/dist/Experience.module.css +122 -0
- package/dist/Footer.module.css +36 -0
- package/dist/Header.module.css +242 -0
- package/dist/Hero.module.css +239 -0
- package/dist/Projects.module.css +113 -0
- package/dist/Publications.module.css +154 -0
- package/dist/index-dczHpph_.d.mts +106 -0
- package/dist/index-dczHpph_.d.ts +106 -0
- package/dist/index.css +795 -0
- package/dist/index.d.mts +130 -0
- package/dist/index.d.ts +130 -0
- package/dist/index.js +737 -206
- package/dist/index.mjs +697 -180
- package/dist/layouts/index.d.mts +14 -0
- package/dist/layouts/index.d.ts +14 -0
- package/dist/layouts/index.js +331 -0
- package/dist/layouts/index.mjs +304 -0
- package/dist/schemas/index.d.mts +433 -0
- package/dist/schemas/index.d.ts +433 -0
- package/dist/schemas/index.js +457 -0
- package/dist/schemas/index.mjs +424 -0
- package/dist/styles/globals.css +1 -0
- package/package.json +19 -7
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
.section {
|
|
2
|
+
scroll-margin-top: 7rem;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.title {
|
|
6
|
+
font-size: 1.875rem;
|
|
7
|
+
font-weight: 700;
|
|
8
|
+
color: var(--text-primary);
|
|
9
|
+
letter-spacing: -0.025em;
|
|
10
|
+
margin-bottom: 2.5rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.grid {
|
|
14
|
+
display: grid;
|
|
15
|
+
grid-template-columns: 1fr;
|
|
16
|
+
gap: 1.5rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media (min-width: 768px) {
|
|
20
|
+
.grid {
|
|
21
|
+
grid-template-columns: repeat(2, 1fr);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.card {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
background-color: var(--surface);
|
|
29
|
+
border: 1px solid var(--border);
|
|
30
|
+
border-radius: var(--border-radius-xl);
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
transition: border-color var(--timing-standard) var(--ease-out-expo),
|
|
33
|
+
transform var(--timing-standard) var(--ease-out-expo);
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.card:hover {
|
|
38
|
+
border-color: var(--border-highlight);
|
|
39
|
+
transform: translateY(-4px);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.cardImage {
|
|
43
|
+
aspect-ratio: 16 / 9;
|
|
44
|
+
background-size: cover;
|
|
45
|
+
background-position: center;
|
|
46
|
+
position: relative;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.cardImageOverlay {
|
|
50
|
+
position: absolute;
|
|
51
|
+
inset: 0;
|
|
52
|
+
background: linear-gradient(to top, var(--surface), transparent);
|
|
53
|
+
opacity: 0.8;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.cardContent {
|
|
57
|
+
padding: 1.5rem;
|
|
58
|
+
display: flex;
|
|
59
|
+
flex-direction: column;
|
|
60
|
+
flex: 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.cardHeader {
|
|
64
|
+
display: flex;
|
|
65
|
+
justify-content: space-between;
|
|
66
|
+
align-items: flex-start;
|
|
67
|
+
margin-bottom: 0.5rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.cardTitle {
|
|
71
|
+
font-size: 1.125rem;
|
|
72
|
+
font-weight: 700;
|
|
73
|
+
color: var(--text-primary);
|
|
74
|
+
transition: color var(--timing-quick) var(--ease-out-expo);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.card:hover .cardTitle {
|
|
78
|
+
color: var(--primary);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.cardLink {
|
|
82
|
+
color: var(--text-muted);
|
|
83
|
+
transition: color var(--timing-quick) var(--ease-out-expo);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.cardLink:hover {
|
|
87
|
+
color: var(--text-primary);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.cardDescription {
|
|
91
|
+
color: var(--text-secondary);
|
|
92
|
+
font-size: 0.875rem;
|
|
93
|
+
margin-bottom: 1rem;
|
|
94
|
+
flex: 1;
|
|
95
|
+
line-height: 1.6;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.cardTags {
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-wrap: wrap;
|
|
101
|
+
gap: 0.5rem;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.tag {
|
|
105
|
+
padding: 0.25rem 0.5rem;
|
|
106
|
+
font-size: 0.625rem;
|
|
107
|
+
text-transform: uppercase;
|
|
108
|
+
font-weight: 700;
|
|
109
|
+
letter-spacing: 0.05em;
|
|
110
|
+
border-radius: var(--border-radius);
|
|
111
|
+
background-color: var(--tag-bg);
|
|
112
|
+
color: var(--primary);
|
|
113
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
.section {
|
|
2
|
+
scroll-margin-top: 7rem;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.header {
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: space-between;
|
|
9
|
+
margin-bottom: 2.5rem;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.title {
|
|
13
|
+
font-size: 1.875rem;
|
|
14
|
+
font-weight: 700;
|
|
15
|
+
color: var(--text-primary);
|
|
16
|
+
letter-spacing: -0.025em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.scholarLink {
|
|
20
|
+
font-size: 0.875rem;
|
|
21
|
+
color: var(--primary);
|
|
22
|
+
font-weight: 500;
|
|
23
|
+
transition: opacity var(--timing-quick) var(--ease-out-expo);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.scholarLink:hover {
|
|
27
|
+
opacity: 0.8;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.list {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
gap: 1.5rem;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.card {
|
|
37
|
+
position: relative;
|
|
38
|
+
background-color: var(--surface);
|
|
39
|
+
border: 1px solid var(--border);
|
|
40
|
+
border-radius: var(--border-radius-xl);
|
|
41
|
+
padding: 1.5rem;
|
|
42
|
+
transition: border-color var(--timing-standard) var(--ease-out-expo),
|
|
43
|
+
box-shadow var(--timing-standard) var(--ease-out-expo);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.card:hover {
|
|
47
|
+
border-color: var(--border-highlight);
|
|
48
|
+
box-shadow: 0 10px 15px -3px var(--shadow);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.cardContent {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
gap: 1.5rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@media (min-width: 768px) {
|
|
58
|
+
.cardContent {
|
|
59
|
+
flex-direction: row;
|
|
60
|
+
align-items: flex-start;
|
|
61
|
+
justify-content: space-between;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.cardInfo {
|
|
66
|
+
flex: 1;
|
|
67
|
+
display: flex;
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
gap: 0.75rem;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.cardTitle {
|
|
73
|
+
font-size: 1.25rem;
|
|
74
|
+
font-weight: 700;
|
|
75
|
+
color: var(--text-primary);
|
|
76
|
+
transition: color var(--timing-quick) var(--ease-out-expo);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.card:hover .cardTitle {
|
|
80
|
+
color: var(--primary);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.cardAuthors {
|
|
84
|
+
color: var(--text-secondary);
|
|
85
|
+
font-size: 0.875rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.cardAuthorHighlight {
|
|
89
|
+
color: var(--text-primary);
|
|
90
|
+
font-weight: 500;
|
|
91
|
+
border-bottom: 1px solid var(--primary);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.cardMeta {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
gap: 0.75rem;
|
|
98
|
+
font-size: 0.75rem;
|
|
99
|
+
font-weight: 500;
|
|
100
|
+
color: var(--text-muted);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.cardVenue {
|
|
104
|
+
padding: 0.25rem 0.5rem;
|
|
105
|
+
border-radius: var(--border-radius);
|
|
106
|
+
background-color: var(--surface-highlight);
|
|
107
|
+
color: var(--text-secondary);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.cardHighlight {
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
gap: 0.25rem;
|
|
114
|
+
color: var(--green-accent);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.cardHighlightIcon {
|
|
118
|
+
font-size: 0.875rem;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.cardActions {
|
|
122
|
+
display: flex;
|
|
123
|
+
flex-direction: row;
|
|
124
|
+
gap: 0.5rem;
|
|
125
|
+
flex-shrink: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@media (min-width: 768px) {
|
|
129
|
+
.cardActions {
|
|
130
|
+
flex-direction: column;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.actionButton {
|
|
135
|
+
display: flex;
|
|
136
|
+
align-items: center;
|
|
137
|
+
gap: 0.5rem;
|
|
138
|
+
padding: 0.375rem 0.75rem;
|
|
139
|
+
border-radius: var(--border-radius);
|
|
140
|
+
background-color: var(--surface-highlight);
|
|
141
|
+
border: 1px solid var(--border-highlight);
|
|
142
|
+
font-size: 0.75rem;
|
|
143
|
+
font-weight: 500;
|
|
144
|
+
color: var(--text-primary);
|
|
145
|
+
transition: border-color var(--timing-quick) var(--ease-out-expo);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.actionButton:hover {
|
|
149
|
+
border-color: var(--text-muted);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.actionIcon {
|
|
153
|
+
font-size: 1rem;
|
|
154
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
interface SocialLinks {
|
|
2
|
+
twitter?: string;
|
|
3
|
+
linkedin?: string;
|
|
4
|
+
github?: string;
|
|
5
|
+
googleScholar?: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ThemeColor {
|
|
9
|
+
preset: string;
|
|
10
|
+
customColor?: string;
|
|
11
|
+
}
|
|
12
|
+
interface FontFamily {
|
|
13
|
+
heading?: string;
|
|
14
|
+
body?: string;
|
|
15
|
+
}
|
|
16
|
+
interface SiteSettings {
|
|
17
|
+
resumeUrl?: string;
|
|
18
|
+
socialLinks?: SocialLinks;
|
|
19
|
+
themeColor?: ThemeColor;
|
|
20
|
+
fontFamily?: FontFamily;
|
|
21
|
+
footerText?: string;
|
|
22
|
+
contactEmail?: string;
|
|
23
|
+
}
|
|
24
|
+
interface Headline {
|
|
25
|
+
beforeHighlight?: string;
|
|
26
|
+
highlight?: string;
|
|
27
|
+
afterHighlight?: string;
|
|
28
|
+
}
|
|
29
|
+
interface SanityImage {
|
|
30
|
+
_type: 'image';
|
|
31
|
+
asset: {
|
|
32
|
+
_ref: string;
|
|
33
|
+
_type: 'reference';
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
interface PortableTextBlock {
|
|
37
|
+
_type: string;
|
|
38
|
+
_key?: string;
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
interface Profile {
|
|
42
|
+
name?: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
institution?: string;
|
|
45
|
+
profileImage?: SanityImage;
|
|
46
|
+
headline?: Headline;
|
|
47
|
+
bio?: PortableTextBlock[];
|
|
48
|
+
availabilityBadge?: string;
|
|
49
|
+
}
|
|
50
|
+
interface Update {
|
|
51
|
+
_id: string;
|
|
52
|
+
date: string;
|
|
53
|
+
title: string;
|
|
54
|
+
description: string;
|
|
55
|
+
}
|
|
56
|
+
interface Experience {
|
|
57
|
+
_id: string;
|
|
58
|
+
title: string;
|
|
59
|
+
organization: string;
|
|
60
|
+
period: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
isCurrent?: boolean;
|
|
63
|
+
type?: string;
|
|
64
|
+
}
|
|
65
|
+
interface Project {
|
|
66
|
+
_id: string;
|
|
67
|
+
title: string;
|
|
68
|
+
slug?: string;
|
|
69
|
+
shortDescription?: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
image?: SanityImage;
|
|
72
|
+
tags?: string[];
|
|
73
|
+
link?: string;
|
|
74
|
+
github?: string;
|
|
75
|
+
}
|
|
76
|
+
interface PublicationAuthor {
|
|
77
|
+
name: string;
|
|
78
|
+
isMe?: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface Publication {
|
|
81
|
+
_id: string;
|
|
82
|
+
title: string;
|
|
83
|
+
authors: PublicationAuthor[];
|
|
84
|
+
venue: string;
|
|
85
|
+
year: string;
|
|
86
|
+
highlight?: string;
|
|
87
|
+
pdfUrl?: string;
|
|
88
|
+
pdfFileUrl?: string;
|
|
89
|
+
codeUrl?: string;
|
|
90
|
+
}
|
|
91
|
+
interface SiteConfig {
|
|
92
|
+
title: string;
|
|
93
|
+
description: string;
|
|
94
|
+
url?: string;
|
|
95
|
+
}
|
|
96
|
+
interface ThemeConfig {
|
|
97
|
+
primaryColor?: string;
|
|
98
|
+
accentColor?: string;
|
|
99
|
+
}
|
|
100
|
+
interface ProsophiaConfig {
|
|
101
|
+
template?: string;
|
|
102
|
+
site: SiteConfig;
|
|
103
|
+
theme?: ThemeConfig;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export type { Experience as E, FontFamily as F, Headline as H, Project as P, SiteSettings as S, ThemeColor as T, Update as U, Publication as a, ProsophiaConfig as b, Profile as c, SanityImage as d, PublicationAuthor as e, SocialLinks as f, SiteConfig as g, ThemeConfig as h };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
interface SocialLinks {
|
|
2
|
+
twitter?: string;
|
|
3
|
+
linkedin?: string;
|
|
4
|
+
github?: string;
|
|
5
|
+
googleScholar?: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ThemeColor {
|
|
9
|
+
preset: string;
|
|
10
|
+
customColor?: string;
|
|
11
|
+
}
|
|
12
|
+
interface FontFamily {
|
|
13
|
+
heading?: string;
|
|
14
|
+
body?: string;
|
|
15
|
+
}
|
|
16
|
+
interface SiteSettings {
|
|
17
|
+
resumeUrl?: string;
|
|
18
|
+
socialLinks?: SocialLinks;
|
|
19
|
+
themeColor?: ThemeColor;
|
|
20
|
+
fontFamily?: FontFamily;
|
|
21
|
+
footerText?: string;
|
|
22
|
+
contactEmail?: string;
|
|
23
|
+
}
|
|
24
|
+
interface Headline {
|
|
25
|
+
beforeHighlight?: string;
|
|
26
|
+
highlight?: string;
|
|
27
|
+
afterHighlight?: string;
|
|
28
|
+
}
|
|
29
|
+
interface SanityImage {
|
|
30
|
+
_type: 'image';
|
|
31
|
+
asset: {
|
|
32
|
+
_ref: string;
|
|
33
|
+
_type: 'reference';
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
interface PortableTextBlock {
|
|
37
|
+
_type: string;
|
|
38
|
+
_key?: string;
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
interface Profile {
|
|
42
|
+
name?: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
institution?: string;
|
|
45
|
+
profileImage?: SanityImage;
|
|
46
|
+
headline?: Headline;
|
|
47
|
+
bio?: PortableTextBlock[];
|
|
48
|
+
availabilityBadge?: string;
|
|
49
|
+
}
|
|
50
|
+
interface Update {
|
|
51
|
+
_id: string;
|
|
52
|
+
date: string;
|
|
53
|
+
title: string;
|
|
54
|
+
description: string;
|
|
55
|
+
}
|
|
56
|
+
interface Experience {
|
|
57
|
+
_id: string;
|
|
58
|
+
title: string;
|
|
59
|
+
organization: string;
|
|
60
|
+
period: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
isCurrent?: boolean;
|
|
63
|
+
type?: string;
|
|
64
|
+
}
|
|
65
|
+
interface Project {
|
|
66
|
+
_id: string;
|
|
67
|
+
title: string;
|
|
68
|
+
slug?: string;
|
|
69
|
+
shortDescription?: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
image?: SanityImage;
|
|
72
|
+
tags?: string[];
|
|
73
|
+
link?: string;
|
|
74
|
+
github?: string;
|
|
75
|
+
}
|
|
76
|
+
interface PublicationAuthor {
|
|
77
|
+
name: string;
|
|
78
|
+
isMe?: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface Publication {
|
|
81
|
+
_id: string;
|
|
82
|
+
title: string;
|
|
83
|
+
authors: PublicationAuthor[];
|
|
84
|
+
venue: string;
|
|
85
|
+
year: string;
|
|
86
|
+
highlight?: string;
|
|
87
|
+
pdfUrl?: string;
|
|
88
|
+
pdfFileUrl?: string;
|
|
89
|
+
codeUrl?: string;
|
|
90
|
+
}
|
|
91
|
+
interface SiteConfig {
|
|
92
|
+
title: string;
|
|
93
|
+
description: string;
|
|
94
|
+
url?: string;
|
|
95
|
+
}
|
|
96
|
+
interface ThemeConfig {
|
|
97
|
+
primaryColor?: string;
|
|
98
|
+
accentColor?: string;
|
|
99
|
+
}
|
|
100
|
+
interface ProsophiaConfig {
|
|
101
|
+
template?: string;
|
|
102
|
+
site: SiteConfig;
|
|
103
|
+
theme?: ThemeConfig;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export type { Experience as E, FontFamily as F, Headline as H, Project as P, SiteSettings as S, ThemeColor as T, Update as U, Publication as a, ProsophiaConfig as b, Profile as c, SanityImage as d, PublicationAuthor as e, SocialLinks as f, SiteConfig as g, ThemeConfig as h };
|