#component #calendar #leptos #date #apps #class #view

leptos_calendar

A calendar component for leptos apps

3 releases

0.1.2 Feb 6, 2025
0.1.1 Nov 13, 2024
0.1.0 Nov 13, 2024

#246 in Date and time

Download history 207/week @ 2024-11-09 39/week @ 2024-11-16 5/week @ 2024-11-23 14/week @ 2024-12-07 103/week @ 2025-02-01 38/week @ 2025-02-08 10/week @ 2025-02-15

151 downloads per month

MIT license

17KB
147 lines

an unstyled calendar component for Leptos

This component provides a calendar component and a configuration hook to be able to apply styles to it.

Example Usage


#[component]
fn Parent() -> into ImplView {
	let calendar_config = CalendarConfig {
		active_classes: Some("border-pink-400 border-2".to_string()),
		header_classes: Some("bg-slate-900 text-white".to_string()),
		month_classes: Some("bg-black p-3 text-center text-4xl font-normal".to_string()),
		cell_classes: Some("bg-black text-center py-3 px-4 border aspect-square".to_string()),
		..Default::default()
	};
	let (selected_date, _) = create_signal(
		NaiveDate::from_ymd_opt(2025, 1, 30)
				.and_then(|x| x.and_hms_opt(12, 12, 12))
				.and_then(|x| Some(x.and_local_timezone(Local).unwrap()))
				.unwrap(),
	);

	view! {
		<CalendarRoot config=calendar_config>
			<Calendar date=selected_date class="border-2 border-white bg-slate-50" />
		</CalendarRoot>
	}
}

Remaining Work

  • Add ability to click the cell to set the current date
  • Move cell_renderer into a sub-component instead of config (if possible)
  • Add doctests and documentation

Please file issues

This isn't super well tested, so if you use it and run into problems or rough edges, please file issues

Dependencies

~23–35MB
~546K SLoC