UNPKG

slidev-theme-onecraft

Version:

A theme for Slidev inspired by Onecraft.

41 lines (35 loc) 1.07 kB
import type { CSSProperties } from 'vue' /** * Resolve urls from frontmatter and append with the base url */ export function resolveAssetUrl(url: string) { if (url?.startsWith('/')) return import.meta.env.BASE_URL + url.slice(1) return url } export function handleBackground(background?: string, dim = false): CSSProperties { const isColor = background && (background[0] === '#' || background.startsWith('rgb')) const style = { background: isColor ? background + ' !important' : undefined, color: (background && !isColor) ? 'white' : undefined, backgroundImage: isColor ? undefined : background ? dim ? `linear-gradient(#0005, #0008), url("${resolveAssetUrl(background)}")` : `url("${resolveAssetUrl(background)}")` : undefined, backgroundRepeat: 'no-repeat', backgroundPosition: 'center', backgroundSize: 'cover', } if(!style.backgroundImage) delete style.backgroundImage if (!style.background) delete style.background return style }