@prosophia/lab-minimal 0.0.3 → 0.0.5

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.
@@ -0,0 +1,136 @@
1
+ /* NewsPage.module.css - Minimal Template */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 64px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .newsSection {
9
+ padding: var(--spacing-4xl) var(--spacing-lg);
10
+ max-width: var(--max-width-content);
11
+ margin: 0 auto;
12
+ }
13
+
14
+ .sectionContainer {
15
+ max-width: 800px;
16
+ margin: 0 auto;
17
+ }
18
+
19
+ /* Page Header */
20
+ .sectionHeading {
21
+ font-size: var(--font-size-4xl);
22
+ font-weight: var(--font-weight-semibold);
23
+ color: var(--color-text-primary);
24
+ margin: 0 0 var(--spacing-sm) 0;
25
+ text-align: center;
26
+ }
27
+
28
+ .subtitle {
29
+ font-size: var(--font-size-lg);
30
+ color: var(--color-text-secondary);
31
+ text-align: center;
32
+ max-width: 500px;
33
+ margin: 0 auto var(--spacing-3xl);
34
+ padding-bottom: var(--spacing-3xl);
35
+ border-bottom: 1px solid var(--color-border);
36
+ }
37
+
38
+ /* News Grid - List Style */
39
+ .newsGrid {
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: var(--spacing-md);
43
+ }
44
+
45
+ .newsCardLink {
46
+ text-decoration: none;
47
+ color: inherit;
48
+ display: block;
49
+ }
50
+
51
+ /* Horizontal News Card */
52
+ .newsCard {
53
+ display: flex;
54
+ gap: var(--spacing-md);
55
+ padding: var(--spacing-md);
56
+ background: var(--color-background-card);
57
+ border: 1px solid var(--color-border);
58
+ border-radius: var(--border-radius-md);
59
+ transition: border-color var(--transition-base);
60
+ }
61
+
62
+ .newsCard:hover {
63
+ border-color: var(--accent-primary);
64
+ }
65
+
66
+ /* Small Thumbnail */
67
+ .newsImageWrapper {
68
+ flex-shrink: 0;
69
+ width: 100px;
70
+ height: 80px;
71
+ border-radius: var(--border-radius-sm);
72
+ overflow: hidden;
73
+ }
74
+
75
+ @media (max-width: 480px) {
76
+ .newsImageWrapper {
77
+ width: 80px;
78
+ height: 64px;
79
+ }
80
+ }
81
+
82
+ .newsImage {
83
+ width: 100%;
84
+ height: 100%;
85
+ object-fit: cover;
86
+ transition: transform var(--transition-base);
87
+ }
88
+
89
+ .newsCard:hover .newsImage {
90
+ transform: scale(1.05);
91
+ }
92
+
93
+ .newsCardContent {
94
+ flex: 1;
95
+ min-width: 0;
96
+ display: flex;
97
+ flex-direction: column;
98
+ }
99
+
100
+ .newsDate {
101
+ font-size: var(--font-size-xs);
102
+ color: var(--color-text-muted);
103
+ margin-bottom: var(--spacing-xs);
104
+ }
105
+
106
+ .newsTitle {
107
+ font-size: var(--font-size-base);
108
+ font-weight: var(--font-weight-semibold);
109
+ line-height: 1.4;
110
+ margin: 0 0 var(--spacing-xs) 0;
111
+ color: var(--color-text-primary);
112
+ display: -webkit-box;
113
+ -webkit-line-clamp: 2;
114
+ -webkit-box-orient: vertical;
115
+ overflow: hidden;
116
+ transition: color var(--transition-base);
117
+ }
118
+
119
+ .newsCard:hover .newsTitle {
120
+ color: var(--accent-primary);
121
+ }
122
+
123
+ .newsExcerpt {
124
+ font-size: var(--font-size-sm);
125
+ color: var(--color-text-secondary);
126
+ line-height: 1.5;
127
+ display: -webkit-box;
128
+ -webkit-line-clamp: 2;
129
+ -webkit-box-orient: vertical;
130
+ overflow: hidden;
131
+ margin: 0;
132
+ }
133
+
134
+ .readMore {
135
+ display: none; /* Hide in minimal - the whole card is clickable */
136
+ }
@@ -0,0 +1,146 @@
1
+ /* PastMembersPage.module.css - Minimal Template */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 64px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: var(--max-width-content);
10
+ margin: 0 auto;
11
+ padding: 0 var(--spacing-lg);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--spacing-4xl) 0 var(--spacing-3xl);
18
+ border-bottom: 1px solid var(--color-border);
19
+ margin-bottom: var(--spacing-3xl);
20
+ }
21
+
22
+ .title {
23
+ font-size: var(--font-size-4xl);
24
+ font-weight: var(--font-weight-semibold);
25
+ color: var(--color-text-primary);
26
+ margin: 0 0 var(--spacing-sm) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: var(--font-size-lg);
31
+ color: var(--color-text-secondary);
32
+ max-width: 500px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ .main {
37
+ padding-bottom: var(--spacing-4xl);
38
+ }
39
+
40
+ .membersList {
41
+ max-width: 900px;
42
+ margin: 0 auto;
43
+ display: flex;
44
+ flex-direction: column;
45
+ gap: var(--spacing-3xl);
46
+ }
47
+
48
+ /* Year Section */
49
+ .yearSection {
50
+ width: 100%;
51
+ }
52
+
53
+ .yearHeader {
54
+ font-size: var(--font-size-sm);
55
+ font-weight: var(--font-weight-semibold);
56
+ color: var(--accent-primary);
57
+ margin-bottom: var(--spacing-lg);
58
+ padding-bottom: var(--spacing-sm);
59
+ border-bottom: 1px solid var(--color-border);
60
+ }
61
+
62
+ /* Members Grid */
63
+ .membersCardsGrid {
64
+ display: grid;
65
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
66
+ gap: var(--spacing-md);
67
+ }
68
+
69
+ /* Member Card - Simple */
70
+ .memberCard {
71
+ padding: var(--spacing-md);
72
+ border-radius: var(--border-radius-md);
73
+ background: var(--color-background-card);
74
+ border: 1px solid var(--color-border);
75
+ transition: border-color var(--transition-base);
76
+ }
77
+
78
+ .memberCard:hover {
79
+ border-color: var(--accent-primary);
80
+ }
81
+
82
+ .memberName {
83
+ font-size: var(--font-size-base);
84
+ font-weight: var(--font-weight-semibold);
85
+ color: var(--color-text-primary);
86
+ margin: 0 0 var(--spacing-xs) 0;
87
+ transition: color var(--transition-base);
88
+ }
89
+
90
+ .memberCard:hover .memberName {
91
+ color: var(--accent-primary);
92
+ }
93
+
94
+ .memberRole {
95
+ font-size: var(--font-size-sm);
96
+ color: var(--color-text-muted);
97
+ margin: 0 0 var(--spacing-xs) 0;
98
+ }
99
+
100
+ .memberYears {
101
+ font-size: var(--font-size-xs);
102
+ color: var(--accent-primary);
103
+ margin: 0 0 var(--spacing-md) 0;
104
+ }
105
+
106
+ .memberDestination {
107
+ font-size: var(--font-size-sm);
108
+ line-height: 1.5;
109
+ color: var(--color-text-secondary);
110
+ margin: 0;
111
+ padding-top: var(--spacing-sm);
112
+ border-top: 1px solid var(--color-border);
113
+ }
114
+
115
+ .memberDestination strong {
116
+ color: var(--accent-primary);
117
+ font-weight: var(--font-weight-medium);
118
+ }
119
+
120
+ /* Back Link */
121
+ .backLinkWrapper {
122
+ text-align: center;
123
+ margin-top: var(--spacing-3xl);
124
+ padding-top: var(--spacing-xl);
125
+ border-top: 1px solid var(--color-border);
126
+ }
127
+
128
+ .backLink {
129
+ display: inline-flex;
130
+ align-items: center;
131
+ gap: 0.5rem;
132
+ padding: var(--spacing-sm) var(--spacing-lg);
133
+ border: 1px solid var(--color-border);
134
+ border-radius: var(--border-radius-md);
135
+ font-weight: var(--font-weight-medium);
136
+ font-size: var(--font-size-sm);
137
+ text-decoration: none;
138
+ color: var(--color-text-secondary);
139
+ background: var(--color-background-card);
140
+ transition: all var(--transition-base);
141
+ }
142
+
143
+ .backLink:hover {
144
+ border-color: var(--accent-primary);
145
+ color: var(--accent-primary);
146
+ }
@@ -0,0 +1,277 @@
1
+ /* PeoplePage.module.css - Minimal Template */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 64px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: var(--max-width-content);
10
+ margin: 0 auto;
11
+ padding: 0 var(--spacing-lg);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--spacing-4xl) 0 var(--spacing-3xl);
18
+ border-bottom: 1px solid var(--color-border);
19
+ margin-bottom: var(--spacing-3xl);
20
+ }
21
+
22
+ .title {
23
+ font-size: var(--font-size-4xl);
24
+ font-weight: var(--font-weight-semibold);
25
+ color: var(--color-text-primary);
26
+ margin: 0 0 var(--spacing-sm) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: var(--font-size-lg);
31
+ color: var(--color-text-secondary);
32
+ max-width: 500px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ .main {
37
+ padding-bottom: var(--spacing-4xl);
38
+ }
39
+
40
+ /* Principal Investigator Section - Compact */
41
+ .piSection {
42
+ margin-bottom: var(--spacing-3xl);
43
+ padding: var(--spacing-lg);
44
+ background: var(--color-background-card);
45
+ border: 1px solid var(--color-border);
46
+ border-radius: var(--border-radius-lg);
47
+ max-width: 600px;
48
+ margin-left: auto;
49
+ margin-right: auto;
50
+ }
51
+
52
+ .piHeading {
53
+ font-size: var(--font-size-xs);
54
+ font-weight: var(--font-weight-semibold);
55
+ letter-spacing: 0.1em;
56
+ text-transform: uppercase;
57
+ color: var(--accent-primary);
58
+ margin-bottom: var(--spacing-lg);
59
+ text-align: center;
60
+ }
61
+
62
+ .piContent {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: var(--spacing-lg);
66
+ }
67
+
68
+ @media (max-width: 480px) {
69
+ .piContent {
70
+ flex-direction: column;
71
+ text-align: center;
72
+ }
73
+ }
74
+
75
+ .piImageWrapper {
76
+ flex-shrink: 0;
77
+ }
78
+
79
+ .piImage {
80
+ width: 80px;
81
+ height: 80px;
82
+ border-radius: var(--border-radius-full);
83
+ object-fit: cover;
84
+ }
85
+
86
+ .piInfo {
87
+ flex: 1;
88
+ }
89
+
90
+ .piName {
91
+ font-size: var(--font-size-lg);
92
+ font-weight: var(--font-weight-semibold);
93
+ color: var(--color-text-primary);
94
+ margin: 0 0 var(--spacing-xs) 0;
95
+ }
96
+
97
+ .piTitle {
98
+ font-size: var(--font-size-sm);
99
+ color: var(--color-text-secondary);
100
+ margin: 0;
101
+ }
102
+
103
+ /* PI Social Links */
104
+ .piSocials {
105
+ display: flex;
106
+ gap: var(--spacing-sm);
107
+ margin-top: var(--spacing-sm);
108
+ }
109
+
110
+ @media (max-width: 480px) {
111
+ .piSocials {
112
+ justify-content: center;
113
+ }
114
+ }
115
+
116
+ .piSocialLink {
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ width: 32px;
121
+ height: 32px;
122
+ border-radius: var(--border-radius-sm);
123
+ color: var(--color-text-muted);
124
+ background: var(--color-background-secondary);
125
+ transition: all var(--transition-base);
126
+ }
127
+
128
+ .piSocialLink:hover {
129
+ color: var(--accent-primary);
130
+ background: var(--accent-muted);
131
+ }
132
+
133
+ .piSocialLink svg {
134
+ flex-shrink: 0;
135
+ }
136
+
137
+ .piContact,
138
+ .piBio {
139
+ display: none; /* Hide in minimal */
140
+ }
141
+
142
+ /* Team Members Section */
143
+ .membersSection {
144
+ margin-bottom: var(--spacing-2xl);
145
+ }
146
+
147
+ .sectionHeading {
148
+ font-size: var(--font-size-sm);
149
+ font-weight: var(--font-weight-semibold);
150
+ color: var(--accent-primary);
151
+ margin-bottom: var(--spacing-lg);
152
+ padding-bottom: var(--spacing-sm);
153
+ border-bottom: 1px solid var(--color-border);
154
+ }
155
+
156
+ /* Compact Horizontal Grid */
157
+ .membersGrid {
158
+ display: grid;
159
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
160
+ gap: var(--spacing-md);
161
+ }
162
+
163
+ @media (min-width: 768px) {
164
+ .membersGrid {
165
+ grid-template-columns: repeat(2, 1fr);
166
+ }
167
+ }
168
+
169
+ @media (min-width: 1024px) {
170
+ .membersGrid {
171
+ grid-template-columns: repeat(3, 1fr);
172
+ }
173
+ }
174
+
175
+ /* Compact Horizontal Member Card */
176
+ .memberCard {
177
+ display: flex;
178
+ align-items: center;
179
+ gap: var(--spacing-md);
180
+ padding: var(--spacing-md);
181
+ background: var(--color-background-card);
182
+ border: 1px solid var(--color-border);
183
+ border-radius: var(--border-radius-md);
184
+ transition: border-color var(--transition-base);
185
+ }
186
+
187
+ .memberCard:hover {
188
+ border-color: var(--accent-primary);
189
+ }
190
+
191
+ /* Small Circular Image */
192
+ .memberImageWrapper {
193
+ flex-shrink: 0;
194
+ width: 56px;
195
+ height: 56px;
196
+ border-radius: var(--border-radius-full);
197
+ overflow: hidden;
198
+ }
199
+
200
+ .memberImage {
201
+ width: 100%;
202
+ height: 100%;
203
+ object-fit: cover;
204
+ }
205
+
206
+ .memberInfo {
207
+ flex: 1;
208
+ min-width: 0;
209
+ }
210
+
211
+ .memberName {
212
+ font-size: var(--font-size-sm);
213
+ font-weight: var(--font-weight-semibold);
214
+ color: var(--color-text-primary);
215
+ margin: 0 0 var(--spacing-xs) 0;
216
+ }
217
+
218
+ .memberRole {
219
+ font-size: var(--font-size-xs);
220
+ color: var(--color-text-muted);
221
+ margin: 0;
222
+ }
223
+
224
+ /* Social Links - Compact */
225
+ .memberSocials {
226
+ display: flex;
227
+ gap: var(--spacing-xs);
228
+ margin-top: var(--spacing-xs);
229
+ }
230
+
231
+ .socialLink {
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: center;
235
+ width: 24px;
236
+ height: 24px;
237
+ border-radius: var(--border-radius-sm);
238
+ color: var(--color-text-muted);
239
+ transition: color var(--transition-base);
240
+ }
241
+
242
+ .socialLink:hover {
243
+ color: var(--accent-primary);
244
+ }
245
+
246
+ .socialLink svg {
247
+ width: 14px;
248
+ height: 14px;
249
+ flex-shrink: 0;
250
+ }
251
+
252
+ .memberDescription,
253
+ .memberContact {
254
+ display: none; /* Hide in minimal */
255
+ }
256
+
257
+ /* Past Members Link */
258
+ .pastMembersSection {
259
+ text-align: center;
260
+ margin-top: var(--spacing-2xl);
261
+ }
262
+
263
+ .pastMembersLink {
264
+ display: inline-flex;
265
+ align-items: center;
266
+ gap: 0.25rem;
267
+ color: var(--accent-primary);
268
+ font-weight: var(--font-weight-medium);
269
+ font-size: var(--font-size-sm);
270
+ text-decoration: none;
271
+ transition: gap var(--transition-base);
272
+ }
273
+
274
+ .pastMembersLink:hover {
275
+ gap: 0.5rem;
276
+ color: var(--accent-hover);
277
+ }
@@ -0,0 +1,170 @@
1
+ /* PicturesPage.module.css - Minimal Template */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 64px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: var(--max-width-content);
10
+ margin: 0 auto;
11
+ padding: 0 var(--spacing-lg);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--spacing-4xl) 0 var(--spacing-3xl);
18
+ border-bottom: 1px solid var(--color-border);
19
+ margin-bottom: var(--spacing-3xl);
20
+ }
21
+
22
+ .title {
23
+ font-size: var(--font-size-4xl);
24
+ font-weight: var(--font-weight-semibold);
25
+ color: var(--color-text-primary);
26
+ margin: 0 0 var(--spacing-sm) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: var(--font-size-lg);
31
+ color: var(--color-text-secondary);
32
+ max-width: 500px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ .main {
37
+ padding-bottom: var(--spacing-4xl);
38
+ }
39
+
40
+ .categoriesList {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: var(--spacing-3xl);
44
+ }
45
+
46
+ .categorySection {
47
+ width: 100%;
48
+ }
49
+
50
+ .categoryHeader {
51
+ font-size: var(--font-size-sm);
52
+ font-weight: var(--font-weight-semibold);
53
+ color: var(--accent-primary);
54
+ margin-bottom: var(--spacing-lg);
55
+ padding-bottom: var(--spacing-sm);
56
+ border-bottom: 1px solid var(--color-border);
57
+ }
58
+
59
+ /* Tight Gallery Grid - Square Images */
60
+ .photosGrid {
61
+ display: grid;
62
+ grid-template-columns: repeat(2, 1fr);
63
+ gap: var(--spacing-sm);
64
+ }
65
+
66
+ @media (min-width: 640px) {
67
+ .photosGrid {
68
+ grid-template-columns: repeat(3, 1fr);
69
+ }
70
+ }
71
+
72
+ @media (min-width: 1024px) {
73
+ .photosGrid {
74
+ grid-template-columns: repeat(4, 1fr);
75
+ }
76
+ }
77
+
78
+ /* Gallery Item - Square with Hover Caption */
79
+ .photoCard {
80
+ position: relative;
81
+ overflow: hidden;
82
+ cursor: pointer;
83
+ aspect-ratio: 1;
84
+ }
85
+
86
+ .photoImageWrapper {
87
+ width: 100%;
88
+ height: 100%;
89
+ overflow: hidden;
90
+ }
91
+
92
+ .photoImage {
93
+ width: 100%;
94
+ height: 100%;
95
+ object-fit: cover;
96
+ display: block;
97
+ transition: transform var(--transition-base);
98
+ }
99
+
100
+ .photoCard:hover .photoImage {
101
+ transform: scale(1.05);
102
+ }
103
+
104
+ /* Caption - Appears on Hover */
105
+ .photoCaption {
106
+ position: absolute;
107
+ bottom: 0;
108
+ left: 0;
109
+ right: 0;
110
+ padding: var(--spacing-md);
111
+ font-size: var(--font-size-xs);
112
+ line-height: 1.4;
113
+ text-align: center;
114
+ color: white;
115
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
116
+ opacity: 0;
117
+ transform: translateY(100%);
118
+ transition: all var(--transition-base);
119
+ }
120
+
121
+ .photoCard:hover .photoCaption {
122
+ opacity: 1;
123
+ transform: translateY(0);
124
+ }
125
+
126
+ /* Lightbox Overlay */
127
+ .lightboxOverlay {
128
+ position: fixed;
129
+ top: 0;
130
+ left: 0;
131
+ right: 0;
132
+ bottom: 0;
133
+ background-color: rgba(0, 0, 0, 0.9);
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ z-index: 9999;
138
+ padding: var(--spacing-2xl);
139
+ }
140
+
141
+ .lightboxContent {
142
+ position: relative;
143
+ max-width: 90vw;
144
+ max-height: 90vh;
145
+ }
146
+
147
+ .lightboxImage {
148
+ max-width: 100%;
149
+ max-height: 90vh;
150
+ border-radius: var(--border-radius-md);
151
+ }
152
+
153
+ .lightboxClose {
154
+ position: absolute;
155
+ top: -40px;
156
+ right: 0;
157
+ background: var(--accent-primary);
158
+ border: none;
159
+ width: 36px;
160
+ height: 36px;
161
+ border-radius: var(--border-radius-full);
162
+ color: white;
163
+ font-size: 1.25rem;
164
+ cursor: pointer;
165
+ transition: background var(--transition-base);
166
+ }
167
+
168
+ .lightboxClose:hover {
169
+ background: var(--accent-hover);
170
+ }