Connect with us

Kansas

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Published

on

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display


Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Advertisement

MULTIPLE TIMES AND FIND NEW BOOTHS AND ARTISTS. THE METRO IS GETTING ITS FIRST LOOK AT ALL THE HEARTS THAT WILL BE FEATURED IN THIS YEAR’S PARADE OF HEARTS. THERE WAS A SNEAK PEEK EVENT AT THE OVERLAND PARK CONVENTION CENTER YESTERDAY. THE PARADE OF HEARTS SHOWCASES KANSAS CITY’S CREATIVITY AND HIGHLIGHTS LOCAL ART. EACH SCULPTURE WAS DESIGNED BY A LOCAL ARTIST AND WILL BE ON DISPLAY AROUND THE METRO. MY FAVORITE MOMENT IS JUST SEEING THE SMILES ON EVERYONE’S FACES AND THOSE PROUD MOMENTS WHERE YOU HAVE PARENTS SITTING THERE WATCHING THEIR KIDS. WE HAVE ARTISTS AS YOUNG AS NINE YEARS OLD, SEVEN YEARS OLD, AND THEN UP UNTIL CLOSE TO 80. SO WE HAVE ALL AGES REPRESENTED, SO WE SEE THEIR FAMILIES SUPPORTING THEM, AND IT’S JUST A GREAT MOMENT. AND SOON THE ART, THE HEARTS WILL GO TO THEIR DESIGNATED LOCATIONS ACROSS THE AREA. THEY’LL BE THERE ALL SUMMER LONG BEFORE BEING AUCTIONED OFF. THE PROCEEDS WILL GO TOWARDS SUPPORTI

Advertisement

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Updated: 6:26 PM CDT Apr 5, 2026

Editorial Standards

Advertisement

Kansas City is getting an early look at one of its most recognizable public art displays.A preview event for the 2026 Parade of Hearts was held Saturday at the Overland Park Convention Center, giving attendees a first glimpse at this year’s heart sculptures.The annual event highlights local artists and showcases creativity across the metro, with each sculpture designed by a Kansas City-area artist.In the coming weeks, the hearts will be placed at locations throughout the region, where they will remain on display throughout the summer.Organizers say the installations are meant to encourage people to explore the metro while supporting the arts.At the end of the season, the sculptures will be auctioned off, with proceeds going toward supporting local artists.A full map of heart locations will be available online once installations are complete.

Kansas City is getting an early look at one of its most recognizable public art displays.

Advertisement

A preview event for the 2026 Parade of Hearts was held Saturday at the Overland Park Convention Center, giving attendees a first glimpse at this year’s heart sculptures.

The annual event highlights local artists and showcases creativity across the metro, with each sculpture designed by a Kansas City-area artist.

In the coming weeks, the hearts will be placed at locations throughout the region, where they will remain on display throughout the summer.

Advertisement

Organizers say the installations are meant to encourage people to explore the metro while supporting the arts.

At the end of the season, the sculptures will be auctioned off, with proceeds going toward supporting local artists.

A full map of heart locations will be available online once installations are complete.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kmbc.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kmbc.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

Advertisement

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

Advertisement

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

Advertisement

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kmbc.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kmbc.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

Advertisement

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

Advertisement

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Advertisement

Loading more articles…



Source link

Kansas

2026 KC Pride Parade draws hundreds Saturday to Kansas City streets

Published

on

2026 KC Pride Parade draws hundreds Saturday to Kansas City streets


KSHB 41 reporter La’Nita Brooks covers stories in Kansas City, Missouri, and stories offering solutions on crime. Share your story idea with La’Nita.

Hundreds of people filled the streets of Kansas City, Missouri, on Saturday for the KC Pride 2026 parade. The route started in Westport and ended near Country Club Plaza.

This year’s theme, “It’s all ours,” represents everything Pride has built and all that is to come — a message that resonated deeply with many in the crowd.

Advertisement

Brian Luton

Erynn, attendee

“I feel like today means like we matter, like as queer people,” said attendee Erynn. “I’m a lesbian but anyone who’s queer, trans — especially right now — it feels like they’re trying to make us matter less. They’re trying to almost reduce visibility. And something like this, to me, says you’re not going to silence us and we’re going keep being visible and keep being who we are, and we’re going to do it in a joyful fun-loving way.”

The parade drew people from across the region, including some who came to KCMO specifically for the event.

Stan Forrest, attendee

Brian Luton

Stan Forrest, attendee Pittsburg, Kansas

“I’m from Pittsburg, Kansas, so we came up to spend the day and hangout and go to the parade,” Stan Forrest said.

Advertisement

For others, the day was about community and a decades-long journey.

Fanny Mandelberger, attendee

Brian Luton

Fanny Mandelberger, attendee

“I came out 50 years ago,” Fanny Mandelberger said. “So, obviously to be in community. To keep the not so much a fight just living your authentic self. I’m grateful to my ancestry that taught me resilience, (to) stand up for who you are.”

Those in attendance said they hope the celebration continues to grow.

“It was amazing,” Forrest said. “We had a lot of fun. Everyone here is so joyful, it’s really refreshing to see.”

Advertisement
KC Pride 2026

Brian Luton

KC Pride 2026

A social media post from Our Spot KC/KC Pride this week sparked discussion after it suggested Kansas City, Missouri, officials were banned from attending this year, due to the city council’s rescission of the city’s conversion therapy ban. The organizations responded with a new statement on social media and the original post has since been removed.

“We posted the wrong draft. We are human, after all, and we’ve been quite busy running our biggest weekend of the year,” KC Pride said in part on social media.

An excerpt from the new statement can be read below.

“As Our Sport KC’s staff and volunteers have been preparing for KC PrideFest and Parade 2026, we’ve heard from countless community members who feel betrayed and hurt by the recent repeal of Kansas City, Missouri’s conversion therapy ban and the vague replacement language that followed. We want to publicly give voice to those legitimate concerns and the impacts to LGBTQ+ youth, adults and families.

“We stepped away from PrideFest production to have several conversations this week and make sure our voices were at the table because that is what this work actually looks like. Showing up when it is hard, building relationships that last, and staying committed to real solutions over quick reactions. We have seen and heard apologies from some leaders for the way this was handled and we receive that accountability as a step in the right direction. We are working directly with the LGBTQ+ Commission, the mayor’s office, legal teams, community members and councilmembers to get the language right and get our community protected. We are hopeful that this moment also opens the door to getting the commission fully seated, supported and resourced with a dedicated full-time liaison, so it can function the way our community has always deserved…”

Advertisement

PrideFest continues at Theis Park through the weekend.

Below are more sights from the parade Saturday morning.

KC Pride.png

Brian Luton/KSHB

KC Pride Parade 2026.
KC Pride KSHB.png

Brian Luton/KSHB

KSHB 41 News in the KC Pride Parade 2026.
KC Pride The Spot.png

Brian Luton/KSHB

Advertisement
The Spot – Kansas City 38 in the KC Pride Parade 2026.
KC Pride.png

Brian Luton/KSHB

KC Pride Parade 2026.

This story was reported on-air by a journalist and has been converted to this platform with the assistance of AI. Our editorial team verifies all reporting on all platforms for fairness and accuracy.

La'Nita Brooks





Source link

Continue Reading

Kansas

Kansas Highway Patrol identifies two killed in Wabaunsee County I-70 crash

Published

on

Kansas Highway Patrol identifies two killed in Wabaunsee County I-70 crash


TOPEKA, Kan. (WIBW) – The Kansas Highway Patrol has confirmed that two individuals died and one child was left seriously injured following a semi-vehicle crash on Friday, closing a portion of I-70.

According to the KHP Crash Log, the incident was reported around 3:47 p.m. on I-70 in Wabaunsee County.

A 2024 Kenworth Construction (semi) was eastbound on I-70 when, for an unknown reason, it crossed the center median into the westbound lanes of traffic.

The semi struck a 2020 Buick Envision, which was westbound in the right lane of traffic.

Advertisement

The Kansas Highway Patrol released the identities of the individuals involved.

The driver of the Buick, 70-year-old Barbara Krier, of Great Bend, died of a fatal injury. Another occupant in the Buick, 50-year-old Steven Reed, of Topeka, also died of a fatal injury.

A 7-year-old child was also in the vehicle at the time and suffered a serious injury. The child was taken to a hospital.

The semi driver, Jason Webb, 45, of Cheboygan, Michigan, was also taken to a hospital with a suspected minor injury.

View the full Kansas Highway Patrol Crash Log report HERE.

Advertisement

Copyright 2026 WIBW. All rights reserved.



Source link

Continue Reading

Kansas

KBI seized drugs, guns and explosives from rural Kansas home

Published

on

KBI seized drugs, guns and explosives from rural Kansas home


Sunley photo Ness County Sheriff

NESS COUNTY – The Kansas Bureau of Investigation (KBI), the Ness County Sheriff’s Office, and the Kansas Highway Patrol (KHP) arrested a Ness City man following the execution of a search warrant Thursday morning.

At approximately 8:30 a.m. on Thursday, KBI agents and Ness County sheriff’s deputies executed a search warrant at 609 S. School Street in Ness City. During the search, law enforcement discovered large quantities of methamphetamine, cocaine, LSD, marijuana, and mushrooms, and seized 130 firearms. Explosive materials were also located, which required assistance from the KHP Hazardous Devices Unit to safely secure the scene before the search could resume.

Following the operation, the Kansas Department of Revenue’s Alcoholic Beverage Control Division (ABC) completed a tax assessment on the seized narcotics, successfully collecting over $118,000 from the suspect for the lack of required drug tax stamps.

Chad Sunley, 45, of Ness City, was arrested on requested charges of  distribution of methamphetamine within 1,000 feet of a school, distribution of marijuana within 1,000 feet of a school, distribution of LSD within 1,000 feet of a school, distribution of cocaine within 1,000 feet of a school, distribution of mushrooms within 1,000 feet of a school, manufacturing explosive devices, possession of stolen firearms, felony possession of drug paraphernalia, misdemeanor possession of drug paraphernalia, and no drug tax stamp.

Advertisement

Sunley was booked into the Ness County Jail.



Source link

Continue Reading
Advertisement

Trending