From acd63a92351f9241c88341f777a9b4f918c4fca4 Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Fri, 20 Feb 2026 12:53:21 +0100 Subject: [PATCH] liveline: add Link component, OL, remove BackButton, dedent code blocks, spacing tweaks - Add A (link) component with --ll-accent color, bright #58a6ff in dark mode - Add OL (ordered list) component for numbered steps - Remove BackButton from EditorialPage - Use string-dedent for all CodeBlock strings, properly indented in source - Getting started steps as OL with clickable Chrome Web Store link - Star on GitHub link in intro paragraph - Inline heading rule (flex + 1px line) replaces separate Divider - Heading padding 24px top/bottom, article gap 32px - Sidebar TOC item spacing increased to 5px - Centered image captions --- website/src/components/markdown.tsx | 45 ++- website/src/routes/liveline.tsx | 581 +++++++++++++++------------- website/src/styles/liveline.css | 4 + 3 files changed, 353 insertions(+), 277 deletions(-) diff --git a/website/src/components/markdown.tsx b/website/src/components/markdown.tsx index a3bffda..0014a03 100644 --- a/website/src/components/markdown.tsx +++ b/website/src/components/markdown.tsx @@ -114,7 +114,7 @@ export function TableOfContents({ fontWeight: 475, lineHeight: "15.6px", letterSpacing: "-0.04px", - padding: "3px 0", + padding: "5px 0", color: defaultColor, fontFamily: "var(--ll-font-primary)", transition: "color 0.15s ease", @@ -249,6 +249,29 @@ export function Caption({ children }: { children: React.ReactNode }) { ); } +export function A({ href, children }: { href: string; children: React.ReactNode }) { + return ( + { + e.currentTarget.style.textDecoration = "underline"; + }} + onMouseLeave={(e) => { + e.currentTarget.style.textDecoration = "none"; + }} + > + {children} + + ); +} + export function Code({ children }: { children: React.ReactNode }) { return ( @@ -278,6 +301,25 @@ export function Section({ id, title, children }: { id: string; title: string; ch ); } +export function OL({ children }: { children: React.ReactNode }) { + return ( +
    + {children} +
+ ); +} + export function List({ children }: { children: React.ReactNode }) { return (