1+ /* Desktop: Completely stock browser elements - no custom styling at all */
2+ : root {
3+ --ui-scale : 1 ;
4+ }
5+
6+ /* Desktop uses 100% stock browser styling for everything including sliders */
7+
8+ /* Touch device optimizations - larger touch targets for better usability */
9+ @media (hover : none) and (pointer : coarse) {
10+ : root {
11+ --ctl-scale : 0.5 ; /* Larger controls on mobile/tablet for better touch */
12+
13+ /* Slider styling tokens - enhanced for mobile */
14+ --thumb : calc (1.25rem * var (--ctl-scale )); /* knob size (20px at 16px base) */
15+ --track : calc (0.5rem * var (--ctl-scale )); /* bar thickness (8px at 16px base) */
16+ --hit : calc (2.75rem * var (--ctl-scale )); /* minimum tap height (44px at 16px base) */
17+
18+ --track-bg : # e5e7eb ;
19+ --thumb-bg : # ffffff ;
20+ --thumb-border : calc (0.125rem * var (--ctl-scale )) solid # 111827 ; /* 2px at 16px base */
21+ --focus-ring : 0 0 0 calc (0.25rem * var (--ctl-scale )) rgba (59 , 130 , 246 , .35 ); /* 4px at 16px base */
22+ }
23+
24+ /* Enhanced slider styling for mobile - better touch targets */
25+ input [type = "range" ]{
26+ -webkit-appearance : none;
27+ appearance : none;
28+ width : 100% ;
29+ background : transparent; /* keep parent bg */
30+ block-size : var (--hit ); /* big tap target */
31+ padding : 0 ; margin : 0 ; /* contain layout */
32+ cursor : pointer;
33+ }
34+
35+ /* WebKit (iOS Safari/Chrome) */
36+ input [type = "range" ]::-webkit-slider-runnable-track {
37+ height : var (--track );
38+ background : var (--track-bg );
39+ border-radius : var (--track );
40+ }
41+ input [type = "range" ]::-webkit-slider-thumb {
42+ -webkit-appearance : none;
43+ width : var (--thumb );
44+ height : var (--thumb );
45+ background : var (--thumb-bg );
46+ border : var (--thumb-border );
47+ border-radius : 50% ;
48+ margin-top : calc ((var (--track ) - var (--thumb )) / 2 ); /* center on track */
49+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .2 );
50+ }
51+
52+ /* Firefox */
53+ input [type = "range" ]::-moz-range-track {
54+ height : var (--track );
55+ background : var (--track-bg );
56+ border-radius : var (--track );
57+ }
58+ input [type = "range" ]::-moz-range-thumb {
59+ width : var (--thumb );
60+ height : var (--thumb );
61+ background : var (--thumb-bg );
62+ border : var (--thumb-border );
63+ border-radius : 50% ;
64+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .2 );
65+ }
66+
67+ /* Focus (keyboard/VoiceOver) */
68+ input [type = "range" ]: focus-visible ::-webkit-slider-thumb { box-shadow : var (--focus-ring ); }
69+ input [type = "range" ]: focus-visible ::-moz-range-thumb { box-shadow : var (--focus-ring ); }
70+
71+ /* Button enhancements - all sizes controlled by --ctl-scale */
72+ button {
73+ min-height : calc (3rem * var (--ctl-scale )); /* Base: 48px, scales with --ctl-scale */
74+ padding : calc (0.75rem * var (--ctl-scale )) calc (1rem * var (--ctl-scale ));
75+ font-size : calc (1.1rem * var (--ctl-scale ));
76+ border-radius : calc (0.5rem * var (--ctl-scale ));
77+ border : calc (0.125rem * var (--ctl-scale )) solid # ccc ;
78+ background : # f8f9fa ;
79+ transition : all 0.2s ease;
80+ cursor : pointer;
81+ }
82+
83+ button : hover {
84+ background : # e9ecef ;
85+ }
86+
87+ button : active {
88+ background : # dee2e6 ;
89+ transform : translateY (calc (1px * var (--ctl-scale )));
90+ }
91+
92+ /* Select dropdown enhancements - all sizes controlled by --ctl-scale */
93+ select {
94+ min-height : calc (3rem * var (--ctl-scale ));
95+ padding : calc (0.75rem * var (--ctl-scale ));
96+ font-size : calc (1.1rem * var (--ctl-scale ));
97+ border-radius : calc (0.5rem * var (--ctl-scale ));
98+ border : calc (0.125rem * var (--ctl-scale )) solid # ccc ;
99+ background : white;
100+ cursor : pointer;
101+ }
102+
103+ /* Text input enhancements - all sizes controlled by --ctl-scale */
104+ input [type = "text" ],
105+ input [type = "number" ],
106+ textarea {
107+ min-height : calc (3rem * var (--ctl-scale ));
108+ padding : calc (0.75rem * var (--ctl-scale ));
109+ font-size : calc (1.1rem * var (--ctl-scale ));
110+ border-radius : calc (0.5rem * var (--ctl-scale ));
111+ border : calc (0.125rem * var (--ctl-scale )) solid # ccc ;
112+ }
113+
114+ /* Checkboxes and radio buttons - sizes controlled by --ctl-scale */
115+ input [type = "checkbox" ],
116+ input [type = "radio" ] {
117+ width : calc (1.5rem * var (--ctl-scale )); /* Base: 24px, scales with --ctl-scale */
118+ height : calc (1.5rem * var (--ctl-scale ));
119+ cursor : pointer;
120+ }
121+
122+ /* Enhanced labels - all sizes controlled by --ctl-scale */
123+ label {
124+ min-height : calc (3rem * var (--ctl-scale ));
125+ display : flex;
126+ align-items : center;
127+ gap : calc (0.75rem * var (--ctl-scale ));
128+ cursor : pointer;
129+ padding : calc (0.5rem * var (--ctl-scale ));
130+ }
131+
132+ /* File input enhancements - sizes controlled by --ctl-scale */
133+ input [type = "file" ] {
134+ font-size : calc (1.1rem * var (--ctl-scale ));
135+ padding : calc (0.5rem * var (--ctl-scale ));
136+ }
137+ }
0 commit comments