Photo Products
Almanac Wall Calendar
A bold, functional 305×305mm (12×12in) wall calendar — one shared month-page template driving a ledger-style day grid with weekend-highlight columns, across a complete, precisely-computed 2027 calendar year.
- 13 artboards: cover + all twelve months of 2027
- One month-page template drives the entire grid — only the photo, month name and day numbers change per page
- Day-of-week math precisely computed for every month: 6-row, 5-row, Sunday-start and mid-week-start cases all included
Made with AI
Model: Generated via Popcorn Editor
“Design a 13-artboard wall calendar called 'ALMANAC' — 305×305mm square (=12×12in). Palette (process swatches): 'chalk' cmyk[2,2,4,0] paper, 'graphite' cmyk[10,8,8,85] ink, 'signal' cmyk[0,72,88,0] one bold red-orange weekend-highlight accent. Type: Archivo Black for month names and every day numeral (heavy, grid-native); Space Grotesk (bold, tracked caps) for the day-of-week header, wordmark and metadata. Real placeholder photos only: templates/shared/placeholder-{landscape,travel,portrait,interior,cafe,food,workspace}.jpg. MONTH-PAGE MASTER (styles.masters — the core deliverable): ONE masterDef, key 'month-page', 305×305, background swatchRef 'chalk', margins {top:16,right:16,bottom:7,left:16}. Vertical stack (verified to sum to exactly 305mm — build these exact elements): a photo zone from y:-3 to y:120 is PAGE-LEVEL (not in the master, since every month's photo differs) — leave that area empty in the master itself; rect 'Brand band' x:-3 y:120 width:311 height:38 fill 'graphite'; group 'Day-of-week header': 7 text elements 'SU'/'MO'/'TU'/'WE'/'TH'/'FR'/'SA' at x = 16 + n×39 (n=0..6), y:162, width:39, height:11, Space Grotesk bold 9pt letterSpacing 1 case upper — SU and SA fill 'signal', MO through FR fill 'graphite'; line 'Header rule' x:16 y:174 width:273 height:0 stroke 'graphite' 0.4; rect 'Weekend tint — Sunday' x:16 y:178 width:39 height:120 fill 'signal' opacity 0.08; rect 'Weekend tint — Saturday' x:250 y:178 width:39 height:120 fill 'signal' opacity 0.08; group 'Grid rules': 6 vertical lines at x = 55,94,133,172,211,250 spanning y:178 to y:298, plus 5 horizontal lines at y = 198,218,238,258,278 spanning x:16 to x:289, plus one outer keyline rect x:16 y:178 width:273 height:120 (stroke only, no fill) — all stroke 'graphite' ~0.3mm width. Column x-ranges (for day-number placement): SU 16-55, MO 55-94, TU 94-133, WE 133-172, TH 172-211, FR 211-250, SA 250-289 (each exactly 39mm). Row y-ranges (6 rows of 20mm each): row0 178-198, row1 198-218, row2 218-238, row3 238-258, row4 258-278, row5 278-298. Attach the SAME masterRef 'month-page' to all 12 month artboards; the cover is bespoke/unmastered. Do NOT put a photo or any blocks in this master — every month's content (photo, name, day numbers) is genuinely unique, so masters alone (no blocks) are correct here. PER-MONTH PAGE CONTENT (page-level, on top of the master, one artboard per month): image 'Month photo' x:-3 y:-3 width:311 height:123 fit 'fill' (photo asset per the table below); text 'Month name' x:16 y:126 width:270 height:22, Archivo Black 34pt case upper fill 'chalk', content = the month's full name in caps (e.g. 'JANUARY'); text 'Month metadata' x:16 y:150 width:270 height:6, Space Grotesk bold 8pt letterSpacing 2 case upper fill 'chalk' opacity 0.8, content 'ALMANAC — 2027 — 0N OF 12' (0N = the month's 2-digit number, e.g. '01 OF 12'); a day-number grid — one text element PER DAY OF THE MONTH, grouped into named sub-groups 'Week 1' through 'Week 5' or 'Week 6' by row — Archivo Black ~14pt fill 'graphite' (fill 'signal' instead for any day landing in the SU or SA column), each day's cell positioned at x = 16 + col×39 + 3, y = 178 + row×20 + 2, width:33, height:10, where col = (startCol + day − 1) mod 7 and row = floor((startCol + day − 1) / 7), using the EXACT startCol/days values from this verified 2027 table (do not recompute — place exactly per this table and double-check every placement, since templates:validate does not check calendar arithmetic): | Month | startCol (SU=0..SA=6) | Days in month | Photo asset | |---|---|---|---| | January | 5 | 31 | placeholder-landscape.jpg | | February | 1 | 28 | placeholder-interior.jpg | | March | 1 | 31 | placeholder-portrait.jpg | | April | 4 | 30 | placeholder-workspace.jpg | | May | 6 | 31 | placeholder-food.jpg | | June | 2 | 30 | placeholder-travel.jpg | | July | 4 | 31 | placeholder-landscape.jpg | | August | 0 | 31 | placeholder-travel.jpg | | September | 3 | 30 | placeholder-cafe.jpg | | October | 5 | 31 | placeholder-interior.jpg | | November | 1 | 30 | placeholder-portrait.jpg | | December | 3 | 31 | placeholder-cafe.jpg | Author the 12 month artboards in calendar order January through December. COVER (artboard 1, bespoke 305×305, unmastered): image 'Cover photo' -3,-3,311,311 fit fill assetUrl placeholder-workspace.jpg; rect 'Top scrim' -3,-3,311,70 hex #17171a alpha 0.30; rect 'Bottom scrim' -3,180,311,128 hex #17171a alpha 0.48; text 'Top note' 24,24,257,6 'TWELVE MONTHS, PLAINLY STATED' Space Grotesk bold 7.5pt letterSpacing 2.5 upper fill chalk opacity 0.85; group 'Title lockup': text 'Kicker' 24,210,257,8 'A WALL CALENDAR' Space Grotesk bold 9pt letterSpacing 3 upper fill chalk; text 'Title' 24,222,257,60 'ALMANAC' Archivo Black 64pt lineHeight 0.95 fill chalk; text 'Year' 24,285,257,10 '2027' Space Grotesk bold 16pt letterSpacing 2 fill signal; group 'Day rhythm footer': 7 small text elements SU..SA at the SAME 39mm column spacing as the interior grid (x:16+39n, y:296, width:39, height:8), Space Grotesk 7pt letterSpacing 2 fill chalk opacity 0.5 (SU/SA fill signal opacity 0.7) — a decorative echo tying the cover to the interior grid. Named Fabric groups + a specific human-readable name on every single element (never 'Rect 1'). AUTHOR STRICTLY INCREMENTALLY per the Incremental authoring rule: skeleton = schemaVersion/meta/styles (all swatches + the month-page master) + artboard 1 (Cover) ONLY, validate --compile, then one Edit per subsequent month artboard IN CALENDAR ORDER, validating after EVERY single Edit — this is a 13-artboard document, the largest in the repo so far. Double- and triple-check each month's day-count and startCol against the table above before finalizing that month's Edit; a wrong day placement will not be caught by templates:validate.”