add css classes to elements to ease css customization

This commit is contained in:
Athou
2025-04-23 13:56:11 +02:00
parent d6a1f1ae15
commit d417655a86
7 changed files with 25 additions and 15 deletions

View File

@@ -187,7 +187,7 @@ export function FeedEntry(props: FeedEntryProps) {
<Box className={classes.body}> <Box className={classes.body}>
<FeedEntryBody entry={props.entry} /> <FeedEntryBody entry={props.entry} />
</Box> </Box>
<Divider variant="dashed" my={paddingY} /> <Divider variant="dashed" my={paddingY} className="cf-footer-divider" />
<FeedEntryFooter entry={props.entry} /> <FeedEntryFooter entry={props.entry} />
</Box> </Box>
)} )}

View File

@@ -37,7 +37,7 @@ export function FeedEntryFooter(props: FeedEntryFooterProps) {
) )
return ( return (
<Group justify="space-between"> <Group justify="space-between" className="cf-footer">
<Group gap={spacing}> <Group gap={spacing}>
{props.entry.markable && ( {props.entry.markable && (
<ActionButton <ActionButton

View File

@@ -29,8 +29,8 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
read: props.entry.read, read: props.entry.read,
}) })
return ( return (
<Box> <Box className="cf-header">
<Flex align="flex-start" justify="space-between"> <Flex align="flex-start" justify="space-between" className="cf-header-title">
<Flex align="flex-start" className={classes.main}> <Flex align="flex-start" className={classes.main}>
{props.showStarIcon && ( {props.showStarIcon && (
<Box ml={-5}> <Box ml={-5}>
@@ -41,7 +41,7 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
</Flex> </Flex>
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />} {props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
</Flex> </Flex>
<Flex align="center"> <Flex align="center" className="cf-header-subtitle">
<FeedFavicon url={props.entry.iconUrl} /> <FeedFavicon url={props.entry.iconUrl} />
<Space w={6} /> <Space w={6} />
<Box c="dimmed"> <Box c="dimmed">
@@ -51,7 +51,7 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
</Box> </Box>
</Flex> </Flex>
{props.expanded && ( {props.expanded && (
<Box c="dimmed"> <Box className="cf-header-details">
{props.entry.author && <span>by {props.entry.author}</span>} {props.entry.author && <span>by {props.entry.author}</span>}
{props.entry.author && props.entry.categories && <span>&nbsp;·&nbsp;</span>} {props.entry.author && props.entry.categories && <span>&nbsp;·&nbsp;</span>}
{props.entry.categories && <span>{props.entry.categories}</span>} {props.entry.categories && <span>{props.entry.categories}</span>}

View File

@@ -42,11 +42,14 @@ function HeaderToolbar(props: { children: React.ReactNode }) {
display: "flex", display: "flex",
justifyContent: "space-between", justifyContent: "space-between",
}} }}
className="cf-toolbar"
> >
{props.children} {props.children}
</Box> </Box>
) : ( ) : (
<Group gap={spacing}>{props.children}</Group> <Group gap={spacing} className="cf-toolbar">
{props.children}
</Group>
) )
} }
@@ -75,7 +78,7 @@ export function Header() {
if (!settings) return <Loader /> if (!settings) return <Loader />
return ( return (
<Center> <Center className="cf-toolbar-wrapper">
<HeaderToolbar> <HeaderToolbar>
<ActionButton <ActionButton
icon={<TbArrowUp size={iconSize} />} icon={<TbArrowUp size={iconSize} />}

View File

@@ -68,18 +68,18 @@ export function TreeNode(props: TreeNodeProps) {
<Box <Box
py={1} py={1}
pl={props.level * 20} pl={props.level * 20}
className={classes.node} className={`${classes.node} cf-treenode`}
onClick={(e: React.MouseEvent) => props.onClick(e, props.id)} onClick={(e: React.MouseEvent) => props.onClick(e, props.id)}
data-id={props.id} data-id={props.id}
data-type={props.type} data-type={props.type}
data-unread-count={props.unread} data-unread-count={props.unread}
> >
<Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)}> <Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)} className="cf-treenode-icon">
<Center>{typeof props.icon === "string" ? <FeedFavicon url={props.icon} /> : props.icon}</Center> <Center>{typeof props.icon === "string" ? <FeedFavicon url={props.icon} /> : props.icon}</Center>
</Box> </Box>
<Box className={classes.nodeText}>{props.name}</Box> <Box className={classes.nodeText}>{props.name}</Box>
{!props.expanded && ( {!props.expanded && (
<Box> <Box className="cf-treenode-unread-count">
<UnreadCount unreadCount={props.unread} /> <UnreadCount unreadCount={props.unread} />
</Box> </Box>
)} )}

View File

@@ -18,7 +18,7 @@ export function UnreadCount(props: { unreadCount: number }) {
const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount
return ( return (
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}> <Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}>
<Badge className={classes.badge} variant="light" fullWidth> <Badge className={`${classes.badge} cf-badge`} variant="light" fullWidth>
{count} {count}
</Badge> </Badge>
</Tooltip> </Tooltip>

View File

@@ -35,9 +35,16 @@ interface LayoutProps {
function LogoAndTitle() { function LogoAndTitle() {
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
return ( return (
<Center inline onClick={async () => await dispatch(redirectToRootCategory())} style={{ cursor: "pointer" }}> <Center
<Logo size={24} /> className="cf-logo-title"
<Title order={3} pl="md"> inline
onClick={async () => await dispatch(redirectToRootCategory())}
style={{ cursor: "pointer" }}
>
<Box className="cf-logo">
<Logo size={24} />
</Box>
<Title order={3} pl="md" className="cf-title">
CommaFeed CommaFeed
</Title> </Title>
</Center> </Center>