Compare commits

...

2 Commits

5 changed files with 43 additions and 34 deletions

View File

@@ -1,5 +1,8 @@
# 의사결정 이력 # 의사결정 이력
## 2026-04-02 v1.3.79
- 카피라이트처럼 앱 전체 브랜딩 성격의 footer는 관리자 텔레포트 안에 두기보다, `App.vue`의 공통 오른쪽 레일 footer로 두는 편이 위치도 안정적이고 화면 간 일관성도 높다고 정리했다.
## 2026-04-02 v1.3.78 ## 2026-04-02 v1.3.78
- 축소 상태에서는 텍스트가 사라지므로 같은 `티어표 만들기` 계열 액션이라도 커스텀 제작과 템플릿 기반 제작을 아이콘으로 구분해 주는 편이 맞다고 정리했다. - 축소 상태에서는 텍스트가 사라지므로 같은 `티어표 만들기` 계열 액션이라도 커스텀 제작과 템플릿 기반 제작을 아이콘으로 구분해 주는 편이 맞다고 정리했다.
- 관리자 우측 카피라이트처럼 “사이드바 하단”에 붙어야 하는 정보는 텔레포트 루트의 형제 노드로 두기보다, 실제 사이드바 컨테이너 내부의 마지막 행으로 두는 편이 레이아웃상 안전하다고 판단했다. - 관리자 우측 카피라이트처럼 “사이드바 하단”에 붙어야 하는 정보는 텔레포트 루트의 형제 노드로 두기보다, 실제 사이드바 컨테이너 내부의 마지막 행으로 두는 편이 레이아웃상 안전하다고 판단했다.

View File

@@ -1,6 +1,7 @@
# 할 일 및 이슈 # 할 일 및 이슈
## 단기 확인 ## 단기 확인
- 우측 카피라이트는 이제 공통 오른쪽 레일 footer이므로, 관리자 화면뿐 아니라 홈/프로필 등 오른쪽 사이드가 보이는 화면에서도 같은 최하단 위치에 유지되는지 한 번 더 QA한다.
- 왼쪽 레일 축소 상태의 하단 액션 아이콘은 홈과 게임 허브에서 서로 다른 아이콘을 쓰도록 나눴으므로, 실제로 두 문맥이 한눈에 구분되는지 한 번 더 QA한다. - 왼쪽 레일 축소 상태의 하단 액션 아이콘은 홈과 게임 허브에서 서로 다른 아이콘을 쓰도록 나눴으므로, 실제로 두 문맥이 한눈에 구분되는지 한 번 더 QA한다.
- 왼쪽 레일 축소 상태 최하단의 `티어표 만들기` 아이콘 버튼은 새로 추가했으므로, 홈/게임 허브에서 실제로 같은 위치 감각으로 동작하는지 한 번 더 QA한다. - 왼쪽 레일 축소 상태 최하단의 `티어표 만들기` 아이콘 버튼은 새로 추가했으므로, 홈/게임 허브에서 실제로 같은 위치 감각으로 동작하는지 한 번 더 QA한다.
- 관리자 우측 카피라이트 문구는 사이드바 내부 최하단으로 다시 옮겼으므로, 실제 관리자 화면에서 스크롤/창 크기 변화에도 계속 보이는지 한 번 더 QA한다. - 관리자 우측 카피라이트 문구는 사이드바 내부 최하단으로 다시 옮겼으므로, 실제 관리자 화면에서 스크롤/창 크기 변화에도 계속 보이는지 한 번 더 QA한다.

View File

@@ -1,5 +1,9 @@
# 업데이트 로그 # 업데이트 로그
## 2026-04-02 v1.3.79
- 우측 카피라이트는 관리자 전용 레이아웃에서 분리해 앱 공통 `rightRail` footer로 올렸고, 이제 관리자 페이지뿐 아니라 오른쪽 사이드가 보이는 모든 화면에서 같은 최하단 위치에 표시됨.
- 따라서 관리자 패널 길이나 페이지별 로컬 사이드바 내용과 무관하게, 카피라이트는 항상 오른쪽 레일 전체 기준 바닥에 고정되는 공통 footer 역할로 정리됨.
## 2026-04-02 v1.3.78 ## 2026-04-02 v1.3.78
- 왼쪽 레일 축소 상태의 하단 액션 아이콘은 문맥에 따라 구분되도록 바꿔, 홈의 `커스텀 티어표 만들기``dashboard_customize` 아이콘을 쓰고 게임 허브의 일반 `티어표 만들기``add_notes` 아이콘을 유지하도록 정리함. - 왼쪽 레일 축소 상태의 하단 액션 아이콘은 문맥에 따라 구분되도록 바꿔, 홈의 `커스텀 티어표 만들기``dashboard_customize` 아이콘을 쓰고 게임 허브의 일반 `티어표 만들기``add_notes` 아이콘을 유지하도록 정리함.
- 관리자 우측 카피라이트 문구는 사이드바 바깥 형제로 밀려 보이지 않을 수 있었으므로, 다시 관리자 사이드바 `aside` 내부 최하단으로 옮겨 레이아웃 안에서 안정적으로 보이게 정리함. - 관리자 우측 카피라이트 문구는 사이드바 바깥 형제로 밀려 보이지 않을 수 있었으므로, 다시 관리자 사이드바 `aside` 내부 최하단으로 옮겨 레이아웃 안에서 안정적으로 보이게 정리함.

View File

@@ -21,6 +21,7 @@ const route = useRoute()
const router = useRouter() const router = useRouter()
const auth = useAuthStore() const auth = useAuthStore()
const { toasts, dismissToast } = useToast() const { toasts, dismissToast } = useToast()
const RIGHT_RAIL_COPYRIGHT_URL = 'https://zenn.town/@murabito'
const leftRailCollapsed = ref(false) const leftRailCollapsed = ref(false)
const rightRailOpen = ref(true) const rightRailOpen = ref(true)
@@ -628,6 +629,11 @@ function submitGlobalSearch() {
</button> </button>
</section> </section>
</template> </template>
<div class="rightRail__footer">
<span>Copyright © 2026 </span>
<a :href="RIGHT_RAIL_COPYRIGHT_URL" target="_blank" rel="noreferrer">zenn</a>
<span>. All rights reserved.</span>
</div>
</div> </div>
</div> </div>
</aside> </aside>
@@ -748,8 +754,11 @@ function submitGlobalSearch() {
} }
.rightRail__content { .rightRail__content {
flex: 0 0 auto; flex: 1 1 auto;
min-height: 0;
overflow: visible; overflow: visible;
display: flex;
flex-direction: column;
} }
.ghostIcon { .ghostIcon {
@@ -1197,13 +1206,31 @@ function submitGlobalSearch() {
} }
.rightRail__bottom { .rightRail__bottom {
display: flex; margin-top: auto;
align-items: flex-end; display: grid;
justify-content: flex-end;
gap: 10px; gap: 10px;
padding-top: 12px; padding-top: 12px;
} }
.rightRail__footer {
padding: 0 4px 2px;
font-size: 9px;
line-height: 1.4;
text-align: center;
color: var(--theme-text-faint);
opacity: 0.72;
}
.rightRail__footer a {
color: #00ffff;
text-decoration: none;
}
.rightRail__footer a:hover {
color: #00ffff;
text-decoration: underline;
}
.settingsThemePanel { .settingsThemePanel {
display: grid; display: grid;
gap: 10px; gap: 10px;
@@ -1627,9 +1654,10 @@ function submitGlobalSearch() {
} }
.localRightRailRoot { .localRightRailRoot {
min-height: auto; flex: 1 1 auto;
display: grid; min-height: 100%;
align-content: start; display: flex;
flex-direction: column;
gap: 14px; gap: 14px;
} }

View File

@@ -26,7 +26,6 @@ const router = useRouter()
const globalRightRailOpen = inject('rightRailOpen', ref(true)) const globalRightRailOpen = inject('rightRailOpen', ref(true))
const localRightRailTarget = inject('localRightRailTarget', '#local-right-rail-root') const localRightRailTarget = inject('localRightRailTarget', '#local-right-rail-root')
const isAdmin = computed(() => !!auth.user?.isAdmin) const isAdmin = computed(() => !!auth.user?.isAdmin)
const ADMIN_COPYRIGHT_URL = 'https://zenn.town/@murabito'
const activeTab = ref('featured') const activeTab = ref('featured')
const tierlistsMode = ref('requests') const tierlistsMode = ref('requests')
@@ -2389,11 +2388,6 @@ function userAvatarFallback(user) {
</div> </div>
</div> </div>
</section> </section>
<div class="adminSidebarFooter">
<span>Copyright © 2026 </span>
<a :href="ADMIN_COPYRIGHT_URL" target="_blank" rel="noreferrer">zenn</a>
<span>. All rights reserved.</span>
</div>
</aside> </aside>
</Teleport> </Teleport>
</template> </template>
@@ -2473,27 +2467,6 @@ function userAvatarFallback(user) {
display: grid; display: grid;
gap: 12px; gap: 12px;
} }
.adminUiScope .adminSidebarFooter {
margin-top: auto;
padding-top: 4px;
}
.adminUiScope .adminSidebarFooter {
margin-top: 6px;
padding: 0 4px 2px;
font-size: 9px;
line-height: 1.4;
text-align: center;
color: var(--theme-text-faint);
opacity: 0.72;
}
.adminUiScope .adminSidebarFooter a {
color: #00ffff;
text-decoration: none;
}
.adminUiScope .adminSidebarFooter a:hover {
color: #00ffff;
text-decoration: underline;
}
.adminUiScope .adminSidebar__panel { .adminUiScope .adminSidebar__panel {
display: grid; display: grid;
gap: 12px; gap: 12px;