@dnax/ui 0.0.64 → 0.0.65

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/main.css CHANGED
@@ -832,12 +832,46 @@ html.dark body {
832
832
  }
833
833
 
834
834
  /* Flèches de défilement (`show-arrows`, comportement Quasar) : le contenu devient
835
- défilable (barre de défilement masquée, le défilement est piloté par les flèches). */
835
+ défilable (barre de défilement masquée, le défilement est piloté par les flèches).
836
+ `scroll-padding` : le focus / `scrollIntoView` ne colle pas un onglet sous une flèche. */
836
837
  .q-tabs--arrows .q-tabs__content {
838
+ --q-tabs-fade-start: 0px;
839
+ --q-tabs-fade-end: 0px;
840
+
837
841
  overflow-x: auto;
838
842
  overflow-y: hidden;
839
843
  scrollbar-width: none;
840
844
  -ms-overflow-style: none;
845
+ scroll-padding-inline: 48px;
846
+ /* Fondu sous les flèches : masque **alpha** (transparent → blanc opaque). Le blanc est
847
+ opaque en mode `alpha` **et** `luminance` (ancien WebKit), et un masque ne dépend
848
+ d'aucune couleur de thème : le rendu est **identique en clair et en sombre** (contrairement
849
+ à un dégradé `--card` qui supposerait la couleur de surface du parent).
850
+ Le côté déjà entièrement visible garde `--q-tabs-fade-*: 0px` → aucun fondu. */
851
+ -webkit-mask-image: linear-gradient(
852
+ to right,
853
+ transparent 0,
854
+ #fff var(--q-tabs-fade-start),
855
+ #fff calc(100% - var(--q-tabs-fade-end)),
856
+ transparent 100%
857
+ );
858
+ mask-image: linear-gradient(
859
+ to right,
860
+ transparent 0,
861
+ #fff var(--q-tabs-fade-start),
862
+ #fff calc(100% - var(--q-tabs-fade-end)),
863
+ transparent 100%
864
+ );
865
+ }
866
+
867
+ /* Côtés à fondre — posés par le composant d'après les mesures de défilement
868
+ (`tabArrowState`) : à droite tant qu'il reste du contenu, à gauche dès qu'on a défilé. */
869
+ .q-tabs--arrows.q-tabs--scroll-start .q-tabs__content {
870
+ --q-tabs-fade-start: 48px;
871
+ }
872
+
873
+ .q-tabs--arrows.q-tabs--scroll-end .q-tabs__content {
874
+ --q-tabs-fade-end: 48px;
841
875
  }
842
876
 
843
877
  .q-tabs--arrows .q-tabs__content::-webkit-scrollbar {
@@ -847,34 +881,71 @@ html.dark body {
847
881
  .q-tabs--vertical.q-tabs--arrows .q-tabs__content {
848
882
  overflow-x: hidden;
849
883
  overflow-y: auto;
884
+ scroll-padding-inline: 0;
885
+ scroll-padding-block: 40px;
886
+ -webkit-mask-image: linear-gradient(
887
+ to bottom,
888
+ transparent 0,
889
+ #fff var(--q-tabs-fade-start),
890
+ #fff calc(100% - var(--q-tabs-fade-end)),
891
+ transparent 100%
892
+ );
893
+ mask-image: linear-gradient(
894
+ to bottom,
895
+ transparent 0,
896
+ #fff var(--q-tabs-fade-start),
897
+ #fff calc(100% - var(--q-tabs-fade-end)),
898
+ transparent 100%
899
+ );
900
+ }
901
+
902
+ .q-tabs--vertical.q-tabs--arrows.q-tabs--scroll-start .q-tabs__content {
903
+ --q-tabs-fade-start: 40px;
850
904
  }
851
905
 
906
+ .q-tabs--vertical.q-tabs--arrows.q-tabs--scroll-end .q-tabs__content {
907
+ --q-tabs-fade-end: 40px;
908
+ }
909
+
910
+ /* Bouton **circulaire en surimpression** : les onglets défilent dessous. */
852
911
  .q-tabs__arrow {
853
- flex: 0 0 auto;
912
+ position: absolute;
913
+ top: 50%;
914
+ z-index: 2;
854
915
  display: inline-flex;
855
916
  align-items: center;
856
917
  justify-content: center;
857
- width: 28px;
918
+ width: 32px;
919
+ height: 32px;
858
920
  padding: 0;
859
- border: none;
860
- border-radius: 0;
861
- background: transparent;
921
+ border: 1px solid var(--border);
922
+ border-radius: 50%;
923
+ background-color: var(--card, #fff);
862
924
  color: inherit;
863
- opacity: 0.6;
925
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.12);
864
926
  cursor: pointer;
927
+ transform: translateY(-50%);
865
928
  transition:
866
929
  opacity 0.15s ease,
867
930
  background-color 0.15s ease;
868
931
  }
869
932
 
870
- .q-tabs__arrow:hover {
871
- opacity: 1;
872
- background-color: rgb(0 0 0 / 0.04);
933
+ .q-tabs__arrow--start {
934
+ left: 8px;
873
935
  }
874
936
 
875
- /* Thème sombre : le hover noir 4 % est invisible (cf. convention des hovers sombres). */
876
- .dark .q-tabs__arrow:hover {
877
- background-color: rgb(255 255 255 / 0.08);
937
+ .q-tabs__arrow--end {
938
+ right: 8px;
939
+ }
940
+
941
+ .q-tabs__arrow:hover:not(:disabled) {
942
+ background-color: var(--muted, rgb(0 0 0 / 0.04));
943
+ }
944
+
945
+ /* Côté sans défilement possible : flèche **estompée** (toujours visible, comme la référence). */
946
+ .q-tabs__arrow:disabled {
947
+ opacity: 0.35;
948
+ cursor: default;
878
949
  }
879
950
 
880
951
  .q-tabs__arrow svg {
@@ -882,9 +953,20 @@ html.dark body {
882
953
  height: 16px;
883
954
  }
884
955
 
956
+ /* Vertical : flèches en haut / en bas, centrées horizontalement. */
885
957
  .q-tabs--vertical .q-tabs__arrow {
886
- width: 100%;
887
- height: 24px;
958
+ top: auto;
959
+ left: 50%;
960
+ right: auto;
961
+ transform: translateX(-50%);
962
+ }
963
+
964
+ .q-tabs--vertical .q-tabs__arrow--start {
965
+ top: 8px;
966
+ }
967
+
968
+ .q-tabs--vertical .q-tabs__arrow--end {
969
+ bottom: 8px;
888
970
  }
889
971
 
890
972
  .q-tabs--dense {
@@ -6123,7 +6205,7 @@ a.q-breadcrumbs__el:hover {
6123
6205
  background-color: var(--primary);
6124
6206
  }
6125
6207
 
6126
- /* — raccourci « Today » (prop `today-btn`) : bord à bord dans le panneau — */
6208
+ /* — raccourci « aujourd'hui » (prop `today-btn`) : bord à bord dans le panneau — */
6127
6209
  .q-date-calendar__footer {
6128
6210
  display: flex;
6129
6211
  justify-content: flex-end;