grafana/public/app/core/components/AppChrome/NavLandingPageCard.tsx
Ashley Harrison 6b53f927b2
Navigation: truncate landing page descriptions to 3 lines (#61925)
* truncate landing page descriptions to 3 lines

* use correct css prop names
2023-01-23 17:07:36 +00:00

37 lines
921 B
TypeScript

import { css } from '@emotion/css';
import React from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { Card, useStyles2 } from '@grafana/ui';
interface Props {
description?: string;
text: string;
url: string;
}
export function NavLandingPageCard({ description, text, url }: Props) {
const styles = useStyles2(getStyles);
return (
<Card className={styles.card} href={url}>
<Card.Heading>{text}</Card.Heading>
<Card.Description className={styles.description}>{description}</Card.Description>
</Card>
);
}
const getStyles = (theme: GrafanaTheme2) => ({
card: css({
marginBottom: 0,
gridTemplateRows: '1fr 0 2fr',
}),
// Limit descriptions to 3 lines max before ellipsing
// Some plugin descriptions can be very long
description: css({
WebkitLineClamp: 3,
WebkitBoxOrient: 'vertical',
display: '-webkit-box',
overflow: 'hidden',
}),
});