This commit is contained in:
2026-01-20 20:33:59 +01:00
commit b16a40e431
583 changed files with 87339 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
.hextra-badge {
@apply hx:inline-flex hx:items-center;
}

View File

@@ -0,0 +1,12 @@
.hextra-banner-hidden .hextra-banner {
display: none;
}
.hextra-banner {
:where(a):not(:where([class~=not-prose],[class~=not-prose] *)) {
@apply hx:underline hx:decoration-from-font;
}
:where(p):not(:where([class~=not-prose],[class~=not-prose] *)) {
@apply hx:leading-7 hx:first:mt-0;
}
}

View File

@@ -0,0 +1,46 @@
.hextra-cards {
grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 1rem * 2) / var(--hextra-cards-grid-cols))), 1fr));
}
.hextra-card {
position: relative;
}
.hextra-card img {
user-select: none;
}
.hextra-card:hover .hextra-card-icon svg {
color: currentColor;
}
.hextra-card .hextra-card-icon svg {
width: 1.5rem;
color: #00000033;
transition: color 0.3s ease;
}
.hextra-card p {
margin-top: 0.5rem;
position: relative;
}
.dark .hextra-card .hextra-card-icon svg {
color: #ffffff66;
}
.dark .hextra-card:hover .hextra-card-icon svg {
color: currentColor;
}
.hextra-card-tag {
position: absolute;
z-index: 10;
top: 5px;
&:where(:dir(ltr)) {
right: 5px;
}
&:where(:dir(rtl)) {
left: 5px;
}
}

View File

@@ -0,0 +1,7 @@
@supports (
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
) {
.hextra-code-copy-btn {
@apply hx:backdrop-blur-md hx:opacity-85 hx:dark:opacity-80;
}
}

View File

@@ -0,0 +1,5 @@
.hextra-feature-grid {
@media (min-width: 1024px) {
grid-template-columns: repeat(var(--hextra-feature-grid-cols), minmax(0, 1fr));
}
}

View File

@@ -0,0 +1,17 @@
.hextra-jupyter-code-cell {
scrollbar-gutter: auto;
@apply hx:mt-6;
.hextra-jupyter-code-cell-outputs-container {
@apply hx:text-xs hx:overflow-hidden;
.hextra-jupyter-code-cell-outputs {
@apply hx:overflow-auto hx:max-h-[50vh];
pre {
@apply hx:text-xs hx:overflow-auto hx:max-w-full;
}
}
}
}

View File

@@ -0,0 +1,50 @@
nav {
.hextra-search-wrapper {
@apply hx:hidden hx:md:inline-block;
}
}
@supports (
(-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
) {
.hextra-nav-container-blur {
@apply hx:backdrop-blur-md hx:bg-white/[.85] hx:dark:bg-dark/80!;
}
}
/* Hamburger Menu - Flattened Structure */
.hextra-hamburger-menu svg g {
@apply hx:origin-center hx:transition-all hx:duration-100 hx:ease-out;
}
.hextra-hamburger-menu svg path {
@apply hx:opacity-100 hx:transition-all hx:duration-100 hx:ease-out hx:delay-100;
}
.hextra-hamburger-menu svg.open path {
@apply hx:transition-transform hx:duration-100 hx:ease-out hx:delay-0;
}
.hextra-hamburger-menu svg.open g {
@apply hx:transition-transform hx:duration-100 hx:ease-out hx:delay-100;
}
.hextra-hamburger-menu svg.open > path {
@apply hx:opacity-0;
}
.hextra-hamburger-menu svg.open > g:nth-of-type(1) {
@apply hx:rotate-45;
}
.hextra-hamburger-menu svg.open > g:nth-of-type(1) path {
@apply hx:translate-y-1;
}
.hextra-hamburger-menu svg.open > g:nth-of-type(2) {
@apply hx:-rotate-45;
}
.hextra-hamburger-menu svg.open > g:nth-of-type(2) path {
@apply hx:-translate-y-1;
}

View File

@@ -0,0 +1,21 @@
.hextra-scrollbar, .hextra-scrollbar * {
scrollbar-width: thin; /* Firefox */
scrollbar-color: oklch(55.55% 0 0 / 40%) transparent; /* Firefox */
scrollbar-gutter: stable;
&::-webkit-scrollbar {
@apply hx:w-3 hx:h-3;
}
&::-webkit-scrollbar-track {
@apply hx:bg-transparent;
}
&::-webkit-scrollbar-thumb {
@apply hx:rounded-[10px];
}
&:hover::-webkit-scrollbar-thumb {
border: 3px solid transparent;
background-color: var(--tw-shadow-color);
background-clip: content-box;
@apply hx:shadow-neutral-500/20 hx:hover:shadow-neutral-500/40;
}
}

View File

@@ -0,0 +1,38 @@
.hextra-search-wrapper {
li {
@apply hx:mx-2.5 hx:break-words hx:rounded-md hx:contrast-more:border hx:text-gray-800 hx:contrast-more:border-transparent hx:dark:text-gray-300;
a {
@apply hx:focus-visible:outline-none hx:focus:outline-none hx:block hx:scroll-m-12 hx:px-2.5 hx:py-2;
}
.hextra-search-title {
@apply hx:text-base hx:font-semibold hx:leading-5;
}
.hextra-search-active {
@apply hx:rounded-md hx:bg-primary-500/10 hx:contrast-more:border-primary-500;
}
}
.hextra-search-no-result {
@apply hx:block hx:select-none hx:p-8 hx:text-center hx:text-sm hx:text-gray-400;
}
.hextra-search-prefix {
@apply hx:mx-2.5 hx:mb-2 hx:mt-6 hx:select-none hx:border-b hx:border-black/10 hx:px-2.5 hx:pb-1.5 hx:text-xs hx:font-semibold
hx:uppercase hx:text-gray-500 hx:first:mt-0 hx:dark:border-white/20 hx:dark:text-gray-300 hx:contrast-more:border-gray-600
hx:contrast-more:text-gray-900 hx:contrast-more:dark:border-gray-50 hx:contrast-more:dark:text-gray-50;
}
.hextra-search-excerpt {
@apply hx:overflow-hidden hx:text-ellipsis hx:mt-1 hx:text-sm hx:leading-[1.35rem] hx:text-gray-600 hx:dark:text-gray-400 hx:contrast-more:dark:text-gray-50;
display: -webkit-box;
line-clamp: 1;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.hextra-search-match {
@apply hx:text-primary-600;
}
}

View File

@@ -0,0 +1,21 @@
@media (max-width: 48rem) {
.hextra-sidebar-container {
@apply hx:fixed hx:pt-[calc(var(--navbar-height)+var(--hextra-banner-height))] hx:top-0 hx:w-full hx:bottom-0 hx:z-[15] hx:overscroll-contain hx:bg-white hx:dark:bg-dark;
transition: transform 0.4s cubic-bezier(0.52, 0.16, 0.04, 1);
will-change: transform, opacity;
contain: layout style;
backface-visibility: hidden;
}
}
.hextra-sidebar-container {
li > div {
@apply hx:h-0;
}
li.open > div {
@apply hx:h-auto hx:pt-1;
}
li.open > a > span > svg > path {
@apply hx:rotate-90;
}
}

View File

@@ -0,0 +1,22 @@
.hextra-steps {
:where(h2, h3, h4, h5, h6):not(.no-step-marker) {
counter-increment: step;
@apply hx:ltr:before:ml-[-41px] hx:rtl:before:mr-[-44px];
/* https://github.com/tailwindlabs/tailwindcss/issues/15597#issuecomment-2582673546 */
@apply hx:before:bg-gray-100 hx:dark:before:bg-neutral-800;
@apply hx:before:border-4 hx:before:border-white hx:dark:before:border-dark;
&:before {
content: counter(step);
@apply hx:absolute hx:size-[33px];
@apply hx:rounded-full hx:text-neutral-400 hx:text-base hx:font-normal hx:text-center hx:-indent-px;
}
}
}
:lang(fa) .hextra-steps {
:where(h2, h3, h4, h5, h6):not(.no-step-marker) {
&:before {
content: counter(step, persian);
}
}
}

View File

@@ -0,0 +1,4 @@
/* Table of Contents Scroll Spy Styles */
.hextra-toc a.hextra-toc-active {
@apply hx:text-gray-900! hx:dark:text-gray-50! hx:transition-all hx:duration-200;
}