Skip to content

Commit 6a63cb0

Browse files
jokester-zzzclaude
andcommitted
feat: square avatars, cartoon hover, hamburger nav, team sorting
- Avatar shape changed to square with rounded corners - Cartoon image hover effect for all 11 faculty members - Mobile hamburger menu for navigation - Team members sorted by last name (Botan Shi pinned first) - Added new members: all photos and cartoon avatars Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d613f53 commit 6a63cb0

37 files changed

Lines changed: 197 additions & 42 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ Official homepage for **KnowledgeX Lab**, built with Jekyll and hosted on GitHub
1212

1313
```bash
1414
# Install dependencies (first time only)
15-
PATH="/home/yangxuemeng/anaconda3/bin:$PATH" bundle install
15+
bundle install
1616

1717
# Start local server
18-
PATH="/home/yangxuemeng/anaconda3/bin:$PATH" bundle exec jekyll serve
18+
bundle exec jekyll serve
1919
```
2020

2121
Open http://localhost:4000

_data/people.yml

Lines changed: 97 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,55 @@
1-
- name: "Licheng Wen"
1+
- name: "Botan Shi"
22
role: "Faculty"
3-
photo: "/assets/images/people/wenlicheng.jpg"
3+
photo: "/assets/images/people/shibotan.jpg"
4+
cartoon: "/assets/images/cartoon/shibotian.jpeg"
45
bio: ""
56
research: ""
67
links:
7-
homepage: "https://wenlc.cn/"
8-
scholar: "https://scholar.google.com/citations?user=RNnjXTkAAAAJ"
8+
homepage: ""
9+
scholar: "https://scholar.google.com/citations?user=K0PpvLkAAAAJ&hl=en"
910
github: ""
10-
email: "wenlicheng@pjlab.org.cn"
11+
email: "friskit.china@gmail.com"
1112

12-
- name: "Qinyuan Qin"
13+
- name: "Xinyu Cai"
1314
role: "Faculty"
14-
photo: "/assets/images/people/qinyuanqin.jpg"
15+
photo: "/assets/images/people/caixinyu.jpg"
16+
cartoon: "/assets/images/cartoon/caixinyu.jpeg"
1517
bio: ""
1618
research: ""
1719
links:
1820
homepage: ""
1921
scholar: ""
20-
github: "https://github.com/tulongshaonian771"
21-
email: "974930108@qq.com"
22+
github: ""
23+
email: "caixinyu@pjlab.org.cn"
24+
25+
- name: "Yang Chen"
26+
role: "Faculty"
27+
photo: "/assets/images/people/chenyang.jpg"
28+
cartoon: "/assets/images/cartoon/chenyang.jpeg"
29+
bio: ""
30+
research: ""
31+
links:
32+
homepage: ""
33+
scholar: ""
34+
github: ""
35+
email: "chenyang3@pjlab.org.cn"
36+
37+
- name: "Nianchen Deng"
38+
role: "Faculty"
39+
photo: "/assets/images/people/dengnianchen.jpg"
40+
cartoon: "/assets/images/cartoon/dengnianchen.jpeg"
41+
bio: ""
42+
research: ""
43+
links:
44+
homepage: ""
45+
scholar: ""
46+
github: ""
47+
email: "dengnianchen@pjlab.org.cn"
2248

2349
- name: "Song Mao"
2450
role: "Faculty"
2551
photo: "/assets/images/people/maosong.jpg"
52+
cartoon: "/assets/images/cartoon/maosong.jpeg"
2653
bio: ""
2754
research: ""
2855
links:
@@ -31,13 +58,74 @@
3158
github: "https://github.com/MaoSong2022"
3259
email: "maosong@pjlab.org.cn"
3360

61+
- name: "Qinyuan Qin"
62+
role: "Faculty"
63+
photo: "/assets/images/people/qinqinyuan.jpg"
64+
cartoon: "/assets/images/cartoon/qinqinyuan.jpeg"
65+
bio: ""
66+
research: ""
67+
links:
68+
homepage: ""
69+
scholar: ""
70+
github: "https://github.com/tulongshaonian771"
71+
email: "974930108@qq.com"
72+
3473
- name: "Yufan Shen"
3574
role: "Faculty"
3675
photo: "/assets/images/people/shenyufan.jpg"
76+
cartoon: "/assets/images/cartoon/shenyufan.jpeg"
3777
bio: ""
3878
research: ""
3979
links:
4080
homepage: ""
4181
scholar: "https://scholar.google.com/citations?user=BnGLjlgAAAAJ&hl=zh-CN"
4282
github: ""
4383
email: "shenyfzju@gmail.com"
84+
85+
- name: "Licheng Wen"
86+
role: "Faculty"
87+
photo: "/assets/images/people/wenlicheng.jpg"
88+
cartoon: "/assets/images/cartoon/wenlicheng.jpeg"
89+
bio: ""
90+
research: ""
91+
links:
92+
homepage: "https://wenlc.cn/"
93+
scholar: "https://scholar.google.com/citations?user=RNnjXTkAAAAJ"
94+
github: ""
95+
email: "wenlicheng@pjlab.org.cn"
96+
97+
- name: "Guohang Yan"
98+
role: "Faculty"
99+
photo: "/assets/images/people/yanguohang.jpg"
100+
cartoon: "/assets/images/cartoon/yanguohang.jpeg"
101+
bio: ""
102+
research: ""
103+
links:
104+
homepage: ""
105+
scholar: "https://scholar.google.com/citations?user=xB3V4xIAAAAJ&hl=zh-CN"
106+
github: ""
107+
email: "yanguohang@pjlab.org.cn"
108+
109+
- name: "Xuemeng Yang"
110+
role: "Faculty"
111+
photo: "/assets/images/people/yangxuemeng.jpg"
112+
cartoon: "/assets/images/cartoon/yangxuemeng.jpeg"
113+
bio: ""
114+
research: ""
115+
links:
116+
homepage: "https://jokester-zzz.github.io/"
117+
scholar: "https://scholar.google.com/citations?user=xGuZsikAAAAJ&hl=en"
118+
github: "https://github.com/jokester-zzz"
119+
email: "yangxuemeng@pjlab.org.cn"
120+
121+
- name: "Hongbin Zhou"
122+
role: "Faculty"
123+
photo: "/assets/images/people/zhouhongbin.jpg"
124+
cartoon: "/assets/images/cartoon/zhouhongbin.jpeg"
125+
bio: ""
126+
research: ""
127+
links:
128+
homepage: ""
129+
scholar: "https://scholar.google.com/citations?user=fb_WgAEAAAAJ&hl=en"
130+
github: "https://github.com/PrinceVictor"
131+
email: "zhouhongbin@pjlab.org.cn"

_includes/header.html

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
<nav class="site-nav">
22
<div class="container">
33
<a href="{{ '/' | relative_url }}" class="logo"><span style="color: var(--accent)">KnowledgeX</span>Lab</span></a>
4-
<ul class="nav-links">
5-
{% for link in site.nav_links %}
6-
<li>
7-
<a href="{{ link.url | relative_url }}"
8-
{% if page.url == link.url %}class="active"{% endif %}>
9-
{{ link.title }}
10-
</a>
11-
</li>
12-
{% endfor %}
13-
<li>
14-
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode"></button>
15-
</li>
16-
</ul>
4+
<div class="nav-right">
5+
<ul class="nav-links" id="nav-links">
6+
{% for link in site.nav_links %}
7+
<li>
8+
<a href="{{ link.url | relative_url }}"
9+
{% if page.url == link.url %}class="active"{% endif %}>
10+
{{ link.title }}
11+
</a>
12+
</li>
13+
{% endfor %}
14+
<li>
15+
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode"></button>
16+
</li>
17+
</ul>
18+
<button class="nav-hamburger" id="nav-hamburger" aria-label="Menu">
19+
<span></span><span></span><span></span>
20+
</button>
21+
</div>
1722
</div>
1823
</nav>

_layouts/default.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,6 @@
2323
</main>
2424
{% include footer.html %}
2525
<script src="{{ '/assets/js/hero.js' | relative_url }}"></script>
26+
<script src="{{ '/assets/js/nav.js' | relative_url }}"></script>
2627
</body>
2728
</html>

assets/css/main.css

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,24 @@ img { max-width: 100%; height: auto; display: block; }
121121
}
122122
.nav-links a:hover, .nav-links a.active { color: var(--text-primary); }
123123

124+
.nav-right { display: flex; align-items: center; }
125+
126+
.nav-hamburger {
127+
display: none;
128+
flex-direction: column; justify-content: center; gap: 5px;
129+
background: none; border: none; cursor: pointer;
130+
padding: 4px; margin-left: 12px;
131+
}
132+
.nav-hamburger span {
133+
display: block; width: 22px; height: 2px;
134+
background: var(--text-primary);
135+
border-radius: 2px;
136+
transition: transform 0.2s, opacity 0.2s;
137+
}
138+
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
139+
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
140+
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
141+
124142
.theme-toggle {
125143
background: var(--border);
126144
border: none; border-radius: var(--radius-full);
@@ -459,29 +477,35 @@ img { max-width: 100%; height: auto; display: block; }
459477
}
460478

461479
.people-grid {
462-
display: grid; grid-template-columns: repeat(3, 1fr);
463-
gap: 16px; margin-bottom: 48px;
480+
display: grid; grid-template-columns: repeat(4, 1fr);
481+
gap: 24px; margin-bottom: 48px;
464482
}
465483
.person-card {
466-
background: var(--bg-card);
467-
border: 1px solid var(--border);
468-
border-radius: var(--radius-lg);
469-
padding: 24px 20px;
484+
background: transparent;
485+
border: none;
486+
padding: 0;
470487
text-align: center;
471-
transition: box-shadow 0.2s, transform 0.2s;
472488
}
473-
.person-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
489+
.person-card:hover .avatar { transform: translateY(-3px); }
474490
.person-card .avatar {
475-
width: 200px; height: 200px; border-radius: 50%;
476-
margin: 0 auto 16px;
491+
width: 100%; aspect-ratio: 1 / 1; border-radius: var(--radius-lg);
492+
margin: 0 auto 14px;
477493
background: var(--accent-light);
478-
border: 1px solid var(--accent-border);
479494
display: flex; align-items: center; justify-content: center;
480495
font-size: 1.5rem; overflow: hidden;
496+
transition: transform 0.2s;
481497
}
482498
.person-card .avatar img {
483499
width: 100%; height: 100%; object-fit: cover; object-position: center top;
484500
}
501+
.person-card .avatar.has-cartoon { position: relative; }
502+
.person-card .avatar.has-cartoon img {
503+
position: absolute; inset: 0;
504+
transition: opacity 0.35s ease;
505+
}
506+
.person-card .avatar.has-cartoon .photo-cartoon { opacity: 0; }
507+
.person-card:hover .avatar.has-cartoon .photo-real { opacity: 0; }
508+
.person-card:hover .avatar.has-cartoon .photo-cartoon { opacity: 1; }
485509
.person-card h3 {
486510
font-family: var(--font-display);
487511
font-size: 1.0625rem; font-weight: 600;
@@ -692,9 +716,21 @@ img { max-width: 100%; height: auto; display: block; }
692716
.hero-img-wrap { display: none; }
693717
.hero-inner { padding: 108px 20px 48px; }
694718
.research-grid { grid-template-columns: 1fr; gap: 1px; }
695-
.people-grid { grid-template-columns: repeat(2, 1fr); }
719+
.people-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
696720
.projects-grid { grid-template-columns: 1fr; }
697-
.nav-links { display: none; }
721+
.nav-links {
722+
display: none;
723+
position: absolute; top: 60px; left: 0; right: 0;
724+
flex-direction: column; align-items: stretch; gap: 0;
725+
background: var(--bg);
726+
border-bottom: 1px solid var(--border-light);
727+
padding: 8px 0;
728+
z-index: 99;
729+
}
730+
.nav-links.open { display: flex; }
731+
.nav-links li { width: 100%; }
732+
.nav-links a, .nav-links li:last-child { padding: 12px 24px; display: block; font-size: 0.9375rem; }
733+
.nav-hamburger { display: flex; }
698734
.pi-card { flex-direction: column; }
699735
.stats-bar { flex-wrap: wrap; gap: 24px; }
700736
.stat-item { border-right: none; padding: 0; min-width: 120px; }
281 KB
Loading
281 KB
Loading
439 KB
Loading
303 KB
Loading

assets/images/cartoon/doumin.jpeg

281 KB
Loading

0 commit comments

Comments
 (0)