mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-14 13:22:37 +00:00
Keep gallery cards inside their grid column on phones (#6722)
A card whose description has an unbreakable word, such as xpufx/slash's raw README HTML, sized its grid column to that word and widened browse pages to 564px at a 390px viewport. The card now has min-width 0 and its description wraps long words. Co-authored-by: paseo-bot[bot] <paseo-bot[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
paseo-bot[bot]
parent
7321d8a488
commit
e1b01df905
@@ -24,6 +24,16 @@ test("scrolls mobile plugin carousels without widening the page", async ({ page
|
||||
await expectPageWithinViewport(page);
|
||||
});
|
||||
|
||||
// Graphite's fixture description ends in raw README HTML with an unbreakable srcset URL.
|
||||
test("keeps browse grids within a phone's width when a description has an unbreakable word", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.setViewportSize({ width: 390, height: 844 });
|
||||
await page.goto("/plugins/all");
|
||||
await expect(page.getByRole("heading", { level: 1, name: /^All plugins/ })).toBeVisible();
|
||||
await expectPageWithinViewport(page);
|
||||
});
|
||||
|
||||
async function expectPageWithinViewport(page: Page) {
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth)).toBeLessThanOrEqual(
|
||||
await page.evaluate(() => document.documentElement.clientWidth),
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
{
|
||||
"id": "tomgrin10/graphite",
|
||||
"name": "Graphite",
|
||||
"description": "Workspace-native Graphite stack status and PR action radar for Paseo.",
|
||||
"description": "Workspace-native Graphite stack status and PR action radar for Paseo. <p align=\"center\"> <picture> <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/xpufx/paseo/main/plugins/slash/docs/screenshots/slash-logo-for-dark-bg.png\"> <source media=\"(prefers-color-scheme: light)\" srcset",
|
||||
"artifact": {
|
||||
"kind": "npm",
|
||||
"package": "paseo-graphite",
|
||||
|
||||
@@ -41,13 +41,14 @@ function PluginShot({ plugin }: { plugin: Plugin }) {
|
||||
export function PluginCard({ plugin, children }: { plugin: Plugin; children?: ReactNode }) {
|
||||
const author = getAuthor(plugin);
|
||||
return (
|
||||
<a href={pluginHref(plugin.id)} className="group block">
|
||||
// Grid items size to their content by default; min-w-0 keeps the card in its column.
|
||||
<a href={pluginHref(plugin.id)} className="group block min-w-0">
|
||||
<PluginShot plugin={plugin} />
|
||||
<div className="mt-3 flex items-center gap-2">
|
||||
<PluginTile plugin={plugin} size="xs" />
|
||||
<p className="min-w-0 truncate text-sm font-medium text-white">{plugin.name}</p>
|
||||
</div>
|
||||
<p className="mt-2 line-clamp-2 min-h-10 text-xs leading-5 text-muted-foreground">
|
||||
<p className="mt-2 line-clamp-2 min-h-10 break-words text-xs leading-5 text-muted-foreground">
|
||||
{plugin.description}
|
||||
</p>
|
||||
<p className="mt-2 flex min-w-0 items-center gap-1.5 text-xs text-extra-muted-foreground">
|
||||
|
||||
Reference in New Issue
Block a user