UNPKG

starlight-theme-rapide

Version:

Starlight theme inspired by the Visual Studio Code Vitesse theme.

52 lines (48 loc) 2.18 kB
import type { StarlightPlugin } from '@astrojs/starlight/types' import { overrideComponents } from './libs/starlight' export default function starlightThemeRapidePlugin(): StarlightPlugin { return { name: 'starlight-theme-rapide', hooks: { 'config:setup'({ config, logger, updateConfig }) { const userExpressiveCodeConfig = !config.expressiveCode || config.expressiveCode === true ? {} : config.expressiveCode updateConfig({ components: overrideComponents(config, ['LanguageSelect', 'Pagination', 'ThemeSelect'], logger), customCss: [ ...(config.customCss ?? []), 'starlight-theme-rapide/styles/layers', 'starlight-theme-rapide/styles/theme', 'starlight-theme-rapide/styles/base', ...(config.markdown?.headingLinks === false ? [] : ['starlight-theme-rapide/styles/anchors']), ], expressiveCode: config.expressiveCode === false ? false : { themes: ['vitesse-dark', 'vitesse-light'], ...userExpressiveCodeConfig, styleOverrides: { borderColor: 'var(--sl-rapide-ui-border-color)', borderRadius: '0.5rem', ...userExpressiveCodeConfig.styleOverrides, frames: { editorActiveTabIndicatorTopColor: 'unset', editorActiveTabIndicatorBottomColor: 'var(--sl-color-gray-3)', editorTabBarBorderBottomColor: 'var(--sl-rapide-ui-border-color)', frameBoxShadowCssValue: 'unset', ...userExpressiveCodeConfig.styleOverrides?.frames, }, textMarkers: { backgroundOpacity: '40%', markBackground: 'var(--sl-rapide-ec-marker-bg-color)', markBorderColor: 'var(--sl-rapide-ec-marker-border-color)', ...userExpressiveCodeConfig.styleOverrides?.textMarkers, }, }, }, }) }, }, } }