mirror of
https://github.com/headporter81/specialsource-homepage-frontend.git
synced 2026-08-08 15:21:11 +09:00
This commit is contained in:
+37
-30
@@ -34,26 +34,7 @@
|
|||||||
|
|
||||||
<div v-if="activeMenu === 'main'" class="sub-page main-page" key="main">
|
<div v-if="activeMenu === 'main'" class="sub-page main-page" key="main">
|
||||||
<div class="ascii-container">
|
<div class="ascii-container">
|
||||||
<pre class="ascii-art">
|
<pre class="ascii-art" v-html="formattedAscii"></pre>
|
||||||
███████╗██████╗ ███████╗ ██████╗██╗ █████╗ ██╗
|
|
||||||
██╔════╝██╔══██╗██╔════╝██╔════╝██║██╔══██╗██║
|
|
||||||
███████╗██████╔╝█████╗ ██║ ██║███████║██║
|
|
||||||
╚════██║██╔═══╝ ██╔══╝ ██║ ██║██╔══██║██║
|
|
||||||
███████║██║ ███████╗╚██████╗██║██║ ██║███████╗
|
|
||||||
╚══════╝╚═╝ ╚══════╝ ╚═════╝╚═╝╚═╝ ╚═╝╚══════╝
|
|
||||||
███████╗██████╗ ██╗ ██╗██████╗ ██████╗███████╗
|
|
||||||
██╔════╝██╔═══██╗██║ ██║██╔══██╗██╔════╝██╔════╝
|
|
||||||
███████╗██║ ██║██║ ██║██████╔╝██║ █████╗
|
|
||||||
╚════██║██║ ██║██║ ██║██╔══██╗██║ ██╔══╝
|
|
||||||
███████║╚██████╔╝╚██████╔╝██║ ██║╚██████╗███████╗
|
|
||||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
|
|
||||||
██████╗ ██████╗ ███╗ ███╗██████╗ █████╗ ███╗ ██╗██╗ ██╗
|
|
||||||
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔══██╗████╗ ██║╚██╗ ██╔╝
|
|
||||||
██║ ██║ ██║██╔████╔██║██████╔╝███████║██╔██╗ ██║ ╚████╔╝
|
|
||||||
██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██╔══██║██║╚██╗██║ ╚██╔╝
|
|
||||||
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║ ██║██║ ╚████║ ██║
|
|
||||||
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝
|
|
||||||
</pre>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -184,6 +165,33 @@ const menuItems = [
|
|||||||
|
|
||||||
const isLoggedIn = computed(() => !!authToken.value);
|
const isLoggedIn = computed(() => !!authToken.value);
|
||||||
|
|
||||||
|
// 🟢 [★변경] 원래 배너 문자열을 스크립트 단으로 격리
|
||||||
|
const rawAscii = `
|
||||||
|
███████╗██████╗ ███████╗ ██████╗██╗ █████╗ ██╗
|
||||||
|
██╔════╝██╔══██╗██╔════╝██╔════╝██║██╔══██╗██║
|
||||||
|
███████╗██████╔╝█████╗ ██║ ██║███████║██║
|
||||||
|
╚════██║██╔═══╝ ██╔══╝ ██║ ██║██╔══██║██║
|
||||||
|
███████║██║ ███████╗╚██████╗██║██║ ██║███████╗
|
||||||
|
╚══════╝╚═╝ ╚══════╝ ╚═════╝╚═╝╚═╝ ╚═╝╚══════╝
|
||||||
|
███████╗██████╗ ██╗ ██╗██████╗ ██████╗███████╗
|
||||||
|
██╔════╝██╔═══██╗██║ ██║██╔══██╗██╔════╝██╔════╝
|
||||||
|
███████╗██║ ██║██║ ██║██████╔╝██║ █████╗
|
||||||
|
╚════██║██║ ██║██║ ██║██╔══██╗██║ ██╔══╝
|
||||||
|
███████║╚██████╔╝╚██████╔╝██║ ██║╚██████╗███████╗
|
||||||
|
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
|
||||||
|
██████╗ ██████╗ ███╗ ███╗██████╗ █████╗ ███╗ ██╗██╗ ██╗
|
||||||
|
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔══██╗████╗ ██║╚██╗ ██╔╝
|
||||||
|
██║ ██║ ██║██╔████╔██║██████╔╝███████║██╔██╗ ██║ ╚████╔╝
|
||||||
|
██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██╔══██║██║╚██╗██║ ╚██╔╝
|
||||||
|
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║ ██║██║ ╚████║ ██║
|
||||||
|
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝`;
|
||||||
|
|
||||||
|
// 🟢 [★추가] 유저님의 아이디어를 100% 수렴한 치트키 필터
|
||||||
|
// 공백(' ')을 동일한 물리 폭을 가진 블록 문자('█')로 바꾸고 클래스를 먹여 검은색 처리합니다.
|
||||||
|
const formattedAscii = computed(() => {
|
||||||
|
return rawAscii.replace(/ /g, '<span class="bg-block">█</span>');
|
||||||
|
});
|
||||||
|
|
||||||
const changeMenu = (id) => {
|
const changeMenu = (id) => {
|
||||||
if (activeMenu.value === id) return;
|
if (activeMenu.value === id) return;
|
||||||
|
|
||||||
@@ -350,7 +358,6 @@ onMounted(() => {
|
|||||||
<style>
|
<style>
|
||||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;700&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;700&display=swap');
|
||||||
|
|
||||||
/* GNB, 버튼, 인풋, 터미널 등 일반 텍스트 영역은 개발자 폰트 대통합 */
|
|
||||||
.homepage-wrapper,
|
.homepage-wrapper,
|
||||||
.menu-btn,
|
.menu-btn,
|
||||||
.nav-item,
|
.nav-item,
|
||||||
@@ -364,12 +371,6 @@ onMounted(() => {
|
|||||||
:deep(.terminal span) {
|
:deep(.terminal span) {
|
||||||
font-family: 'JetBrains Mono', monospace !important;
|
font-family: 'JetBrains Mono', monospace !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 🌟 [핵심 수정] 웹 폰트(JetBrains) 서브셋에서 특수문자 선 기호(╔, ═, ╝)가 빠지는 버그 차단.
|
|
||||||
배너 영역만큼은 모바일 크롬 내장 순수 모노스페이스 스택으로 완전 분리하여 1:1 완벽 정렬 강제 유도 */
|
|
||||||
.ascii-art {
|
|
||||||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Courier New", monospace !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -479,6 +480,12 @@ onMounted(() => {
|
|||||||
animation: once-cyber-glitch-wobble 2.5s linear 1 forwards !important;
|
animation: once-cyber-glitch-wobble 2.5s linear 1 forwards !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 🟢 [★추가] 공백 치환용 백그라운드 클로킹 블록 CSS */
|
||||||
|
:deep(.bg-block) {
|
||||||
|
color: #050505 !important; /* 홈페이지 본체 배경색인 완벽한 검은색(#050505) 처리 */
|
||||||
|
text-shadow: none !important; /* 부모 글리치 레이어의 빛 번짐(Glow) 차단 */
|
||||||
|
}
|
||||||
|
|
||||||
/* 📺 유튜브 그리드 레이아웃 */
|
/* 📺 유튜브 그리드 레이아웃 */
|
||||||
#videos-container {
|
#videos-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
@@ -566,7 +573,7 @@ iframe { width: 100%; height: 180px; border-radius: 4px; }
|
|||||||
.project-grid { grid-template-columns: 1fr; }
|
.project-grid { grid-template-columns: 1fr; }
|
||||||
.auth-nav { flex-direction: column; gap: 12px; padding: 15px 20px; }
|
.auth-nav { flex-direction: column; gap: 12px; padding: 15px 20px; }
|
||||||
|
|
||||||
/* 🟢 [가로 스크롤 활성화] 원래 원하셨던 모바일 가로 스크롤 컨테이너 복구 */
|
/* 쾌적한 모바일 가로 스크롤 뷰 복구 */
|
||||||
.ascii-container {
|
.ascii-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-x: auto !important;
|
overflow-x: auto !important;
|
||||||
@@ -578,14 +585,14 @@ iframe { width: 100%; height: 180px; border-radius: 4px; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ascii-art {
|
.ascii-art {
|
||||||
font-size: 10px !important; /* 가로 스크롤 시 한눈에 잡히는 모바일 최적 크기 */
|
font-size: 11px !important;
|
||||||
line-height: 1.35 !important;
|
line-height: 1.35 !important;
|
||||||
white-space: pre !important;
|
white-space: pre !important;
|
||||||
word-break: keep-all !important;
|
word-break: keep-all !important;
|
||||||
width: max-content !important;
|
width: max-content !important;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
|
|
||||||
/* 🟢 [치트키] 모바일 크롬이 글자 크기를 강제 보정해서 칼각을 찢어버리는 '폰트 부스팅' 버그 완벽 차단 */
|
/* 모바일 크롬의 텍스트 오토-사이징 부스팅 버그 영구 무력화 */
|
||||||
-webkit-text-size-adjust: none !important;
|
-webkit-text-size-adjust: none !important;
|
||||||
text-size-adjust: none !important;
|
text-size-adjust: none !important;
|
||||||
max-height: 999999px !important;
|
max-height: 999999px !important;
|
||||||
|
|||||||
Reference in New Issue
Block a user