Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 143 additions & 5 deletions src/components/Button/Button.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,145 @@
import { Button } from "@patternfly/react-core";
import { Button, Flex } from "@patternfly/react-core";
import TimesIcon from "@patternfly/react-icons/dist/esm/icons/times-icon";
import PlusCircleIcon from "@patternfly/react-icons/dist/esm/icons/plus-circle-icon";
import ExternalLinkSquareAltIcon from "@patternfly/react-icons/dist/esm/icons/external-link-square-alt-icon";
import CopyIcon from "@patternfly/react-icons/dist/esm/icons/copy-icon";
import BellIcon from "@patternfly/react-icons/dist/esm/icons/bell-icon";
import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon';

const PfButton=()=>{
return <Button variant="primary">PatternFly Button</Button>
}

export default PfButton;
const PfButton = () => (
<>
<Flex
columnGap={{
default: "columnGapSm",
}}
style={{ marginTop: 20 }}
>
<Button variant="primary" ouiaId="Primary">
Primary
</Button>
<Button variant="secondary" ouiaId="Secondary">
Secondary
</Button>
<Button variant="secondary" ouiaId="DangerSecondary" isDanger>
Danger Secondary
</Button>
<Button variant="tertiary" ouiaId="Tertiary">
Tertiary
</Button>
<Button variant="danger" ouiaId="Danger">
Danger
</Button>
<Button variant="warning" ouiaId="Warning">
Warning
</Button>
</Flex>
<br />
<Flex
columnGap={{
default: "columnGapSm",
}}
>
<Button variant="link" icon={<PlusCircleIcon />}>
Link
</Button>
<Button
variant="link"
icon={<ExternalLinkSquareAltIcon />}
iconPosition="end"
>
Link
</Button>
<Button variant="link" isInline>
Inline link
</Button>
<Button variant="link" isDanger>
Danger link
</Button>
<Button variant="plain" aria-label="Action" icon={<TimesIcon />} />
</Flex>
<br />
<Flex
columnGap={{
default: "columnGapSm",
}}
>
<Button variant="control">Control</Button>
<Button variant="control" aria-label="Copy" icon={<CopyIcon />} />
</Flex>
<br />
<Flex
columnGap={{
default: "columnGapSm",
}}
>
<Button variant="stateful" icon={<BellIcon />} state="read">
Stateful read
</Button>
<Button variant="stateful" icon={<BellIcon />} state="unread">
Stateful unread
</Button>
<Button variant="stateful" icon={<BellIcon />} state="attention">
Stateful attention
</Button>
</Flex>

{/* Disabled Buttons */}
<Flex columnGap={{ default: 'columnGapSm' }} style={{ marginTop: 20 }}>
<Button isDisabled>Primary</Button>
<Button variant="secondary" isDisabled>
Secondary
</Button>
<Button variant="secondary" isDanger isDisabled>
Danger secondary
</Button>
<Button isDisabled variant="tertiary">
Tertiary
</Button>
<Button isDisabled variant="danger">
Danger
</Button>
<Button isDisabled variant="warning">
Warning
</Button>
</Flex>
<br />
<Flex columnGap={{ default: 'columnGapSm' }}>
<Button isDisabled variant="link" icon={<PlusCircleIcon />}>
Link
</Button>
<Button isDisabled variant="link" isInline>
Inline link
</Button>
<Button variant="link" isDanger isDisabled>
Danger link
</Button>
<Button isDisabled variant="plain" aria-label="Action" icon={<TimesIcon />} />
</Flex>
<br />
<Flex columnGap={{ default: 'columnGapSm' }}>
<Button isDisabled variant="control">
Control
</Button>
<Button isDisabled variant="control" aria-label="Copy" icon={<CopyIcon />} />
</Flex>

{/* Call to action */}
<Flex columnGap={{ default: 'columnGapSm' }} style={{ marginTop: 20 }}>
<Button variant="primary" size="lg">
Call to action
</Button>
<Button variant="secondary" size="lg">
Call to action
</Button>
<Button variant="tertiary" size="lg">
Call to action
</Button>
<Button variant="link" size="lg" icon={<ArrowRightIcon />} iconPosition="end">
Call to action
</Button>
</Flex>
</>
);

export default PfButton
20 changes: 20 additions & 0 deletions src/rhds-theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -778,6 +778,26 @@

.pf-v6-c-button {
--pf-v6-c-button--BorderRadius: var(--rh-border-radius-default, 3px);
--pf-v6-c-button--FontSize: var(--rh-font-size-code-md, 16px);
--pf-v6-c-button--PaddingBlockStart: var(--rh-length-sm, 6px);
--pf-v6-c-button--PaddingBlockEnd: var(--rh-length-sm, 6px);
--pf-v6-c-button--PaddingInlineStart: var(--rh-length-lg, 16px);
--pf-v6-c-button--PaddingInlineEnd: var(--rh-length-lg, 16px);
}
.pf-v6-c-button.pf-m-control {
--pf-v6-c-button--BorderRadius: var(--rh-border-radius-sharp, 0);
border-bottom: var(--rh-border-width-sm, 1px) solid #8a8d90;
}
.pf-v6-c-button.pf-m-link.pf-m-inline {
--pf-v6-c-button--FontSize: var(--rh-font-size-code-md, 16px);
}
.pf-v6-c-button.pf-m-display-lg {
--pf-v6-c-button--PaddingBlockStart: var(--rh-length-lg, 16px);
--pf-v6-c-button--PaddingBlockEnd: var(--rh-length-lg, 16px);
--pf-v6-c-button--PaddingInlineStart: var(--rh-length-2xl, 32px);
--pf-v6-c-button--PaddingInlineEnd: var(--rh-length-2xl, 32px);
--pf-v6-c-button--FontSize: var(--rh-font-size-code-md, 16px);
font-weight: var(--rh-font-weight-heading-bold, 700);
}

.pf-v6-c-multiple-file-upload {
Expand Down