┌─ outputs/pkgs/website/src/content/paper/_index.md ─────────────────────────┐│ diff --git a/outputs/pkgs/website/src/content/paper/_index.md b/outputs/pkgs/websi ││ te/src/content/paper/_index.md ││ new file mode 100644 ││ index 0000000..37c5a21 ││ --- /dev/null ││ +++ b/outputs/pkgs/website/src/content/paper/_index.md ││ @@ -0,0 +1,5 @@ ││ ++++ ││ +title = "ooknet" ││ +description = "ooknet is a personal website, a monorepo, a place to store my note ││ s; all powered by nix." ││ +template = "paper.html" ││ ++++ │└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...e/src/content/paper/_index.md ───┐│ diff --git a/outputs/pkgs/website/src/conten ││ t/paper/_index.md b/outputs/pkgs/website/src ││ /content/paper/_index.md ││ new file mode 100644 ││ index 0000000..37c5a21 ││ --- /dev/null ││ +++ b/outputs/pkgs/website/src/content/paper ││ /_index.md ││ @@ -0,0 +1,5 @@ ││ ++++ ││ +title = "ooknet" ││ +description = "ooknet is a personal website ││ , a monorepo, a place to store my notes; all ││ powered by nix." ││ +template = "paper.html" ││ ++++ │└──────────────────────────────────────────────┘
┌─ outputs/pkgs/website/src/sass/pages/_home.scss ───────────────────────────┐│ diff --git a/outputs/pkgs/website/src/sass/pages/_home.scss b/outputs/pkgs/website ││ /src/sass/pages/_home.scss ││ index d740a9d..b974f8d 100644 ││ --- a/outputs/pkgs/website/src/sass/pages/_home.scss ││ +++ b/outputs/pkgs/website/src/sass/pages/_home.scss ││ @@ -3,7 +3,7 @@ html { ││ scroll-padding-top: $navbar-height; ││ } ││ .home { ││ - margin: 50px; ││ + margin: 0px; ││ display: flex; ││ flex-wrap: wrap; ││ align-content: center; ││ @@ -20,60 +20,112 @@ html { ││ } ││ .notebook { ││ display: flex; ││ - flex-direction: column; ││ - width: 100vw; ││ - margin-top: $navbar-height; ││ - min-height: 100vh; ││ - padding: 12px; ││ - ││ - .sidebar { ││ - width: 100%; ││ - display: none; ││ - flex-shrink: 0; ││ - height: auto; ││ - } ││ + flex-direction: column; // Stacks .notebook__main-area and .sidebar vertically ││ + width: 100%; // Or 100vw if you want full viewport width strictly ││ + min-height: 100vh; // Ensures it tries to fill viewport height ││ + margin-top: $navbar-height; // Top margin for the whole notebook ││ + padding: 0px; // Padding for the whole notebook (children are inside this) ││ + box-sizing: border-box; // Good practice with padding and width: 100% ││ +} ││ ││ - .content { ││ - width: 100%; ││ - flex-grow: 1; ││ - overflow-y: auto; ││ - } ││ +// Wrapper for binder edge and main content, sits inside .notebook ││ +.notebook__main-area { ││ + display: flex; ││ + flex-direction: row; // Lays out .binder-edge and .content side-by-side ││ + flex-grow: 1; // This area takes up available vertical space within .n ││ otebook ││ + width: 100%; // Takes full width available within .notebook's padding ││ + // min-height: 0; // Sometimes helpful for nested flex containers to preve ││ nt them from expanding parent ││ +} ││ ││ - &--menu-toggled .sidebar { ││ - display: block; ││ - } ││ +// The binder edge itself ││ +.binder-edge { ││ + width: 50px; ││ + flex-shrink: 0; // Prevents it from shrinking ││ + background-color: var(--clr-mantle); ││ + border-right: 1px dashed var(--clr-text); ││ + ││ + --hole-diameter: 10px; ││ + --hole-radius: calc(var(--hole-diameter) / 2); ││ + --hole-border-width: 1px; // Keep this as the INTENDED border width ││ + --hole-full-radius: calc(var(--hole-radius) + var(--hole-border-width)); ││ + ││ + // NEW: Define a tiny unit for smoothing, can be less than 1px for subtle effec ││ t ││ + --smooth-unit: 0.3px; // Or 1px, experiment with this value ││ + ││ + --hole-bg-color: var(--clr-mantle); ││ + --hole-border-color: var(--clr-text); ││ + --hole-spacing: 50px; ││ + --hole-offset-top: 40px; ││ + ││ + background-image: radial-gradient( ││ + circle at center, ││ + var(--hole-bg-color) 0, / ││ / Start of hole fill ││ + var(--hole-bg-color) var(--hole-radius), / ││ / End of hole fill (sharp stop) ││ + ││ + // Transition from hole-fill to hole-border ││ + var(--hole-border-color) calc(var(--hole-radius) + var(--smooth-unit)), ││ // Start of hole border, slightly offset ││ + ││ + var(--hole-border-color) var(--hole-full-radius), / ││ / End of hole border (sharp stop) ││ + ││ + // Transition from hole-border to transparent ││ + transparent calc(var(--hole-full-radius) + var(--smooth-unit)) / ││ / Start of transparency, slightly offset ││ + ); ││ + ││ + background-repeat: repeat-y; ││ + // The background-size should still be based on the *visual* size you want ││ + background-size: 100% var(--hole-spacing); ││ + background-position: 50% var(--hole-offset-top); ││ + ││ + // CRITICAL: Ensure image-rendering is not pixelated ││ +} ││ + ││ +// Main content area, sits next to binder-edge ││ +// Targets .content when it's a direct child of .notebook__main-area ││ +.notebook__main-area > .content { ││ + flex-grow: 1; // Takes up remaining horizontal space ││ + overflow-y: auto; // Allows content to scroll vertically if it overflows ││ + min-width: 0; // Important for flex items to prevent issues with long conte ││ nt ││ + padding: 20px; // Inner padding for the text content block (adjust as needed ││ ) ││ + // This is separate from .notebook's overall padding ││ } ││ ││ +// Sidebar styles (assuming sidebar is a direct child of .notebook) ││ +.notebook .sidebar { ││ + width: 100%; // Or a fixed width like 250px if it's a vertical sidebar ││ + display: none; // Hidden by default ││ + flex-shrink: 0; ││ + // height: auto; // Not usually needed if content determines height ││ +} ││ + ││ +// Toggle sidebar visibility (if .notebook--menu-toggled is on the .notebook div) ││ +.notebook--menu-toggled .sidebar { ││ + display: block; ││ +} ││ + ││ +// --- Responsive Adjustments --- ││ @media (min-width: 800px) { ││ .notebook { ││ - overflow: hidden; ││ - .sidebar { ││ - position: fixed; ││ - display: flex; ││ - top: calc($navbar-height + 10px); ││ - left: 10px; ││ - align-self: start; ││ - height: calc(100vh - 70px); ││ - width: $sidebar-width; ││ - overflow-y: auto; ││ - } ││ + // overflow: hidden; // Only if you specifically need to clip content at .not ││ ebook level ││ ││ - .content { ││ - flex: 1; ││ - margin-left: calc($sidebar-width + 10px); ││ - padding: $spacer 10%; ││ - max-width: calc(100% - $sidebar-width); ││ - align-items: center; ││ + // Adjust .content padding on larger screens ││ + // Original selector: .notebook .content ││ + // New more specific selector: ││ + .notebook__main-area > .content { ││ + padding: $spacer 10%; // Your desired padding for larger screens ││ } ││ ││ - &--menu-toggled { ││ - .content { ││ - margin-left: 0; ││ - max-width: 100%; ││ - padding: 10px 10%; ││ + // Styles for when menu is toggled on larger screens ││ + &--menu-toggled { // This means .notebook.notebook--menu-toggled ││ + // Original selector: .notebook--menu-toggled .content ││ + .notebook__main-area > .content { ││ + margin-left: 0; // Adjust if sidebar normally pushes content ││ + max-width: 100%; // Ensure it can take full width ││ + padding: 10px 10%; // Specific padding for this state ││ } ││ + ││ + // Original selector: .notebook--menu-toggled .sidebar ││ .sidebar { ││ - display: none; ││ + display: none; // Hide sidebar if that's the intent on large screens when ││ toggled ││ } ││ } ││ } │└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ite/src/sass/pages/_home.scss ───┐│ diff --git a/outputs/pkgs/website/src/sass/p ││ ages/_home.scss b/outputs/pkgs/website/src/s ││ ass/pages/_home.scss ││ index d740a9d..b974f8d 100644 ││ --- a/outputs/pkgs/website/src/sass/pages/_h ││ ome.scss ││ +++ b/outputs/pkgs/website/src/sass/pages/_h ││ ome.scss ││ @@ -3,7 +3,7 @@ html { ││ scroll-padding-top: $navbar-height; ││ } ││ .home { ││ - margin: 50px; ││ + margin: 0px; ││ display: flex; ││ flex-wrap: wrap; ││ align-content: center; ││ @@ -20,60 +20,112 @@ html { ││ } ││ .notebook { ││ display: flex; ││ - flex-direction: column; ││ - width: 100vw; ││ - margin-top: $navbar-height; ││ - min-height: 100vh; ││ - padding: 12px; ││ - ││ - .sidebar { ││ - width: 100%; ││ - display: none; ││ - flex-shrink: 0; ││ - height: auto; ││ - } ││ + flex-direction: column; // Stacks .notebo ││ ok__main-area and .sidebar vertically ││ + width: 100%; // Or 100vw if you want full ││ viewport width strictly ││ + min-height: 100vh; // Ensures it tries to ││ fill viewport height ││ + margin-top: $navbar-height; // Top margin ││ for the whole notebook ││ + padding: 0px; // Padding for the whole no ││ tebook (children are inside this) ││ + box-sizing: border-box; // Good practice ││ with padding and width: 100% ││ +} ││ ││ - .content { ││ - width: 100%; ││ - flex-grow: 1; ││ - overflow-y: auto; ││ - } ││ +// Wrapper for binder edge and main content ││ , sits inside .notebook ││ +.notebook__main-area { ││ + display: flex; ││ + flex-direction: row; // Lays out .binde ││ r-edge and .content side-by-side ││ + flex-grow: 1; // This area takes ││ up available vertical space within .noteboo ││ k ││ + width: 100%; // Takes full widt ││ h available within .notebook's padding ││ + // min-height: 0; // Sometimes helpf ││ ul for nested flex containers to prevent the ││ m from expanding parent ││ +} ││ ││ - &--menu-toggled .sidebar { ││ - display: block; ││ - } ││ +// The binder edge itself ││ +.binder-edge { ││ + width: 50px; ││ + flex-shrink: 0; // Prevents it from shrin ││ king ││ + background-color: var(--clr-mantle); ││ + border-right: 1px dashed var(--clr-text); ││ + ││ + --hole-diameter: 10px; ││ + --hole-radius: calc(var(--hole-diameter) ││ / 2); ││ + --hole-border-width: 1px; // Keep this as ││ the INTENDED border width ││ + --hole-full-radius: calc(var(--hole-radiu ││ s) + var(--hole-border-width)); ││ + ││ + // NEW: Define a tiny unit for smoothing, ││ can be less than 1px for subtle effect ││ + --smooth-unit: 0.3px; // Or 1px, experime ││ nt with this value ││ + ││ + --hole-bg-color: var(--clr-mantle); ││ + --hole-border-color: var(--clr-text); ││ + --hole-spacing: 50px; ││ + --hole-offset-top: 40px; ││ + ││ + background-image: radial-gradient( ││ + circle at center, ││ + var(--hole-bg-color) 0, ││ // Star ││ t of hole fill ││ + var(--hole-bg-color) var(--hole-radius) ││ , // End ││ of hole fill (sharp stop) ││ + ││ + // Transition from hole-fill to hole-bo ││ rder ││ + var(--hole-border-color) calc(var(--hol ││ e-radius) + var(--smooth-unit)), // Sta ││ rt of hole border, slightly offset ││ + ││ + var(--hole-border-color) var(--hole-ful ││ l-radius), // End ││ of hole border (sharp stop) ││ + ││ + // Transition from hole-border to trans ││ parent ││ + transparent calc(var(--hole-full-radius ││ ) + var(--smooth-unit)) // Star ││ t of transparency, slightly offset ││ + ); ││ + ││ + background-repeat: repeat-y; ││ + // The background-size should still be ba ││ sed on the *visual* size you want ││ + background-size: 100% var(--hole-spacing) ││ ; ││ + background-position: 50% var(--hole-offse ││ t-top); ││ + ││ + // CRITICAL: Ensure image-rendering is no ││ t pixelated ││ +} ││ + ││ +// Main content area, sits next to binder-e ││ dge ││ +// Targets .content when it's a direct chil ││ d of .notebook__main-area ││ +.notebook__main-area > .content { ││ + flex-grow: 1; // Takes up remaining h ││ orizontal space ││ + overflow-y: auto; // Allows content to sc ││ roll vertically if it overflows ││ + min-width: 0; // Important for flex i ││ tems to prevent issues with long content ││ + padding: 20px; // Inner padding for th ││ e text content block (adjust as needed) ││ + // This is separate fro ││ m .notebook's overall padding ││ } ││ ││ +// Sidebar styles (assuming sidebar is a di ││ rect child of .notebook) ││ +.notebook .sidebar { ││ + width: 100%; // Or a fixed width like 250 ││ px if it's a vertical sidebar ││ + display: none; // Hidden by default ││ + flex-shrink: 0; ││ + // height: auto; // Not usually needed if ││ content determines height ││ +} ││ + ││ +// Toggle sidebar visibility (if .notebook- ││ -menu-toggled is on the .notebook div) ││ +.notebook--menu-toggled .sidebar { ││ + display: block; ││ +} ││ + ││ +// --- Responsive Adjustments --- ││ @media (min-width: 800px) { ││ .notebook { ││ - overflow: hidden; ││ - .sidebar { ││ - position: fixed; ││ - display: flex; ││ - top: calc($navbar-height + 10px); ││ - left: 10px; ││ - align-self: start; ││ - height: calc(100vh - 70px); ││ - width: $sidebar-width; ││ - overflow-y: auto; ││ - } ││ + // overflow: hidden; // Only if you spe ││ cifically need to clip content at .notebook ││ level ││ ││ - .content { ││ - flex: 1; ││ - margin-left: calc($sidebar-width + 10 ││ px); ││ - padding: $spacer 10%; ││ - max-width: calc(100% - $sidebar-width ││ ); ││ - align-items: center; ││ + // Adjust .content padding on larger sc ││ reens ││ + // Original selector: .notebook .conten ││ t ││ + // New more specific selector: ││ + .notebook__main-area > .content { ││ + padding: $spacer 10%; // Your desired ││ padding for larger screens ││ } ││ ││ - &--menu-toggled { ││ - .content { ││ - margin-left: 0; ││ - max-width: 100%; ││ - padding: 10px 10%; ││ + // Styles for when menu is toggled on l ││ arger screens ││ + &--menu-toggled { // This means .notebo ││ ok.notebook--menu-toggled ││ + // Original selector: .notebook--menu ││ -toggled .content ││ + .notebook__main-area > .content { ││ + margin-left: 0; // Adjust if sideba ││ r normally pushes content ││ + max-width: 100%; // Ensure it can t ││ ake full width ││ + padding: 10px 10%; // Specific padd ││ ing for this state ││ } ││ + ││ + // Original selector: .notebook--menu ││ -toggled .sidebar ││ .sidebar { ││ - display: none; ││ + display: none; // Hide sidebar if t ││ hat's the intent on large screens when toggl ││ ed ││ } ││ } ││ } │└──────────────────────────────────────────────┘