/* stylelint-disable selector-class-pattern */ /** * Brutal minimalism theme for Open WebUI docs. * Inspired by benji.app — typography-first, zero chrome. */ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap"); /* Tailwind base styles */ @tailwind base; @tailwind components; @tailwind utilities; /* ─── Infima variable overrides ─── */ :root { --ifm-color-primary: #111; --ifm-color-primary-dark: #000; --ifm-color-primary-darker: #000; --ifm-color-primary-darkest: #000; --ifm-color-primary-light: #333; --ifm-color-primary-lighter: #555; --ifm-color-primary-lightest: #777; --ifm-link-color: #111; --ifm-heading-color: #111; --ifm-font-color-base: #333; --ifm-code-font-size: 90%; --docusaurus-highlighted-code-line-bg: rgb(0 0 0 / 6%); --ifm-hover-overlay: #fafafa; --ifm-global-shadow-md: none; --ifm-footer-background-color: #fff; --ifm-font-family-base: "Inter", -apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", sans-serif; --ifm-font-size-base: 15px; --ifm-line-height-base: 1.65; --ifm-font-weight-base: 400; --ifm-heading-font-weight: 600; --ifm-navbar-shadow: none; --ifm-toc-border-color: transparent; --ifm-menu-link-padding-horizontal: 0.75rem; --ifm-menu-link-padding-vertical: 0.35rem; } /* Mobile nav height fix */ @media screen and (width <= 996px) { :root { --ifm-navbar-height: 100%; } } /* ─── Light theme ─── */ [data-theme="light"] { --ifm-menu-color: #555; --ifm-background-color: #fff; --ifm-navbar-background-color: #fff; --ifm-footer-color: #999; } /* ─── Dark theme ─── */ [data-theme="dark"] { --ifm-color-primary: #ddd; --ifm-color-primary-dark: #ccc; --ifm-color-primary-darker: #bbb; --ifm-color-primary-darkest: #999; --ifm-color-primary-light: #eee; --ifm-color-primary-lighter: #f5f5f5; --ifm-color-primary-lightest: #fff; --ifm-link-color: #ccc; --ifm-heading-color: #eee; --ifm-font-color-base: #bbb; --ifm-background-color: #0a0a0a; --ifm-navbar-background-color: #0a0a0a; --ifm-footer-background-color: #0a0a0a; --ifm-footer-color: #555; --ifm-menu-color: #888; --docusaurus-highlighted-code-line-bg: rgb(255 255 255 / 8%); } /* ─── Global typography ─── */ html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } p { line-height: 1.65; } /* ─── Sidebar ─── */ .theme-doc-sidebar-container { border-width: 0 !important; } .navbar-sidebar__brand { align-items: center; box-shadow: var(--ifm-navbar-shadow); display: flex; flex: 1; height: fit-content !important; padding: var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal); } .navbar-sidebar__items { display: flex; height: fit-content !important; transition: transform var(--ifm-transition-fast) ease-in-out; } .theme-doc-sidebar-menu.menu__list { margin-top: 16px; } nav.menu { margin-right: 1px; padding: 0; } nav.menu::-webkit-scrollbar { display: none; } .menu__link { transition-property: none; line-height: 1.5; padding-left: 16px; margin: 0 8px; border-radius: 4px; font-size: 13px; } .menu__link--active { font-weight: 600; } [data-theme="light"] .menu__link--active { color: #111; background-color: #f5f5f5; } [data-theme="dark"] .menu__link--active { color: #fff; background-color: #1a1a1a; } /* ─── Hide breadcrumbs ─── */ .theme-doc-breadcrumbs { display: none; } /* ─── Hide external link icons ─── */ .iconExternalLink_nPIU, .iconExternalLink_node_modules-\@docusaurus-theme-classic-lib-theme-Icon-ExternalLink-styles-module { display: none; } /* ─── Code blocks ─── */ code { color: #444; border-width: 0; padding: 2px 6px; font-size: 0.85em; font-weight: 500; border-radius: 4px; } [data-theme="dark"] code { color: #ccc; background-color: #222; } [data-theme="light"] code { background-color: #ebebeb; } .theme-code-block { font-family: "IBM Plex Mono", monospace; font-size: 0.875em; border-radius: 16px !important; overflow: hidden; } .theme-code-block pre { border-radius: 16px !important; } /* ─── Shiki light/dark mode toggle (CSS variables strategy) ─── */ [data-theme="light"] .shiki-code-block pre, [data-theme="light"] .shiki-code-block pre span { color: var(--shiki-light) !important; } [data-theme="dark"] .shiki-code-block pre, [data-theme="dark"] .shiki-code-block pre span { color: var(--shiki-dark) !important; } [data-theme="dark"] .shiki-code-block pre { background-color: var(--shiki-dark-bg, #1a1a1a) !important; } /* ─── Shiki code block styling ─── */ .shiki-code-block { margin-bottom: var(--ifm-leading); border-radius: 16px; overflow: hidden; } .shiki-code-block code, .shiki-code-block span { background-color: transparent !important; padding: 0; border-radius: 0; font-size: inherit; font-weight: inherit; } [data-theme="light"] .shiki-code-block pre { background-color: #f3f3f3; } [data-theme="dark"] .shiki-code-block pre { background-color: #1a1a1a; } .shiki-code-block-content { position: relative; direction: ltr; } /* ─── Shiki copy button ─── */ .shiki-copy-button { display: flex; align-items: center; position: absolute; right: calc(var(--ifm-pre-padding) / 2); top: calc(var(--ifm-pre-padding) / 2); padding: 0.4rem; border: 1px solid var(--ifm-color-emphasis-300); border-radius: var(--ifm-global-radius); cursor: pointer; opacity: 0; transition: opacity 200ms ease-in-out, background-color 200ms ease-in-out; } [data-theme="light"] .shiki-copy-button { background: #f3f3f3; color: #333; } [data-theme="dark"] .shiki-copy-button { background: #1a1a1a; color: #ccc; } .shiki-code-block:hover .shiki-copy-button { opacity: 0.4; } .shiki-copy-button:hover, .shiki-copy-button:focus-visible { opacity: 1 !important; } [data-theme="light"] .theme-code-block pre { background-color: #f3f3f3; } /* ─── Blockquotes ─── */ blockquote { padding: 16px 24px; border-radius: 0; font-style: normal; line-height: 1.6; margin-left: 0; margin-right: 0; border-left: 2px solid #e0e0e0; background: transparent; } [data-theme="light"] blockquote { color: #555; } [data-theme="dark"] blockquote { border-left-color: #333; color: #999; } /* ─── Navbar ─── */ [data-theme="light"] .navbar__brand:hover { color: #000; } [data-theme="dark"] .navbar__brand:hover { color: #fff; } /* ─── Pagination ─── */ .pagination-nav__link { border-radius: 0; border: 0; } [data-theme="light"] .pagination-nav__link { border-top: 1px solid #e5e5e5; } [data-theme="dark"] .pagination-nav__link { border-top: 1px solid #333; } [data-theme="light"] .pagination-nav__link:hover { border-top: 1px solid #111; } [data-theme="dark"] .pagination-nav__link:hover { border-top: 1px solid #fff; } /* ─── Article links ─── */ article a { text-decoration: underline; text-underline-offset: 3px; } article p a { text-decoration: underline; font-weight: 500; text-underline-position: under; margin-bottom: 4px; } .notbold a { font-weight: 400 !important; } [data-theme="light"] article p a { color: #333; text-decoration-color: #ccc; } [data-theme="dark"] article p a { color: #ccc; text-decoration-color: #444; } [data-theme="light"] article p a:hover { color: #111; text-decoration-color: #111; } [data-theme="dark"] article p a:hover { color: #fff; text-decoration-color: #fff; } /* ─── Hero (if used) ─── */ .hero__subtitle { font-weight: 500; margin-bottom: 32px; margin-top: 24px; } [data-theme="light"] .hero__subtitle { color: #333; } [data-theme="dark"] .hero__subtitle { color: #ccc !important; } /* ─── Article max width ─── */ @media screen and (width >= 997px) { article { max-width: 700px; margin-left: auto; margin-right: auto; padding-top: 20px; } } /* ─── Heading sizes ─── */ @media screen and (width <= 996px) { h1 { font-size: 1.5rem !important; font-weight: 600; } .hero .hero__title { font-size: 2rem; } .hero__subtitle { font-size: 1.2rem; margin-bottom: 20px; } } @media screen and (width >= 997px) { h1 { font-size: 1.75rem !important; } h2 { font-size: 1.35rem !important; } h3 { font-size: 1rem !important; } } /* ─── Tabs ─── */ .tabs__item { padding: 4px 0; font-weight: 400; font-size: 0.85em; border-radius: 0; color: #999; margin-right: 16px; background-color: transparent; border: none; border-bottom: 1px solid transparent; } [data-theme="dark"] .tabs__item { color: #666; } .tabs__item:hover { background-color: transparent; color: #555; } [data-theme="dark"] .tabs__item:hover { background-color: transparent; color: #aaa; } .tabs__item--active { border-bottom: 1px solid #111; background-color: transparent; color: #111; font-weight: 500; } [data-theme="dark"] .tabs__item--active { border-bottom-color: #ccc; background-color: transparent; color: #ccc; } .tabs__item--active:hover { background-color: transparent; } [data-theme="dark"] .tabs__item--active:hover { background-color: transparent; } .tabs { margin-bottom: 8px; } .tabs + .margin-top--md { margin-top: 4px !important; } .tabs + .margin-top--md pre { border-top-right-radius: 0; border-top-left-radius: 0; } /* ─── Spacing ─── */ .margin-bottom--xl { margin-bottom: 20px !important; } .margin-bottom--sm { margin-top: 8px !important; margin-bottom: 8px !important; } .hideTabSwitcher { display: none; } /* ─── Horizontal rules ─── */ .markdown hr { background-color: rgb(120 120 120 / 15%); } /* ─── Tables ─── */ div.special_table + table { border: none; } div.special_table + table thead { background: rgb(120 120 120 / 6%); overflow: hidden; } div.special_table + table thead tr { background: transparent; border-top: 0; border-bottom: 0; } th, td, div.special_table + table { border-width: 0 !important; } div.special_table + table tr th { background: transparent; color: #333; font-weight: 600; padding: 6px 20px; } [data-theme="dark"] div.special_table + table tr th { color: #ccc; } div.special_table + table tr td { padding: 6px 20px; text-align: left; } div.special_table + table tr:nth-child(even) { background: transparent; } /* ─── Custom tags ─── */ .custom-tag { display: inline; background-color: #f0f0f0; padding: 2px 8px; margin-right: 4px; border-radius: 3px; font-size: 0.7em; font-weight: 600; color: #333; } [data-theme="dark"] .custom-tag { background-color: #1a1a1a; color: #ccc; } .custom-tag:hover { background-color: #e5e5e5; } [data-theme="dark"] .custom-tag:hover { background-color: #222; } .navbar__link:has(div.custom-tag) { padding: 0; margin: 0; margin-left: 4px; } /* ─── Sidebar category headers ─── */ .category-header .menu__list-item-collapsible { pointer-events: none; } .category-header .menu__link--sublist { text-transform: uppercase; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; margin-top: 32px; color: #999; } .category-header .menu__link--sublist-caret::after { display: none; } .category-link a::after { content: "\2192"; font-size: 16px; margin-left: 8px; position: absolute; right: 24px; opacity: 0.25; } /* ─── Footer ─── */ .footer__title { color: #888; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; } [data-theme="light"] a.footer__link-item { color: #666; } [data-theme="dark"] a.footer__link-item { color: #666; } a.footer__link-item:hover { color: #111; } [data-theme="dark"] a.footer__link-item:hover { color: #ccc; } .footer--dark { background-color: #fff; } [data-theme="dark"] .footer--dark { background-color: #0a0a0a; } /* ─── Hiring link ─── */ .hiring-link { background-color: #111; color: #fff; font-weight: 500; padding: 4px 10px; border-radius: 2px; font-size: 12px; } .footer__item .hiring-link { margin-top: 16px; } /* ─── Main wrapper ─── */ .main-wrapper { min-height: 100vh; } /* ─── Header icon links ─── */ .header-github-link, .header-discord-link { gap: 0.25rem; } @media screen and (width >= 997px) { .header-github-link, .header-discord-link { font-size: 0; } } .header-discord-link { margin-right: 12px; } .header-github-link::before { content: ""; width: 20px; height: 20px; display: flex; background-color: var(--ifm-navbar-link-color); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E"); transition: background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default); } .header-github-link:hover::before { background-color: var(--ifm-navbar-link-hover-color); } .header-discord-link::before { content: ""; width: 20px; height: 20px; display: flex; background-color: var(--ifm-navbar-link-color); mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' role='img' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M19.73 4.87a18.2 18.2 0 0 0-4.6-1.44c-.21.4-.4.8-.58 1.21-1.69-.25-3.4-.25-5.1 0-.18-.41-.37-.82-.59-1.2-1.6.27-3.14.75-4.6 1.43A19.04 19.04 0 0 0 .96 17.7a18.43 18.43 0 0 0 5.63 2.87c.46-.62.86-1.28 1.2-1.98-.65-.25-1.29-.55-1.9-.92.17-.12.32-.24.47-.37 3.58 1.7 7.7 1.7 11.28 0l.46.37c-.6.36-1.25.67-1.9.92.35.7.75 1.35 1.2 1.98 2.03-.63 3.94-1.6 5.64-2.87.47-4.87-.78-9.09-3.3-12.83ZM8.3 15.12c-1.1 0-2-1.02-2-2.27 0-1.24.88-2.26 2-2.26s2.02 1.02 2 2.26c0 1.25-.89 2.27-2 2.27Zm7.4 0c-1.1 0-2-1.02-2-2.27 0-1.24.88-2.26 2-2.26s2.02 1.02 2 2.26c0 1.25-.88 2.27-2 2.27Z' %3E%3C/path%3E%3C/svg%3E"); transition: background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default); } .header-discord-link:hover::before { background-color: var(--ifm-navbar-link-hover-color); } /* ─── Sidebar menu spacing ─── */ @media screen and (width >= 997px) { .menu_node_modules-\@docusaurus-theme-classic-lib-theme-DocSidebar-Desktop-Content-styles-module { padding: 0 !important; } .menu__list-item:not(:first-child) { margin-top: 0; } /* Inline TOC hidden on desktop (sidebar TOC visible) */ div[class^="tableOfContentsInline"] { display: none; } } .docSidebarContainer_node_modules-\@docusaurus-theme-classic-lib-theme-DocPage-Layout-Sidebar-styles-module { border-right-width: 0 !important; } /* ─── Misc ─── */ .small-text { font-size: 0.8em; } .em { font-style: italic; } .select-language { font-size: 1em; font-weight: 600; margin-bottom: 8px; } .homepage-svg svg { height: auto !important; width: 100% !important; padding: 20px; max-width: 180px; } [data-theme="light"] .homepage-svg svg { background-color: #fafafa; color: #000; } [data-theme="dark"] .homepage-svg svg { background-color: #111 !important; color: #fff !important; } [data-theme="dark"] .homepage-svg path { filter: invert(1); } @media screen and (width >= 997px) { .hero--container { padding: 60px 200px; } .hero--container-small { padding: 40px 200px; } } @media screen and (width < 997px) { .hero--container { padding: 20px 0 0; } .hero--container h2, .hero--container-small h2 { font-size: 1.2em; } .hero--container-small { padding: 20px 40px; } .index-buttons { display: flex; flex-direction: column; align-items: center; } .index-buttons a { margin-bottom: 10px; } .homepage-svg svg { max-width: 120px; margin-left: 15px; } } .hero--container-small img { max-width: 100%; } .index-buttons { padding: 0 !important; } [data-theme="light"] .hero--bg { background-color: #fafafa; } [data-theme="dark"] .hero--bg { background-color: #111 !important; } .btn--black { background-color: #111; color: #fff; border-radius: 2px; } .btn--black:hover { background-color: #000; color: #fff; } .btn--landing { border-radius: 2px; margin-right: 8px; margin-left: 8px; border-color: #111; }