@@ -157,32 +157,6 @@ impl MarkdownStyle {
rule_color: colors.border,
block_quote_border_color: colors.border,
code_block_overflow_x_scroll: true,
- heading_level_styles: Some(HeadingLevelStyles {
- h1: Some(TextStyleRefinement {
- font_size: Some(rems(1.15).into()),
- ..Default::default()
- }),
- h2: Some(TextStyleRefinement {
- font_size: Some(rems(1.1).into()),
- ..Default::default()
- }),
- h3: Some(TextStyleRefinement {
- font_size: Some(rems(1.05).into()),
- ..Default::default()
- }),
- h4: Some(TextStyleRefinement {
- font_size: Some(rems(1.).into()),
- ..Default::default()
- }),
- h5: Some(TextStyleRefinement {
- font_size: Some(rems(0.95).into()),
- ..Default::default()
- }),
- h6: Some(TextStyleRefinement {
- font_size: Some(rems(0.875).into()),
- ..Default::default()
- }),
- }),
code_block: StyleRefinement {
padding: EdgesRefinement {
top: Some(DefiniteLength::Absolute(AbsoluteLength::Pixels(px(8.)))),
@@ -1124,7 +1098,7 @@ impl MarkdownElement {
text_align_override: Option<TextAlign>,
) {
let align = text_align_override.unwrap_or(self.style.base_text_style.text_align);
- let mut heading = div().mb_2();
+ let mut heading = div().mt_4().mb_2();
heading = apply_heading_style(heading, level, self.style.heading_level_styles.as_ref());
heading = match align {
@@ -3650,4 +3624,33 @@ mod tests {
}
}
}
+
+ #[gpui::test]
+ fn test_heading_font_sizes_are_distinct(cx: &mut TestAppContext) {
+ let rendered = render_markdown("# H1\n\n## H2\n\n### H3\n\nBody text", cx);
+
+ assert!(
+ rendered.lines.len() >= 4,
+ "expected at least 4 rendered lines, got {}",
+ rendered.lines.len()
+ );
+
+ let h1_line_height = rendered.lines[0].layout.line_height();
+ let h2_line_height = rendered.lines[1].layout.line_height();
+ let h3_line_height = rendered.lines[2].layout.line_height();
+ let body_line_height = rendered.lines[3].layout.line_height();
+
+ assert!(
+ h1_line_height > h2_line_height,
+ "H1 line height ({h1_line_height:?}) should be greater than H2 ({h2_line_height:?})"
+ );
+ assert!(
+ h2_line_height > h3_line_height,
+ "H2 line height ({h2_line_height:?}) should be greater than H3 ({h3_line_height:?})"
+ );
+ assert!(
+ h3_line_height > body_line_height,
+ "H3 line height ({h3_line_height:?}) should be greater than body text ({body_line_height:?})"
+ );
+ }
}