Skip to content

Commit e76d21f

Browse files
Fix default styling for markdown slides (#11)
1 parent 6cd849d commit e76d21f

3 files changed

Lines changed: 40 additions & 1 deletion

File tree

resources/views/livewire/presentation-deck.blade.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,32 @@ class="slidewire-frame {{ $slide->class }} {{ $frame['slide_theme_class'] }}"
141141
.slidewire-fragment.slidewire-fragment-visible { opacity: 1; transform: translateY(0); }
142142
.slidewire-content h1, .slidewire-content h2, .slidewire-content h3,
143143
.slidewire-content h4, .slidewire-content h5, .slidewire-content h6 { line-height: 1.2; }
144+
.slidewire-markdown { display: grid; gap: 1rem; }
145+
.slidewire-markdown > :first-child { margin-top: 0; }
146+
.slidewire-markdown > :last-child { margin-bottom: 0; }
147+
.slidewire-markdown h1,
148+
.slidewire-markdown h2,
149+
.slidewire-markdown h3,
150+
.slidewire-markdown h4,
151+
.slidewire-markdown h5,
152+
.slidewire-markdown h6 { margin: 0; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
153+
.slidewire-markdown h1 { font-size: clamp(2.25rem, 3.6vw, 3rem); }
154+
.slidewire-markdown h2 { font-size: clamp(1.75rem, 2.8vw, 2.25rem); }
155+
.slidewire-markdown h3 { font-size: clamp(1.45rem, 2.2vw, 1.75rem); }
156+
.slidewire-markdown p,
157+
.slidewire-markdown li { font-size: clamp(1rem, 1.2vw, 1.125rem); line-height: 1.65; }
158+
.slidewire-markdown p,
159+
.slidewire-markdown ul,
160+
.slidewire-markdown ol,
161+
.slidewire-markdown pre,
162+
.slidewire-markdown blockquote { margin: 0; }
163+
.slidewire-markdown ul,
164+
.slidewire-markdown ol { padding-left: 1.4em; display: grid; gap: 0.5rem; }
165+
.slidewire-markdown ul { list-style: disc; }
166+
.slidewire-markdown ol { list-style: decimal; }
167+
.slidewire-markdown li::marker { color: currentColor; }
168+
.slidewire-markdown strong { font-weight: 700; }
169+
.slidewire-markdown em { font-style: italic; }
144170
.slidewire-content pre.phiki,
145171
.slidewire-content pre.slidewire-code { padding: 1.25rem 1.5rem; margin: 1rem 0; border-radius: 0.75rem; overflow-x: auto; line-height: 1.6; }
146172
.slidewire-content pre.slidewire-code { background: #24292e; color: #e1e4e8; }

src/Support/MarkdownRenderer.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public function toHtml(string $markdown, ?string $presentationTheme = null, Them
2323
$size,
2424
);
2525

26-
return Str::markdown($withHighlightedCode);
26+
return sprintf(
27+
'<div class="slidewire-markdown">%s</div>',
28+
Str::markdown($withHighlightedCode),
29+
);
2730
}
2831
}

tests/Feature/MarkdownDeckPresentationTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@
1414
->assertDontSee('Previous slide');
1515
});
1616

17+
it('wraps markdown slide content with slidewire markdown styling hooks', function (): void {
18+
Route::slidewire('/slides/markdown-styled', 'markdown/standalone');
19+
20+
$content = test()->get('/slides/markdown-styled')->getContent();
21+
22+
expect($content)->toContain('class="slidewire-markdown"')
23+
->and($content)->toContain('.slidewire-markdown h1 { font-size: clamp(2.25rem, 3.6vw, 3rem); }')
24+
->and($content)->toContain('.slidewire-markdown ul { list-style: disc; }');
25+
});
26+
1727
it('applies deck and slide metadata from markdown presentations to rendered output', function (): void {
1828
Route::slidewire('/slides/markdown-meta', 'markdown/standalone');
1929

0 commit comments

Comments
 (0)