diff --git a/frontend/src/__tests__/App.test.tsx b/frontend/src/__tests__/App.test.tsx index af6bf619..87703b90 100644 --- a/frontend/src/__tests__/App.test.tsx +++ b/frontend/src/__tests__/App.test.tsx @@ -400,6 +400,7 @@ describe('App', () => { }); it('shows the utility links in a user-focused order', () => { + window.history.replaceState({}, '', 'http://localhost:3000/#result'); render(); fireEvent.click(screen.getByRole('button', { name: 'More' })); @@ -419,7 +420,7 @@ describe('App', () => { ); expect(screen.getByRole('link', { name: 'Try included feeds' })).toHaveAttribute( 'href', - 'https://html2rss.github.io/web-application/how-to/use-included-configs/' + 'https://html2rss.github.io/feed-directory/#!url=http%3A%2F%2Flocalhost%3A3000%2F' ); expect(screen.getByRole('link', { name: 'Install from Docker Hub' })).toHaveAttribute( 'href', diff --git a/frontend/src/components/AppPanels.tsx b/frontend/src/components/AppPanels.tsx index 59a8fd95..cde0cd5a 100644 --- a/frontend/src/components/AppPanels.tsx +++ b/frontend/src/components/AppPanels.tsx @@ -152,16 +152,20 @@ export function CreateFeedPanel({ role="status" aria-label="Included feeds" > +

Included feeds

Try a working included feed
-

Start with one of the embedded configs from this instance:

- {featuredFeeds.map((feed) => ( -

- {feed.title} - {' - '} - {feed.description} -

- ))} -

+

Start with a ready-made feed from this instance.

+ +

{ + const directoryUrl = new URL('https://html2rss.github.io/feed-directory/'); + if (typeof window === 'undefined') return directoryUrl.toString(); + + const instanceUrl = new URL('/', window.location.origin); + directoryUrl.hash = `!url=${encodeURIComponent(instanceUrl.toString())}`; + return directoryUrl.toString(); + })(); if (hidden) return null; @@ -270,12 +282,7 @@ export function UtilityStrip({ {isOpen && (

- + Try included feeds diff --git a/frontend/src/styles/main.css b/frontend/src/styles/main.css index b245f868..0389addc 100644 --- a/frontend/src/styles/main.css +++ b/frontend/src/styles/main.css @@ -345,6 +345,55 @@ a:focus-visible { font-weight: var(--text-strong); } +.notice__intro, +.notice__meta { + color: var(--text-muted); +} + +.featured-feed-list { + display: grid; + gap: var(--space-3); +} + +.featured-feed-item { + padding: var(--space-3); + border: var(--border-default); + border-radius: var(--radius-md); + background: var(--surface-elevated); +} + +.featured-feed-item__link { + display: grid; + gap: var(--space-1); + transition: + border-color var(--transition-fast), + background-color var(--transition-fast), + transform var(--transition-fast); +} + +.featured-feed-item:hover, +.featured-feed-item:focus-within { + border-color: var(--border-strong); + background: rgba(255, 255, 255, 0.065); +} + +.featured-feed-item__link:hover, +.featured-feed-item__link:focus-visible { + text-decoration: none; + transform: translateY(-0.04rem); +} + +.featured-feed-item__title { + color: var(--text-strong); + font-size: var(--font-size-1); + font-weight: 600; +} + +.featured-feed-item__description { + color: var(--text-muted); + line-height: 1.4; +} + .notice[data-tone="error"] { border-color: rgba(248, 113, 113, 0.22); background: var(--bg-danger); diff --git a/public/shared-ui.css b/public/shared-ui.css index 29145f8d..003588a4 100644 --- a/public/shared-ui.css +++ b/public/shared-ui.css @@ -1,8 +1,8 @@ /* Shared design-system primitives for both the app UI and RSS/XSL surfaces. See docs/design-system.md before changing this file. */ :root { color-scheme: dark; - --font-family-ui: "IBM Plex Sans", "Avenir Next", "Segoe UI", sans-serif; - --font-family-display: "Fraunces", "Iowan Old Style", "Georgia", serif; + --font-family-ui: system-ui, -apple-system, "Segoe UI", sans-serif; + --font-family-display: system-ui, -apple-system, "Segoe UI", sans-serif; --font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; --font-size-00: 0.8125rem; --font-size-0: 0.9375rem;