Gig-Economy Route Map – Tangerine B2C
<div class="fp-food-delivery-map-route-tracker-ui">
<div class="fp-food-delivery-map-route-tracker-ui-stage">
<div class="fp-food-delivery-map-route-tracker-ui-map-grid"></div>
<div class="fp-food-delivery-map-route-tracker-ui-svg-wrap">
<svg class="fp-food-delivery-map-route-tracker-ui-svg" viewBox="0 0 100 100" preserveAspectRatio="none">
<path class="fp-food-delivery-map-route-tracker-ui-path-bg"
d="M 15 85 C 15 50, 45 70, 45 45 S 70 30, 85 15" />
<path class="fp-food-delivery-map-route-tracker-ui-path-active" id="fp-food-delivery-map-route-tracker-ui-path"
d="M 15 85 C 15 50, 45 70, 45 45 S 70 30, 85 15" />
</svg>
</div>
<div class="fp-food-delivery-map-route-tracker-ui-destination">
<div class="fp-food-delivery-map-route-tracker-ui-radar"></div>
<div class="fp-food-delivery-map-route-tracker-ui-radar fp-food-delivery-map-route-tracker-ui-radar-2"></div>
</div>
<div class="fp-food-delivery-map-route-tracker-ui-courier" id="fp-food-delivery-map-route-tracker-ui-courier">
<div class="fp-food-delivery-map-route-tracker-ui-courier-ripple" id="fp-food-delivery-map-route-tracker-ui-ripple"></div>
<div class="fp-food-delivery-map-route-tracker-ui-courier-inner"></div>
</div>
<div class="fp-food-delivery-map-route-tracker-ui-card">
<div class="fp-food-delivery-map-route-tracker-ui-header">
<span class="fp-food-delivery-map-route-tracker-ui-status-text">Courier En Route</span>
<div class="fp-food-delivery-map-route-tracker-ui-pulse-dot"></div>
</div>
<div class="fp-food-delivery-map-route-tracker-ui-body">
<span class="fp-food-delivery-map-route-tracker-ui-eta-val" id="fp-food-delivery-map-route-tracker-ui-eta">12</span>
<span class="fp-food-delivery-map-route-tracker-ui-eta-lbl">Min Away</span>
</div>
<div class="fp-food-delivery-map-route-tracker-ui-footer">
<span>Order #7842</span>
<span class="fp-food-delivery-map-route-tracker-ui-dist" id="fp-food-delivery-map-route-tracker-ui-dist">2.4 km</span>
</div>
</div>
</div>
</div>.fp-food-delivery-map-route-tracker-ui {
--fp-container-width: 100%;
--fp-max-width: 500px;
--fp-aspect-ratio: 1 / 1;
--fp-primary-color: #fcfaf5;
--fp-secondary-color: #f0ebe1;
--fp-muted-color: #1a1a1a;
--fp-soft-color: #dcd6c8;
--fp-background-color: transparent;
--fp-info-color: #666666;
--fp-warning-color: #ff9f43;
--fp-danger-color: #e65c00;
--fp-accent-color: #ff6b1a;
width: var(--fp-container-width);
max-width: var(--fp-max-width);
margin: 0 auto;
position: relative;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
color: var(--fp-muted-color);
background-color: var(--fp-background-color);
box-sizing: border-box;
}
.fp-food-delivery-map-route-tracker-ui-stage {
width: 100%;
aspect-ratio: var(--fp-aspect-ratio);
background: var(--fp-primary-color);
position: relative;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
box-sizing: border-box;
border: 3px solid var(--fp-muted-color);
border-radius: 24px;
box-shadow: 8px 8px 0px var(--fp-soft-color);
}
.fp-food-delivery-map-route-tracker-ui-map-grid {
position: absolute;
inset: -10%;
background-size: 40px 40px;
background-image:
linear-gradient(to right, var(--fp-secondary-color) 2px, transparent 2px),
linear-gradient(to bottom, var(--fp-secondary-color) 2px, transparent 2px);
z-index: 1;
transform: rotate(-5deg) scale(1.1);
pointer-events: none;
}
.fp-food-delivery-map-route-tracker-ui-svg-wrap {
position: absolute;
top: 5%;
left: 5%;
width: 90%;
height: 90%;
z-index: 2;
}
.fp-food-delivery-map-route-tracker-ui-svg {
width: 100%;
height: 100%;
overflow: visible;
}
.fp-food-delivery-map-route-tracker-ui-path-bg {
fill: none;
stroke: var(--fp-soft-color);
stroke-width: 6;
stroke-linecap: round;
stroke-linejoin: round;
}
.fp-food-delivery-map-route-tracker-ui-path-active {
fill: none;
stroke: var(--fp-accent-color);
stroke-width: 6;
stroke-linecap: round;
stroke-linejoin: round;
stroke-dasharray: 12 12;
animation: fp-food-delivery-map-route-tracker-ui-march 1s linear infinite;
}
.fp-food-delivery-map-route-tracker-ui-destination {
position: absolute;
top: 15%;
left: 85%;
width: 16px;
height: 16px;
background: var(--fp-primary-color);
border: 4px solid var(--fp-muted-color);
border-radius: 50%;
transform: translate(-50%, -50%);
z-index: 3;
box-shadow: 0 4px 0 var(--fp-muted-color);
}
.fp-food-delivery-map-route-tracker-ui-radar {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 100%;
border: 2px solid var(--fp-accent-color);
border-radius: 50%;
transform: translate(-50%, -50%) scale(0.5);
opacity: 0;
animation: fp-food-delivery-map-route-tracker-ui-ping 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}
.fp-food-delivery-map-route-tracker-ui-radar-2 {
animation-delay: 1s;
}
.fp-food-delivery-map-route-tracker-ui-courier {
position: absolute;
top: 85%;
left: 15%;
width: 32px;
height: 32px;
background: var(--fp-muted-color);
border: 3px solid var(--fp-primary-color);
border-radius: 50%;
transform: translate(-50%, -50%);
z-index: 5;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 8px rgba(26, 26, 26, 0.3);
transition: border-color 0.3s ease, transform 0.1s linear;
}
.fp-food-delivery-map-route-tracker-ui-courier-inner {
width: 12px;
height: 12px;
background: var(--fp-primary-color);
border-radius: 50%;
transition: background 0.3s ease;
}
.fp-food-delivery-map-route-tracker-ui-courier-ripple {
position: absolute;
top: 50%;
left: 50%;
width: 60px;
height: 60px;
border: 3px solid var(--fp-accent-color);
border-radius: 50%;
transform: translate(-50%, -50%) scale(0);
opacity: 0;
z-index: -1;
}
.fp-food-delivery-map-route-tracker-ui-card {
position: absolute;
bottom: 24px;
left: 50%;
transform: translateX(-50%);
width: 85%;
max-width: 320px;
background: var(--fp-primary-color);
border: 3px solid var(--fp-muted-color);
border-radius: 16px;
box-shadow: 6px 6px 0px var(--fp-muted-color);
z-index: 10;
display: flex;
flex-direction: column;
overflow: hidden;
animation: fp-food-delivery-map-route-tracker-ui-breathe 4s ease-in-out infinite;
transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}
.fp-food-delivery-map-route-tracker-ui-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
border-bottom: 2px solid var(--fp-muted-color);
background: var(--fp-secondary-color);
}
.fp-food-delivery-map-route-tracker-ui-status-text {
font-size: 0.75rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--fp-muted-color);
}
.fp-food-delivery-map-route-tracker-ui-pulse-dot {
width: 10px;
height: 10px;
background: var(--fp-accent-color);
border-radius: 50%;
box-shadow: 0 0 0 3px rgba(255, 107, 26, 0.2);
animation: fp-food-delivery-map-route-tracker-ui-pulse 1.5s infinite;
}
.fp-food-delivery-map-route-tracker-ui-body {
display: flex;
align-items: baseline;
gap: 8px;
padding: 20px 16px;
}
.fp-food-delivery-map-route-tracker-ui-eta-val {
font-size: 2.5rem;
font-weight: 900;
color: var(--fp-muted-color);
line-height: 1;
font-variant-numeric: tabular-nums;
transition: color 0.3s ease, transform 0.3s ease;
}
.fp-food-delivery-map-route-tracker-ui-eta-lbl {
font-size: 0.85rem;
font-weight: 700;
color: var(--fp-info-color);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.fp-food-delivery-map-route-tracker-ui-footer {
display: flex;
justify-content: space-between;
padding: 12px 16px;
border-top: 2px dashed var(--fp-soft-color);
font-size: 0.75rem;
font-weight: 700;
color: var(--fp-info-color);
}
.fp-food-delivery-map-route-tracker-ui-dist {
color: var(--fp-muted-color);
}
.fp-food-delivery-map-route-tracker-ui.fp-is-updating .fp-food-delivery-map-route-tracker-ui-card {
border-color: var(--fp-accent-color);
box-shadow: 8px 8px 0px rgba(255, 107, 26, 0.3);
transform: translateX(-50%) translateY(-4px);
animation: none;
}
.fp-food-delivery-map-route-tracker-ui.fp-is-updating .fp-food-delivery-map-route-tracker-ui-eta-val {
color: var(--fp-accent-color);
transform: scale(1.05);
}
.fp-food-delivery-map-route-tracker-ui.fp-is-updating .fp-food-delivery-map-route-tracker-ui-courier {
border-color: var(--fp-accent-color);
}
.fp-food-delivery-map-route-tracker-ui.fp-is-updating .fp-food-delivery-map-route-tracker-ui-courier-inner {
background: var(--fp-accent-color);
}
.fp-food-delivery-map-route-tracker-ui.fp-is-updating .fp-food-delivery-map-route-tracker-ui-courier-ripple {
animation: fp-food-delivery-map-route-tracker-ui-ripple-out 0.6s ease-out forwards;
}
@keyframes fp-food-delivery-map-route-tracker-ui-march {
to { stroke-dashoffset: -24; }
}
@keyframes fp-food-delivery-map-route-tracker-ui-breathe {
0%, 100% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(-6px); }
}
@keyframes fp-food-delivery-map-route-tracker-ui-ping {
0% { transform: translate(-50%, -50%) scale(0.2); opacity: 1; border-width: 4px; }
100% { transform: translate(-50%, -50%) scale(3); opacity: 0; border-width: 1px; }
}
@keyframes fp-food-delivery-map-route-tracker-ui-pulse {
0% { box-shadow: 0 0 0 0 rgba(255, 107, 26, 0.4); }
70% { box-shadow: 0 0 0 8px rgba(255, 107, 26, 0); }
100% { box-shadow: 0 0 0 0 rgba(255, 107, 26, 0); }
}
@keyframes fp-food-delivery-map-route-tracker-ui-ripple-out {
0% { transform: translate(-50%, -50%) scale(0.5); opacity: 1; border-width: 4px; }
100% { transform: translate(-50%, -50%) scale(2); opacity: 0; border-width: 1px; }
}
@media (max-width: 480px) {
.fp-food-delivery-map-route-tracker-ui-stage { border-radius: 16px; border-width: 2px; }
.fp-food-delivery-map-route-tracker-ui-card { width: 90%; border-width: 2px; box-shadow: 4px 4px 0px var(--fp-muted-color); bottom: 16px; }
.fp-food-delivery-map-route-tracker-ui-eta-val { font-size: 2rem; }
.fp-food-delivery-map-route-tracker-ui-courier { width: 24px; height: 24px; border-width: 2px; }
.fp-food-delivery-map-route-tracker-ui-courier-inner { width: 8px; height: 8px; }
}document.querySelectorAll('.fp-food-delivery-map-route-tracker-ui').forEach(root => {
const pathEl = root.querySelector('#fp-food-delivery-map-route-tracker-ui-path');
const courierEl = root.querySelector('#fp-food-delivery-map-route-tracker-ui-courier');
const rippleEl = root.querySelector('#fp-food-delivery-map-route-tracker-ui-ripple');
const etaEl = root.querySelector('#fp-food-delivery-map-route-tracker-ui-eta');
const distEl = root.querySelector('#fp-food-delivery-map-route-tracker-ui-dist');
if (!pathEl || !courierEl) return;
let pathLength = 0;
setTimeout(() => { pathLength = pathEl.getTotalLength(); }, 50);
let progress = 0;
let timer = 0;
let lastTime = performance.now();
let animationFrameId;
let baseEta = 12;
let baseDist = 2.4;
let phase = 'moving';
function fp_food_delivery_map_route_tracker_ui_loop(time) {
if (document.visibilityState === "hidden") {
lastTime = time;
animationFrameId = requestAnimationFrame(fp_food_delivery_map_route_tracker_ui_loop);
return;
}
let dt = time - lastTime;
lastTime = time;
timer += dt;
if (pathLength > 0) {
progress += 0.00008 * dt;
if (progress > 1) {
progress = 0;
baseEta = 12;
baseDist = 2.4;
}
const pt = pathEl.getPointAtLength(progress * pathLength);
const realLeft = 5 + (pt.x * 0.9);
const realTop = 5 + (pt.y * 0.9);
courierEl.style.left = `${realLeft}%`;
courierEl.style.top = `${realTop}%`;
pathEl.style.strokeDashoffset = (pathLength - (progress * pathLength));
}
if (phase === 'moving') {
if (timer > 3000 && Math.random() < 0.02) {
phase = 'updating';
timer = 0;
root.classList.add('fp-is-updating');
if (rippleEl) {
rippleEl.style.animation = 'none';
void rippleEl.offsetWidth;
rippleEl.style.animation = 'fp-food-delivery-map-route-tracker-ui-ripple-out 0.6s ease-out forwards';
}
let currentEta = Math.ceil(baseEta * (1 - progress));
let currentDist = (baseDist * (1 - progress)).toFixed(1);
if (currentEta < 1) currentEta = 1;
if (etaEl) etaEl.textContent = currentEta;
if (distEl) distEl.textContent = `${currentDist} km`;
}
}
else if (phase === 'updating') {
if (timer > 600) {
phase = 'moving';
timer = 0;
root.classList.remove('fp-is-updating');
}
}
animationFrameId = requestAnimationFrame(fp_food_delivery_map_route_tracker_ui_loop);
}
animationFrameId = requestAnimationFrame(fp_food_delivery_map_route_tracker_ui_loop);
const observer = new MutationObserver(() => {
if (!document.body.contains(root)) {
cancelAnimationFrame(animationFrameId);
observer.disconnect();
}
});
observer.observe(document.body, { childList: true, subtree: true });
});Description
Let us look at the Gig Economy Route Map Tangerine B2C component. This free UI asset offers a modular card system specifically engineered for the high volume food delivery and cloud kitchen sector. We built this entirely from scratch to handle real time courier routing and active order tracking without the usual framework bloat. You get a sterile DOM structure that integrates cleanly into your existing dispatch portal or fleet management architecture.
Food delivery platforms process massive amounts of live location data and require absolute reliability during peak meal rush hours. Heavy client side payloads completely ruin the user experience when hungry customers or busy dispatchers expect immediate visual feedback on driver coordinates. This component solves that bottleneck directly. By strictly avoiding external libraries like Tailwind, Bootstrap, or GSAP, it keeps your bundle size minimal. This ensures rapid rendering for developers who need to present active route states to users on varied mobile networks or busy kitchen tablets.
Technical Architecture & Performance
-
Zero dependency codebase: Built strictly with pure HTML, CSS, and Vanilla JavaScript to keep your front end stack incredibly light.
-
Guaranteed performance metrics: Optimized to help your delivery software maintain 90 plus PageSpeed scores and pass Core Web Vitals easily.
-
Safely scoped CSS: All styling is strictly scoped to prevent any class name collisions when you drop these cards into a massive monolithic repository.
-
Sterile DOM markup: Features clean HTML with absolutely no unnecessary wrappers or deep nesting trees to parse.
Design & Aesthetic Impact
The visual direction utilizes vibrant Tangerine Pop tones to establish an energetic and consumer friendly environment for the end user. This bright and highly readable aesthetic ensures visual clarity for dispatchers analyzing complex delivery zones and dense order queues. For the interaction layer, we implemented a custom dash array stroke marching animation. This precise visual transition provides clear feedback for active route calculations and live map tracing without requiring heavy javascript animation scripts. The final result is a clean user interface that looks premium and functions perfectly for strict enterprise delivery platforms.
Enterprise Use Cases
-
Cloud kitchen order dashboards: Display active meal prep times and driver arrival routes using the card grid so kitchen managers can pace cooking lines quickly.
-
Fleet dispatch command centers: Build a fast rendering operations page where logistics leads can organize and review massive datasets of active courier routes within a lightweight interface.
-
Customer facing tracking portals: Create a responsive control layout for consumer applications to show active delivery progress and estimated arrival times across varied mobile device connections.
Highlights & Benefits
Drop the code straight into your project without configuration.
Built strictly with pure CSS & Vanilla JS for maximum speed.
Constructed with strict adherence to WCAG accessibility standards for perfect contrast and screen-reader support.
Utilizes a highly optimized, clean DOM architecture ensuring lightning-fast render and maximum PageSpeed scores.

Gig-Economy Route Map – Tangerine B2C
Description
Let us look at the Gig Economy Route Map Tangerine B2C component. This free UI asset offers a modular card system specifically engineered for the high volume food delivery and cloud kitchen sector. We built this entirely from scratch to handle real time courier routing and active order tracking without the usual framework bloat. You get a sterile DOM structure that integrates cleanly into your existing dispatch portal or fleet management architecture.
Food delivery platforms process massive amounts of live location data and require absolute reliability during peak meal rush hours. Heavy client side payloads completely ruin the user experience when hungry customers or busy dispatchers expect immediate visual feedback on driver coordinates. This component solves that bottleneck directly. By strictly avoiding external libraries like Tailwind, Bootstrap, or GSAP, it keeps your bundle size minimal. This ensures rapid rendering for developers who need to present active route states to users on varied mobile networks or busy kitchen tablets.
Technical Architecture & Performance
-
Zero dependency codebase: Built strictly with pure HTML, CSS, and Vanilla JavaScript to keep your front end stack incredibly light.
-
Guaranteed performance metrics: Optimized to help your delivery software maintain 90 plus PageSpeed scores and pass Core Web Vitals easily.
-
Safely scoped CSS: All styling is strictly scoped to prevent any class name collisions when you drop these cards into a massive monolithic repository.
-
Sterile DOM markup: Features clean HTML with absolutely no unnecessary wrappers or deep nesting trees to parse.
Design & Aesthetic Impact
The visual direction utilizes vibrant Tangerine Pop tones to establish an energetic and consumer friendly environment for the end user. This bright and highly readable aesthetic ensures visual clarity for dispatchers analyzing complex delivery zones and dense order queues. For the interaction layer, we implemented a custom dash array stroke marching animation. This precise visual transition provides clear feedback for active route calculations and live map tracing without requiring heavy javascript animation scripts. The final result is a clean user interface that looks premium and functions perfectly for strict enterprise delivery platforms.
Enterprise Use Cases
-
Cloud kitchen order dashboards: Display active meal prep times and driver arrival routes using the card grid so kitchen managers can pace cooking lines quickly.
-
Fleet dispatch command centers: Build a fast rendering operations page where logistics leads can organize and review massive datasets of active courier routes within a lightweight interface.
-
Customer facing tracking portals: Create a responsive control layout for consumer applications to show active delivery progress and estimated arrival times across varied mobile device connections.
