UNPKG

starlight-theme-obsidian

Version:

A Starlight theme inspired by the Obsidian Publish website theme

426 lines (345 loc) 11.6 kB
@layer obsidian { /* Remove border of mobile preferences */ div.mobile-preferences.mobile-preferences { border-top: unset; } a.sl-anchor-link { color: var(--sl-color-gray-3); } /* Remove border between page heading and content */ div.content-panel.content-panel { border-top: unset; } /* Remove border between content and right sidebar */ .right-sidebar { border-inline-start: unset; } /* Add border to footer */ footer { border-top: 1px solid var(--sl-color-hairline); padding-top: 1rem; .meta { margin-top: unset; } } /* --------------------------------------------------- */ /* ------------- Site sidebar styling ---------------- */ /* Align site actions and links in row */ .social-icons { display: flex; gap: 1rem; padding: 0 1rem; } .social-icons::after { border-inline-end: unset; } .sidebar { .mobile-preferences { display: flex; flex-wrap: nowrap; column-gap: 0; } .social-icons { flex: 1; flex-wrap: wrap; } starlight-obsidian-theme-select { flex: 0; align-self: flex-start; > button { padding-left: 0; } } } .sidebar-content { div.md\:sl-hidden { display: none; } } /* --------------------------------------------------- */ /* ------------- General Content Styling ------------- */ .sl-markdown-content { /* Add margin around horizontal lines */ :is(.inc-spec, hr) { margin: 2rem 0 0 0; } /* Use accent color for hovering over link elements */ a:hover:not(:where(.not-content *)) { color: var(--sl-color-accent); } } /* Steps line styling (Adapted from @HiDeoo/starlight-theme-rapide) */ .sl-steps > li:last-of-type:after { background: linear-gradient(to bottom, var(--sl-color-hairline-light), var(--sl-color-bg) 85%); } /* --------------------------------------------------- */ /* -------- Obsidian-inspired Callout Styling -------- */ .starlight-aside { border-radius: var(--sl-border-radius-md); border: unset; } /* --------------------------------------------------- */ /* ------------------ Badge Styling ------------------ */ .sl-badge.sl-badge { border-radius: var(--sl-border-radius-sm); border: unset; } /* Impossible to disable variable override, so it needs to be specified each time */ .sidebar-content a[aria-current="page"] > .sl-badge.sl-badge { color: var(--sl-color-text-badge); background-color: var(--sl-color-bg-badge); &.default { --sl-color-bg-badge: var(--sl-badge-default-bg); } &.note { --sl-color-bg-badge: var(--sl-badge-note-bg); } &.danger { --sl-color-bg-badge: var(--sl-badge-danger-bg); } &.success { --sl-color-bg-badge: var(--sl-badge-success-bg); } &.tip { --sl-color-bg-badge: var(--sl-badge-tip-bg); } &.caution { --sl-color-bg-badge: var(--sl-badge-caution-bg); } } /* --------------------------------------------------- */ /* ----- Starlight components background styling ----- */ starlight-file-tree { background-color: var(--sl-color-black); border: unset; border-radius: var(--sl-border-radius-md); } .card { border-radius: var(--sl-border-radius-md); border-color: var(--sl-color-hairline); } .card .icon { border: unset; } .sl-banner { padding: 1rem; margin: 1rem 1rem 0rem 1rem; border-radius: var(--sl-border-radius-lg); } /* --------------------------------------------------- */ /* ---------------- Draft styling -------------------- */ .content-panel .sl-container > h1 + p.sl-flex { border: unset; border-radius: var(--sl-border-radius-md); margin: 0.5rem auto 0 auto; } /* --------------------------------------------------- */ /* ------------ Expressive Code styling -------------- */ .sl-markdown-content { .expressive-code.expressive-code pre { --code-background: var(--sl-color-black); border: unset; border-radius: var(--sl-border-radius-sm); } code { border-radius: var(--sl-border-radius-sm); } .expressive-code .ec-line mark::before, .expressive-code .ec-line ins::before, .expressive-code .ec-line del::before { border: unset; } .expressive-code .ec-line .code { border-inline-start: unset; } .expressive-code .frame { border: unset; border-radius: var(--sl-border-radius-md); &.is-terminal, &.has-title { outline: 1px solid var(--sl-color-hairline); } & > .header.header.header { border: unset; border-bottom: 1px solid var(--sl-color-hairline); border-radius: var(--sl-border-radius-md) var(--sl-border-radius-md) 0 0; background: var(--sl-color-black); &::after { content: unset; } } &:not(.is-terminal) { .header { &&::before { content: ""; border: unset; } .title { margin: -1px 0 0 -1px; &:first-child { border-radius: var(--sl-border-radius-md) 0 0 0; } &::after { border-top: unset; border-bottom: 2px solid var(--sl-color-accent); } } } } pre { border-color: var(--sl-color-hairline); } } } /* --------------------------------------------------- */ /* ---- Style details to add left rounded border ----- */ .sl-markdown-content { details { position: relative; border-inline-start: unset; } details::before { content: ''; display: inline-block; background: var(--sl-details-border-color); width: 5px; height: 100%; top: 0; left: 0; border-radius: 140px; position: absolute; } details:hover { --sl-details-border-color: var(--sl-details-border-color--hover); } } /* --------------------------------------------------- */ /* --------------- Link Button Styling --------------- */ .sl-link-button { --sl-color-text-accent: var(--sl-color-accent-high); &.primary:hover { background-color: var(--sl-color-accent); color: var(--sl-color-black); border-color: transparent; } &.secondary:hover { border-color: var(--sl-color-accent); } &.minimal:hover { background-color: unset; color: var(--sl-color-accent); } } /* --------------------------------------------------- */ /* ----------------- Link Card Styling --------------- */ .sl-link-card { border-radius: var(--sl-border-radius-md); border: unset; padding: 1rem; margin: 1rem 0; background-color: var(--sl-color-black); box-shadow: 0 0 0 1px var(--sl-color-hairline); } .sl-link-card:hover { background-color: var(--sl-color-black); box-shadow: 0 0 0 1px var(--sl-color-accent); } /* --------------------------------------------------- */ /* ------------------- ToC Styling ------------------- */ /* Adapted from @HiDeoo/starlight-theme-rapide */ .sidebar-pane summary { flex-direction: row-reverse; gap: 0.375rem; justify-content: start; padding: 0.2em var(--sl-sidebar-item-padding-inline); padding-inline: calc(var(--sl-sidebar-item-padding-inline) / 2) var(--sl-sidebar-item-padding-inline); } .sidebar-pane summary:is(:hover, :focus-visible), .sidebar-pane summary:is(:hover, :focus-visible) .large { color: var(--sl-color-accent-high); } .sidebar-pane ul ul li { margin-inline-start: calc(var(--sl-sidebar-item-padding-inline) + (0.625rem / 2)); } .sidebar-pane a[aria-current='page'] { background-color: initial; color: var(--sl-color-text-accent); } .sidebar-pane ul ul li:has(> a[aria-current='page']) { border-inline-start-color: var(--sl-color-accent-high); } .sidebar-pane ul ul li:has(> a:not([aria-current='page']):is(:hover, :focus-visible)) { border-inline-start-color: var(--sl-color-gray-2); } .sidebar-pane ul summary:is(:hover, :focus-visible) + ul > li { border-inline-start-color: var(--sl-color-gray-2); } /* --------------------------------------------------- */ /* ---------------- Graph Styling -------------------- */ @media (min-width: 72em) { .right-sidebar .slsg-graph-component { width: unset; max-width: var(--slsg-graph-width); } } .slsg-graph-container { width: 100%; } /* ----------------------------------------------------------- */ /* ------------------ Scrollbar Styling ---------------------- */ .sidebar-pane { scrollbar-width: thin; } body { scrollbar-color: var(--sl-color-hairline) transparent; scrollbar-gutter: stable; &::-webkit-scrollbar { width: 12px; } &::-webkit-scrollbar-track { background: transparent; } } /* ----------------------------------------------------------- */ /* ------------------ Pagination override -------------------- */ /* Adapted from @HiDeoo/starlight-theme-rapide */ .pagination-links { display: flex; column-gap: unset; row-gap: unset; } .pagination-links a { border: unset; box-shadow: unset; padding: 0; align-items: unset; column-gap: unset; display: block; } .pagination-links a[rel='next'] { margin-left: auto; text-align: end; } .pagination-links a[rel='next'] div { justify-content: flex-end; } .pagination-links a div { align-items: center; column-gap: 0.15rem; row-gap: 0.15rem; color: var(--sl-color-gray-3); display: flex; line-height: 24.5px; font-size: var(--sl-text-sm); } .pagination-links a p { font-size: var(--sl-text-md); font-weight: 600; margin: 4px; color: var(--sl-color-gray-2); } .pagination-links a:is(:hover, :focus-visible) div { color: var(--sl-color-gray-2); } .pagination-links a:is(:hover, :focus-visible) p { color: var(--sl-color-white); } /* ----------------------------------------------------------- */ }