Files
fredy/ui/src/components/cards/KpiCard.jsx

44 lines
1.2 KiB
React
Raw Normal View History

2025-12-14 12:23:59 +01:00
/*
* Copyright (c) 2026 by Christian Kellner.
2025-12-14 12:23:59 +01:00
* Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause
*/
import React from 'react';
import { Card, Typography, Space } from '@douyinfe/semi-ui-19';
2025-12-14 12:23:59 +01:00
import './DashboardCard.less';
export default function KpiCard({
title,
icon,
value,
valueFontSize = '1.5rem',
description,
color = 'gray',
children,
}) {
const { Text } = Typography;
2025-12-14 12:23:59 +01:00
return (
<Card className={`dashboard-card ${color}`} bodyStyle={{ padding: '16px' }}>
<Space vertical align="start" spacing="tight" style={{ width: '100%' }}>
<Space>
<div className="dashboard-card__icon">{icon}</div>
<Text strong className="dashboard-card__title">
{title}
</Text>
</Space>
<div className="dashboard-card__content">
<div className="dashboard-card__value" style={{ fontSize: valueFontSize }}>
{value}
{children}
</div>
{description && (
<Text size="small" type="tertiary" className="dashboard-card__desc">
{description}
</Text>
)}
2025-12-14 12:23:59 +01:00
</div>
</Space>
</Card>
2025-12-14 12:23:59 +01:00
);
}