Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
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
4 changes: 4 additions & 0 deletions src/patternfly/components/Button/button-icon.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
{{#if button--IsFavorite}}
<span class="{{pfv}}button__icon-favorite">{{> icon-outlined-star}}</span>
<span class="{{pfv}}button__icon-favorited">{{> icon-star}}</span>
{{else if button--IsSettings}}
<i class="fas fa-cog" aria-hidden="true"></i>
{{else if button--IsHamburger}}
{{> hamburger-icon}}
{{else if button--icon}}
<i class="fas fa-{{button--icon}}" aria-hidden="true"></i>
{{else if button--icon-template}}
Expand Down
18 changes: 10 additions & 8 deletions src/patternfly/components/Button/button.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
button--IsFavorited='pf-m-favorited'
button--IsDisplayLg='pf-m-display-lg'
button--IsBlock='pf-m-block'
button--IsSettings='pf-m-settings'
button--IsHamburger='pf-m-hamburger'
button--modifier=button--modifier
}}
{{#if button--IsDisabled}}
Expand Down Expand Up @@ -81,16 +83,16 @@
{{#if button--IsInProgress}}
{{> button-progress}}
{{/if}}
{{#ifAny button--IsIcon button--IsFavorite}} {{! button only has an icon - eg, no text}}
{{#ifAny button--icon button--icon-template button--IsFavorite}}
{{> button-icon}}
{{else if @partial-block}}
{{#if button--IsIcon}} {{! button only has an icon - eg, no text}}
{{#if @partial-block}}
{{#> button-icon}}
{{> @partial-block}}
{{/button-icon}}
{{/ifAny}}
{{else}}
{{> button-icon}}
{{/if}}
{{else}}
{{#ifAny button--icon button--icon-template button--IsFavorite}}
{{#ifAny button--icon button--icon-template}}
{{#unless button-icon--IsEnd}}
{{> button-icon}}
{{/unless}}
Expand All @@ -104,12 +106,12 @@
{{/button-text}}
{{/if}}
{{/if}}
{{#ifAny button--icon button--icon-template button--IsFavorite}}
{{#ifAny button--icon button--icon-template}}
{{#if button-icon--IsEnd}}
{{> button-icon}}
{{/if}}
{{/ifAny}}
{{/ifAny}}
{{/if}}
{{#if button--count}}
{{> button-count}}
{{/if}}
Expand Down
105 changes: 103 additions & 2 deletions src/patternfly/components/Button/button.scss
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
--#{$button}--TextDecorationLine: none;
--#{$button}--TextDecorationStyle: none;
--#{$button}--TextDecorationColor: currentcolor;
--#{$button}--TransitionDelay: 0s;
--#{$button}--TransitionDuration: var(--pf-t--global--motion--duration--fade--default);
--#{$button}--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--accelerate);
--#{$button}--TransitionProperty: color, background, border-width, border-color;
Expand Down Expand Up @@ -271,7 +272,7 @@
--#{$button}--disabled--BorderColor: transparent;
--#{$button}--disabled__icon--Color: var(--pf-t--global--icon--color--on-disabled);

// Icons
// Icon
--#{$button}__icon--Color: var(--pf-t--global--icon--color--regular);
--#{$button}--hover__icon--Color: var(--pf-t--global--icon--color--regular);
--#{$button}--m-clicked__icon--Color: var(--pf-t--global--icon--color--regular);
Expand All @@ -281,6 +282,16 @@
--#{$button}__icon--m-end--MarginInlineStart: 0;
--#{$button}--m-notify__icon--AnimationDuration--notify: var(--pf-t--global--motion--duration--3xl);
--#{$button}--m-notify__icon--AnimationTimingFunction--notify: var(--pf-t--global--motion--timing-function--default);
--#{$button}__icon--TransitionDelay: 0s;
--#{$button}__icon--TransitionTimingFunction: auto;
--#{$button}__icon--TransitionDuration: 0s;
--#{$button}__icon--TransitionProperty: none;
--#{$button}__icon--Rotate: 0deg;
--#{$button}__icon--Scale: 1;
--#{$button}--hover__icon--TransitionTimingFunction: auto;
--#{$button}--hover__icon--TransitionDuration: 0s;
--#{$button}--hover__icon--TransitionProperty: none;
--#{$button}--hover__icon--Rotate: 0deg;

// Favorite button
--#{$button}--m-favorite__icon--TransitionDuration: var(--pf-t--global--motion--duration--icon--default);
Expand Down Expand Up @@ -311,12 +322,35 @@
--#{$button}--m-in-progress--m-plain__progress--InsetInlineStart: 50%;
--#{$button}--m-in-progress--m-plain__progress--TranslateX: -50%;

// Settings
--#{$button}--m-settings__icon--TransitionDuration: var(--pf-t--global--motion--duration--icon--long);
--#{$button}--m-settings__icon--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--accelerate);
--#{$button}--m-settings--hover__icon--TransitionDuration: var(--pf-t--global--motion--duration--icon--long);
--#{$button}--m-settings--hover__icon--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
--#{$button}--m-settings--hover__icon--Rotate: 60deg;

// Count
--#{$button}--m-primary__c-badge--BorderColor: var(--pf-t--global--border--color--default);

// Block
--#{$button}--m-block--Display: flex;
--#{$button}--m-block--Width: 100%;

// Hamburger
--#{$button}--hamburger-icon--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
--#{$button}--hamburger-icon--TransitionDuration: var(--pf-t--global--motion--duration--md);
--#{$button}--hamburger-icon--top--path--base: path("M1,1 L9,1");
--#{$button}--hamburger-icon--middle--path--base: path("M1,5 L9,5");
--#{$button}--hamburger-icon--arrow--path--base: path("M1,5 L1,5 L1,5");
--#{$button}--hamburger-icon--bottom--path--base: path("M9,9 L1,9");
--#{$button}--hamburger-icon--top--path: var(--#{$button}--hamburger-icon--top--path--base);
--#{$button}--hamburger-icon--middle--path: var(--#{$button}--hamburger-icon--middle--path--base);
--#{$button}--hamburger-icon--arrow--path: var(--#{$button}--hamburger-icon--arrow--path--base);
--#{$button}--hamburger-icon--bottom--path: var(--#{$button}--hamburger-icon--bottom--path--base);
--#{$button}--hamburger-icon--top--collapse--path: path("M5,1 L9,1");
--#{$button}--hamburger-icon--arrow--collapse--path: path("M3,7 L1,5 L3,3");
--#{$button}--hamburger-icon--bottom--collapse--path: path("M9,9 L5,9");
--#{$button}--m-hamburger__icon--m-expand--Scale: -1;
}

.#{$button} {
Expand Down Expand Up @@ -350,9 +384,11 @@
border-start-end-radius: var(--#{$button}--BorderStartEndRadius, var(--#{$button}--BorderRadius));
border-end-start-radius: var(--#{$button}--BorderEndStartRadius, var(--#{$button}--BorderRadius));
border-end-end-radius: var(--#{$button}--BorderEndEndRadius, var(--#{$button}--BorderRadius));
transition-delay: var(--#{$button}--TransitionDelay);
transition-timing-function: var(--#{$button}--TransitionTimingFunction);
transition-duration: var(--#{$button}--TransitionDuration);
transition-property: var(--#{$button}--TransitionProperty);
scale: var(--#{$button}--Scale, revert);

&::after {
position: absolute;
Expand Down Expand Up @@ -632,7 +668,7 @@

&.pf-m-block {
--#{$button}--Display: var(--#{$button}--m-block--Display);

width: var(--#{$button}--m-block--Width);
}

Expand Down Expand Up @@ -661,7 +697,9 @@
// Favorite button when favorited
&.pf-m-favorited {
--#{$button}__icon--Color: var(--#{$button}--m-favorited__icon--Color);
--#{$button}--m-plain--m-no-padding__icon--Color: var(--#{$button}--m-favorited__icon--Color);
--#{$button}--hover__icon--Color: var(--#{$button}--m-favorited--hover__icon--Color);
--#{$button}--m-plain--m-no-padding--hover__icon--Color: var(--#{$button}--m-favorited--hover__icon--Color);
--#{$button}__icon--favorite--Opacity: var(--#{$button}--m-favorited__icon--favorite--Opacity);
--#{$button}__icon--favorited--Opacity: var(--#{$button}--m-favorited__icon--favorited--Opacity);
}
Expand All @@ -673,6 +711,33 @@
animation-timing-function: var(--#{$button}--m-favorited__icon--AnimationTimingFunction);
}

&.pf-m-settings {
--#{$button}__icon--TransitionProperty: rotate;
--#{$button}__icon--TransitionDuration: var(--#{$button}--m-settings__icon--TransitionDuration);
--#{$button}__icon--TransitionTimingFunction: var(--#{$button}--m-settings__icon--TransitionTimingFunction);
--#{$button}--hover__icon--TransitionProperty: rotate;
--#{$button}--hover__icon--TransitionDuration: var(--#{$button}--m-settings--hover__icon--TransitionDuration);
--#{$button}--hover__icon--TransitionTimingFunction: var(--#{$button}--m-settings--hover__icon--TransitionTimingFunction);
--#{$button}--hover__icon--Rotate: var(--#{$button}--m-settings--hover__icon--Rotate);
}

&.pf-m-hamburger {
--#{$button}__icon--TransitionDelay: var(--#{$button}--hamburger-icon--TransitionDuration);
--#{$button}__icon--TransitionDuration: 0s;
--#{$button}__icon--TransitionProperty: scale;
--#{$button}--hover__icon--TransitionDelay: var(--#{$button}--hamburger-icon--TransitionDuration);
--#{$button}--hover__icon--TransitionDuration: 0s;
--#{$button}--hover__icon--TransitionProperty: scale;

&.pf-m-expand {
@include pf-v6-hamburger;
}

&.pf-m-collapse {
@include pf-v6-hamburger($collapse: true);
}
}

&:hover,
&:focus {
--#{$button}--Color: var(--#{$button}--hover--Color);
Expand All @@ -681,6 +746,10 @@
--#{$button}--BorderWidth: var(--#{$button}--hover--BorderWidth);
--#{$button}--m-plain--m-no-padding__icon--Color: var(--#{$button}--m-plain--m-no-padding--hover__icon--Color);
--#{$button}__icon--Color: var(--#{$button}--hover__icon--Color);
--#{$button}__icon--TransitionTimingFunction: var(--#{$button}--hover__icon--TransitionTimingFunction);
--#{$button}__icon--TransitionDuration: var(--#{$button}--hover__icon--TransitionDuration);
--#{$button}__icon--TransitionProperty: var(--#{$button}--hover__icon--TransitionProperty);
--#{$button}__icon--Rotate: var(--#{$button}--hover__icon--Rotate);

text-decoration-line: var(--#{$button}--hover--TextDecorationLine);
text-decoration-style: var(--#{$button}--hover--TextDecorationStyle);
Expand Down Expand Up @@ -765,6 +834,12 @@
margin-inline-start: var(--#{$button}__icon--MarginInlineStart);
margin-inline-end: var(--#{$button}__icon--MarginInlineEnd);
color: var(--#{$button}__icon--Color);
transition-delay: var(--#{$button}__icon--TransitionDelay);
transition-timing-function: var(--#{$button}__icon--TransitionTimingFunction);
transition-duration: var(--#{$button}__icon--TransitionDuration);
transition-property: var(--#{$button}__icon--TransitionProperty);
rotate: var(--#{$button}__icon--Rotate);
scale: var(--#{$button}__icon--Scale);

&.pf-m-start {
--#{$button}__icon--MarginInlineEnd: var(--#{$button}__icon--m-start--MarginInlineEnd);
Expand Down Expand Up @@ -815,6 +890,32 @@
align-items: center;
}

.#{$button}--hamburger-icon {
path {
fill: none;
stroke: currentcolor;
stroke-linecap: round;
stroke-linejoin: round;
transition: d var(--#{$button}--hamburger-icon--TransitionDuration) var(--#{$button}--hamburger-icon--TransitionTimingFunction);
}
}

.#{$button}--hamburger-icon--top {
d: var(--#{$button}--hamburger-icon--top--path);
}

.#{$button}--hamburger-icon--middle {
d: var(--#{$button}--hamburger-icon--middle--path);
}

.#{$button}--hamburger-icon--arrow {
d: var(--#{$button}--hamburger-icon--arrow--path);
}

.#{$button}--hamburger-icon--bottom {
d: var(--#{$button}--hamburger-icon--bottom--path);
}

@keyframes #{$button}-icon-notify {
33% {
transform: rotate(30deg);
Expand Down
22 changes: 19 additions & 3 deletions src/patternfly/components/Button/examples/Button.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,18 @@ A favorite button should use a plain button with the star icon. Applying `.pf-m-
{{/button}}
```

### Settings
```hbs
{{> button button--IsSettings=true button--IsPlain=true button--IsIcon=true button--aria-label="Settings"}}
```

### Hamburger
```hbs
{{> button button--IsHamburger=true button--IsPlain=true button--IsIcon=true button--aria-label="Hamburger"}}
{{> button button--IsHamburger=true button--IsPlain=true button--IsIcon=true button--aria-label="Hamburger" button--modifier="pf-m-expand"}}
{{> button button--IsHamburger=true button--IsPlain=true button--IsIcon=true button--aria-label="Hamburger" button--modifier="pf-m-collapse"}}
```

## Documentation
### Overview
Always add a modifier class to add color to the button.
Expand All @@ -262,7 +274,7 @@ Semantic buttons and links are important for usability as well as accessibility.
| `.pf-v6-c-button` | `<button>, <span>` | Initiates a button. Always use it with a modifier class. **Required** |
| `.pf-v6-c-button__icon` | `<span>` | Initiates a button icon. |
| `.pf-v6-c-button__progress` | `<span>` | Initiates a button progress container. |
| `.pf-v6-c-button__count` | `<span>` | Initiates a button count container. **Note:** Count should only be used on link buttons.|
| `.pf-v6-c-button__count` | `<span>` | Initiates a button count container. **Note:** Count should only be used on link buttons. |
| `.pf-m-primary` | `.pf-v6-c-button` | Modifies for primary styles. |
| `.pf-m-secondary` | `.pf-v6-c-button` | Modifies for secondary styles. |
| `.pf-m-tertiary` | `.pf-v6-c-button` | Modifies for tertiary styles. |
Expand All @@ -285,5 +297,9 @@ Semantic buttons and links are important for usability as well as accessibility.
| `.pf-m-in-progress` | `.pf-v6-c-button` | Indicates that the button is in the in progress state. |
| `.pf-m-stateful` | `.pf-v6-c-button` | Indicates that the button is used for one of read, unread, and attention states. **Note:** Always use with a modifier of `.pf-m-read`, `.pf-m-unread`, or `.pf-m-attention`. |
| `.pf-m-notify` | `.pf-v6-c-button` | Indicates that the button should show the user notification of an event. **Note:** This is intended for use with a bell icon in the notification badge. |
| `.pf-m-favorite` | `.pf-v6-c-button .pf-m-plain` | Modifies a plain button to be a favorite button. **Note:** This is intended for use with a star icon. |
| `.pf-m-favorited` | `.pf-v6-c-button .pf-m-plain .pf-m-favorite` | Modifies a favorite button to indicate that item is favorited. |
| `.pf-m-favorite` | `.pf-v6-c-button.pf-m-plain` | Modifies a plain button to be a favorite button. **Note:** This is intended for use with a star icon. |
| `.pf-m-favorited` | `.pf-v6-c-button.pf-m-plain.pf-m-favorite` | Modifies a favorite button to indicate that item is favorited. |
| `.pf-m-settings` | `.pf-v6-c-button.pf-m-plain` | Modifies a plain button to be a settings button. |
| `.pf-m-hamburger` | `.pf-v6-c-button.pf-m-plain` | Modifies a plain button to be a hamburger button. |
| `.pf-m-expand` | `.pf-v6-c-button.pf-m-hamburger` | Modifies a hamburger button to indicate that it will expand a menu. |
| `.pf-m-collapse` | `.pf-v6-c-button.pf-m-hamburger` | Modifies a hamburger button to indicate that it will collapse a menu. |
6 changes: 6 additions & 0 deletions src/patternfly/components/Button/hamburger-icon.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<svg viewBox="0 0 10 10" class="{{pfv}}button--hamburger-icon {{pfv "unset-prefix"}}svg" width="1em" height="1em">
<path class="{{pfv}}button--hamburger-icon--top" d="M1,1 L9,1"/>
<path class="{{pfv}}button--hamburger-icon--middle" d="M1,5 L9,5"/>
<path class="{{pfv}}button--hamburger-icon--arrow" d="M1,5 L1,5 L1,5"/>
<path class="{{pfv}}button--hamburger-icon--bottom" d="M9,9 L1,9"/>
</svg>
2 changes: 1 addition & 1 deletion src/patternfly/components/Masthead/masthead-toggle.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
{{#if @partial-block}}
{{> @partial-block}}
{{else}}
{{> button button--IsPlain=true button--icon="bars" button--IsIcon=true button--aria-label="Global navigation"}}
{{> button button--IsHamburger=true button--IsPlain=true button--IsIcon=true button--aria-label="Global navigation"}}
{{/if}}
</span>
9 changes: 9 additions & 0 deletions src/patternfly/components/MenuToggle/examples/MenuToggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -999,6 +999,15 @@ Shown with default, primary, and secondary styling
{{/menu-toggle}}
```

### Settings
```hbs
{{> menu-toggle menu-toggle--IsPlain=true menu-toggle--IsSettings=true menu-toggle--icon="cog" menu-toggle--aria-label="Settings"}}

{{> menu-toggle menu-toggle--IsExpanded="true" menu-toggle--IsPlain=true menu-toggle--IsSettings=true menu-toggle--icon="cog" menu-toggle--aria-label="Settings"}}

{{> menu-toggle menu-toggle--IsDisabled="true" menu-toggle--IsPlain=true menu-toggle--IsSettings=true menu-toggle--icon="cog" menu-toggle--aria-label="Settings"}}
```

## Documentation

### Accessibility
Expand Down
Loading