Maps & Locations
Map cards, location lists, address cards and store locators.
Full Map with Info Card
<div class="uk-map-full">
<!-- Simulated Map Background -->
<div class="uk-map-bg">
<div class="uk-map-grid"></div>
<div class="uk-map-pin" style="top: 40%; left: 50%;">
<div class="uk-map-pin-pulse"></div>
<i class="fas fa-map-marker-alt"></i>
</div>
</div>
<!-- Info Card Overlay -->
<div class="uk-map-card">
<div class="uk-map-card-icon"><i class="fas fa-store"></i></div>
<div class="uk-map-card-body">
<div class="uk-map-card-title">San Francisco HQ</div>
<div class="uk-map-card-address">123 Market Street, CA 94103</div>
<div class="uk-map-card-status">
<span class="uk-map-dot open"></span> Open until 6:00 PM
</div>
</div>
<div class="uk-map-card-actions">
<button class="uk-map-btn-icon"><i class="fas fa-directions"></i></button>
<button class="uk-map-btn-icon"><i class="fas fa-phone"></i></button>
</div>
</div>
</div>
<style>
.uk-map-full {
position: relative;
height: 400px;
background: #e2e8f0;
border-radius: 1rem;
overflow: hidden;
display: flex;
align-items: flex-end;
padding: 1.5rem;
}
.uk-map-bg {
position: absolute;
inset: 0;
background: #dbeafe;
}
.uk-map-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(30,58,138,0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(30,58,138,0.08) 1px, transparent 1px);
background-size: 40px 40px;
}
.uk-map-pin {
position: absolute;
transform: translate(-50%, -100%);
color: #dc2626;
font-size: 2rem;
z-index: 2;
}
.uk-map-pin-pulse {
position: absolute;
bottom: 0; left: 50%;
transform: translateX(-50%);
width: 40px; height: 20px;
background: rgba(220,38,38,0.3);
border-radius: 50%;
animation: map-pulse 2s infinite;
}
@keyframes map-pulse {
0% { transform: translateX(-50%) scale(0.5); opacity: 1; }
100% { transform: translateX(-50%) scale(2); opacity: 0; }
}
.uk-map-card {
position: relative;
background: #fff;
border-radius: 1rem;
padding: 1.25rem;
display: flex;
align-items: flex-start;
gap: 1rem;
box-shadow: 0 20px 40px rgba(11,27,47,0.15);
max-width: 400px;
width: 100%;
z-index: 3;
text-align: left;
}
.uk-map-card-icon {
width: 44px; height: 44px;
border-radius: 0.65rem;
background: #eef2f8;
color: #1e3a8a;
display: flex; align-items: center; justify-content: center;
font-size: 1.15rem;
flex-shrink: 0;
}
.uk-map-card-body { flex: 1; }
.uk-map-card-title {
font-size: 0.95rem;
font-weight: 800;
color: #0b1b2f;
}
.uk-map-card-address {
font-size: 0.78rem;
color: #64748b;
margin-top: 2px;
}
.uk-map-card-status {
font-size: 0.72rem;
color: #475569;
margin-top: 8px;
display: flex;
align-items: center;
gap: 4px;
font-weight: 600;
}
.uk-map-dot {
width: 6px; height: 6px;
border-radius: 50%;
background: #cbd5e1;
}
.uk-map-dot.open { background: #22c55e; }
.uk-map-card-actions {
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.uk-map-btn-icon {
width: 32px; height: 32px;
border-radius: 0.5rem;
background: #f1f5f9;
color: #1e3a8a;
border: 0;
cursor: pointer;
font-size: 0.8rem;
transition: all 0.15s;
}
.uk-map-btn-icon:hover { background: #1e3a8a; color: #fff; }
</style>
Location List Cards
San Francisco
Open
123 Market St, CA 94103
New York
Closes soon
456 Broadway, NY 10012
London
Closed
789 Oxford St, W1D 1LL
<div class="uk-loc-card">
<div class="uk-loc-card-img">
<i class="fas fa-map-marker-alt"></i>
</div>
<div class="uk-loc-card-body">
<div class="uk-loc-card-head">
<div class="uk-loc-card-city">San Francisco</div>
<div class="uk-loc-card-status">
<span class="uk-loc-dot" style="background:#22c55e"></span>
Open
</div>
</div>
<div class="uk-loc-card-address">123 Market St, CA 94103</div>
</div>
<button class="uk-loc-card-btn"><i class="fas fa-chevron-right"></i></button>
</div>
<style>
.uk-loc-card {
display: flex;
align-items: center;
gap: 1rem;
padding: 1rem;
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 0.85rem;
margin-bottom: 0.75rem;
transition: all 0.15s;
cursor: pointer;
}
.uk-loc-card:last-child { margin-bottom: 0; }
.uk-loc-card:hover {
border-color: #1e3a8a;
box-shadow: 0 4px 12px rgba(30,58,138,0.08);
}
.uk-loc-card-img {
width: 48px; height: 48px;
border-radius: 0.65rem;
background: #eef2f8;
color: #1e3a8a;
display: flex; align-items: center; justify-content: center;
font-size: 1.15rem;
flex-shrink: 0;
}
.uk-loc-card-body { flex: 1; text-align: left; }
.uk-loc-card-head {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2px;
}
.uk-loc-card-city {
font-size: 0.9rem;
font-weight: 700;
color: #0b1b2f;
}
.uk-loc-card-status {
font-size: 0.68rem;
color: #64748b;
font-weight: 600;
display: flex;
align-items: center;
gap: 4px;
}
.uk-loc-dot {
width: 6px; height: 6px;
border-radius: 50%;
}
.uk-loc-card-address {
font-size: 0.75rem;
color: #94a3b8;
}
.uk-loc-card-btn {
width: 28px; height: 28px;
border-radius: 50%;
background: #f1f5f9;
color: #64748b;
border: 0;
display: flex; align-items: center; justify-content: center;
font-size: 0.65rem;
cursor: pointer;
transition: all 0.15s;
}
.uk-loc-card:hover .uk-loc-card-btn {
background: #1e3a8a;
color: #fff;
}
</style>
Store Locator (Sidebar + Map)
<div class="uk-loc-layout">
<div class="uk-loc-sidebar">
<div class="uk-loc-search">
<i class="fas fa-location-dot"></i>
<input type="text" placeholder="Search location...">
</div>
<div class="uk-loc-list-mini">
<div class="uk-loc-item active">
<div class="uk-loc-item-title">San Francisco</div>
<div class="uk-loc-item-dist">0.8 mi away</div>
</div>
<div class="uk-loc-item">...</div>
</div>
</div>
<div class="uk-loc-map">
<div class="uk-map-grid"></div>
<div class="uk-map-pin" style="top: 40%; left: 50%;">
<i class="fas fa-map-marker-alt"></i>
</div>
</div>
</div>
<style>
.uk-loc-layout {
display: flex;
height: 380px;
background: #fff;
border-radius: 1rem;
overflow: hidden;
border: 1px solid #e2e8f0;
}
@media (max-width: 640px) {
.uk-loc-layout { flex-direction: column; height: auto; }
.uk-loc-map { height: 240px; }
}
.uk-loc-sidebar {
width: 280px;
flex-shrink: 0;
background: #f8fafc;
border-right: 1px solid #e2e8f0;
display: flex;
flex-direction: column;
}
@media (max-width: 640px) {
.uk-loc-sidebar { width: 100%; border-right: 0; border-bottom: 1px solid #e2e8f0; }
}
.uk-loc-search {
padding: 1rem;
background: #fff;
border-bottom: 1px solid #e2e8f0;
display: flex;
align-items: center;
gap: 0.5rem;
}
.uk-loc-search i { color: #94a3b8; }
.uk-loc-search input {
border: 0;
outline: 0;
background: transparent;
font-size: 0.85rem;
width: 100%;
}
.uk-loc-list-mini {
flex: 1;
overflow-y: auto;
}
.uk-loc-item {
padding: 1rem;
border-bottom: 1px solid #f1f5f9;
cursor: pointer;
transition: background 0.15s;
text-align: left;
}
.uk-loc-item:hover { background: #fff; }
.uk-loc-item.active {
background: #eef2f8;
border-left: 3px solid #1e3a8a;
}
.uk-loc-item-title {
font-size: 0.85rem;
font-weight: 700;
color: #0b1b2f;
}
.uk-loc-item-dist {
font-size: 0.72rem;
color: #94a3b8;
margin-top: 2px;
}
.uk-loc-map {
flex: 1;
position: relative;
background: #dbeafe;
}
.uk-map-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(30,58,138,0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(30,58,138,0.08) 1px, transparent 1px);
background-size: 30px 30px;
}
.uk-map-pin {
position: absolute;
transform: translate(-50%, -100%);
color: #dc2626;
font-size: 2rem;
z-index: 2;
}
</style>
Contact Address Card
<div class="uk-addr-card">
<div class="uk-addr-card-map">
<div class="uk-map-grid"></div>
<div class="uk-map-pin" style="top: 50%; left: 50%;">
<i class="fas fa-map-marker-alt"></i>
</div>
</div>
<div class="uk-addr-card-content">
<div class="uk-addr-card-title">Headquarters</div>
<div class="uk-addr-card-line"><i class="fas fa-location-dot"></i> 123 Market Street...</div>
<div class="uk-addr-card-line"><i class="fas fa-phone"></i> +1 (555) 123-4567</div>
<div class="uk-addr-card-actions">
<button class="uk-addr-btn">Get Directions</button>
</div>
</div>
</div>
<style>
.uk-addr-card {
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 1rem;
overflow: hidden;
}
.uk-addr-card-map {
position: relative;
height: 120px;
background: #dbeafe;
}
.uk-addr-card-content {
padding: 1.5rem;
text-align: left;
}
.uk-addr-card-title {
font-size: 1rem;
font-weight: 800;
color: #0b1b2f;
margin-bottom: 1rem;
}
.uk-addr-card-line {
display: flex;
align-items: flex-start;
gap: 0.65rem;
font-size: 0.82rem;
color: #475569;
line-height: 1.5;
margin-bottom: 0.65rem;
}
.uk-addr-card-line i {
color: #94a3b8;
width: 14px;
text-align: center;
margin-top: 3px;
}
.uk-addr-card-actions {
margin-top: 1.25rem;
}
.uk-addr-btn {
padding: 0.5rem 1rem;
background: #1e3a8a;
color: #fff;
border: 0;
border-radius: 0.4rem;
font-size: 0.78rem;
font-weight: 700;
cursor: pointer;
}
.uk-addr-btn:hover { background: #0f2a5c; }
</style>
Delivery Tracking Map
<div class="uk-map-track">
<div class="uk-map-bg">
<div class="uk-map-grid"></div>
<svg class="uk-map-route" viewBox="0 0 100 100" preserveAspectRatio="none">
<path d="M 20 80 Q 40 50 60 40 T 80 20" fill="none" stroke="#1e3a8a" stroke-width="2" stroke-dasharray="4 4" />
</svg>
<div class="uk-map-track-pin start" style="top: 80%; left: 20%;"><i class="fas fa-store"></i></div>
<div class="uk-map-track-pin current" style="top: 40%; left: 60%;">
<div class="uk-map-pin-pulse"></div>
<i class="fas fa-truck"></i>
</div>
<div class="uk-map-track-pin end" style="top: 20%; left: 80%;"><i class="fas fa-home"></i></div>
</div>
<div class="uk-map-track-card">...</div>
</div>
<style>
.uk-map-track {
position: relative;
height: 380px;
background: #e2e8f0;
border-radius: 1rem;
overflow: hidden;
}
.uk-map-bg {
position: absolute;
inset: 0;
background: #dbeafe;
}
.uk-map-route {
position: absolute;
inset: 0;
width: 100%; height: 100%;
z-index: 1;
}
.uk-map-track-pin {
position: absolute;
transform: translate(-50%, -50%);
width: 32px; height: 32px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 0.8rem;
color: #fff;
z-index: 2;
border: 2px solid #fff;
box-shadow: 0 4px 12px rgba(11,27,47,0.2);
}
.uk-map-track-pin.start { background: #64748b; }
.uk-map-track-pin.current { background: #1e3a8a; }
.uk-map-track-pin.end { background: #059669; }
.uk-map-track-card {
position: absolute;
bottom: 1rem;
left: 1rem; right: 1rem;
background: #fff;
border-radius: 0.85rem;
padding: 1rem;
box-shadow: 0 10px 30px rgba(11,27,47,0.15);
z-index: 3;
text-align: left;
}
.uk-map-track-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 0.85rem;
}
.uk-map-track-title {
font-size: 0.95rem;
font-weight: 800;
color: #0b1b2f;
}
.uk-map-track-status {
font-size: 0.7rem;
font-weight: 700;
color: #1e3a8a;
background: #eef2f8;
padding: 2px 10px;
border-radius: 999px;
}
.uk-map-track-progress {
height: 5px;
background: #f1f5f9;
border-radius: 999px;
margin-bottom: 0.75rem;
overflow: hidden;
}
.uk-map-track-fill {
height: 100%;
background: #1e3a8a;
border-radius: 999px;
}
.uk-map-track-steps {
display: flex;
justify-content: space-between;
font-size: 0.65rem;
color: #94a3b8;
font-weight: 600;
}
.uk-map-track-steps span:nth-child(-n+3) { color: #1e3a8a; }
</style>