Compare commits

..

No commits in common. "84703e3117eb2829e0ed6b4a995f1025359fb57b" and "bc01642fa4e1fa6c0aa82e6bd9ffb89c1e362e40" have entirely different histories.

10 changed files with 114 additions and 37 deletions

View file

@ -1,7 +1,7 @@
--- ---
import { ThemeSelect } from "@components/hooks/ThemeSwitch"; import { ThemeSelect } from "@components/hooks/ThemeSwitch";
import { getTypeData } from "@config/io/generateTypeData"; import { getTypeData } from "@config/io/generateTypeData";
import Nav from "@components/navigation/sidebars/nav/index.astro"; import Nav from "@components/navigation/sidebars/Nav.astro";
import TOC from "@components/navigation/sidebars/TOC.astro"; import TOC from "@components/navigation/sidebars/TOC.astro";
import type { TypeTOC } from "./navigation/sidebars/types"; import type { TypeTOC } from "./navigation/sidebars/types";
import Search from "./navigation/Search.astro"; import Search from "./navigation/Search.astro";

View file

@ -1,5 +1,5 @@
--- ---
import Accordion from "@components/Accordion.astro"; import Accordion from "./Accordion.astro";
import navMarker from "@icons/nav-marker.svg?raw"; import navMarker from "@icons/nav-marker.svg?raw";
interface Props { interface Props {

View file

@ -94,6 +94,53 @@ export const MenuToX: VoidComponent<{
); );
}; };
export const ShevronSmallDown: VoidComponent<{
class?: string;
}> = props => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 24 24"
class={props.class}
>
<title>Open</title>
<g transform="rotate(-90 12 12)">
<path
stroke="currentColor"
stroke-dasharray="8"
stroke-dashoffset="0"
stroke-linecap="round"
stroke-width="2"
d="M9 12L14 7M9 12L14 17"
fill="currentColor"
></path>
</g>
</svg>
);
};
export const CaretCircleRight: VoidComponent<{
class?: string;
}> = props => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 256 256"
class={props.class}
>
<title>Open</title>
<path
fill="currentColor"
d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m29.66-93.66a8 8 0 0 1 0 11.32l-40 40a8 8 0 0 1-11.32-11.32L140.69 128l-34.35-34.34a8 8 0 0 1 11.32-11.32Z"
/>
</svg>
);
};
export const Clipboard: VoidComponent<{ export const Clipboard: VoidComponent<{
class?: string; class?: string;
}> = props => { }> = props => {

View file

@ -1,6 +1,6 @@
--- ---
import SidebarWrapper from "./SidebarWrapper.tsx"; import SidebarWrapper from "./nav/SidebarWrapper.tsx";
import RootNav from "./RootNav.astro"; import RootNav from "./nav/RootNav.astro";
const url = Astro.url.pathname.split("/"); const url = Astro.url.pathname.split("/");
const currentRoute = url[2]; const currentRoute = url[2];

View file

@ -1,5 +1,5 @@
--- ---
import NavCollapsible from "./NavCollapsible.astro"; import NavCollapsible from "@components/NavCollapsible.astro";
import Self from "./Tree.astro"; import Self from "./Tree.astro";
import Link from "./Link.astro"; import Link from "./Link.astro";

View file

@ -6,7 +6,7 @@ import CreateCopyButtons from "@components/hooks/CreateCopyButtons.astro";
import PreTheme from "@config/PreTheme.astro"; import PreTheme from "@config/PreTheme.astro";
import Header from "@components/Header.astro"; import Header from "@components/Header.astro";
import Head from "@config/Head.astro"; import Head from "@config/Head.astro";
import Nav from "@components/navigation/sidebars/nav/index.astro"; import Nav from "@components/navigation/sidebars/Nav.astro";
import type { ConfigHeading } from "@src/components/navigation/sidebars/types"; import type { ConfigHeading } from "@src/components/navigation/sidebars/types";
import Footer from "@src/components/Footer.astro"; import Footer from "@src/components/Footer.astro";

View file

@ -31,7 +31,7 @@ const details = route.data.details
--- ---
<DocsLayout <DocsLayout
title={route.type + " Module Types"} title={route.type + " Type Documentation"}
description="Quickshell Type Documentation" description="Quickshell Type Documentation"
> >
<div class="docs-content"> <div class="docs-content">

View file

@ -6,13 +6,9 @@ const routes = await getTypeData();
const modules = [...new Set(routes.map(route => route.type))]; const modules = [...new Set(routes.map(route => route.type))];
--- ---
<DocsLayout title="Quickshell Module Listing" description="Quickshell Type Documentation"> <DocsLayout title="Quickshell Type Definitions" description="Quickshell Type Documentation">
<div class="docs-content"> <h2>Type Definitions</h2>
<hr/> <div class="root-nav">
<h2>Module Listing</h2>
<section>
<span>All modules included with Quickshell</span>
<div class="root-nav" data-pagefind-ignore>
{modules.map(moduleEntry => { {modules.map(moduleEntry => {
const indexData = routes.filter(route => route.name === "index") const indexData = routes.filter(route => route.name === "index")
const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0] const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0]
@ -26,6 +22,4 @@ const modules = [...new Set(routes.map(route => route.type))];
</div>) </div>)
})} })}
</div> </div>
</section>
</div>
</DocsLayout> </DocsLayout>

View file

@ -19,6 +19,29 @@
&:not(:last-child) { &:not(:last-child) {
border-bottom: 1px solid hsla(var(--blue) 10 15 / 0.6); border-bottom: 1px solid hsla(var(--blue) 10 15 / 0.6);
} }
& .root-nav-link {
font-size: 1.137rem;
max-height: 2rem;
position: relative;
text-decoration: none;
text-align: center;
&::before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
background: linear-gradient(
90deg,
transparent 25%,
hsla(var(--accent-500) / 0.88) 50%,
transparent 75%
);
}
}
} }
} }
@ -330,6 +353,27 @@ html.dark .typevariants {
display: grid; display: grid;
grid-template-columns: 0.60fr 1.40fr; grid-template-columns: 0.60fr 1.40fr;
& .root-nav-link {
justify-self: start;
height: max-content;
&::before {
width: 0;
background: linear-gradient(
to right,
hsla(var(--accent-400) / 0.5) var(--percent),
hsla(var(--accent-400) / 0) 100%
);
animation: percentToZero 250ms ease-in-out forwards;
transition: width 0.25s ease-in-out;
}
&:hover::before {
animation: percentToFifty 250ms ease-in-out forwards;
width: 100%;
}
}
& .root-nav-desc { & .root-nav-desc {
padding-left: 1rem; padding-left: 1rem;
border-left: 1px solid hsl(var(--blue) 10 15 / 0.6); border-left: 1px solid hsl(var(--blue) 10 15 / 0.6);

View file

@ -28,10 +28,6 @@
&.nav-current { &.nav-current {
color: hsl(var(--nav-selected-text)); color: hsl(var(--nav-selected-text));
background-color: hsl(var(--nav-selected-bkg)); background-color: hsl(var(--nav-selected-bkg));
&:hover {
background-color: hsl(var(--nav-selected-hovered-bkg));
}
} }
} }
@ -83,16 +79,12 @@
} }
& .accordion-container > div { & .accordion-container > div {
padding-left: 1.3em; padding-left: 1.2em;
& p:first-child { & p:first-child {
padding-top: 0; padding-top: 0;
margin-top: 0; margin-top: 0;
} }
& :last-child {
margin-bottom: 0rem;
}
} }
} }