/* IMPORTANT For information on requirements and how to use this snippet, see its original repo: https://github.com/zremboldt/obsidian-media-grid This snippet requires Contextual Typography 2.2.1+ https://github.com/mgmeyers/obsidian-contextual-typography */ :root { --content-base-width: 45rem; } /* ----------------------------------------- */ /* Handle overall content width */ /* ----------------------------------------- */ /* Wrapper with padding keeps content from bumping the edges */ .markdown-preview-view { padding-inline: 30px; } /* Container controlling overall max content width */ .markdown-preview-view .markdown-preview-section { width: 100%; max-width: var(--content-max-width, 45rem); /* Second value is fallback in case user isn't using Style settings */ } /* All children of overall container are divs */ .markdown-preview-view .markdown-preview-section > div { margin-inline: auto; width: min(var(--content-base-width), 100%); } /* Specific children of overall container that contain media */ .markdown-preview-view .markdown-preview-section div[data-is-embed] { width: 100%; } /* ----------------------------------------- */ /* Make media items display in rows */ /* ----------------------------------------- */ /* p tags wrap each row */ .markdown-preview-view .markdown-preview-section div[data-is-embed] > p { display:grid; grid-template-columns:repeat(auto-fit, minmax(0, 1fr)); grid-gap: var(--media-grid-gap, 7px); margin: 0; } /* Remove breaks from the document flow */ .markdown-preview-view .markdown-preview-section div[data-is-embed] > p br { display: none; } /* Media items sourced from your vault are wrapped in a span – media linked from the web is not wrapped */ .markdown-preview-view .markdown-preview-section div[data-is-embed] > p > span { display: flex; } /* Apply this to all img/video tags in a row whether they're wrapped in a span or not */ .markdown-preview-view .markdown-preview-section div[data-is-embed] > p img, .markdown-preview-view .markdown-preview-section div[data-is-embed] > p video { flex: 1; align-self: stretch; object-fit: cover; border-radius: var(--media-border-radius, 4px); } /* Create gaps between rows */ .markdown-preview-view .markdown-preview-section div[data-is-embed] + div[data-is-embed] { margin-top: var(--media-grid-gap, 7px); } /* ----------------------------------------- */ /* Style settings */ /* ----------------------------------------- */ /* @settings name: Media Grid Snippet id: media-grid-snippet settings: - id: content-max-width title: Grid width description: Set the max width of your grid layouts. type: variable-select allowEmpty: false default: var(--content-base-width) options: - label: Base width value: var(--content-base-width) - label: Small value: calc(var(--content-base-width) + 5%) - label: Medium value: calc(var(--content-base-width) + 10%) - label: Large value: calc(var(--content-base-width) + 20%) - label: Full width value: 100% - id: media-grid-gap title: Grid gap description: Set the gap size between items in your grid layouts. type: variable-number-slider format: px default: 7 min: 0 max: 80 step: 1 - id: media-border-radius title: Border radius description: Set the border radius of your images and videos. type: variable-number-slider format: px default: 4 min: 0 max: 40 step: 1 */