MediaWiki:KuranokaPageTransition.css:修订间差异
MediaWiki界面页面
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
/* ============================================================ | |||
KURANOKA PAGE TRANSITION V3 — ASHES / REBIRTH | |||
MediaWiki:KuranokaPageTransition.css | |||
Only loaded on /wiki/Kuranoka and /wiki/Kuronata. | |||
============================================================ */ | |||
/* 原生跨页面无缝衔接 */ | |||
@view-transition { | |||
navigation: auto; | |||
} | |||
::view-transition-old(root), | |||
::view-transition-new(root) { | |||
animation-duration: 180ms; | |||
animation-timing-function: ease-out; | |||
animation-fill-mode: both; | |||
} | |||
/* 切换按钮 */ | |||
#kkpt-toggle { | #kkpt-toggle { | ||
--kkpt-accent: # | --kkpt-accent: #93dfff; | ||
--kkpt-ink: #eefaff; | |||
--kkpt-panel: rgba(8, 27, 43, .82); | |||
position: fixed; | position: fixed; | ||
right: clamp( | right: clamp(12px, 2.3vw, 34px); | ||
bottom: clamp( | bottom: clamp(14px, 3.4vh, 34px); | ||
z-index: | z-index: 2147483000; | ||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
gap: 11px; | gap: 11px; | ||
max-width: calc(100vw - | |||
box-sizing: border-box; | |||
max-width: calc(100vw - 24px); | |||
padding: 12px 17px; | padding: 12px 17px; | ||
border: 1px solid var(--kkpt-accent); | |||
color: var(--kkpt-ink) !important; | |||
background: var(--kkpt-panel); | |||
border: 1px solid color-mix( | |||
in srgb, | |||
var(--kkpt-accent) 64%, | |||
transparent | |||
); | |||
border-radius: 999px; | border-radius: 999px; | ||
font: 650 13px/1.35 system-ui, sans-serif; | |||
font: | |||
letter-spacing: .04em; | letter-spacing: .04em; | ||
text-decoration: none !important; | text-decoration: none !important; | ||
box-shadow: 0 | cursor: pointer; | ||
backdrop-filter: blur( | box-shadow: | ||
transition: transform .2s, box-shadow | 0 6px 29px #0006, | ||
0 0 23px color-mix( | |||
in srgb, | |||
var(--kkpt-accent) 20%, | |||
transparent | |||
); | |||
backdrop-filter: blur(18px) saturate(135%); | |||
-webkit-backdrop-filter: blur(18px) saturate(135%); | |||
transition: | |||
transform .2s, | |||
opacity .18s, | |||
box-shadow .2s; | |||
} | } | ||
/* Kuronata 血红主题 */ | |||
body.page-Kuronata #kkpt-toggle { | body.page-Kuronata #kkpt-toggle { | ||
--kkpt-accent: # | --kkpt-accent: #ff718b; | ||
--kkpt-ink: #fff1f3; | |||
--kkpt-panel: rgba(46, 2, 13, .86); | |||
} | } | ||
#kkpt-toggle:hover, #kkpt-toggle:focus-visible { | |||
#kkpt-toggle:hover, | |||
#kkpt-toggle:focus-visible { | |||
transform: translateY(-3px); | transform: translateY(-3px); | ||
box-shadow: 0 8px | |||
box-shadow: | |||
0 8px 34px #0009, | |||
0 0 36px var(--kkpt-accent); | |||
} | |||
#kkpt-toggle:focus-visible { | |||
outline: 2px solid var(--kkpt-accent); | |||
outline-offset: 4px; | |||
} | |||
#kkpt-toggle .kkpt-icon { | |||
color: var(--kkpt-accent); | |||
font-size: 22px; | |||
text-shadow: 0 0 12px var(--kkpt-accent); | |||
} | |||
#kkpt-toggle .kkpt-text { | |||
display: flex; | |||
flex-direction: column; | |||
gap: 2px; | |||
} | |||
#kkpt-toggle .kkpt-sub { | |||
font-size: 10px; | |||
opacity: .75; | |||
} | |||
#kkpt-toggle.kkpt-loading { | |||
cursor: wait; | |||
opacity: .8; | |||
} | |||
#kkpt-toggle.kkpt-running { | |||
pointer-events: none; | |||
} | |||
#kkpt-toggle.kkpt-vanish { | |||
opacity: 0; | |||
pointer-events: none; | |||
} | } | ||
/* | /* 预载的真实目标页面 */ | ||
#kkpt-preview { | #kkpt-preview { | ||
position: fixed !important; | position: fixed !important; | ||
inset: 0 !important; | inset: 0 !important; | ||
z-index: 2147481000 !important; | |||
display: block !important; | |||
box-sizing: border-box !important; | |||
width: 100vw !important; | width: 100vw !important; | ||
height: 100vh !important; | height: 100vh !important; | ||
padding: 0 !important; | |||
margin: 0 !important; | margin: 0 !important; | ||
border: 0 !important; | border: 0 !important; | ||
border-radius: 0 !important; | |||
overflow: hidden !important; | |||
pointer-events: none !important; | pointer-events: none !important; | ||
transform: translateZ(0); | |||
will-change: clip-path; | will-change: clip-path; | ||
background: #22050b; | |||
clip-path: inset(0 0 0 100%); | |||
} | } | ||
body.page-Kuronata #kkpt-preview { | |||
background: #bfeaff; | |||
} | |||
/* Canvas 火焰、烟雾、火星、爆燃 */ | |||
#kkpt-canvas { | #kkpt-canvas { | ||
position: fixed !important; | position: fixed !important; | ||
inset: 0 !important; | inset: 0 !important; | ||
z-index: 2147482000 !important; | |||
display: block !important; | |||
width: 100vw !important; | width: 100vw !important; | ||
height: 100vh !important; | height: 100vh !important; | ||
pointer-events: none !important; | pointer-events: none !important; | ||
transform: translateZ(0); | |||
transition: opacity 160ms linear; | |||
} | } | ||
#kkpt- | /* 移动端 */ | ||
@media (max-width: 600px) { | |||
#kkpt-toggle { | |||
padding: 10px 13px; | |||
gap: 8px; | |||
} | |||
#kkpt-toggle .kkpt-sub { | |||
display: none; | |||
} | |||
} | } | ||
/* 减少动态效果 */ | |||
@media (prefers-reduced-motion: reduce) { | |||
::view-transition-old(root), | |||
::view-transition-new(root) { | |||
animation-duration: .01ms !important; | |||
} | |||
#kkpt-toggle { | |||
transition: none !important; | |||
} | |||
} | } | ||
/* 打印时隐藏 */ | |||
@media print { | @media print { | ||
#kkpt-preview, | |||
#kkpt-canvas, | |||
#kkpt-toggle { | |||
display: none !important; | |||
} | |||
} | } | ||
2026年10月23日 (五) 12:00的版本
/* ============================================================
KURANOKA PAGE TRANSITION V3 — ASHES / REBIRTH
MediaWiki:KuranokaPageTransition.css
Only loaded on /wiki/Kuranoka and /wiki/Kuronata.
============================================================ */
/* 原生跨页面无缝衔接 */
@view-transition {
navigation: auto;
}
::view-transition-old(root),
::view-transition-new(root) {
animation-duration: 180ms;
animation-timing-function: ease-out;
animation-fill-mode: both;
}
/* 切换按钮 */
#kkpt-toggle {
--kkpt-accent: #93dfff;
--kkpt-ink: #eefaff;
--kkpt-panel: rgba(8, 27, 43, .82);
position: fixed;
right: clamp(12px, 2.3vw, 34px);
bottom: clamp(14px, 3.4vh, 34px);
z-index: 2147483000;
display: flex;
align-items: center;
gap: 11px;
box-sizing: border-box;
max-width: calc(100vw - 24px);
padding: 12px 17px;
color: var(--kkpt-ink) !important;
background: var(--kkpt-panel);
border: 1px solid color-mix(
in srgb,
var(--kkpt-accent) 64%,
transparent
);
border-radius: 999px;
font: 650 13px/1.35 system-ui, sans-serif;
letter-spacing: .04em;
text-decoration: none !important;
cursor: pointer;
box-shadow:
0 6px 29px #0006,
0 0 23px color-mix(
in srgb,
var(--kkpt-accent) 20%,
transparent
);
backdrop-filter: blur(18px) saturate(135%);
-webkit-backdrop-filter: blur(18px) saturate(135%);
transition:
transform .2s,
opacity .18s,
box-shadow .2s;
}
/* Kuronata 血红主题 */
body.page-Kuronata #kkpt-toggle {
--kkpt-accent: #ff718b;
--kkpt-ink: #fff1f3;
--kkpt-panel: rgba(46, 2, 13, .86);
}
#kkpt-toggle:hover,
#kkpt-toggle:focus-visible {
transform: translateY(-3px);
box-shadow:
0 8px 34px #0009,
0 0 36px var(--kkpt-accent);
}
#kkpt-toggle:focus-visible {
outline: 2px solid var(--kkpt-accent);
outline-offset: 4px;
}
#kkpt-toggle .kkpt-icon {
color: var(--kkpt-accent);
font-size: 22px;
text-shadow: 0 0 12px var(--kkpt-accent);
}
#kkpt-toggle .kkpt-text {
display: flex;
flex-direction: column;
gap: 2px;
}
#kkpt-toggle .kkpt-sub {
font-size: 10px;
opacity: .75;
}
#kkpt-toggle.kkpt-loading {
cursor: wait;
opacity: .8;
}
#kkpt-toggle.kkpt-running {
pointer-events: none;
}
#kkpt-toggle.kkpt-vanish {
opacity: 0;
pointer-events: none;
}
/* 预载的真实目标页面 */
#kkpt-preview {
position: fixed !important;
inset: 0 !important;
z-index: 2147481000 !important;
display: block !important;
box-sizing: border-box !important;
width: 100vw !important;
height: 100vh !important;
padding: 0 !important;
margin: 0 !important;
border: 0 !important;
border-radius: 0 !important;
overflow: hidden !important;
pointer-events: none !important;
transform: translateZ(0);
will-change: clip-path;
background: #22050b;
clip-path: inset(0 0 0 100%);
}
body.page-Kuronata #kkpt-preview {
background: #bfeaff;
}
/* Canvas 火焰、烟雾、火星、爆燃 */
#kkpt-canvas {
position: fixed !important;
inset: 0 !important;
z-index: 2147482000 !important;
display: block !important;
width: 100vw !important;
height: 100vh !important;
pointer-events: none !important;
transform: translateZ(0);
transition: opacity 160ms linear;
}
/* 移动端 */
@media (max-width: 600px) {
#kkpt-toggle {
padding: 10px 13px;
gap: 8px;
}
#kkpt-toggle .kkpt-sub {
display: none;
}
}
/* 减少动态效果 */
@media (prefers-reduced-motion: reduce) {
::view-transition-old(root),
::view-transition-new(root) {
animation-duration: .01ms !important;
}
#kkpt-toggle {
transition: none !important;
}
}
/* 打印时隐藏 */
@media print {
#kkpt-preview,
#kkpt-canvas,
#kkpt-toggle {
display: none !important;
}
}