|
993 | 993 | color: #fff; |
994 | 994 | } |
995 | 995 |
|
996 | | - /* === MOBILE: Scrollable dock with larger touch targets === */ |
997 | | - @media (max-width: 768px) { |
| 996 | + /* === TOUCH DEVICES: Larger targets, no hover effects === */ |
| 997 | + @media (hover: none), (pointer: coarse) { |
998 | 998 | .theme-dock { |
999 | 999 | --dock-unit: 3px; /* Larger for touch targets */ |
| 1000 | + } |
| 1001 | + |
| 1002 | + /* Disable hover effects on touch */ |
| 1003 | + .theme-dock label:hover { |
| 1004 | + width: var(--dock-card-width); |
| 1005 | + height: var(--dock-card-height); |
| 1006 | + padding: var(--dock-card-padding-top) 0 var(--dock-card-padding-bottom) 0; |
| 1007 | + font-size: var(--dock-card-font); |
| 1008 | + border-radius: var(--dock-radius); |
| 1009 | + transform: none; |
| 1010 | + margin-bottom: 0; |
| 1011 | + box-shadow: none; |
| 1012 | + } |
| 1013 | + |
| 1014 | + .theme-dock label:hover::after { |
| 1015 | + height: var(--dock-bar-height); |
| 1016 | + } |
| 1017 | + } |
| 1018 | + |
| 1019 | + /* === NARROW VIEWPORT: Full-width scrollable dock === |
| 1020 | + Breakpoint based on touch dock: 10×57px + 9×3px gaps + 12px padding ≈ 620px */ |
| 1021 | + @media (max-width: 620px) { |
| 1022 | + .theme-dock { |
1000 | 1023 | left: 0; |
1001 | 1024 | right: 0; |
1002 | 1025 | transform: none; |
1003 | 1026 | border-radius: 0; |
1004 | 1027 | bottom: 0; |
1005 | 1028 | overflow-x: auto; |
1006 | 1029 | flex-wrap: nowrap; |
1007 | | - justify-content: safe center; /* Center until overflow, then scroll */ |
| 1030 | + justify-content: safe center; |
1008 | 1031 | } |
1009 | 1032 |
|
1010 | 1033 | /* Hide scrollbar */ |
|
1013 | 1036 | } |
1014 | 1037 |
|
1015 | 1038 | .theme-dock { |
1016 | | - -ms-overflow-style: none; /* IE/Edge */ |
| 1039 | + -ms-overflow-style: none; |
1017 | 1040 | } |
1018 | 1041 |
|
1019 | 1042 | @supports (scrollbar-width: none) { |
1020 | 1043 | .theme-dock { |
1021 | | - scrollbar-width: none; /* Firefox */ |
| 1044 | + scrollbar-width: none; |
1022 | 1045 | } |
1023 | 1046 | } |
1024 | 1047 |
|
1025 | 1048 | .theme-dock label { |
1026 | 1049 | flex-shrink: 0; |
1027 | 1050 | } |
1028 | | - |
1029 | | - /* Disable hover effects on touch */ |
1030 | | - .theme-dock label:hover { |
1031 | | - width: var(--dock-card-width); |
1032 | | - height: var(--dock-card-height); |
1033 | | - padding: var(--dock-card-padding-top) 0 var(--dock-card-padding-bottom) 0; |
1034 | | - font-size: var(--dock-card-font); |
1035 | | - border-radius: var(--dock-radius); |
1036 | | - transform: none; |
1037 | | - margin-bottom: 0; |
1038 | | - box-shadow: none; |
1039 | | - } |
1040 | | - |
1041 | | - .theme-dock label:hover::after { |
1042 | | - height: var(--dock-bar-height); |
1043 | | - } |
1044 | | - |
1045 | | - /* Wrapper not needed on mobile without JS arrows */ |
1046 | | - .theme-dock-wrapper { |
1047 | | - display: contents; |
1048 | | - } |
1049 | 1051 | } |
1050 | 1052 |
|
1051 | | - /* Desktop: wrapper does nothing */ |
1052 | | - @media (min-width: 769px) { |
1053 | | - .theme-dock-wrapper { |
1054 | | - display: contents; |
1055 | | - } |
| 1053 | + /* Wrapper always uses display:contents (no-op) */ |
| 1054 | + .theme-dock-wrapper { |
| 1055 | + display: contents; |
1056 | 1056 | } |
1057 | 1057 |
|
1058 | 1058 | /* === HIDDEN RADIO INPUTS === */ |
|
0 commit comments