feat: travel dates + sea-crossing chooser, Tesla in-car polish, Fleet API stub
- Travel dates: TopBar chip + popover (outbound/return/travellers); sent to Grok prompt; itinerary.needsTravelDates drives a nudge banner; cache and prefetch ledger invalidate when dates change - Sea crossings: CrossingOption schema (Eurotunnel, DFDS, P&O, Brittany, Stena Line); CrossingSwapBlock under tunnel/ferry/crossing stops with trip-impact deltas and Book links; prompt requires 3-5 real options for every UK ↔ mainland route; picking a crossing triggers silent re-plan - Tesla in-car polish: UA + heuristic detection sets <html class="incar">; CSS overrides kill backdrop-filter, scale fonts, enforce 44px tap targets, disable hover flicker; geolocation + reverse geocode + crosshair button inside the From input; up/down arrow reorder buttons replace touch-broken HTML5 drag-and-drop - Tesla Fleet API stub: /.well-known/appspecific/com.tesla.3p.public-key.pem served from TESLA_FLEET_PUBLIC_KEY for partner domain verification; OAuth callback + vehicle_data stub return 503 until partner approval - Dockerfile + .dockerignore for Dokku deployment; server now serves client/dist in production
This commit is contained in:
@@ -79,3 +79,72 @@ html, body, #root {
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ─── In-car browser overrides ─────────────────────────────────────────────
|
||||
* Triggered when <html class="incar"> is set by client/src/lib/incar.ts.
|
||||
* Goals: bigger fonts, larger tap targets, no expensive blurs (MCU1/MCU2
|
||||
* fall off a cliff with backdrop-filter), no accidental hover-only states.
|
||||
* Scoped to .incar so it never affects desktop builds.
|
||||
*/
|
||||
html.incar {
|
||||
font-size: 17px; /* baseline bump — most leaf text uses px values
|
||||
so this primarily affects rem-based things */
|
||||
}
|
||||
html.incar body {
|
||||
/* Slightly thicker base text colour for readability at arm's length */
|
||||
color: var(--gd-text);
|
||||
}
|
||||
|
||||
/* Kill backdrop-filter entirely — it murders frame rate on MCU2 */
|
||||
html.incar *,
|
||||
html.incar *::before,
|
||||
html.incar *::after {
|
||||
backdrop-filter: none !important;
|
||||
-webkit-backdrop-filter: none !important;
|
||||
}
|
||||
|
||||
/* Bump every interactive control to 44px minimum tap target. */
|
||||
html.incar button,
|
||||
html.incar [role="button"],
|
||||
html.incar input[type="date"],
|
||||
html.incar input[type="text"],
|
||||
html.incar input[type="number"] {
|
||||
min-height: 44px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
/* Scale tiny utility text up — Tailwind ships these as fixed px values so
|
||||
* we override them globally inside .incar. */
|
||||
html.incar .text-\[10px\],
|
||||
html.incar .text-\[10\.5px\],
|
||||
html.incar .text-\[11px\] { font-size: 13px !important; }
|
||||
html.incar .text-\[11\.5px\],
|
||||
html.incar .text-\[12px\] { font-size: 14px !important; }
|
||||
html.incar .text-\[12\.5px\],
|
||||
html.incar .text-\[13px\],
|
||||
html.incar .text-\[13\.5px\] { font-size: 15px !important; }
|
||||
html.incar .text-\[14px\] { font-size: 16px !important; }
|
||||
html.incar .text-\[15px\] { font-size: 17px !important; }
|
||||
html.incar .text-\[16px\] { font-size: 18px !important; }
|
||||
html.incar .text-\[18px\] { font-size: 20px !important; }
|
||||
html.incar .text-\[20px\] { font-size: 22px !important; }
|
||||
|
||||
/* Native date input is a tiny target on touch — fatten it. */
|
||||
html.incar input[type="date"] {
|
||||
padding: 12px 14px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* Bigger scrollbars — finger-friendly */
|
||||
html.incar ::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
/* Hover states cause flicker on touch — disable on the incar build. */
|
||||
html.incar .hover\:bg-white\/\[0\.04\]:hover,
|
||||
html.incar .hover\:bg-white\/\[0\.03\]:hover,
|
||||
html.incar .hover\:bg-white\/\[0\.025\]:hover,
|
||||
html.incar .hover\:bg-white\/\[0\.02\]:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user