Compare commits

...

2 commits

Author SHA1 Message Date
84703e3117
fix module listing style 2024-10-24 21:43:29 -07:00
cafdf14928
refactor nav files + tiny css fixes 2024-10-24 21:41:25 -07:00
10 changed files with 37 additions and 114 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.astro"; import Nav from "@components/navigation/sidebars/nav/index.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

@ -94,53 +94,6 @@ 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,5 +1,5 @@
--- ---
import Accordion from "./Accordion.astro"; import Accordion from "@components/Accordion.astro";
import navMarker from "@icons/nav-marker.svg?raw"; import navMarker from "@icons/nav-marker.svg?raw";
interface Props { interface Props {

View file

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

View file

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

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.astro"; import Nav from "@components/navigation/sidebars/nav/index.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 + " Type Documentation"} title={route.type + " Module Types"}
description="Quickshell Type Documentation" description="Quickshell Type Documentation"
> >
<div class="docs-content"> <div class="docs-content">

View file

@ -6,20 +6,26 @@ 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 Type Definitions" description="Quickshell Type Documentation"> <DocsLayout title="Quickshell Module Listing" description="Quickshell Type Documentation">
<h2>Type Definitions</h2> <div class="docs-content">
<div class="root-nav"> <hr/>
{modules.map(moduleEntry => { <h2>Module Listing</h2>
const indexData = routes.filter(route => route.name === "index") <section>
const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0] <span>All modules included with Quickshell</span>
const description = indexSingled.data.description <div class="root-nav" data-pagefind-ignore>
return ( {modules.map(moduleEntry => {
<div class="root-nav-entry"> const indexData = routes.filter(route => route.name === "index")
<a class="root-nav-link" href={`/docs/types/${moduleEntry}`}> const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0]
{moduleEntry} const description = indexSingled.data.description
</a> return (
<span class="root-nav-desc">{description}</span> <div class="root-nav-entry">
</div>) <a class="root-nav-link" href={`/docs/types/${moduleEntry}`}>
})} {moduleEntry}
</a>
<span class="root-nav-desc">{description}</span>
</div>)
})}
</div>
</section>
</div> </div>
</DocsLayout> </DocsLayout>

View file

@ -19,29 +19,6 @@
&: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%
);
}
}
} }
} }
@ -353,27 +330,6 @@ 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,6 +28,10 @@
&.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));
}
} }
} }
@ -79,12 +83,16 @@
} }
& .accordion-container > div { & .accordion-container > div {
padding-left: 1.2em; padding-left: 1.3em;
& p:first-child { & p:first-child {
padding-top: 0; padding-top: 0;
margin-top: 0; margin-top: 0;
} }
& :last-child {
margin-bottom: 0rem;
}
} }
} }