Files
web-page/src/components/PullToRefresh.css
gahusb 6ef687378d fix(components): CSS 변수명 수정 + dead code 제거
- --border-line → --line (5개 컴포넌트 8곳)
- --gradient-accent → --grad-accent (FAB)
- --text-default → --text (MobileSheet)
- useSwipe.js 삭제 (미사용 dead code)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-23 15:15:55 +09:00

87 lines
1.6 KiB
CSS

/* PullToRefresh — pull-down-to-refresh wrapper */
.pull-to-refresh {
position: relative;
overscroll-behavior-y: contain;
}
/* Indicator circle */
.pull-to-refresh__indicator {
position: absolute;
top: -48px;
left: 50%;
transform: translateX(-50%);
width: 36px;
height: 36px;
border-radius: 50%;
background: var(--surface-card);
border: 1px solid var(--line);
box-shadow: var(--shadow-md);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
pointer-events: none;
transition: opacity 0.18s var(--ease-out);
z-index: 10;
color: var(--neon-cyan);
}
.pull-to-refresh__indicator.is-visible {
opacity: 1;
}
/* Spinner */
.pull-to-refresh__spinner {
display: block;
width: 20px;
height: 20px;
border: 2px solid var(--line);
border-top-color: var(--neon-cyan);
border-radius: 50%;
animation: ptr-spin 0.7s linear infinite;
}
@keyframes ptr-spin {
to { transform: rotate(360deg); }
}
/* Arrow chevron */
.pull-to-refresh__arrow {
display: flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
transition: transform 0.2s var(--ease-out);
}
.pull-to-refresh__arrow.is-ready {
transform: rotate(180deg);
}
/* Content area */
.pull-to-refresh__content {
will-change: transform;
}
/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
.pull-to-refresh__spinner {
animation: none;
border-top-color: var(--neon-cyan);
}
.pull-to-refresh__arrow {
transition: none;
}
.pull-to-refresh__indicator {
transition: none;
}
.pull-to-refresh__content {
transition: none !important;
}
}