diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 4a807c58..c0a36938 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -181,7 +181,7 @@ const config: Config = {
styles: [],
},
darkTheme: {
- plain: { color: "#ccc", backgroundColor: "#1a1a1a" },
+ plain: { color: "#ccc", backgroundColor: "#000" },
styles: [],
},
},
diff --git a/src/css/custom.css b/src/css/custom.css
index 32de435e..ca1ca079 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -69,10 +69,19 @@
--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-background-color: #000;
+ --ifm-background-surface-color: #000;
+ --ifm-code-background: #000;
+ --ifm-pre-background: #000;
+ --ifm-card-background-color: #000;
+ --ifm-dropdown-background-color: #000;
+ --ifm-hero-background-color: #000;
+ --ifm-menu-color-background-active: #000;
+ --ifm-menu-color-background-hover: #000;
+ --ifm-navbar-background-color: #000;
+ --ifm-footer-background-color: #000;
--ifm-footer-color: #555;
+ --ifm-hover-overlay: rgb(255 255 255 / 4%);
--ifm-menu-color: #888;
--docusaurus-highlighted-code-line-bg: rgb(255 255 255 / 8%);
}
@@ -141,7 +150,7 @@ nav.menu::-webkit-scrollbar {
[data-theme="dark"] .menu__link--active {
color: #fff;
- background-color: #1a1a1a;
+ background-color: var(--ifm-menu-color-background-active);
}
/* ─── Hide breadcrumbs ─── */
@@ -167,7 +176,7 @@ code {
[data-theme="dark"] code {
color: #ccc;
- background-color: #222;
+ background-color: var(--ifm-code-background);
}
[data-theme="light"] code {
@@ -176,7 +185,7 @@ code {
/* stylelint-disable-next-line no-duplicate-selectors */
[data-theme="dark"] code {
- background-color: #222;
+ background-color: var(--ifm-code-background);
}
.theme-code-block {
@@ -220,7 +229,7 @@ code {
/* stylelint-disable-next-line no-duplicate-selectors */
[data-theme="dark"] .shiki-code-block pre {
- background-color: var(--shiki-dark-bg, #1a1a1a) !important;
+ background-color: var(--ifm-pre-background) !important;
}
.shiki-code-block-content {
@@ -251,7 +260,7 @@ code {
}
[data-theme="dark"] .shiki-copy-button {
- background: #1a1a1a;
+ background: var(--ifm-pre-background);
color: #ccc;
}
@@ -287,7 +296,7 @@ blockquote {
}
[data-theme="dark"] blockquote {
- border-left-color: #333;
+ border-left-color: #000;
color: #999;
}
@@ -550,7 +559,7 @@ div.special_table + table tr:nth-child(even) {
}
[data-theme="dark"] .custom-tag {
- background-color: #1a1a1a;
+ background-color: var(--ifm-background-surface-color);
color: #ccc;
}
@@ -559,7 +568,7 @@ div.special_table + table tr:nth-child(even) {
}
[data-theme="dark"] .custom-tag:hover {
- background-color: #222;
+ background-color: var(--ifm-menu-color-background-active);
}
.navbar__link:has(div.custom-tag) {
@@ -625,12 +634,12 @@ a.footer__link-item:hover {
}
[data-theme="dark"] .footer--dark {
- background-color: #0a0a0a;
+ background-color: var(--ifm-footer-background-color);
}
/* ─── Hiring link ─── */
.hiring-link {
- background-color: #111;
+ background-color: #000;
color: #fff;
font-weight: 500;
padding: 4px 10px;
@@ -714,6 +723,30 @@ a.footer__link-item:hover {
border-right-width: 0 !important;
}
+html[data-theme="dark"],
+html[data-theme="dark"] body,
+html[data-theme="dark"] [id="__docusaurus"],
+html[data-theme="dark"] .main-wrapper,
+html[data-theme="dark"] main,
+html[data-theme="dark"] .container,
+html[data-theme="dark"] .row,
+html[data-theme="dark"] .col,
+html[data-theme="dark"] div[class*="docsWrapper"],
+html[data-theme="dark"] div[class*="docRoot"],
+html[data-theme="dark"] main[class*="docMainContainer"],
+html[data-theme="dark"] div[class*="docItemWrapper"],
+html[data-theme="dark"] div[class*="docItemCol"],
+html[data-theme="dark"] div[class*="docItemContainer"],
+html[data-theme="dark"] article,
+html[data-theme="dark"] .theme-doc-markdown,
+html[data-theme="dark"] .theme-doc-sidebar-container {
+ background-color: #000 !important;
+}
+
+html[data-theme="dark"] .navbar {
+ background-color: var(--ifm-navbar-background-color) !important;
+}
+
/* ─── Misc ─── */
.small-text {
@@ -743,7 +776,7 @@ a.footer__link-item:hover {
}
[data-theme="dark"] .homepage-svg svg {
- background-color: #111 !important;
+ background-color: #000 !important;
color: #fff !important;
}
@@ -804,11 +837,11 @@ a.footer__link-item:hover {
}
[data-theme="dark"] .hero--bg {
- background-color: #111 !important;
+ background-color: #000 !important;
}
.btn--black {
- background-color: #111;
+ background-color: #000;
color: #fff;
border-radius: 2px;
}
diff --git a/static/images/banners/administration-light.svg b/static/images/banners/administration-light.svg
index f6bb5c13..21bd3201 100644
--- a/static/images/banners/administration-light.svg
+++ b/static/images/banners/administration-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
ACCESS CONTROL
Administration
policy / roles / audit
- 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL
+ 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL
-
+
-
+
- VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED
+ VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED
-
+
- DOCS
- ACCESS
+ DOCS
+ ACCESS
diff --git a/static/images/banners/authentication-access-light.svg b/static/images/banners/authentication-access-light.svg
index 7399581a..73654fa4 100644
--- a/static/images/banners/authentication-access-light.svg
+++ b/static/images/banners/authentication-access-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
IDENTITY LAYER
Authentication
keys / sessions / trust
- 01IDENTITY02SESSION03BOUNDARY
+ 01IDENTITY02SESSION03BOUNDARY
-
+
-
+
- USERSESSIONTOKENACCESS
+ USERSESSIONTOKENACCESS
-
+
- DOCS
- IDENTITY
+ DOCS
+ IDENTITY
diff --git a/static/images/banners/calendar-light.svg b/static/images/banners/calendar-light.svg
index a5cc43cd..4cc6c6b3 100644
--- a/static/images/banners/calendar-light.svg
+++ b/static/images/banners/calendar-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
SCHEDULED OPERATIONS
Calendar
time / queue / handoff
- 01SCHEDULE02QUEUE03HANDOFF
+ 01SCHEDULE02QUEUE03HANDOFF
-
+
-
+
- T+00T+01T+02T+03HANDOFF WINDOW
+ T+00T+01T+02T+03HANDOFF WINDOW
-
+
- DOCS
- TIMELINE
+ DOCS
+ TIMELINE
diff --git a/static/images/banners/channels-light.svg b/static/images/banners/channels-light.svg
index 27926443..c4abfa7e 100644
--- a/static/images/banners/channels-light.svg
+++ b/static/images/banners/channels-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
CONVERSATION ROUTING
Channels
threads / teams / context
- 01THREADS02TEAMS03CONTEXT
+ 01THREADS02TEAMS03CONTEXT
-
+
-
+
- TEAMOPSUSERBOTCHANNEL
+ TEAMOPSUSERBOTCHANNEL
-
+
- DOCS
- ROUTING
+ DOCS
+ ROUTING
diff --git a/static/images/banners/chat-conversations-audio-light.svg b/static/images/banners/chat-conversations-audio-light.svg
index a69db0e7..b714b722 100644
--- a/static/images/banners/chat-conversations-audio-light.svg
+++ b/static/images/banners/chat-conversations-audio-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
VOICE INTERFACE
Audio
speech / playback / notes
- 01SPEECH02PLAYBACK03NOTES
+ 01SPEECH02PLAYBACK03NOTES
-
+
-
+
- TRANSCRIPT / 00:34
+ TRANSCRIPT / 00:34
-
+
- DOCS
- AUDIO
+ DOCS
+ AUDIO
diff --git a/static/images/banners/chat-conversations-chat-light.svg b/static/images/banners/chat-conversations-chat-light.svg
index 0e6cbf66..74ebaceb 100644
--- a/static/images/banners/chat-conversations-chat-light.svg
+++ b/static/images/banners/chat-conversations-chat-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
LIVE EXECUTION
Chat
messages / tools / review
- 01MESSAGE02TOOL CALL03REVIEW
+ 01MESSAGE02TOOL CALL03REVIEW
-
+
-
+
- USER MESSAGETOOL CALLRESULTREVIEW
+ USER MESSAGETOOL CALLRESULTREVIEW
-
+
- DOCS
- CHAT
+ DOCS
+ CHAT
diff --git a/static/images/banners/chat-conversations-connections-light.svg b/static/images/banners/chat-conversations-connections-light.svg
index 1196b961..dad9dd43 100644
--- a/static/images/banners/chat-conversations-connections-light.svg
+++ b/static/images/banners/chat-conversations-connections-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
MODEL FABRIC
Connections
providers / endpoints / keys
- 01PROVIDERS02ENDPOINTS03KEYS
+ 01PROVIDERS02ENDPOINTS03KEYS
-
+
-
+
- PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER
+ PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER
-
+
- DOCS
- CONNECTIONS
+ DOCS
+ CONNECTIONS
diff --git a/static/images/banners/chat-conversations-data-light.svg b/static/images/banners/chat-conversations-data-light.svg
index 41336e04..f6536b31 100644
--- a/static/images/banners/chat-conversations-data-light.svg
+++ b/static/images/banners/chat-conversations-data-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
STATE SURFACE
Data
tables / records / lineage
- 01TABLES02RECORDS03LINEAGE
+ 01TABLES02RECORDS03LINEAGE
-
+
-
+
- LINEAGE
+ LINEAGE
-
+
- DOCS
- DATA
+ DOCS
+ DATA
diff --git a/static/images/banners/chat-conversations-documents-light.svg b/static/images/banners/chat-conversations-documents-light.svg
index 82647dfa..1322a17b 100644
--- a/static/images/banners/chat-conversations-documents-light.svg
+++ b/static/images/banners/chat-conversations-documents-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
FILE INTELLIGENCE
Documents
parse / cite / reuse
- 01PARSE02CITE03REUSE
+ 01PARSE02CITE03REUSE
-
+
-
+
-
+
-
+
- DOCS
- DOCUMENTS
+ DOCS
+ DOCUMENTS
diff --git a/static/images/banners/chat-conversations-images-light.svg b/static/images/banners/chat-conversations-images-light.svg
index 5832348c..4f206a4a 100644
--- a/static/images/banners/chat-conversations-images-light.svg
+++ b/static/images/banners/chat-conversations-images-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
VISUAL CONTEXT
Images
media / visual / review
- 01MEDIA02CONTEXT03REVIEW
+ 01MEDIA02CONTEXT03REVIEW
-
+
-
+
-
+
-
+
- DOCS
- IMAGES
+ DOCS
+ IMAGES
diff --git a/static/images/banners/chat-conversations-light.svg b/static/images/banners/chat-conversations-light.svg
index d357a965..be088237 100644
--- a/static/images/banners/chat-conversations-light.svg
+++ b/static/images/banners/chat-conversations-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
AGENT WORKSPACE
Conversations
chat / files / terminal
- 01CHAT02FILES03TERMINAL
+ 01CHAT02FILES03TERMINAL
-
+
-
+
- $ run
+ $ run
-
+
- DOCS
- WORKSPACE
+ DOCS
+ WORKSPACE
diff --git a/static/images/banners/chat-conversations-memory-light.svg b/static/images/banners/chat-conversations-memory-light.svg
index b173ce6a..5f8c2c7c 100644
--- a/static/images/banners/chat-conversations-memory-light.svg
+++ b/static/images/banners/chat-conversations-memory-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
RECALL LAYER
Memory
workspace / user / history
- 01WORKSPACE02USER03HISTORY
+ 01WORKSPACE02USER03HISTORY
-
+
-
+
- RECALL PATH
+ RECALL PATH
-
+
- DOCS
- MEMORY
+ DOCS
+ MEMORY
diff --git a/static/images/banners/chat-conversations-websearch-light.svg b/static/images/banners/chat-conversations-websearch-light.svg
index 109ca14b..e17a29f2 100644
--- a/static/images/banners/chat-conversations-websearch-light.svg
+++ b/static/images/banners/chat-conversations-websearch-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
EXTERNAL SIGNAL
Web Search
search / verify / cite
- 01SEARCH02VERIFY03CITE
+ 01SEARCH02VERIFY03CITE
-
+
-
+
-
+
-
+
- DOCS
- SEARCH
+ DOCS
+ SEARCH
diff --git a/static/images/banners/community-light.svg b/static/images/banners/community-light.svg
index a7524c63..6242a7bf 100644
--- a/static/images/banners/community-light.svg
+++ b/static/images/banners/community-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
SHARED NETWORK
Community
models / prompts / tools
- 01MODELS02PROMPTS03TOOLS
+ 01MODELS02PROMPTS03TOOLS
-
+
-
+
- SHARED REGISTRY
+ SHARED REGISTRY
-
+
- DOCS
- NETWORK
+ DOCS
+ NETWORK
diff --git a/static/images/banners/computer-light.svg b/static/images/banners/computer-light.svg
index c570fe1d..3c5aee24 100644
--- a/static/images/banners/computer-light.svg
+++ b/static/images/banners/computer-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
REMOTE MACHINE
Computer
files / shell / git
- 01FILES02SHELL03GIT
+ 01FILES02SHELL03GIT
-
+
-
+
- LOCAL MACHINE
+ LOCAL MACHINE
-
+
- DOCS
- COMPUTER
+ DOCS
+ COMPUTER
diff --git a/static/images/banners/event-function-light.svg b/static/images/banners/event-function-light.svg
index 208b60f9..aecdcc2f 100644
--- a/static/images/banners/event-function-light.svg
+++ b/static/images/banners/event-function-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
AUTOMATION HOOKS
Event Functions
events / functions / triggers
- 01EVENTS02FUNCTIONS03TRIGGERS
+ 01EVENTS02FUNCTIONS03TRIGGERS
-
+
-
+
- EVENTFILTERFUNCTIONACTION
+ EVENTFILTERFUNCTIONACTION
-
+
- DOCS
- PIPELINE
+ DOCS
+ PIPELINE
diff --git a/static/images/banners/extensibility-light.svg b/static/images/banners/extensibility-light.svg
index bfce3d8d..c6a330a8 100644
--- a/static/images/banners/extensibility-light.svg
+++ b/static/images/banners/extensibility-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
PLUGIN SURFACE
Extensibility
tools / functions / skills
- 01TOOLS02FUNCTIONS03SKILLS
+ 01TOOLS02FUNCTIONS03SKILLS
-
+
-
+
- CAPABILITY BUS
+ CAPABILITY BUS
-
+
- DOCS
- MODULES
+ DOCS
+ MODULES
diff --git a/static/images/banners/features-light.svg b/static/images/banners/features-light.svg
index a1d826c2..4c895290 100644
--- a/static/images/banners/features-light.svg
+++ b/static/images/banners/features-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
FULL STACK
Features
voice / vision / retrieval
- 01VOICE02VISION03RETRIEVAL
+ 01VOICE02VISION03RETRIEVAL
-
+
-
+
- VOICEVISIONRETRIEVALTOOLS
+ VOICEVISIONRETRIEVALTOOLS
-
+
- DOCS
- STACK
+ DOCS
+ STACK
diff --git a/static/images/banners/kbsync-light.svg b/static/images/banners/kbsync-light.svg
index 7d75f258..eb0c15dc 100644
--- a/static/images/banners/kbsync-light.svg
+++ b/static/images/banners/kbsync-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
KNOWLEDGE PIPELINE
Knowledge Sync
sync / index / retrieve
- 01SYNC02INDEX03RETRIEVE
+ 01SYNC02INDEX03RETRIEVE
-
+
-
+
- SOURCECHUNKINDEXQUERY
+ SOURCECHUNKINDEXQUERY
-
+
- DOCS
- SYNC
+ DOCS
+ SYNC
diff --git a/static/images/banners/knowledge-light.svg b/static/images/banners/knowledge-light.svg
index 73bb14e8..2d0a0d8f 100644
--- a/static/images/banners/knowledge-light.svg
+++ b/static/images/banners/knowledge-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
RETRIEVAL CORE
Knowledge
docs / chunks / citations
- 01DOCS02CHUNKS03CITATIONS
+ 01DOCS02CHUNKS03CITATIONS
-
+
-
+
- CITATION TRACE
+ CITATION TRACE
-
+
- DOCS
- KNOWLEDGE
+ DOCS
+ KNOWLEDGE
diff --git a/static/images/banners/notes-light.svg b/static/images/banners/notes-light.svg
index 77357797..3abbd496 100644
--- a/static/images/banners/notes-light.svg
+++ b/static/images/banners/notes-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
PLAIN FILES
Notes
capture / edit / search
- 01CAPTURE02EDIT03SEARCH
+ 01CAPTURE02EDIT03SEARCH
-
+
-
+
- PLAIN TEXT
+ PLAIN TEXT
-
+
- DOCS
- NOTES
+ DOCS
+ NOTES
diff --git a/static/images/banners/terminal-light.svg b/static/images/banners/terminal-light.svg
index 27fc1b07..931310c8 100644
--- a/static/images/banners/terminal-light.svg
+++ b/static/images/banners/terminal-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
SHELL ACCESS
Terminal
commands / logs / sessions
- 01COMMANDS02LOGS03SESSIONS
+ 01COMMANDS02LOGS03SESSIONS
-
+
-
+
- $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready
+ $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready
-
+
- DOCS
- TERMINAL
+ DOCS
+ TERMINAL
diff --git a/static/images/banners/workspace-knowledge-light.svg b/static/images/banners/workspace-knowledge-light.svg
index 2621d7b2..cb7f2a0c 100644
--- a/static/images/banners/workspace-knowledge-light.svg
+++ b/static/images/banners/workspace-knowledge-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
PROJECT MEMORY
WorkspaceKnowledge
repo / docs / decisions
- 01REPO02DOCS03DECISIONS
+ 01REPO02DOCS03DECISIONS
-
+
-
+
- CITATION TRACE
+ CITATION TRACE
-
+
- DOCS
- KNOWLEDGE
+ DOCS
+ KNOWLEDGE
diff --git a/static/images/banners/workspace-light.svg b/static/images/banners/workspace-light.svg
index a0ea8cf2..dbbd1aad 100644
--- a/static/images/banners/workspace-light.svg
+++ b/static/images/banners/workspace-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
LOCAL CONTEXT
Workspace
repo / state / environment
- 01REPO02STATE03ENVIRONMENT
+ 01REPO02STATE03ENVIRONMENT
-
+
-
+
- $ run
+ $ run
-
+
- DOCS
- WORKSPACE
+ DOCS
+ WORKSPACE
diff --git a/static/images/banners/workspace-models-light.svg b/static/images/banners/workspace-models-light.svg
index bab0872c..d029e2df 100644
--- a/static/images/banners/workspace-models-light.svg
+++ b/static/images/banners/workspace-models-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
MODEL SELECTION
Workspace Models
routing / params / control
- 01ROUTING02PARAMS03CONTROL
+ 01ROUTING02PARAMS03CONTROL
-
+
-
+
- LOCALFASTVISIONLONGROUTING POLICY
+ LOCALFASTVISIONLONGROUTING POLICY
-
+
- DOCS
- MODELS
+ DOCS
+ MODELS
diff --git a/static/images/banners/workspace-prompts-light.svg b/static/images/banners/workspace-prompts-light.svg
index 4bac7a89..5ccc5375 100644
--- a/static/images/banners/workspace-prompts-light.svg
+++ b/static/images/banners/workspace-prompts-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
SYSTEM INTENT
WorkspacePrompts
templates / roles / policy
- 01TEMPLATES02ROLES03POLICY
+ 01TEMPLATES02ROLES03POLICY
-
+
-
+
- SYSTEM:ROLE BOUNDARY
+ SYSTEM:ROLE BOUNDARY
-
+
- DOCS
- PROMPTS
+ DOCS
+ PROMPTS
diff --git a/static/images/banners/workspace-skills-light.svg b/static/images/banners/workspace-skills-light.svg
index b2dea44d..116196b6 100644
--- a/static/images/banners/workspace-skills-light.svg
+++ b/static/images/banners/workspace-skills-light.svg
@@ -2,28 +2,28 @@
-
-
-
-
+
+
+
+
OPEN WEBUI
CAPABILITY PACKS
Workspace Skills
instructions / tools / reuse
- 01INSTRUCTIONS02TOOLS03REUSE
+ 01INSTRUCTIONS02TOOLS03REUSE
-
+
-
+
- INSTRUCTTOOLREUSERUN
+ INSTRUCTTOOLREUSERUN
-
+
- DOCS
- SKILLS
+ DOCS
+ SKILLS