1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 4-5
4 5<script async src="https://www.googletagmanager.com/gtag/js?id=
5G-ZZTP6SYNB7
vendor: 13 bytes, line 5
5"></script>
6<script> 7
vendor: 138 bytes, lines 7-11
7window.dataLayer = window.dataLayer || []; 8 function gtag(){dataLayer.push(arguments);} 9 gtag('js', new Date()); 10 11 gtag('config', '
11G-ZZTP6SYNB7
vendor: 5 bytes, line 11
11');
12</script>
12 13<meta charset="utf-8"> 14<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0, user-scalable=yes"> 15<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> 16<title>Latest DCF News | Florida DCF</title> 17 18<link rel="canonical" href="https://www.myflfamilies.com/news-and-events/latest-news"> 19<meta property="og:locale" content="en_US" /> 20<meta property="og:type" content="website" /> 21<meta property="og:title" content="Florida Department of Children and Families" /> 22<meta property="og:description" content="The Florida Department of Children and Families provides services supporting strong families and communities including public assistance, child welfare, and mental health services." /> 23<meta property="og:url" content="https://www.myflfamilies.com/" /> 24<meta property="og:site_name" content="The Florida Department of Children and Families" /> 25<meta property="og:updated_time" content="2026-04-08T12:24:18-05:00" /> 26<meta property="article:published_time" content="2026-04-08T11:02:37-05:00" /> 27<meta property="article:modified_time" content="2026-04-08T12:24:18-05:00" /> 28<meta name="twitter:card" content="summary_large_image" /> 29<meta name="twitter:title" content="The Florida Department of Children and Families" /> 30<meta name="twitter:description" content="The Florida Department of Children and Families provides services supporting strong families and communities including public assistance, child welfare, and mental health services." /> 31<meta name="twitter:site" content="@HealthyFla" /> 32<meta name="twitter:creator" content="@HealthyFla" /> 33<meta name="twitter:label1" content="Time to read" /> 34<meta name="twitter:data1" content="Less than a minute" /> 35<meta http-equiv="X-Content-Type-Options" content="nosniff"> 36<meta http-equiv="X-Frame-Options" content="SAMEORIGIN"> 37<meta http-equiv="Content-Security-Policy" content="frame-ancestors 'none';"> 38<meta name="referrer" content="strict-origin-when-cross-origin"> 39<meta name="description" content="A Florida Department of Children and Families pressroom page featuring the latest news releases, announcements, and updates on programs, initiatives, and services impacting children and families across the state."> 40<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> 41<link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" rel="stylesheet">
42<script src="https://www.myflfamilies.com/css/js/headerfooter.js" defer></script>
42
43<script src="https://www.myflfamilies.com/css/js/language.js" defer></script>
43 44 45<link href="https://www.myflfamilies.com/css/style.css" rel="stylesheet"> 46<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet"> 47<link rel="preconnect" href="https://fonts.googleapis.com"> 48<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""> 49<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:[email protected]&family=Saira+Condensed:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet"> 50<!-- --> 51<style> 52 .custom-container { 53 padding-left: 15%; 54 padding-right: 15%; 55 56} 57 @media (max-width: 768px) { 58 .custom-container { 59 padding:1%; 60 } 61} 62 63 h1 { 64 font-family: 'Helvetica Neue', Helvetica, sans-serif; 65 font-size: 3rem; 66 font-weight: 600; 67 padding-bottom: 2%; 68 margin: 0 0 20px; 69} 70 71h2 { 72 font-family: 'Helvetica Neue', Helvetica, sans-serif; 73 font-size: 1.6rem; 74 font-weight: 600; 75 padding-bottom: 2%; 76 margin: 0 0 20px; 77} 78 79 80 81 .news-item { padding: 1rem 0; border-top: 1px solid #dbdbdc; } 82 .news-item h3 { margin: 0; } 83 .news-item p { line-height: 1.5rem; margin-bottom: 0.5rem; } 84 .news-item-date { font-weight: 600; color: #484848; font-size: 0.875rem; } 85 .pagination { margin-top: 2rem; text-align: center; flex-wrap: wrap; display: flex; justify-content: center; } 86 .pagination button { 87 margin: 0 3px; 88 padding: 0.4rem 0.8rem; 89 border: none; 90 background-color: #fff; 91 color: #003467; 92 cursor: pointer; 93 } 94 .pagination button.active { background-color: #003467; color: #fff; } 95 .pagination button:disabled { opacity: 0.5; cursor: not-allowed; } 96</style> 97 <a href="#main-content" class="skip-link">Skip to main content</a> <!-- Header injected --> 98<!--<header class="site-header d-none d-lg-block fixed-top"> 99 <div class="row py-2" style="background-color:#10579d; padding-right:10%;"> 100 <table class="ms-auto"> 101 <tr> 102 <td class="text-end pe-3"> 103 <a class="topWhiteLink" href="https://myaccess.myflfamilies.com/" target="_blank"> 104 Apply for Benefits 105 </a> 106 </td> 107 <td style="width:30%;"> 108 <div class="gcse-searchbox-only"></div> 109 </td> 110 </tr> 111 </table> 112 </div> 113</header>--> 114 115 116<div id="header-placeholder"></div> 117<div id="announcements-placeholder"></div>
118<script> 119document.querySelectorAll('.dropdown-item-toggle').forEach(button => { 120 button.addEventListener('click', function () { 121 const submenu = this.nextElementSibling; 122 const expanded = this.getAttribute('aria-expanded') === 'true'; 123 124 this.setAttribute('aria-expanded', !expanded); 125 submenu.classList.toggle('show'); 126 }); 127}); 128</script>
128
128<script>// Enable toggle of submenu on click for mobile 129document.querySelectorAll('.dropdown-submenu > a').forEach(function(element){ 130 element.addEventListener('click', function(e){ 131 let submenu = this.nextElementSibling; 132 if(submenu && submenu.classList.contains('dropdown-menu')){ 133 e.preventDefault(); 134 submenu.classList.toggle('show'); 135 } 136 }); 137}); 138</script>
138 139<main id="main-content" class="container-fluid p-0"></main> 140 141 142 143<div class="hero hero-desktop d-none d-md-flex align-items-center" 144 style="background-image: linear-gradient(90deg, rgba(0,0,0,.75) 1%, rgba(0,0,0,0) 78%), url('https://www.myflfamilies.com/images/banners/newsroom-banner.jpg');"> 145 <h1 class="text-white" style="padding-left:15%;">DCF Pressroom</h1> 146</div> 147 148<div class="d-block d-md-none" style="background-color:#003467;"> 149 <img src="https://www.myflfamilies.com/images/banners/newsroom-banner.jpg" class="img-fluid w-100" alt="DCF Pressroom"> 150 <h1 class="text-white py-3 px-3 fs-2">DCF Pressroom</h1> 151</div> 152 <div class="container-fluid" style="padding:0 10% 1% 10%;"> 153 <div class="row gy-3"> 154 155 <div class=" col-12"> 156 <div id="news-list"></div> 157<div class="pagination" id="pagination"></div> 158
159<script src="https://cdn.jsdelivr.net/npm/[email protected]/papaparse.min.js"></script>
159
160<script> 161const ITEMS_PER_PAGE = 10; 162let currentPage = 1; 163let allItems = []; 164const basePath = 'https://www.myflfamilies.com/news-and-events/news/'; 165 166/* ---------- CLEAN FIELD ---------- */ 167function cleanField(field) { 168 if (!field) return ''; 169 return field.toString().replace(/^\uFEFF/, '') // Remove BOM 170 .replace(/^"|"$/g, '') // Remove quotes 171 .trim(); 172} 173 174/* ---------- FLEXIBLE DATE PARSER ---------- */ 175function parseCSVDate(dateStr) { 176 dateStr = cleanField(dateStr); 177 if (!dateStr) return 0; 178 // YYYY-MM-DD 179 let m = /^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(dateStr); 180 if (m) return new Date(Number(m[1]), Number(m[2])-1, Number(m[3])).getTime(); 181 // M/D/YYYY or MM/DD/YYYY 182 m = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(dateStr); 183 if (m) return new Date(Number(m[3]), Number(m[1])-1, Number(m[2])).getTime(); 184 return 0; 185} 186 187/* ---------- LOAD CSV ---------- */ 188fetch('https://www.myflfamilies.com/news-and-events/news/news.csv') 189 .then(res => res.text()) 190 .then(csv => { 191 const parsed = Papa.parse(csv, { header: true, skipEmptyLines: true }); 192 193 allItems = parsed.data 194 .map(row => ({ 195 title: cleanField(row.title), 196 date: cleanField(row.date), 197 description: cleanField(row.description), 198 button: cleanField(row.button), 199 _sortDate: parseCSVDate(row.date) 200 })) 201 .filter(row => row.title && row.date && row.button) // keep all valid rows 202 .sort((a, b) => b._sortDate - a._sortDate); // newest first 203 204 renderPage(currentPage); 205 renderPagination(); 206 }) 207 .catch(err => console.error('Error loading news.csv:', err)); 208 209/* ---------- RENDER PAGE ---------- */ 210function renderPage(page) { 211 const container = document.getElementById('news-list'); 212 container.innerHTML = ''; 213 214 const start = (page - 1) * ITEMS_PER_PAGE; 215 const end = start + ITEMS_PER_PAGE; 216 const pageItems = allItems.slice(start, end); 217 218 if (!pageItems.length) { 219 container.innerHTML = '<p>No news available.</p>'; 220 return; 221 } 222 223 pageItems.forEach(item => { 224 const cleanButton = item.button.replace(/\s+/g, '').replace(/(\.html).*/i, '$1'); 225 const buttonUrl = cleanButton.startsWith('http') ? cleanButton : basePath + cleanButton; 226 227 container.innerHTML += ` 228 <div class="news-item"> 229 <p class="news-item-date">${item.date}</p> 230 <h2 style="padding-bottom:0; margin-bottom:0;">${item.title}</h2> 231 <p style="padding-top:0; margin-top:0;">${item.description}</p> 232 <a style="font-weight:600;" href="${buttonUrl}" class="btn-secondary-custom">Find Out More</a> 233 </div> 234 `; 235 }); 236} 237 238/* ---------- RENDER PAGINATION WITH COLLAPSING ---------- */ 239function renderPagination() { 240 const container = document.getElementById('pagination'); 241 container.innerHTML = ''; 242 const totalPages = Math.ceil(allItems.length / ITEMS_PER_PAGE); 243 const maxButtons = 7; // max numbered buttons shown 244 let startPage = Math.max(1, currentPage - Math.floor(maxButtons/2)); 245 let endPage = Math.min(totalPages, startPage + maxButtons - 1);
246 if (endPage - startPage < maxButtons - 1) startPage = Math.max(1, endPage - maxButtons + 1); 247 248 // Previous 249 const prevBtn = document.createElement('button'); 250 prevBtn.innerText = 'Previous'; 251 prevBtn.disabled = currentPage === 1; 252 prevBtn.addEventListener('click', () => { if(currentPage>1){currentPage--; renderPage(currentPage); renderPagination();} }); 253 container.appendChild(prevBtn); 254 255 // Numbered buttons 256 for(let i = startPage; i <= endPage; i++){ 257 const btn = document.createElement('button'); 258 btn.innerText = i; 259 if(i===currentPage) btn.classList.add('active'); 260 btn.addEventListener('click', () => { currentPage=i; renderPage(currentPage); renderPagination(); }); 261 container.appendChild(btn); 262 } 263 264 // Next 265 const nextBtn = document.createElement('button'); 266 nextBtn.innerText = 'Next'; 267 nextBtn.disabled = currentPage === totalPages; 268 nextBtn.addEventListener('click', () => { if(currentPage<totalPages){currentPage++; renderPage(currentPage); renderPagination();} }); 269 container.appendChild(nextBtn); 270} 271</script>
271 272 273 274 </div> 275 276 277 278 </div></div> 279 280 <div class="container-fluid" style="background-color:#e6f3ff; padding:1% 10%;"> 281 282 <div class="row" style"padding-top:5%;"> 283 <div class=" col-sm-12 col-med-5 col-lg-5" > 284 <h3>Contact Us</h3> 285 286 <p>Florida's Government-in-the-Sunshine Law sets a high standard of open records and transparency of public information and meetings, and open government is also a core value of the Department of Children and Families and the Office of Communications.</p> 287 <p> <a href="mailto:[email protected]" class="btn btn-primary-custom position-relative">Contact the DCF Office of Communications</a></p> 288 </div> 289 290 <div class=" col-sm-12 col-med-7 col-lg-7"> 291 292 <img src="https://www.myflfamilies.com/images/banners/news-bottom-banner.png" alt="Image of children running"> 293 </div> 294 </div> 295 296 </div> 297 </body> 298 299<div style="padding-top:1%;" id="footer-placeholder"></div> 300 301</html>
302<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-G/EV+4j2dNv+tEPo3++6LCgdCROaejBqfUeNjuKAiuXbjrxilcCdDz6ZAVfHWe1Y" crossorigin="anonymous"></script>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.