@bigplay/tree-view-core 0.5.0 → 0.6.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/styles.css CHANGED
@@ -303,14 +303,50 @@
303
303
  min-width: 100%;
304
304
  }
305
305
 
306
- .tv-rounds__bar {
307
- display: flex;
308
- min-width: 100%;
306
+ /* Слой с подписями раундов.
307
+
308
+ Лежит вне прокручиваемого блока и прилипает к верху экрана: раньше полоса
309
+ была внутри блока с `overflow-x`, а такой элемент — скролл-контейнер по обеим
310
+ осям, поэтому прилипать ей было не к чему и при вертикальном скролле она
311
+ уезжала вместе с сеткой. Сдвиг по горизонтали ей задаёт скрипт — тянет за
312
+ прокруткой сетки, поэтому своей полосы прокрутки у слоя нет. */
313
+ .tv-rounds__head {
314
+ position: sticky;
315
+ top: 0;
316
+ z-index: 2;
317
+ overflow: hidden;
309
318
  margin-bottom: var(--tv-rounds-gap);
310
319
  background: var(--tv-rounds-bg);
311
320
  border-bottom: var(--tv-rounds-border);
312
321
  }
313
322
 
323
+ .tv-rounds__bar {
324
+ display: flex;
325
+ min-width: 100%;
326
+ }
327
+
328
+ /* Блок, который листают пальцем. На широком экране прокрутку даёт обёртка
329
+ вокруг компонента — здесь её нет, иначе сетку нельзя было бы перетаскивать. */
330
+ .tv-rounds__scroll {
331
+ position: relative;
332
+ }
333
+
334
+ /* Якоря прилипания: подписи раундов уехали в отдельный слой, а снапиться
335
+ свайпу надо по чему-то внутри прокручиваемого блока. Нулевой высоты,
336
+ поэтому на раскладку не влияют. */
337
+ .tv-rounds__snap {
338
+ display: flex;
339
+ /* Высота в пиксель, а не ноль: нулевую коробку часть браузеров не считает
340
+ областью прилипания. Отрицательный отступ возвращает её из раскладки. */
341
+ height: 1px;
342
+ margin-bottom: -1px;
343
+ }
344
+
345
+ .tv-rounds__snap-item {
346
+ flex: none;
347
+ display: block;
348
+ }
349
+
314
350
  .tv-rounds__item {
315
351
  flex: none;
316
352
  box-sizing: border-box;
@@ -349,18 +385,21 @@
349
385
  .tv-rounds--swipe {
350
386
  width: 100%;
351
387
  min-width: 0;
388
+ }
389
+
390
+ .tv-rounds--swipe .tv-rounds__scroll {
352
391
  overflow-x: auto;
353
- /* Свайп внутри полосы не должен утягивать за собой страницу. */
392
+ /* Свайп внутри сетки не должен утягивать за собой страницу. */
354
393
  overscroll-behavior-x: contain;
355
394
  scroll-snap-type: x mandatory;
356
395
  scrollbar-width: none;
357
396
  }
358
397
 
359
- .tv-rounds--swipe::-webkit-scrollbar {
398
+ .tv-rounds--swipe .tv-rounds__scroll::-webkit-scrollbar {
360
399
  display: none;
361
400
  }
362
401
 
363
- .tv-rounds--swipe .tv-rounds__item {
402
+ .tv-rounds--swipe .tv-rounds__snap-item {
364
403
  scroll-snap-align: start;
365
404
  /* Резкий свайп не должен перепрыгивать через раунд: останавливаемся на каждом. */
366
405
  scroll-snap-stop: always;
@@ -374,12 +413,13 @@
374
413
  и растворяется. При возврате назад разворачивается обратно.
375
414
 
376
415
  Видимость снимается только после того, как карточка ужалась, — поэтому
377
- у неё отдельная задержка. Селектор нарочно такой же длины, как у правила
378
- ниже: иначе переход из него перебил бы этот и матч исчезал бы рывком. */
416
+ у неё отдельная задержка. */
417
+ /* Возврат назад — сразу, без проявления. Раньше тут был такой же переход,
418
+ как на уходе, и раунд, в который ты свайпнул обратно, ещё 220 мс всплывал
419
+ из нуля: уход ощущался мгновенным, а возврат заметно медленнее. Уходу
420
+ анимация нужна (матч складывается у тебя на глазах), возврату — нет. */
379
421
  .tv-rounds--swipe [data-depth] {
380
- transition:
381
- opacity var(--tv-rounds-fade, 220ms) ease,
382
- transform var(--tv-rounds-fade, 220ms) var(--tv-rounds-collapse-ease);
422
+ transition: none;
383
423
  }
384
424
 
385
425
  .tv-rounds--swipe [data-depth].tv-hidden {