Every assignment in SpinAI comes with a built-in slide preparation workflow. The Template Editor lets the assigned facilitator compose a title and agenda, then style the result with one of four themes, four font families, and three size scales. When the meeting starts, a single click launches a full-screen Presentation Mode that renders the slide live in the browser — no external tools required.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/fmoraga01/SpinAI/llms.txt
Use this file to discover all available pages before exploring further.
Template Editor overview
The Template Editor is opened from the ◈ Lámina button on any upcoming assigned slot in the Schedule. It is scoped to a single assignment: eachassignmentId maps to exactly one template row in Supabase.
The editor exposes two content fields:
Title
A single-line text input for the meeting title (e.g. “Revisión de sprint Q2”). Displayed as the main heading on the slide.
Agenda
A draggable ordered list. Items can be added, removed, and reordered by drag-and-drop. Each item is individually editable. Blank items are stripped before saving.
⠿) is on the left of each row, a blue outline highlights the drop target, and the dragged item fades to 40% opacity.
The
Template interface also includes keyPoints and notes fields, which are stored in Supabase and rendered in Presentation Mode if populated. The current editor UI sets both to empty defaults — they can be pre-populated directly in the database or through future editor enhancements.Template data shape
Themes
Four visual themes are available. Each theme defines its own background, accent colour, card surfaces, and animated background variant for Presentation Mode.| Key | Label | Accent | Background | Animation |
|---|---|---|---|---|
default | Predeterminado | #2C40FF (blue) | #0d0f1a | Tokens |
minimal | Minimalista | #e5e7eb (grey) | #050505 | Neural |
blueprint | CoE AI | #38BDF8 (sky blue) | #060f1e | Constellation |
warm | HenryStyle | #F59E0B (amber) | #0c0800 | Synaptic |
Fonts
Four font configurations are available, each affecting the title, number labels, and body text independently.| Key | Label | Style |
|---|---|---|
sans | Neutro | Inter — clean, high-contrast sans-serif at weight 700 for titles |
mono | Técnica | JetBrains Mono — monospaced with a VSCode-inspired syntax colour palette (#DCDCAA titles, #B5CEA8 numbers, body cycling through #9CDCFE, #CE9178, #C586C0, #4EC9B0) |
serif | Innovadora | Honk — display typeface at weight 400, with larger base sizes (titleSize: 52px) |
impact | Retro-digital | Bitcount Grid Double — pixel-style monospaced font at weight 400, with titleSize: 53px and the same large number/body scale as Innovadora |
Sizes
Three font size scales are available, applied uniformly to all text elements via ascaleSize() multiplier:
| Key | Label | Scale |
|---|---|---|
sm | Compacto | 0.78× |
md | Normal | 1.00× |
lg | Grande | 1.25× |
px values and the min/vw/max values inside clamp() expressions, so responsive sizing is preserved at every scale.
Presentation Mode
Clicking the ▶ Presentar button saves the current template and switches to full-screen Presentation Mode.Request fullscreen
document.documentElement.requestFullscreen() is called synchronously inside the click handler (before any await) to satisfy the browser’s user-gesture requirement. The template is then saved and PresentationView is mounted.View the slide
The slide renders with the chosen theme background, animated background layer (
SlideBackground), the facilitator’s name as an uppercase accent label, the title in the theme’s heading style, and the agenda / key points / notes in their respective cards.Check off agenda items
Click any agenda item during the meeting to toggle a strikethrough. The number and text colour both transition to the muted theme colour, and clicking again restores them. State is local and resets when Presentation Mode is closed.
Auto-save
Templates are persisted viasaveTemplate(), which calls Supabase’s upsert with onConflict: "assignment_id". This means:
- First save: inserts a new row.
- Subsequent saves: updates the existing row in place.
- There is no risk of duplicate template rows for the same assignment.