Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/firebase-hosting-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
channel: stable

- name: Align Melos SDK path
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/firebase-hosting-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
channel: stable

- name: Align Melos SDK path
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
channel: stable

- name: Align Melos SDK path
run: |
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
channel: stable

- name: Align Melos SDK path
run: |
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
channel: stable

- name: Align Melos SDK path
run: |
Expand Down
12 changes: 6 additions & 6 deletions .planning/feature-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

## Executive Summary

Templates provide reusable **chrome configurations** (background, header, footer) bundled with **isolated style systems** for consistent slide presentation. Templates are like Keynote master slides - they define the visual frame and default styling, while users continue writing markdown content using `@section`/`@column` directives normally.
Templates provide reusable **chrome configurations** (background, header, footer) bundled with **isolated style systems** for consistent slide presentation. Templates are like Keynote master slides - they define the visual frame and default styling, while users continue writing markdown content using `@section`/`@block` directives normally.

**Key Principle:** Templates control the **decorative layer** (chrome + styling), not the content layout. The existing `@section`/`@column` system remains unchanged.
**Key Principle:** Templates control the **decorative layer** (chrome + styling), not the content layout. The existing `@section`/`@block` system remains unchanged.

---

## Decisions Made

### 1. Template Scope: Chrome Only
- **Chrome Elements:** Background, header, footer (via `SlideParts`)
- **NOT in scope:** Slot definitions, layout restructuring, replacing `@section`/`@column`
- **NOT in scope:** Slot definitions, layout restructuring, replacing `@section`/`@block`
- **Rationale:** Keep templates simple, focused, and non-invasive to existing markdown authoring

### 2. Isolated Style Systems
Expand Down Expand Up @@ -257,7 +257,7 @@ SlideConfiguration
SlideView
├─ config.parts.background (from template or deck)
├─ config.parts.header (from template or deck)
├─ @section/@column content (styled with config.style)
├─ @section/@block content (styled with config.style)
└─ config.parts.footer (from template or deck)
```

Expand Down Expand Up @@ -634,7 +634,7 @@ Available styles: announcement, quote, emphasis

**1. Keep Templates Focused**
- Templates should define chrome (visual frame)
- Let content flow naturally using `@section`/`@column`
- Let content flow naturally using `@section`/`@block`
- Don't try to control content layout from templates

**2. Provide Sensible Defaults**
Expand Down Expand Up @@ -737,7 +737,7 @@ Available styles: announcement, quote, emphasis
## Open Questions (Resolved)

### ~~Q1: Slot mapping strategy?~~
**Resolved:** Templates do NOT define slots. Users continue using `@section`/`@column` normally. Templates only affect chrome (background, header, footer).
**Resolved:** Templates do NOT define slots. Users continue using `@section`/`@block` normally. Templates only affect chrome (background, header, footer).

### ~~Q2: Template helper return type?~~
**Resolved:** Not applicable - templates are simple data classes, not helpers/builders.
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ The project uses Signals for reactive state management. `DeckController` is the

### Block System
Slides are composed of "blocks" defined by `@blockname` annotations in Markdown:
- `@column` - Layout columns
- `@block` - Markdown content blocks
- `@image` - Image blocks
- `@code` - Syntax-highlighted code
- `@mermaid` - Mermaid diagrams
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ Create a `slides.md` file in your project root. Separate slides with `---`.
```md
---

@column
@block
# Welcome

@column
@block
- Write slides in Markdown
- Use blocks for layout

Expand Down
10 changes: 2 additions & 8 deletions demo/lib/src/templates.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@ SlideTemplate corporateTemplate() {
),
),
p: TextStyler().style(
TextStyleMix(
fontFamily: GoogleFonts.inter().fontFamily,
fontSize: 24,
),
TextStyleMix(fontFamily: GoogleFonts.inter().fontFamily, fontSize: 24),
),
),
styles: {
Expand Down Expand Up @@ -107,10 +104,7 @@ class _CorporateHeader extends StatelessWidget implements PreferredSizeWidget {
const Spacer(),
Text(
'${slide.slideIndex + 1}',
style: GoogleFonts.poppins(
fontSize: 16,
color: Colors.white38,
),
style: GoogleFonts.poppins(fontSize: 16, color: Colors.white38),
),
],
),
Expand Down
50 changes: 25 additions & 25 deletions demo/showcase.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
@section {
flex: 2
}
@column {
@block {
align: center
}
# SuperDeck {.heading}
Expand All @@ -13,7 +13,7 @@

## What is SuperDeck? {.heading}

@column
@block

SuperDeck is a presentation framework that transforms how developers create slides.

Expand All @@ -24,13 +24,13 @@ SuperDeck is a presentation framework that transforms how developers create slid

---

@column {
@block {
flex: 2
align: centerLeft
}
### Traditional Tools {.heading}

@column {
@block {
flex: 3
}

Expand All @@ -53,7 +53,7 @@ SuperDeck is a presentation framework that transforms how developers create slid
@section {
flex: 2
}
@column {
@block {
align: center
}
## "Write once, present anywhere. Version control everything." {.heading}
Expand All @@ -62,15 +62,15 @@ SuperDeck is a presentation framework that transforms how developers create slid

---

@column {
@block {
flex: 2
align: centerLeft
}
### Hot Reload {.heading}

Edit your slides and see changes instantly - no rebuild needed.

@column {
@block {
flex: 3
}

Expand All @@ -83,7 +83,7 @@ Edit your slides and see changes instantly - no rebuild needed.

### Markdown Syntax {.heading}

@column {
@block {
flex: 2
}

Expand All @@ -92,7 +92,7 @@ Edit your slides and see changes instantly - no rebuild needed.

## Slide Title {.heading}

@column
@block

Your content here with **bold**
and *italic* text.
Expand All @@ -108,7 +108,7 @@ and *italic* text.

@section

@column {
@block {
flex: 1
}
## Layout System {.heading}
Expand All @@ -120,7 +120,7 @@ How SuperDeck organizes content on slides.
align: topLeft
}

@column {
@block {
flex: 1
}
#### Sections
Expand All @@ -133,21 +133,21 @@ Horizontal rows that divide the slide vertically.
}
```

@column {
@block {
flex: 1
}
#### Columns

Vertical divisions within sections.

```markdown
@column {
@block {
flex: 3
align: center
}
```

@column {
@block {
flex: 1
}
#### Blocks
Expand All @@ -164,7 +164,7 @@ Content containers with markdown or widgets.

## Layout Types {.heading}

@column
@block

| Layout | Structure | Best For |
|--------|-----------|----------|
Expand All @@ -180,11 +180,11 @@ Content containers with markdown or widgets.

### The Block System {.heading}

@column
@block

SuperDeck uses three core block types:

- **Content Blocks** (`@column`) - Render markdown text, lists, tables
- **Content Blocks** (`@block`) - Render markdown text, lists, tables
- **Widget Blocks** (`@widget`) - Embed custom Flutter components
- **Built-in Widgets** (`@image`, `@dartpad`, `@qrcode`) - Pre-configured widgets

Expand All @@ -197,7 +197,7 @@ Each block supports:

### Build Pipeline {.heading}

@column
@block

```mermaid
flowchart LR
Expand All @@ -220,13 +220,13 @@ The CLI processes your markdown through multiple stages:

---

@column {
@block {
flex: 2
align: centerLeft
}
### Getting Started {.heading}

@column {
@block {
flex: 3
}

Expand Down Expand Up @@ -257,7 +257,7 @@ flutter run -d macos # or chrome, windows, linux
flex: 3
}

@column {
@block {
flex: 1
}

Expand All @@ -272,7 +272,7 @@ styles:
primaryColor: '#4CAF50'
```

@column {
@block {
flex: 1
}

Expand All @@ -292,7 +292,7 @@ style: quote

## Advanced Features {.heading}

@column
@block

- **Mermaid Diagrams** - Flowcharts, sequences, mind maps
- **Code Highlighting** - Syntax-aware formatting
Expand All @@ -306,7 +306,7 @@ style: quote
@section {
flex: 2
}
@column {
@block {
align: center
}
## "The best presentation tool is the one that gets out of your way." {.heading}
Expand All @@ -324,7 +324,7 @@ style: quote

@section

@column {
@block {
align: center
}
MIT License | Flutter & Dart
Loading
Loading