@bigplay/tree-view-core 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +249 -169
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +15 -2
- package/dist/rounds.d.ts +28 -0
- package/dist/scroll.d.ts +11 -0
- package/dist/types.d.ts +19 -1
- package/package.json +1 -1
- package/styles.css +73 -2
package/styles.css
CHANGED
|
@@ -19,12 +19,13 @@
|
|
|
19
19
|
width: 100%;
|
|
20
20
|
height: 100%;
|
|
21
21
|
overflow: hidden;
|
|
22
|
-
/* Без этого мобильный браузер сам скроллит страницу вместо перетаскивания. */
|
|
23
|
-
touch-action: none;
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
.tree-view--pannable {
|
|
27
25
|
cursor: grab;
|
|
26
|
+
/* Без этого мобильный браузер сам скроллит страницу вместо перетаскивания.
|
|
27
|
+
Когда таскать нельзя — не мешаем: страницу и полосу раундов листают пальцем. */
|
|
28
|
+
touch-action: none;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
/* size="content": размер задаётся инлайном, ничего не обрезаем. */
|
|
@@ -232,6 +233,11 @@
|
|
|
232
233
|
--tv-rounds-color: #9ca3af;
|
|
233
234
|
--tv-rounds-border: 2px solid #e5e7eb;
|
|
234
235
|
--tv-rounds-gap: 20px;
|
|
236
|
+
--tv-rounds-fade: 220ms;
|
|
237
|
+
/* В свайпере линия — единственная подсказка, что матч идёт дальше,
|
|
238
|
+
поэтому она заметнее, чем на широком экране. */
|
|
239
|
+
--tv-rounds-link-color: #94a3b8;
|
|
240
|
+
--tv-rounds-link-width: 3px;
|
|
235
241
|
|
|
236
242
|
display: flex;
|
|
237
243
|
flex-direction: column;
|
|
@@ -264,3 +270,68 @@
|
|
|
264
270
|
border: none;
|
|
265
271
|
border-right: var(--tv-rounds-border);
|
|
266
272
|
}
|
|
273
|
+
|
|
274
|
+
/* ── Свайпер: узкий экран ───────────────────────────────────────
|
|
275
|
+
* Раунд занимает всю ширину блока, а сама полоса становится
|
|
276
|
+
* прокручиваемой: шапка и сетка едут вместе, листаются пальцем и
|
|
277
|
+
* прилипают к границе раунда. Сетка при этом одна — линии между
|
|
278
|
+
* матчами никуда не деваются.
|
|
279
|
+
*/
|
|
280
|
+
|
|
281
|
+
/* Линии в свайпере: единственное, что показывает, куда матч идёт дальше. */
|
|
282
|
+
.tv-rounds--swipe .tree-view {
|
|
283
|
+
--tv-link-color: var(--tv-rounds-link-color);
|
|
284
|
+
--tv-link-width: var(--tv-rounds-link-width);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.tv-rounds--swipe {
|
|
288
|
+
width: 100%;
|
|
289
|
+
min-width: 0;
|
|
290
|
+
overflow-x: auto;
|
|
291
|
+
/* Свайп внутри полосы не должен утягивать за собой страницу. */
|
|
292
|
+
overscroll-behavior-x: contain;
|
|
293
|
+
scroll-snap-type: x mandatory;
|
|
294
|
+
scrollbar-width: none;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.tv-rounds--swipe::-webkit-scrollbar {
|
|
298
|
+
display: none;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.tv-rounds--swipe .tv-rounds__item {
|
|
302
|
+
scroll-snap-align: start;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Пройденный раунд: убран с глаз, но не из раскладки — иначе прокрутка
|
|
306
|
+
и точки прилипания поехали бы прямо под пальцем.
|
|
307
|
+
|
|
308
|
+
Уходит и возвращается плавно: при свайпе карточки соседнего раунда иначе
|
|
309
|
+
пропадают рывком прямо под пальцем. Видимость снимается только после того,
|
|
310
|
+
как карточка растворилась, — поэтому у неё отдельная задержка.
|
|
311
|
+
|
|
312
|
+
Селектор нарочно такой же длины, как у правила ниже: иначе переход
|
|
313
|
+
из него перебил бы этот и карточка исчезала бы мгновенно. */
|
|
314
|
+
.tv-rounds--swipe [data-depth] {
|
|
315
|
+
transition: opacity var(--tv-rounds-fade, 220ms) ease;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.tv-rounds--swipe [data-depth].tv-hidden {
|
|
319
|
+
visibility: hidden;
|
|
320
|
+
opacity: 0;
|
|
321
|
+
transition:
|
|
322
|
+
opacity var(--tv-rounds-fade, 220ms) ease,
|
|
323
|
+
visibility 0s linear var(--tv-rounds-fade, 220ms);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/* Вне свайпера прятать нечего анимировать — убираем сразу. */
|
|
327
|
+
.tv-hidden {
|
|
328
|
+
visibility: hidden;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Кому анимации мешают — тому сразу и без переходов. */
|
|
332
|
+
@media (prefers-reduced-motion: reduce) {
|
|
333
|
+
.tv-rounds--swipe [data-depth],
|
|
334
|
+
.tv-rounds--swipe [data-depth].tv-hidden {
|
|
335
|
+
transition: none;
|
|
336
|
+
}
|
|
337
|
+
}
|