Skip to content

Commit f306674

Browse files
authored
Merge pull request #352 from Pseudo-Lab/feat/light-mode-assets-optimization
Feat/light mode assets optimization
2 parents cf4c63d + 2f56c46 commit f306674

36 files changed

Lines changed: 679 additions & 191 deletions

README.en.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Highlight activities of DevFactory 🤗
6666
<tr>
6767
<td align="center" width="200" valign="top">
6868
<b>Soohyun Kim</b><br>
69-
<img src="platform/frontend/public/members/soohyun.png" height="180px"><br>
69+
<img src="platform/frontend/public/members/soohyun.webp" height="180px"><br>
7070
<img src="https://img.shields.io/badge/-Builder-3776AB">
7171
<img src="https://img.shields.io/badge/-TPM-94A3B8">
7272
<img src="https://img.shields.io/badge/-INFRA-94A3B8"><br>
@@ -77,7 +77,7 @@ Highlight activities of DevFactory 🤗
7777
</td>
7878
<td align="center" width="200" valign="top">
7979
<b>Yesin Kim</b><br>
80-
<img src="platform/frontend/public/members/yesin.jpg" height="180px"><br>
80+
<img src="platform/frontend/public/members/yesin.webp" height="180px"><br>
8181
<img src="https://img.shields.io/badge/-Builder-3776AB">
8282
<img src="https://img.shields.io/badge/-BE-0891B2"><br>
8383
<img src="https://img.shields.io/badge/-10th-DAA520">
@@ -87,7 +87,7 @@ Highlight activities of DevFactory 🤗
8787
</td>
8888
<td align="center" width="200" valign="top">
8989
<b>Seungkyu Kim</b><br>
90-
<img src="platform/frontend/public/members/seungkyu.jpg" height="180px"><br>
90+
<img src="platform/frontend/public/members/seungkyu.webp" height="180px"><br>
9191
<img src="https://img.shields.io/badge/-Builder-3776AB">
9292
<img src="https://img.shields.io/badge/-FE-60A5FA"><br>
9393
<img src="https://img.shields.io/badge/-10th-DAA520">
@@ -108,7 +108,7 @@ Highlight activities of DevFactory 🤗
108108
<tr>
109109
<td align="center" width="200" valign="top">
110110
<b>Yujin Choi</b><br>
111-
<img src="platform/frontend/public/members/yujin.jpg" height="180px"><br>
111+
<img src="platform/frontend/public/members/yujin.webp" height="180px"><br>
112112
<img src="https://img.shields.io/badge/-Runner-10B981">
113113
<img src="https://img.shields.io/badge/-PO-818CF8"><br>
114114
<img src="https://img.shields.io/badge/-11th-C67117"><br>

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ DevFactory의 주요 활동 내역입니다 🤗
6161
<tr>
6262
<td align="center" width="200" valign="top">
6363
<b>김수현</b><br>
64-
<img src="platform/frontend/public/members/soohyun.png" height="180px"><br>
64+
<img src="platform/frontend/public/members/soohyun.webp" height="180px"><br>
6565
<img src="https://img.shields.io/badge/-Builder-3776AB">
6666
<img src="https://img.shields.io/badge/-TPM-94A3B8">
6767
<img src="https://img.shields.io/badge/-INFRA-94A3B8"><br>
@@ -72,7 +72,7 @@ DevFactory의 주요 활동 내역입니다 🤗
7272
</td>
7373
<td align="center" width="200" valign="top">
7474
<b>김예신</b><br>
75-
<img src="platform/frontend/public/members/yesin.jpg" height="180px"><br>
75+
<img src="platform/frontend/public/members/yesin.webp" height="180px"><br>
7676
<img src="https://img.shields.io/badge/-Builder-3776AB">
7777
<img src="https://img.shields.io/badge/-BE-0891B2"><br>
7878
<img src="https://img.shields.io/badge/-10th-DAA520">
@@ -82,7 +82,7 @@ DevFactory의 주요 활동 내역입니다 🤗
8282
</td>
8383
<td align="center" width="200" valign="top">
8484
<b>김승규</b><br>
85-
<img src="platform/frontend/public/members/seungkyu.jpg" height="180px"><br>
85+
<img src="platform/frontend/public/members/seungkyu.webp" height="180px"><br>
8686
<img src="https://img.shields.io/badge/-Builder-3776AB">
8787
<img src="https://img.shields.io/badge/-FE-60A5FA"><br>
8888
<img src="https://img.shields.io/badge/-10th-DAA520">
@@ -103,7 +103,7 @@ DevFactory의 주요 활동 내역입니다 🤗
103103
<tr>
104104
<td align="center" width="200" valign="top">
105105
<b>최유진</b><br>
106-
<img src="platform/frontend/public/members/yujin.jpg" height="180px"><br>
106+
<img src="platform/frontend/public/members/yujin.webp" height="180px"><br>
107107
<img src="https://img.shields.io/badge/-Runner-10B981">
108108
<img src="https://img.shields.io/badge/-PO-818CF8"><br>
109109
<img src="https://img.shields.io/badge/-11th-C67117"><br>

platform/docker-compose.dev.yml

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,20 @@
11
services:
2-
# Development Overrides with Traefik Support
2+
# Development mode (Hot-Reloading)
33
frontend:
44
build:
55
context: ./frontend
66
target: build-stage
7-
image: devfactory-frontend:dev
8-
command: npm run dev -- --host 0.0.0.0
7+
command: npm run dev -- --host 0.0.0.0 --port 80
98
volumes:
109
- ./frontend:/app
1110
- /app/node_modules
12-
labels:
13-
- traefik.enable=true
14-
- traefik.docker.network=traefik
15-
- traefik.http.routers.df-platform-web.rule=Host(`${APP_HOST}`)
16-
- traefik.http.routers.df-platform-web.entrypoints=websecure
17-
- traefik.http.routers.df-platform-web.tls=true
18-
- traefik.http.routers.df-platform-web.tls.certresolver=le
19-
- traefik.http.services.df-platform-web.loadbalancer.server.port=5173
20-
# HTTP → HTTPS redirect (re-adding to ensure full functionality)
21-
- traefik.http.routers.df-platform-web-http.rule=Host(`${APP_HOST}`)
22-
- traefik.http.routers.df-platform-web-http.entrypoints=web
23-
- traefik.http.routers.df-platform-web-http.middlewares=redirect-to-https@file
24-
- traefik.http.routers.df-platform-web-http.service=df-platform-web
11+
ports:
12+
- "8081:80"
2513

2614
server:
2715
command: npm run dev
2816
volumes:
2917
- ./server:/app
3018
- /app/node_modules
31-
labels:
32-
- traefik.enable=true
33-
- traefik.docker.network=traefik
34-
- traefik.http.routers.df-platform-api.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
35-
- traefik.http.routers.df-platform-api.entrypoints=websecure
36-
- traefik.http.routers.df-platform-api.tls=true
37-
- traefik.http.routers.df-platform-api.tls.certresolver=le
38-
- traefik.http.services.df-platform-api.loadbalancer.server.port=3000
39-
# HTTP → HTTPS redirect
40-
- traefik.http.routers.df-platform-api-http.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
41-
- traefik.http.routers.df-platform-api-http.entrypoints=web
42-
- traefik.http.routers.df-platform-api-http.middlewares=redirect-to-https@file
43-
- traefik.http.routers.df-platform-api-http.service=df-platform-api
19+
ports:
20+
- "3000:3000"

platform/docker-compose.yml

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,22 @@ services:
33
frontend:
44
build:
55
context: ./frontend
6-
labels:
7-
- "org.pseudolab.project=devfactory-platform"
86
container_name: devfactory-frontend
97
restart: unless-stopped
10-
networks:
11-
- traefik
12-
- internal
13-
labels:
14-
- traefik.enable=true
15-
- traefik.docker.network=traefik
16-
# --- Traefik Router (frontend) ---
17-
- traefik.http.routers.df-platform-web.rule=Host(`${APP_HOST}`)
18-
- traefik.http.routers.df-platform-web.entrypoints=websecure
19-
- traefik.http.routers.df-platform-web.tls=true
20-
- traefik.http.routers.df-platform-web.tls.certresolver=le
21-
- traefik.http.services.df-platform-web.loadbalancer.server.port=80
22-
# HTTP → HTTPS redirect
23-
- traefik.http.routers.df-platform-web-http.rule=Host(`${APP_HOST}`)
24-
- traefik.http.routers.df-platform-web-http.entrypoints=web
25-
- traefik.http.routers.df-platform-web-http.middlewares=redirect-to-https@file
26-
- traefik.http.routers.df-platform-web-http.service=df-platform-web
8+
ports:
9+
- "8081:80" # Caddy가 8081로 접속하도록 설정
10+
depends_on:
11+
- server
2712

2813
# Backend API server
2914
server:
3015
build:
3116
context: ./server
32-
labels:
33-
- "org.pseudolab.project=devfactory-platform"
3417
container_name: devfactory-api
3518
restart: unless-stopped
3619
environment:
3720
- DATABASE_URL=${DATABASE_URL}
3821
- ACCESS_LOGGING_IP_SALT=${ACCESS_LOGGING_IP_SALT}
3922
- PORT=3000
40-
networks:
41-
- traefik
42-
- internal
43-
labels:
44-
- traefik.enable=true
45-
- traefik.docker.network=traefik
46-
# --- Traefik Router (backend) ---
47-
- traefik.http.routers.df-platform-api.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
48-
- traefik.http.routers.df-platform-api.entrypoints=websecure
49-
- traefik.http.routers.df-platform-api.tls=true
50-
- traefik.http.routers.df-platform-api.tls.certresolver=le
51-
- traefik.http.services.df-platform-api.loadbalancer.server.port=3000
52-
# HTTP → HTTPS redirect
53-
- traefik.http.routers.df-platform-api-http.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
54-
- traefik.http.routers.df-platform-api-http.entrypoints=web
55-
- traefik.http.routers.df-platform-api-http.middlewares=redirect-to-https@file
56-
- traefik.http.routers.df-platform-api-http.service=df-platform-api
57-
58-
networks:
59-
traefik:
60-
external: true
61-
internal:
62-
driver: bridge
23+
ports:
24+
- "3000:3000"

platform/frontend/history/index.html

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,47 @@
55
<meta charset="UTF-8">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77
<title>DevFactory | Our Journey</title>
8-
<link rel="icon" type="image/png" href="/favicon.png">
8+
<link rel="icon" type="image/png" href="/favicon.webp">
99
<link rel="stylesheet" href="/style.css">
1010
</head>
1111

1212
<body>
1313
<header class="brand-header">
1414
<div class="header-content">
1515
<a href="/" class="logo-container">
16-
<img src="/brand_logo.png" alt="Pseudo-Lab DevFactory" class="brand-logo standard-logo">
16+
<img src="/logo_symbol_light.webp" alt="Pseudo-Lab DevFactory" class="brand-logo standard-logo">
1717
<span class="team-label">DevFactory</span>
1818
</a>
1919
<nav class="header-nav">
2020
<a href="/" class="nav-link">Home</a>
2121
</nav>
22+
<div class="header-right">
23+
<button id="theme-toggle" class="theme-toggle-btn" aria-label="Toggle Dark/Light Mode">
24+
<span class="theme-icon-sun">☀️</span>
25+
<span class="theme-icon-moon">🌙</span>
26+
</button>
27+
<button class="menu-toggle" id="menu-toggle" aria-label="Open Menu">
28+
<span class="bar"></span>
29+
<span class="bar"></span>
30+
<span class="bar"></span>
31+
</button>
32+
</div>
2233
</div>
2334
</header>
2435

36+
<!-- Mobile Menu Overlay -->
37+
<div class="mobile-menu-overlay" id="mobile-menu-overlay">
38+
<button class="close-menu" id="close-menu">&times;</button>
39+
<nav class="mobile-nav-links">
40+
<a href="/" class="mobile-nav-link">Home</a>
41+
<a href="/#intro" class="mobile-nav-link">Vision</a>
42+
<a href="/#projects" class="mobile-nav-link">Projects</a>
43+
<a href="/#team" class="mobile-nav-link">Team</a>
44+
<a href="/#journey-teaser-section" class="mobile-nav-link">History</a>
45+
<a href="/#activities" class="mobile-nav-link">Activities</a>
46+
</nav>
47+
</div>
48+
2549
<div class="bg-grid"></div>
2650
<div class="bg-glow"></div>
2751

@@ -133,11 +157,61 @@ <h3>6th PseudoCon</h3>
133157
</div>
134158
</div>
135159

136-
<footer class="site-footer" style="margin-top: 0;">
160+
<!-- Site Footer -->
161+
<footer class="site-footer">
162+
<div class="footer-container">
163+
<div class="footer-left">
164+
<div class="footer-social-wrapper">
165+
<div class="footer-social">
166+
<span class="social-label">DEVFACTORY</span>
167+
<a href="https://github.com/Pseudo-Lab/DevFactory" target="_blank" class="social-link"
168+
title="GitHub Repo">
169+
<svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
170+
<path
171+
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.042-1.416-4.042-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
172+
</svg>
173+
</a>
174+
</div>
175+
<div class="footer-social">
176+
<span class="social-label">PSEUDO-LAB</span>
177+
<a href="https://pseudo-lab.com/" target="_blank" class="social-link" title="Official site">
178+
<img src="/pl_symbol_white.webp" alt="Pseudo-Lab" style="width: 18px; height: auto;">
179+
</a>
180+
<a href="https://discord.gg/RvJnyDvBkK" target="_blank" class="social-link"
181+
title="Pseudo-Lab Discord">
182+
<svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
183+
<path
184+
d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037 19.736 19.736 0 0 0-4.885 1.515.069.069 0 0 0-.032.027C.533 9.048-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z" />
185+
</svg>
186+
</a>
187+
<a href="https://github.com/Pseudo-Lab" target="_blank" class="social-link"
188+
title="Pseudo-Lab GitHub">
189+
<svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
190+
<path
191+
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.042-1.416-4.042-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
192+
</svg>
193+
</a>
194+
<a href="https://www.linkedin.com/company/pseudolab/" target="_blank" class="social-link"
195+
title="LinkedIn">
196+
<svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
197+
<path
198+
d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" />
199+
</svg>
200+
</a>
201+
202+
</div>
203+
</div>
204+
</div>
205+
</div>
137206
<div class="footer-bottom">
138207
<p class="copyright">&copy; 2025 Pseudo-Lab DevFactory. All rights reserved.</p>
208+
<div class="footer-meta-links">
209+
<a href="https://github.com/Pseudo-Lab" target="_blank">Organization</a>
210+
<a href="mailto:soohyun.dev@gmail.com">Builder Contact</a>
211+
</div>
139212
</div>
140213
</footer>
214+
<script type="module" src="/main.js"></script>
141215
</body>
142216

143217
</html>

0 commit comments

Comments
 (0)