All Prompts
All Prompts

news gridarticle cardtailwindresponsivefeaturedbookmarkctablog
News Article Grid with Featured Story & Load More
Адаптивная сетка новостных статей с выделенной статьей и кнопкой "Загрузить еще". Идеально для новостных порталов, блогов.
Prompt
<section class="sm:px-8 max-w-7xl mr-auto ml-auto pr-6 pl-6">
<div class="py-12 sm:py-16">
<div class="grid lg:grid-cols-2 gap-12 lg:gap-16 items-start">
<div class="max-w-3xl">
<h2 class="sm:text-5xl text-4xl font-semibold text-black tracking-tighter font-playfair" style="">Schedule a call</h2>
<p class="mt-6 text-lg text-black/60 font-geist" style="">Pick a date and time to book a 15‑minute briefing. We'll send a calendar invite after you confirm.</p>
<div class="mt-8 space-y-4">
<div class="flex items-start gap-3">
<div class="flex-shrink-0 w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center mt-0.5">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-emerald-600"><path d="M20 6 9 17l-5-5" class=""></path></svg>
</div>
<div class="">
<h3 class="text-base font-medium text-black font-geist" style="">Quick briefings</h3>
<p class="text-sm text-black/60 font-geist" style="">Get up to speed on today's most important stories in just 15 minutes</p>
</div>
</div>
<div class="flex items-start gap-3">
<div class="flex-shrink-0 w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center mt-0.5">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-emerald-600"><path d="M20 6 9 17l-5-5" class=""></path></svg>
</div>
<div class="">
<h3 class="text-base font-medium text-black font-geist" style="">Expert analysis</h3>
<p class="text-sm text-black/60 font-geist" style="">Direct access to our editorial team for personalized news insights</p>
</div>
</div>
<div class="flex items-start gap-3">
<div class="flex-shrink-0 w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center mt-0.5">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-emerald-600"><path d="M20 6 9 17l-5-5" class=""></path></svg>
</div>
<div class="">
<h3 class="text-base font-medium text-black font-geist" style="">Flexible scheduling</h3>
<p class="text-sm text-black/60 font-geist" style="">Choose from morning, afternoon, or evening slots that work for you</p>
</div>
</div>
</div>
<div class="mt-8">
<button class="inline-flex gap-2 hover:bg-black/80 transition-all font-medium text-white font-geist bg-black h-12 rounded-xl pr-6 pl-6 items-center" style="">
Book your session
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><path d="M5 12h14" class=""></path><path d="m12 5 7 7-7 7" class=""></path></svg>
</button>
<p class="mt-3 text-sm text-black/50 font-geist" style="">No commitment required. Cancel or reschedule anytime.</p>
</div>
</div>
<div class="">
<div class="overflow-hidden text-white/80 bg-black border-black/5 border rounded-3xl shadow-2xl">
<div class="sm:p-6 pt-5 pr-5 pb-5 pl-5">
<!-- Month header -->
<div class="flex items-center justify-between">
<div class="flex items-baseline gap-2">
<h3 class="text-xl font-semibold tracking-tight font-geist text-white" style="">September 2025</h3>
</div>
<div class="flex items-center gap-2">
<button class="inline-flex h-9 w-9 items-center justify-center rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80" aria-label="Previous month" disabled="">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="chevron-left" class="lucide lucide-chevron-left w-4 h-4"><path d="m15 18-6-6 6-6" class=""></path></svg>
</button>
<button class="inline-flex h-9 w-9 items-center justify-center rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80" aria-label="Next month" disabled="">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="chevron-right" class="lucide lucide-chevron-right w-4 h-4"><path d="m9 18 6-6-6-6" class=""></path></svg>
</button>
</div>
</div>
<!-- Weekdays -->
<div class="mt-4 grid grid-cols-7 text-xs uppercase tracking-wider text-white/60 font-geist">
<div class="h-10 flex items-center justify-center" style="">Sun</div>
<div class="h-10 flex items-center justify-center" style="">Mon</div>
<div class="h-10 flex items-center justify-center" style="">Tue</div>
<div class="h-10 flex items-center justify-center" style="">Wed</div>
<div class="h-10 flex items-center justify-center" style="">Thu</div>
<div class="h-10 flex items-center justify-center" style="">Fri</div>
<div class="h-10 flex items-center justify-center" style="">Sat</div>
</div>
<!-- Days grid (Sept 2025 starts on Monday) -->
<div id="calendar-grid" class="grid grid-cols-7 gap-2 sm:gap-3">
<!-- Leading blank for Sun -->
<div class="h-12"></div>
<!-- Days 1-30 -->
<!-- Row 1 -->
<button data-day="2025-09-01" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">1</button>
<button data-day="2025-09-02" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">2</button>
<button data-day="2025-09-03" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">3</button>
<button data-day="2025-09-04" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">4</button>
<button data-day="2025-09-05" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">5</button>
<button data-day="2025-09-06" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">6</button>
<!-- Row 2 -->
<button data-day="2025-09-07" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">7</button>
<button data-day="2025-09-08" class="day-btn inline-flex items-center justify-center h-12 rounded-xl border text-sm font-geist bg-white text-black border-white" aria-pressed="true" style="">8</button>
<button data-day="2025-09-09" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">9</button>
<button data-day="2025-09-10" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">10</button>
<button data-day="2025-09-11" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">11</button>
<button data-day="2025-09-12" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">12</button>
<button data-day="2025-09-13" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">13</button>
<!-- Row 3 -->
<button data-day="2025-09-14" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">14</button>
<button data-day="2025-09-15" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">15</button>
<button data-day="2025-09-16" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">16</button>
<button data-day="2025-09-17" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">17</button>
<button data-day="2025-09-18" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">18</button>
<button data-day="2025-09-19" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">19</button>
<button data-day="2025-09-20" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">20</button>
<!-- Row 4 -->
<button data-day="2025-09-21" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">21</button>
<button data-day="2025-09-22" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">22</button>
<button data-day="2025-09-23" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">23</button>
<button data-day="2025-09-24" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">24</button>
<button data-day="2025-09-25" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">25</button>
<button data-day="2025-09-26" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">26</button>
<button data-day="2025-09-27" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">27</button>
<!-- Row 5 -->
<button data-day="2025-09-28" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">28</button>
<button data-day="2025-09-29" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">29</button>
<button data-day="2025-09-30" class="day-btn inline-flex items-center justify-center h-12 rounded-xl bg-white/10 hover:bg-white/20 border border-white/10 text-white/80 text-sm font-geist" style="">30</button>
<!-- Trailing blanks -->
<div class="h-12"></div>
<div class="h-12"></div>
<div class="h-12"></div>
<div class="h-12"></div>
</div>
<!-- Selection + format toggle -->
<div class="mt-6 flex items-center justify-between">
<div id="selected-label" class="text-white font-geist text-base" style="">Mon 08</div>
<div class="inline-flex items-center gap-1 p-1 rounded-xl bg-white/10 border border-white/10">
<button id="fmt-12" class="timefmt-btn px-3 h-8 rounded-lg text-sm font-geist bg-white/10 text-white" style="">12h</button>
<button id="fmt-24" class="timefmt-btn px-3 h-8 rounded-lg text-sm font-geist text-white/80 hover:bg-white/10" style="">24h</button>
</div>
</div>
<!-- Time picker (custom) -->
<div class="mt-3">
<div class="h-12 rounded-xl border border-white/15 bg-black/40 text-white/80 flex items-center justify-between px-4">
<div class="flex items-center gap-2">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="clock" class="lucide lucide-clock w-4 h-4 text-white/60"><path d="M12 6v6l4 2" class=""></path><circle cx="12" cy="12" r="10" class=""></circle></svg>
<span id="selected-time" class="font-geist text-white" style="">5:00pm</span>
</div>
<div class="relative">
<button id="time-dropdown-btn" class="inline-flex items-center gap-1 h-8 px-3 rounded-lg bg-white/10 hover:bg-white/20 border border-white/10 text-sm font-geist" style="">
Change
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="chevron-down" class="lucide lucide-chevron-down w-4 h-4"><path d="m6 9 6 6 6-6" class=""></path></svg>
</button>
<!-- Menu -->
<div id="time-menu" class="hidden absolute right-0 mt-2 w-40 rounded-xl border border-white/10 bg-black/90 backdrop-blur p-1 shadow-2xl">
<button data-time="09:00" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">9:00am</button>
<button data-time="09:30" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">9:30am</button>
<button data-time="10:00" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">10:00am</button>
<button data-time="14:00" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">2:00pm</button>
<button data-time="17:00" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">5:00pm</button>
<button data-time="17:30" class="time-opt w-full text-left px-3 py-2 rounded-lg text-sm text-white/80 hover:bg-white/10 font-geist" style="">5:30pm</button>
</div>
</div>
</div>
<p class="mt-2 text-xs text-white/60 font-geist" style="">Times shown in your local timezone.</p>
</div>
<!-- Confirm -->
<div class="mt-6">
<button class="w-full inline-flex items-center justify-center h-12 rounded-xl bg-white text-black hover:bg-white font-geist text-sm" style="">
Confirm booking
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
(function () {
const grid = document.getElementById('calendar-grid');
const selectedLabel = document.getElementById('selected-label');
const fmt12 = document.getElementById('fmt-12');
const fmt24 = document.getElementById('fmt-24');
const timeBtn = document.getElementById('time-dropdown-btn');
const timeMenu = document.getElementById('time-menu');
const timeText = document.getElementById('selected-time');
function formatTime(hhmm, is24) {
const [h, m] = hhmm.split(':').map(Number);
if (is24) return `${String(h).padStart(2,'0')}:${String(m).padStart(2,'0')}`;
const ampm = h >= 12 ? 'pm' : 'am';
const h12 = ((h + 11) % 12) + 1;
return `${h12}:${String(m).padStart(2,'0')}${ampm}`;
}
let is24h = false;
let currentTime = '17:00';
// Day selection
grid?.addEventListener('click', (e) => {
const btn = e.target.closest('.day-btn');
if (!btn) return;
grid.querySelectorAll('.day-btn').forEach(b => {
b.classList.remove('bg-white','text-black','border-white');
b.classList.add('bg-white/10','text-white/80','border-white/10');
b.removeAttribute('aria-pressed');
});
btn.classList.remove('bg-white/10','text-white/80','border-white/10');
btn.classList.add('bg-white','text-black','border-white');
btn.setAttribute('aria-pressed','true');
// Update label (weekday abbrev not computed; map by date for this static month)
const dateStr = btn.getAttribute('data-day'); // 2025-09-DD
const dd = dateStr?.slice(-2) || '01';
// Static mapping since September 2025 starts Monday
const weekdayNames = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
// Compute weekday quickly with Date (supported)
const d = new Date(dateStr);
const wk = weekdayNames[d.getDay()];
selectedLabel.textContent = `${wk} ${dd}`;
});
// Time format toggle
function setFormat(use24) {
is24h = use24;
fmt12.classList.toggle('bg-white/10', !use24);
fmt12.classList.toggle('text-white', !use24);
fmt12.classList.toggle('text-white/80', use24);
fmt24.classList.toggle('bg-white/10', use24);
fmt24.classList.toggle('text-white', use24);
fmt24.classList.toggle('text-white/80', !use24);
timeText.textContent = formatTime(currentTime, is24h);
// Update menu items
document.querySelectorAll('#time-menu .time-opt').forEach(opt => {
const val = opt.getAttribute('data-time');
opt.textContent = formatTime(val, is24h);
});
}
fmt12?.addEventListener('click', () => setFormat(false));
fmt24?.addEventListener('click', () => setFormat(true));
setFormat(false);
// Time dropdown
timeBtn?.addEventListener('click', () => {
timeMenu.classList.toggle('hidden');
});
document.addEventListener('click', (e) => {
if (!timeMenu.contains(e.target) && !timeBtn.contains(e.target)) {
timeMenu.classList.add('hidden');
}
});
timeMenu?.addEventListener('click', (e) => {
const opt = e.target.closest('.time-opt');
if (!opt) return;
currentTime = opt.getAttribute('data-time') || '17:00';
timeText.textContent = formatTime(currentTime, is24h);
timeMenu.classList.add('hidden');
});
})();
</script>
</section>