릴리스: v1.3.80 공통 오른쪽 레일 카피라이트 적용
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 의사결정 이력
|
||||
|
||||
## 2026-04-02 v1.3.79
|
||||
- 관리자 우측 카피라이트처럼 “오른쪽 레일 전체의 바닥”에 붙어야 하는 정보는 관리자 사이드바 패널 내부에 두면 안 되고, 사이드바 본체와 형제로 분리한 뒤 레일 컨테이너 높이를 기준으로 배치하는 편이 맞다고 정리했다.
|
||||
- 카피라이트처럼 앱 전체 브랜딩 성격의 footer는 관리자 텔레포트 안에 두기보다, `App.vue`의 공통 오른쪽 레일 footer로 두는 편이 위치도 안정적이고 화면 간 일관성도 높다고 정리했다.
|
||||
|
||||
## 2026-04-02 v1.3.78
|
||||
- 축소 상태에서는 텍스트가 사라지므로 같은 `티어표 만들기` 계열 액션이라도 커스텀 제작과 템플릿 기반 제작을 아이콘으로 구분해 주는 편이 맞다고 정리했다.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 할 일 및 이슈
|
||||
|
||||
## 단기 확인
|
||||
- 관리자 우측 카피라이트는 이제 오른쪽 레일 전체 기준 최하단에 붙도록 다시 정리했으므로, 관리자 각 탭에서 패널 내용 길이가 달라도 footer 위치가 흔들리지 않는지 한 번 더 QA한다.
|
||||
- 우측 카피라이트는 이제 공통 오른쪽 레일 footer이므로, 관리자 화면뿐 아니라 홈/프로필 등 오른쪽 사이드가 보이는 화면에서도 같은 최하단 위치에 유지되는지 한 번 더 QA한다.
|
||||
- 왼쪽 레일 축소 상태의 하단 액션 아이콘은 홈과 게임 허브에서 서로 다른 아이콘을 쓰도록 나눴으므로, 실제로 두 문맥이 한눈에 구분되는지 한 번 더 QA한다.
|
||||
- 왼쪽 레일 축소 상태 최하단의 `티어표 만들기` 아이콘 버튼은 새로 추가했으므로, 홈/게임 허브에서 실제로 같은 위치 감각으로 동작하는지 한 번 더 QA한다.
|
||||
- 관리자 우측 카피라이트 문구는 사이드바 내부 최하단으로 다시 옮겼으므로, 실제 관리자 화면에서 스크롤/창 크기 변화에도 계속 보이는지 한 번 더 QA한다.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 업데이트 로그
|
||||
|
||||
## 2026-04-02 v1.3.79
|
||||
- 관리자 우측 카피라이트는 관리자 사이드바 박스 안쪽 하단이 아니라, 오른쪽 레일 전체 기준 최하단에 고정되도록 구조를 다시 정리함.
|
||||
- 이를 위해 관리자 텔레포트 출력은 `사이드바 박스`와 `카피라이트 footer`를 형제로 분리하고, 오른쪽 레일 로컬 루트는 전체 높이를 채우는 세로 플렉스 컨테이너로 바꿔 페이지마다 footer 위치가 흔들리지 않게 맞춤.
|
||||
- 우측 카피라이트는 관리자 전용 레이아웃에서 분리해 앱 공통 `rightRail` footer로 올렸고, 이제 관리자 페이지뿐 아니라 오른쪽 사이드가 보이는 모든 화면에서 같은 최하단 위치에 표시됨.
|
||||
- 따라서 관리자 패널 길이나 페이지별 로컬 사이드바 내용과 무관하게, 카피라이트는 항상 오른쪽 레일 전체 기준 바닥에 고정되는 공통 footer 역할로 정리됨.
|
||||
|
||||
## 2026-04-02 v1.3.78
|
||||
- 왼쪽 레일 축소 상태의 하단 액션 아이콘은 문맥에 따라 구분되도록 바꿔, 홈의 `커스텀 티어표 만들기`는 `dashboard_customize` 아이콘을 쓰고 게임 허브의 일반 `티어표 만들기`만 `add_notes` 아이콘을 유지하도록 정리함.
|
||||
|
||||
@@ -21,6 +21,7 @@ const route = useRoute()
|
||||
const router = useRouter()
|
||||
const auth = useAuthStore()
|
||||
const { toasts, dismissToast } = useToast()
|
||||
const RIGHT_RAIL_COPYRIGHT_URL = 'https://zenn.town/@murabito'
|
||||
|
||||
const leftRailCollapsed = ref(false)
|
||||
const rightRailOpen = ref(true)
|
||||
@@ -628,6 +629,11 @@ function submitGlobalSearch() {
|
||||
</button>
|
||||
</section>
|
||||
</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>
|
||||
</aside>
|
||||
@@ -1200,13 +1206,31 @@ function submitGlobalSearch() {
|
||||
}
|
||||
|
||||
.rightRail__bottom {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: flex-end;
|
||||
margin-top: auto;
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
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 {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
|
||||
@@ -26,7 +26,6 @@ const router = useRouter()
|
||||
const globalRightRailOpen = inject('rightRailOpen', ref(true))
|
||||
const localRightRailTarget = inject('localRightRailTarget', '#local-right-rail-root')
|
||||
const isAdmin = computed(() => !!auth.user?.isAdmin)
|
||||
const ADMIN_COPYRIGHT_URL = 'https://zenn.town/@murabito'
|
||||
|
||||
const activeTab = ref('featured')
|
||||
const tierlistsMode = ref('requests')
|
||||
@@ -2197,8 +2196,7 @@ function userAvatarFallback(user) {
|
||||
</section>
|
||||
|
||||
<Teleport :to="localRightRailTarget">
|
||||
<div v-show="globalRightRailOpen" class="adminSidebarShell adminUiScope">
|
||||
<aside class="adminSidebar">
|
||||
<aside v-show="globalRightRailOpen" class="adminSidebar adminUiScope">
|
||||
<section class="adminSidebar__panel">
|
||||
<div class="adminSidebar__label">Mode</div>
|
||||
<div class="adminSidebar__tabs">
|
||||
@@ -2391,12 +2389,6 @@ function userAvatarFallback(user) {
|
||||
</div>
|
||||
</section>
|
||||
</aside>
|
||||
<div class="adminSidebarFooter">
|
||||
<span>Copyright © 2026 </span>
|
||||
<a :href="ADMIN_COPYRIGHT_URL" target="_blank" rel="noreferrer">zenn</a>
|
||||
<span>. All rights reserved.</span>
|
||||
</div>
|
||||
</div>
|
||||
</Teleport>
|
||||
</template>
|
||||
|
||||
@@ -2471,33 +2463,10 @@ function userAvatarFallback(user) {
|
||||
font-weight: 900;
|
||||
letter-spacing: -0.04em;
|
||||
}
|
||||
.adminUiScope.adminSidebarShell {
|
||||
min-height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
.adminUiScope .adminSidebar {
|
||||
.adminUiScope.adminSidebar {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
}
|
||||
.adminUiScope .adminSidebarFooter {
|
||||
margin-top: auto;
|
||||
padding: 4px 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 {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
|
||||
Reference in New Issue
Block a user