mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
feat: upgrade documentation theme to Monochrome Pro and enhance homepage
This commit is contained in:
+98
-556
@@ -1,611 +1,153 @@
|
||||
/* Semantica Documentation - Premium Green-Brown & Cream Theme */
|
||||
/* Semantica Documentation - Monochrome Pro Theme */
|
||||
|
||||
/* Smooth scrolling */
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Cream background */
|
||||
/*
|
||||
==========================================================================
|
||||
Color Variables - Monochrome Pro
|
||||
Primary: #212121 (Grey 900)
|
||||
Accent: #2962FF (Electric Blue)
|
||||
==========================================================================
|
||||
*/
|
||||
:root {
|
||||
--md-default-bg-color: #FAF7F2;
|
||||
--md-primary-fg-color: #4A4F2F;
|
||||
--md-primary-fg-color--light: #8C9464;
|
||||
--md-primary-fg-color--dark: #3A3E25;
|
||||
--md-accent-fg-color: #8C9464;
|
||||
/* Light Mode */
|
||||
--md-default-bg-color: #FFFFFF;
|
||||
--md-default-fg-color: #212121;
|
||||
--md-default-fg-color--light: #616161;
|
||||
--md-default-fg-color--lighter: #9E9E9E;
|
||||
--md-default-fg-color--lightest: #E0E0E0;
|
||||
|
||||
--md-primary-fg-color: #212121;
|
||||
--md-primary-fg-color--light: #484848;
|
||||
--md-primary-fg-color--dark: #000000;
|
||||
|
||||
--md-accent-fg-color: #2962FF;
|
||||
|
||||
/* Code blocks */
|
||||
--md-code-bg-color: #F5F5F5;
|
||||
--md-code-fg-color: #212121;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] {
|
||||
--md-default-bg-color: #1a1a1a;
|
||||
}
|
||||
/* Dark Mode */
|
||||
--md-default-bg-color: #0F1115;
|
||||
/* Very dark grey, almost black */
|
||||
--md-default-fg-color: #E0E0E0;
|
||||
|
||||
/* Dark Green-Brown Header */
|
||||
.md-header {
|
||||
background-color: #4A4F2F !important;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
--md-primary-fg-color: #0F1115;
|
||||
/* Match bg for seamless look or slightly lighter */
|
||||
--md-primary-fg-color--light: #212121;
|
||||
--md-primary-fg-color--dark: #000000;
|
||||
|
||||
[data-md-color-scheme="slate"] .md-header {
|
||||
background-color: #4A4F2F !important;
|
||||
}
|
||||
|
||||
.md-header {
|
||||
height: 2.4rem !important;
|
||||
}
|
||||
|
||||
.md-header__inner {
|
||||
max-width: 100%;
|
||||
padding: 0 1rem;
|
||||
position: relative;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: flex-start !important;
|
||||
height: 2.4rem !important;
|
||||
}
|
||||
|
||||
/* Hide hamburger menu button */
|
||||
.md-header__button--menu {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* "Semantica" with brain emoji and version badge */
|
||||
.md-header__title {
|
||||
font-size: 1.25rem !important;
|
||||
font-weight: 700 !important;
|
||||
line-height: 1 !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin-left: 0.5rem !important;
|
||||
position: relative !important;
|
||||
left: 0 !important;
|
||||
transform: none !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: flex-start !important;
|
||||
height: 2.4rem !important;
|
||||
color: #FFFFFF !important;
|
||||
letter-spacing: 0.5px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Add brain emoji before title - perfectly aligned */
|
||||
.md-header__title::before {
|
||||
content: "🧠";
|
||||
font-size: 1.25rem !important;
|
||||
margin-right: 0.5rem !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
line-height: 1 !important;
|
||||
height: 2.4rem !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
|
||||
.md-header__title .md-header__button {
|
||||
color: #FFFFFF !important;
|
||||
font-size: 1.25rem !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: 0.5px;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
height: 2.4rem !important;
|
||||
line-height: 1 !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.md-header__title span {
|
||||
font-size: 1.25rem !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: 0.5px;
|
||||
color: #FFFFFF !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
line-height: 1 !important;
|
||||
height: 2.4rem !important;
|
||||
vertical-align: middle !important;
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
/* Add version badge after "Semantica" text - perfectly aligned */
|
||||
.md-header__title span::after {
|
||||
content: "0.0.1";
|
||||
font-size: 0.7rem !important;
|
||||
font-weight: 500 !important;
|
||||
background-color: rgba(255, 255, 255, 0.2) !important;
|
||||
color: #FFFFFF !important;
|
||||
padding: 0.15rem 0.4rem !important;
|
||||
border-radius: 0.75rem !important;
|
||||
margin-left: 0.5rem !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
line-height: 1 !important;
|
||||
vertical-align: middle !important;
|
||||
white-space: nowrap !important;
|
||||
align-self: center !important;
|
||||
}
|
||||
|
||||
/* Hide logo */
|
||||
.md-header__button.md-logo {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Table of Contents - Three Column Layout with Sidebars */
|
||||
@media screen and (min-width: 76.25em) {
|
||||
/* Left Navigation Sidebar - Narrower for more content space */
|
||||
.md-sidebar--primary {
|
||||
width: 12rem !important;
|
||||
position: fixed !important;
|
||||
left: 0 !important;
|
||||
top: 2.4rem !important;
|
||||
height: calc(100vh - 2.4rem) !important;
|
||||
overflow-y: auto !important;
|
||||
overflow-x: hidden !important;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1) !important;
|
||||
background-color: var(--md-default-bg-color) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-sidebar--primary {
|
||||
border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
|
||||
}
|
||||
|
||||
/* Right TOC Sidebar - Slightly narrower */
|
||||
.md-sidebar--secondary {
|
||||
position: fixed !important;
|
||||
right: 0 !important;
|
||||
top: 2.4rem !important;
|
||||
width: 14rem !important;
|
||||
height: calc(100vh - 2.4rem) !important;
|
||||
overflow-y: auto !important;
|
||||
overflow-x: hidden !important;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1) !important;
|
||||
background-color: var(--md-default-bg-color) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-sidebar--secondary {
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.12) !important;
|
||||
}
|
||||
|
||||
/* Content Area - Wider to fill more space, dense layout */
|
||||
.md-content {
|
||||
margin-left: 12rem !important;
|
||||
margin-right: 14rem !important;
|
||||
max-width: none !important;
|
||||
padding-left: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
/* Ensure sidebars scroll properly */
|
||||
.md-sidebar__scrollwrap {
|
||||
overflow-y: auto !important;
|
||||
overflow-x: hidden !important;
|
||||
height: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Custom Scrollbar Styling for Sidebars */
|
||||
.md-sidebar--primary::-webkit-scrollbar,
|
||||
.md-sidebar--secondary::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.md-sidebar--primary::-webkit-scrollbar-track,
|
||||
.md-sidebar--secondary::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.md-sidebar--primary::-webkit-scrollbar-thumb,
|
||||
.md-sidebar--secondary::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.md-sidebar--primary::-webkit-scrollbar-thumb:hover,
|
||||
.md-sidebar--secondary::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-sidebar--primary::-webkit-scrollbar-thumb,
|
||||
[data-md-color-scheme="slate"] .md-sidebar--secondary::-webkit-scrollbar-thumb {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-sidebar--primary::-webkit-scrollbar-thumb:hover,
|
||||
[data-md-color-scheme="slate"] .md-sidebar--secondary::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
/* Ensure content uses full available width - Gap-free layout */
|
||||
.md-grid {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.md-content__inner {
|
||||
max-width: 100% !important;
|
||||
padding-left: 2.5rem !important;
|
||||
padding-right: 2.5rem !important;
|
||||
margin: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.md-main__inner {
|
||||
max-width: 100% !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.md-container {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* Remove gaps between sidebars and content - Dense layout */
|
||||
@media screen and (min-width: 76.25em) {
|
||||
.md-main {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.md-content {
|
||||
padding-left: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
margin-top: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Ensure sidebars are flush with content */
|
||||
.md-sidebar--primary {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
.md-sidebar--secondary {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
/* Make content area use maximum available width */
|
||||
.md-content__inner {
|
||||
max-width: 100% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Reduce spacing for compact, dense look */
|
||||
.md-content {
|
||||
padding-top: 0.8rem !important;
|
||||
padding-bottom: 1.2rem !important;
|
||||
}
|
||||
|
||||
/* Make content area wider and more dense */
|
||||
@media screen and (min-width: 76.25em) {
|
||||
.md-content__inner {
|
||||
padding-left: 2.5rem !important;
|
||||
padding-right: 2.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tighter headings - More dense */
|
||||
.md-typeset h1 {
|
||||
margin-top: 1.2rem !important;
|
||||
margin-bottom: 0.5rem !important;
|
||||
font-weight: 700;
|
||||
margin-bottom: 1rem;
|
||||
color: var(--md-default-fg-color);
|
||||
}
|
||||
|
||||
.md-typeset h2 {
|
||||
margin-top: 0.8rem !important;
|
||||
margin-bottom: 0.3rem !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.md-typeset h3 {
|
||||
margin-top: 0.8rem !important;
|
||||
margin-bottom: 0.3rem !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.md-typeset h4 {
|
||||
margin-top: 0.6rem !important;
|
||||
margin-bottom: 0.25rem !important;
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.01em;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.md-typeset p {
|
||||
margin-top: 0.6em;
|
||||
margin-bottom: 0.6em;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.md-typeset ul,
|
||||
.md-typeset ol {
|
||||
margin-top: 0.6em;
|
||||
margin-bottom: 0.6em;
|
||||
}
|
||||
|
||||
.md-typeset li {
|
||||
margin-top: 0.3em;
|
||||
margin-bottom: 0.3em;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* Sidebar spacing */
|
||||
.md-nav__link {
|
||||
padding: 0.20rem 0.60rem !important;
|
||||
}
|
||||
|
||||
/* Clean TOC styling */
|
||||
.md-nav__link--active {
|
||||
color: var(--md-primary-fg-color);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Better code blocks */
|
||||
.md-typeset pre {
|
||||
border-radius: 6px;
|
||||
background-color: #f8f6f0;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset pre {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #e0e0e0 !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset pre code {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #e0e0e0 !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset code:not(pre code) {
|
||||
background-color: #2d2d2d !important;
|
||||
color: #e0e0e0 !important;
|
||||
padding: 0.2em 0.4em;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset a {
|
||||
color: #8C9464 !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset a:hover {
|
||||
color: #a8b080 !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset {
|
||||
color: rgba(255, 255, 255, 0.87) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset p {
|
||||
color: rgba(255, 255, 255, 0.87) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset li {
|
||||
color: rgba(255, 255, 255, 0.87) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset table:not([class]) {
|
||||
border-color: rgba(255, 255, 255, 0.12) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
|
||||
background-color: rgba(255, 255, 255, 0.05) !important;
|
||||
color: rgba(255, 255, 255, 0.87) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset table:not([class]) td {
|
||||
color: rgba(255, 255, 255, 0.87) !important;
|
||||
}
|
||||
|
||||
/* Accent color for links */
|
||||
/* Links */
|
||||
.md-typeset a {
|
||||
color: #4A4F2F;
|
||||
}
|
||||
|
||||
.md-typeset a:hover {
|
||||
color: #8C9464;
|
||||
}
|
||||
|
||||
/* Theme toggle button - positioned before search with spacing */
|
||||
.md-header__button[for^="__palette"] {
|
||||
margin: 0 !important;
|
||||
margin-left: auto !important;
|
||||
margin-right: 0.75rem !important;
|
||||
padding: 0.5rem !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
height: 2.4rem !important;
|
||||
width: 2.4rem !important;
|
||||
color: #FFFFFF !important;
|
||||
opacity: 1 !important;
|
||||
visibility: visible !important;
|
||||
cursor: pointer !important;
|
||||
transition: opacity 0.2s ease !important;
|
||||
order: 1 !important;
|
||||
}
|
||||
|
||||
/* Search button - positioned after theme toggle */
|
||||
.md-header__button[for="__search"],
|
||||
.md-header__button[for^="__search"] {
|
||||
order: 2 !important;
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
|
||||
.md-header__button[for^="__palette"]:hover {
|
||||
opacity: 0.8 !important;
|
||||
background-color: rgba(255, 255, 255, 0.1) !important;
|
||||
border-radius: 0.25rem !important;
|
||||
}
|
||||
|
||||
/* Ensure toggle button icon is visible */
|
||||
.md-header__button[for^="__palette"] svg {
|
||||
width: 1.25rem !important;
|
||||
height: 1.25rem !important;
|
||||
fill: currentColor !important;
|
||||
color: #FFFFFF !important;
|
||||
}
|
||||
|
||||
/* Ensure only one palette toggle button is visible */
|
||||
.md-header input[type="radio"][name="__palette"]:not(:checked) + label {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Material theme automatically shows only one toggle - ensure proper spacing */
|
||||
.md-header__inner {
|
||||
padding-bottom: 0.5rem !important;
|
||||
gap: 0.5rem !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
}
|
||||
|
||||
/* Ensure proper spacing between theme toggle and search */
|
||||
.md-header__inner > .md-header__button[for^="__palette"] {
|
||||
margin-right: 0.75rem !important;
|
||||
}
|
||||
|
||||
.md-header__inner > .md-header__button[for="__search"],
|
||||
.md-header__inner > .md-header__button[for^="__search"] {
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
Pydantic-Style Callout Boxes (Admonitions)
|
||||
============================================ */
|
||||
|
||||
/* Base Admonition Styling */
|
||||
.md-typeset .admonition {
|
||||
border-radius: 6px;
|
||||
border-left-width: 4px;
|
||||
margin: 1.5em 0;
|
||||
padding: 1em 1.5em;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Note - Blue */
|
||||
.md-typeset .admonition.note,
|
||||
.md-typeset .admonition-title--note {
|
||||
border-color: #2196F3;
|
||||
background-color: rgba(33, 150, 243, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.note {
|
||||
background-color: rgba(33, 150, 243, 0.15);
|
||||
border-color: #42A5F5;
|
||||
}
|
||||
|
||||
.md-typeset .admonition.note .admonition-title {
|
||||
background-color: rgba(33, 150, 243, 0.2);
|
||||
border-color: #2196F3;
|
||||
color: #1976D2;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.note .admonition-title {
|
||||
background-color: rgba(33, 150, 243, 0.25);
|
||||
color: #64B5F6;
|
||||
}
|
||||
|
||||
/* Tip - Green */
|
||||
.md-typeset .admonition.tip,
|
||||
.md-typeset .admonition-title--tip {
|
||||
border-color: #4CAF50;
|
||||
background-color: rgba(76, 175, 80, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.tip {
|
||||
background-color: rgba(76, 175, 80, 0.15);
|
||||
border-color: #66BB6A;
|
||||
color: var(--md-accent-fg-color);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
background-color: #F1F8F5;
|
||||
}
|
||||
|
||||
.md-typeset .admonition.tip .admonition-title {
|
||||
background-color: rgba(76, 175, 80, 0.2);
|
||||
border-color: #4CAF50;
|
||||
color: #388E3C;
|
||||
font-weight: 600;
|
||||
color: #00C853;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.tip {
|
||||
border-color: #2E303E;
|
||||
border-left-color: #69F0AE;
|
||||
background-color: #0E1B14;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.tip .admonition-title {
|
||||
background-color: rgba(76, 175, 80, 0.25);
|
||||
color: #81C784;
|
||||
color: #69F0AE;
|
||||
}
|
||||
|
||||
/* Warning - Orange/Yellow */
|
||||
.md-typeset .admonition.warning,
|
||||
.md-typeset .admonition-title--warning {
|
||||
border-color: #FF9800;
|
||||
background-color: rgba(255, 152, 0, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.warning {
|
||||
background-color: rgba(255, 152, 0, 0.15);
|
||||
border-color: #FFB74D;
|
||||
/* Warning */
|
||||
.md-typeset .admonition.warning {
|
||||
border-color: #E0E0E0;
|
||||
border-left-color: #FFAB00;
|
||||
background-color: #FFF8E1;
|
||||
}
|
||||
|
||||
.md-typeset .admonition.warning .admonition-title {
|
||||
background-color: rgba(255, 152, 0, 0.2);
|
||||
border-color: #FF9800;
|
||||
color: #F57C00;
|
||||
font-weight: 600;
|
||||
color: #FFAB00;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.warning {
|
||||
border-color: #2E303E;
|
||||
border-left-color: #FFD740;
|
||||
background-color: #1F1B0E;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.warning .admonition-title {
|
||||
background-color: rgba(255, 152, 0, 0.25);
|
||||
color: #FFB74D;
|
||||
color: #FFD740;
|
||||
}
|
||||
|
||||
/* Danger - Red */
|
||||
.md-typeset .admonition.danger,
|
||||
.md-typeset .admonition-title--danger {
|
||||
border-color: #F44336;
|
||||
background-color: rgba(244, 67, 54, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.danger {
|
||||
background-color: rgba(244, 67, 54, 0.15);
|
||||
border-color: #E57373;
|
||||
/* Danger */
|
||||
.md-typeset .admonition.danger {
|
||||
border-color: #E0E0E0;
|
||||
border-left-color: #FF1744;
|
||||
background-color: #FFEBEE;
|
||||
}
|
||||
|
||||
.md-typeset .admonition.danger .admonition-title {
|
||||
background-color: rgba(244, 67, 54, 0.2);
|
||||
border-color: #F44336;
|
||||
color: #D32F2F;
|
||||
font-weight: 600;
|
||||
color: #FF1744;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.danger {
|
||||
border-color: #2E303E;
|
||||
border-left-color: #FF5252;
|
||||
background-color: #241214;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.danger .admonition-title {
|
||||
background-color: rgba(244, 67, 54, 0.25);
|
||||
color: #EF5350;
|
||||
color: #FF5252;
|
||||
}
|
||||
|
||||
/* Admonition Content Styling */
|
||||
.md-typeset .admonition p {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
/*
|
||||
==========================================================================
|
||||
Code Blocks
|
||||
==========================================================================
|
||||
*/
|
||||
.md-typeset pre {
|
||||
background-color: var(--md-code-bg-color);
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.md-typeset .admonition p:first-child {
|
||||
margin-top: 0;
|
||||
[data-md-color-scheme="slate"] .md-typeset pre {
|
||||
border-color: rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
.md-typeset .admonition p:last-child {
|
||||
margin-bottom: 0;
|
||||
/* Scrollbars */
|
||||
::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
/* Admonition Icons */
|
||||
.md-typeset .admonition-title::before {
|
||||
margin-right: 0.5em;
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/* Info - Alternative blue (if used) */
|
||||
.md-typeset .admonition.info {
|
||||
border-color: #00BCD4;
|
||||
background-color: rgba(0, 188, 212, 0.1);
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset .admonition.info {
|
||||
background-color: rgba(0, 188, 212, 0.15);
|
||||
border-color: #4DD0E1;
|
||||
[data-md-color-scheme="slate"] ::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
+208
-71
@@ -1,112 +1,249 @@
|
||||
# Welcome to Semantica
|
||||
|
||||
<div align="center">
|
||||
<img src="assets/img/semantica_logo.png" alt="Semantica Logo" style="max-width: 300px; height: auto; margin: 2rem auto; display: block;" />
|
||||
<img src="assets/img/semantica_logo.png" alt="Semantica Logo" width="450" height="auto">
|
||||
</div>
|
||||
|
||||
**Transform chaotic data into intelligent knowledge.**
|
||||
# Semantica
|
||||
|
||||
Semantica is an open-source framework for building semantic layers and knowledge graphs that power the next generation of AI applications.
|
||||
[](https://www.python.org/downloads/)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://badge.fury.io/py/semantica)
|
||||
[](https://pepy.tech/project/semantica)
|
||||
[](https://semantica.readthedocs.io/)
|
||||
[](https://discord.gg/semantica)
|
||||
|
||||
!!! tip "New to Semantica?"
|
||||
Start with the [Quickstart Guide](quickstart.md) to build your first knowledge graph in minutes, or explore our [interactive Cookbook](cookbook.md) for hands-on tutorials.
|
||||
**Open Source Framework for Semantic Intelligence & Knowledge Engineering**
|
||||
|
||||
## 🚀 Get Started in 60 Seconds
|
||||
> **Transform chaotic data into intelligent knowledge.**
|
||||
|
||||
```python
|
||||
from semantica import Semantica
|
||||
*The missing fabric between raw data and AI engineering. A comprehensive open-source framework for building semantic layers and knowledge engineering systems that transform unstructured data into AI-ready knowledge — powering Knowledge Graph-Powered RAG (GraphRAG), AI Agents, Multi-Agent Systems, and AI applications with structured semantic knowledge.*
|
||||
|
||||
semantica = Semantica()
|
||||
result = semantica.build_knowledge_base(["document.pdf"])
|
||||
print(f"Extracted {len(result['knowledge_graph']['entities'])} entities")
|
||||
**🆓 100% Open Source** • **📜 MIT Licensed** • **🚀 Production Ready** • **🌍 Community Driven**
|
||||
|
||||
---
|
||||
|
||||
## 🌟 What is Semantica?
|
||||
|
||||
Semantica is the **first comprehensive open-source framework** that bridges the critical gap between raw data chaos and AI-ready knowledge. It's not just another data processing library—it's a complete **semantic intelligence platform** that transforms unstructured information into structured, queryable knowledge graphs that power the next generation of AI applications.
|
||||
|
||||
### The Vision
|
||||
|
||||
In the era of AI agents and autonomous systems, data alone isn't enough. **Context is king**. Semantica provides the semantic infrastructure that enables AI systems to truly understand, reason about, and act upon information with human-like comprehension.
|
||||
|
||||
### What Makes Semantica Different?
|
||||
|
||||
| Traditional Approaches | Semantica's Approach |
|
||||
|------------------------|---------------------|
|
||||
| Process data as isolated documents | Understands semantic relationships across all content |
|
||||
| Extract text and store vectors | Builds knowledge graphs with meaningful connections |
|
||||
| Generic entity recognition | General-purpose ontology generation and validation |
|
||||
| Manual schema definition | Automatic semantic modeling from content patterns |
|
||||
| Disconnected data silos | Unified semantic layer across all data sources |
|
||||
| Basic quality checks | Production-grade QA with conflict detection & resolution |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 The Problem We Solve
|
||||
|
||||
### The Data-to-AI Gap
|
||||
|
||||
Modern organizations face a fundamental challenge: **the semantic gap between raw data and AI systems**.
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph RawData [Raw Data Chaos]
|
||||
direction TB
|
||||
A[📄 PDFs & Docs]
|
||||
B[📧 Emails & Chat]
|
||||
C[💾 Databases]
|
||||
D[🌐 Web Content]
|
||||
end
|
||||
|
||||
subgraph Gap [THE SEMANTIC GAP]
|
||||
direction TB
|
||||
X{❌ MISSING LAYER}
|
||||
X1[No Context]
|
||||
X2[No Relationships]
|
||||
X3[No Validation]
|
||||
X --> X1
|
||||
X --> X2
|
||||
X --> X3
|
||||
end
|
||||
|
||||
subgraph AI [AI Systems Needs]
|
||||
direction TB
|
||||
F[🤖 AI Agents]
|
||||
G[🔍 GraphRAG]
|
||||
H[🧠 Reasoning]
|
||||
I[🤝 Multi-Agent]
|
||||
end
|
||||
|
||||
RawData == "Unstructured Noise" ==> Gap
|
||||
Gap == "Hallucinations & Errors" ==> AI
|
||||
|
||||
style Gap fill:#ffebee,stroke:#ff5252,stroke-width:2px,stroke-dasharray: 5 5
|
||||
style RawData fill:#f5f5f5,stroke:#9e9e9e,stroke-width:1px
|
||||
style AI fill:#e3f2fd,stroke:#2196f3,stroke-width:1px
|
||||
```
|
||||
|
||||
**Install:** `pip install semantica`
|
||||
### Real-World Consequences
|
||||
|
||||
!!! note "Installation Requirements"
|
||||
Semantica requires Python 3.8+. For complete installation instructions including optional dependencies, see the [Installation Guide](installation.md).
|
||||
**Without a semantic layer:**
|
||||
|
||||
## Choose Your Learning Path
|
||||
!!! failure "RAG Systems Fail"
|
||||
- Vector search alone misses crucial relationships
|
||||
- No graph traversal for context expansion
|
||||
- 30% lower accuracy than hybrid approaches
|
||||
|
||||
### ⚡ Quick Start (5 min)
|
||||
!!! failure "AI Agents Hallucinate"
|
||||
- No ontological constraints to validate actions
|
||||
- Missing semantic routing for intent understanding
|
||||
- No persistent memory across conversations
|
||||
|
||||
**Perfect for:** Trying Semantica quickly
|
||||
!!! failure "Multi-Agent Systems Can't Coordinate"
|
||||
- No shared semantic models for collaboration
|
||||
- Unable to validate actions against domain rules
|
||||
- Conflicting knowledge representations
|
||||
|
||||
```bash
|
||||
pip install semantica
|
||||
!!! failure "Knowledge Is Untrusted"
|
||||
- Duplicate entities pollute graphs
|
||||
- Conflicting facts from different sources
|
||||
- No provenance tracking or validation
|
||||
|
||||
### The Semantica Solution
|
||||
|
||||
Semantica fills this gap with a **complete semantic intelligence framework**:
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Input [📥 Input Layer]
|
||||
direction TB
|
||||
I1[Files & Docs]
|
||||
I2[API Streams]
|
||||
I3[Databases]
|
||||
end
|
||||
|
||||
subgraph Core [🧠 Semantica Engine]
|
||||
direction TB
|
||||
S1[Entity Extraction]
|
||||
S2[Relation Mapping]
|
||||
S3[Ontology Gen]
|
||||
S4[Conflict Resolution]
|
||||
S1 --> S2
|
||||
S2 --> S3
|
||||
S3 --> S4
|
||||
end
|
||||
|
||||
subgraph Output [📤 Knowledge Output]
|
||||
direction TB
|
||||
O1[Knowledge Graph]
|
||||
O2[Vector Store]
|
||||
O3[Reasoning API]
|
||||
end
|
||||
|
||||
Input == "Ingest" ==> Core
|
||||
Core == "Synthesize" ==> Output
|
||||
|
||||
style Core fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
|
||||
style Input fill:#fff3e0,stroke:#ff9800,stroke-width:1px
|
||||
style Output fill:#f3e5f5,stroke:#9c27b0,stroke-width:1px
|
||||
```
|
||||
|
||||
→ **[Quickstart Guide](quickstart.md)** - Build your first knowledge graph
|
||||
---
|
||||
|
||||
→ **[Examples](examples.md)** - See what's possible
|
||||
## 📦 Installation
|
||||
|
||||
### 📚 Complete Guide (30 min)
|
||||
=== "From Source"
|
||||
|
||||
**Perfect for:** Learning properly
|
||||
Since Semantica is currently in development, install from the local source:
|
||||
|
||||
1. **[Installation](installation.md)** - Complete setup
|
||||
2. **[Quickstart](quickstart.md)** - Step-by-step tutorial
|
||||
3. **[Examples](examples.md)** - Real-world use cases
|
||||
4. **[API References](api.md)** - Full documentation
|
||||
```bash
|
||||
# Navigate to the semantica directory
|
||||
cd path/to/semantica
|
||||
|
||||
### 🎓 Interactive Learning
|
||||
# Install in editable mode with core dependencies
|
||||
pip install -e .
|
||||
|
||||
**Perfect for:** Hands-on learners
|
||||
# Or install with all optional dependencies
|
||||
pip install -e ".[all]"
|
||||
```
|
||||
|
||||
→ **[Cookbook Recipes](cookbook.md)** - Interactive Jupyter notebooks
|
||||
=== "Development"
|
||||
|
||||
- Introduction tutorials
|
||||
- Advanced techniques
|
||||
- Domain-specific use cases
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/semantica-dev/semantica.git
|
||||
cd semantica
|
||||
|
||||
## What Can You Build?
|
||||
# Install in editable mode with dev dependencies
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
### Knowledge Graphs
|
||||
Transform documents, websites, and databases into structured knowledge graphs with meaningful relationships.
|
||||
=== "Custom"
|
||||
|
||||
### Semantic Layers
|
||||
Build semantic layers that enable AI systems to understand context and relationships in your data.
|
||||
```bash
|
||||
# Install specific extras as needed
|
||||
pip install -e ".[llm-openai]" # LLM providers
|
||||
pip install -e ".[graph-neo4j]" # Graph databases
|
||||
pip install -e ".[vector-pinecone]" # Vector stores
|
||||
pip install -e ".[dev]" # Development tools
|
||||
pip install -e ".[gpu]" # GPU support
|
||||
```
|
||||
|
||||
### GraphRAG Systems
|
||||
Power enhanced RAG systems with knowledge graphs for better context understanding and multi-hop reasoning.
|
||||
!!! note
|
||||
Once published to PyPI, you'll be able to install with `pip install semantica`
|
||||
|
||||
### AI Agent Memory
|
||||
Provide AI agents with persistent, structured memory using knowledge graphs.
|
||||
---
|
||||
|
||||
## Features
|
||||
## ✨ Core Capabilities
|
||||
|
||||
### 🎯 Entity & Relationship Extraction
|
||||
Extract entities and relationships from unstructured text using advanced NLP.
|
||||
### 1. 📊 Universal Data Ingestion
|
||||
|
||||
### 🔗 Knowledge Graph Construction
|
||||
Build comprehensive knowledge graphs from multiple data sources.
|
||||
Process **50+ file formats** with intelligent semantic extraction:
|
||||
|
||||
### ⚖️ Conflict Resolution
|
||||
Automatically resolve conflicts when the same entity appears in multiple sources.
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
### 📤 Multiple Export Formats
|
||||
Export to RDF, OWL, JSON, CSV, YAML, and more.
|
||||
- __📄 Documents__
|
||||
---
|
||||
- PDF (with OCR)
|
||||
- DOCX, XLSX, PPTX
|
||||
- TXT, RTF, ODT
|
||||
- EPUB, LaTeX
|
||||
- Markdown, RST
|
||||
|
||||
### 🧠 Embedding Generation
|
||||
Generate embeddings for text, images, and audio.
|
||||
- __🌐 Web & Feeds__
|
||||
---
|
||||
- HTML, XHTML, XML
|
||||
- RSS, Atom feeds
|
||||
- JSON-LD, RDFa
|
||||
- Sitemap XML
|
||||
- Web scraping
|
||||
|
||||
### 🔍 Vector Store Integration
|
||||
Store and query embeddings efficiently with support for multiple vector stores.
|
||||
- __💾 Structured Data__
|
||||
---
|
||||
- JSON, YAML, TOML
|
||||
- CSV, TSV, Excel
|
||||
- Parquet, Avro, ORC
|
||||
- SQL databases
|
||||
- NoSQL databases
|
||||
|
||||
!!! tip "Production Ready"
|
||||
Semantica is designed for production use with enterprise-grade features including conflict resolution, quality assurance, and scalable processing pipelines.
|
||||
- __📧 Communication__
|
||||
---
|
||||
- EML, MSG, MBOX
|
||||
- PST archives
|
||||
- Email threads
|
||||
- Attachment extraction
|
||||
|
||||
## Resources
|
||||
- __🗜️ Archives__
|
||||
---
|
||||
- ZIP, TAR, RAR, 7Z
|
||||
- Recursive processing
|
||||
- Multi-level extraction
|
||||
|
||||
- **GitHub**: [github.com/Hawksight-AI/semantica](https://github.com/Hawksight-AI/semantica)
|
||||
- **PyPI**: [pypi.org/project/semantica](https://pypi.org/project/semantica)
|
||||
- **Documentation**: This site
|
||||
- __🔬 Scientific__
|
||||
---
|
||||
- BibTeX, EndNote, RIS
|
||||
- JATS XML
|
||||
- PubMed formats
|
||||
- Citation networks
|
||||
|
||||
## Need Help?
|
||||
|
||||
- **First time?** → [Getting Started](getting-started)
|
||||
- **Installation issues?** → [Installation Guide](installation)
|
||||
- **Questions?** → [GitHub Discussions](https://github.com/Hawksight-AI/semantica/discussions)
|
||||
- **Found a bug?** → [GitHub Issues](https://github.com/Hawksight-AI/semantica/issues)
|
||||
|
||||
**Ready to transform your data?** Start with the [Getting Started Guide](getting-started) or explore the [Cookbook Recipes](cookbook) for interactive tutorials.
|
||||
</div>
|
||||
|
||||
@@ -40,6 +40,7 @@ theme:
|
||||
- content.code.annotate
|
||||
- content.tooltips
|
||||
icon:
|
||||
logo: material/brain
|
||||
repo: fontawesome/brands/github
|
||||
|
||||
# Extensions
|
||||
|
||||
Reference in New Issue
Block a user