Skip to content

Calendar (Lustro) ​

Calendar examples in the Lustro language: glass surfaces, the indigo-to-pink gradient for the selected state, and JetBrains Mono for times. Event colors are category colors, not status colors. Demo data is fictitious; "today" in every demo is Wednesday, October 7, 2026.

Month view ​

Seven-column grid with a segmented view switcher. Today is a filled circle, weekends are slightly tinted, days outside the month are dimmed, and a cell shows at most three chips before a "+N more" link. Multi-day events repeat as connected chips.

October 2026‹Today›
DayWeekMonthAgenda
Sun
Mon
Tue
Wed
Thu
Fri
Sat
27
28
29
30
1Standup
2Focus block
3
4
5Sprint review
6Dentist
7Design syncDinner with AnaFocus block
81:1 with Maya
9Flight SCL to LIM
10Lima trip
11Lima trip
12Lima trip
13
14Roadmap reviewYoga
15Checkup
16Launch
17
18
19Ana's birthday
20
21PlanningRetroFocus+2 more
22
23
24Family lunch
25
26
27
28All hands
29
30Invoice due
31

Week view ​

Hourly time grid with an all-day row, a now line, overlapping events split side by side, and a tentative event drawn dashed.

Oct 4 – 10, 2026‹Today›
DayWeekMonthAgenda
Sun 4Mon 5Tue 6Wed 7Thu 8Fri 9Sat 10
all-day
Team offsite
Flight to Lima
8 am9 am10 am11 am12 pm1 pm2 pm3 pm4 pm5 pm
Standup9:00 – 10:00
Focus block10:30 – 12:30
Design review11:00 – 12:30
Customer call12:00 – 1:00 pm
Design sync9:30 – 10:30
Lunch with Ana12:00 – 1:00 pm
Roadmap1:30 – 2:30 pm
Physio2:00 – 3:00 pm
1:1 with Maya10:00 – 11:00
Focus block2:00 – 4:00 pm
Standup9:00 – 10:00
Run9:00 – 10:00

Agenda ​

Events grouped by day: time column, category bar, title with location, then attendee avatars. Use it as the default view on narrow screens.

Wed, Oct 7Today
9:3010:30Design syncRoom 4BMAJO+3
12:001:00Lunch with AnaCafe Lumen
2:004:00Focus blockDo not disturb
5:005:30Roadmap reviewVideo callMASK+6
Thu, Oct 8Tomorrow
10:0011:001:1 with MayaVideo callMA
4:305:30PhysioClinic Norte
Fri, Oct 9
All dayFlight SCL to LIMDeparts 7:40 am

Event chips and categories ​

Five categories, each one color. Variants carry state through shape, not extra colors: all-day is filled, multi-day chips connect, tentative is dashed, declined is struck through, cancelled is faded.

WorkPersonalTravelFocusHealth
9:00 Timed eventAll-day eventMulti-day startMulti-day endTentativeDeclinedCancelledRecurring ↻Needs reply •

Event card, quick create and conflict ​

Work×
Design sync
Wed, Oct 7 · 9:30 – 10:30 am
Room 4B · Video link
MAJOSKLI+2
Reminder 10 minutes before
YesMaybeNo
Quick create
Title Lunch with Ana
When Wed, Oct 7 · 12:00 – 1:00 pm
Category Personal
Repeat Does not repeat
More optionsSave
ConflictRoadmap overlaps with Physio on Thu 2:00 pm.
Keep bothReschedule

Mini calendar and date pickers ​

Single date with event dots, range selection with presets, and a time-slot grid.

‹October 2026›
SMTWTFS2728293012345678910111213141516171819202122232425262728293031
TodayNext 7 daysThis monthCustom
‹Date range›
SMTWTFS2728293012345678910111213141516171819202122232425262728293031
Oct 12 → Oct 16 · 5 days
Time
9:009:3010:0010:3011:0011:3012:0012:30
Duration 45 min
Time zone America/Santiago

Availability ​

Free/busy rows per person with a suggested common slot, plus bookable slots for scheduling links.

9101112123456
You
Maya
Joaquin
Sofia
Best
FreeTentativeBusySuggested
Mon 5
9:009:3010:0010:30
Tue 6
9:009:3010:0010:30
Wed 7
2:002:303:003:30

Year overview ​

Heat map of busy days. Five steps from empty to packed.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

Anatomy ​

PartSpec
HeaderMonth or range title, previous/today/next controls, segmented view switcher (Day, Week, Month, Agenda)
Day cellGlass cell, 1px rgba(148,140,255,.16) rule; day number top left, weekends tinted
TodayFilled circle on the day number, a gradient #6366f1 to #ec4899 fill
Selected daySame fill on the number plus a indigo-soft cell outline
Event chipTinted fill from its category color, 3px left rule in the full color, 12px text, one line
Time grid48px per hour, event height equals duration, 2px gap between stacked events
Now line2px pink #ec4899 line with a dot on the left edge
Agenda rowTime, category bar, title, secondary line, attendee avatars
AvailabilityRow per person: free (empty), tentative (hatched), busy (solid); suggested slot outlined

Rules ​

  1. One color per category, five at most. Never reuse a status color for a category.
  2. Express state with shape: filled (all-day), dashed (tentative), struck through (declined), faded (cancelled).
  3. Times use JetBrains Mono in 12-hour or 24-hour format consistently within a view, never mixed.
  4. Show "+N more" instead of growing a day cell past three chips.
  5. Always mark today and the current time; selection never replaces them.
  6. Weekends stay visible; tint them rather than hide them.
  7. Conflicts are shown inline on the event, with a clear way to keep both or reschedule.