diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/styles.js b/bigbluebutton-html5/imports/ui/components/actions-bar/styles.js index 7a5c7e1a4b..26145fc7d4 100644 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/styles.js +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/styles.js @@ -7,6 +7,7 @@ import Button from '/imports/ui/components/common/button/component'; const ActionsBar = styled.div` display: flex; flex-direction: row; + align-items: center; `; const Left = styled.div` diff --git a/bigbluebutton-html5/imports/ui/components/common/button/styles.js b/bigbluebutton-html5/imports/ui/components/common/button/styles.js index d5d3b2faac..7c0ee61cc6 100644 --- a/bigbluebutton-html5/imports/ui/components/common/button/styles.js +++ b/bigbluebutton-html5/imports/ui/components/common/button/styles.js @@ -3,6 +3,7 @@ import Icon from '/imports/ui/components/common/icon/component'; import { btnSpacing, borderRadius, + borderSizeSmall, borderSize, borderSizeLarge, smPaddingY, @@ -23,9 +24,15 @@ import { import { btnDefaultColor, btnDefaultBg, + btnDefaultGhostColor, + btnDefaultGhostBg, + btnDefaultGhostActiveBg, + btnDefaultGhostBorder, btnPrimaryBorder, btnPrimaryColor, btnPrimaryBg, + btnPrimaryHoverBg, + btnPrimaryActiveBg, btnSuccessBorder, btnSuccessColor, btnSuccessBg, @@ -49,8 +56,14 @@ import BaseButton from './base/component'; const ButtonIcon = styled(Icon)` width: 1em; + height: 1em; text-align: center; + &:before { + width: 1em; + height: 1em; + } + .buttonWrapper & { font-size: 125%; } @@ -62,9 +75,6 @@ const ButtonIcon = styled(Icon)` margin: 0 ${btnSpacing} 0 0; } } - .buttonWrapper:hover & { - opacity: .75; - } `; const EmojiButtonSibling = styled.span` @@ -146,10 +156,21 @@ const ButtonWrapper = styled(BaseButton)` box-shadow: none; } + & > span { + display: block; + text-align: center; + white-space: nowrap; + border: ${borderSizeSmall} solid transparent; + } + ${({ size }) => size === 'sm' && ` font-size: calc(${fontSizeSmall} * .85); padding: ${smPaddingY} ${smPaddingX}; + & > span { + border: ${borderSizeLarge} solid transparent; + } + & > label { display: inline-block; margin: 0 0 0 ${btnSpacing}; @@ -163,10 +184,14 @@ const ButtonWrapper = styled(BaseButton)` ${({ size }) => size === 'md' && ` font-size: calc(${fontSizeBase} * .85); padding: ${mdPaddingY} ${mdPaddingX}; + + & > span { + border: ${borderSizeLarge} solid transparent; + } `} ${({ size }) => size === 'lg' && ` - font-size: calc(${fontSizeLarge} * .85); + font-size: ${fontSizeBase}; padding: ${lgPaddingY} ${lgPaddingX}; `} @@ -175,11 +200,83 @@ const ButtonWrapper = styled(BaseButton)` padding: ${jumboPaddingY} ${jumboPaddingX}; `} - & > span { - display: block; - text-align: center; - white-space: nowrap; - } + ${({ color }) => color === 'primary' && ` + &:focus:not([aria-disabled="true"]){ + & > span{ + color: ${btnPrimaryColor}; + background-color: ${btnPrimaryBg}; + background-clip: padding-box; + box-shadow: 0 0 0 ${borderSize} ${btnPrimaryBorder}; + } + } + + &:hover{ + & > span{ + filter: brightness(90%); + color: ${btnPrimaryColor}; + background-color: ${btnPrimaryHoverBg} !important; + } + } + + &:active:focus{ + & > span{ + filter: brightness(85%); + color: ${btnPrimaryColor}; + background-color: ${btnPrimaryActiveBg}; + } + } + + &:active{ + & > span{ + filter: brightness(85%); + color: ${btnPrimaryColor}; + background-color: ${btnPrimaryActiveBg}; + } + } + `} + + ${({ circle, ghost, color }) => circle && ghost && color === 'default' && ` + & > span{ + color: ${btnDefaultGhostColor}; + } + + &:focus:not([aria-disabled="true"]){ + & > span{ + background-color: ${btnDefaultGhostBg} !important; + background-clip: padding-box; + box-shadow: 0 0 0 ${borderSize} ${btnDefaultGhostBorder}; + border-color: transparent !important; + } + } + + &:hover{ + & > span{ + filter: brightness(90%); + background-color: ${btnDefaultGhostBg} !important; + } + } + + &:active:focus{ + & > span{ + filter: brightness(85%); + background-color: ${btnDefaultGhostActiveBg}; + } + } + + &:active{ + & > span{ + filter: brightness(85%); + background-color: ${btnDefaultGhostActiveBg}; + } + } + `} + + ${({ ghost }) => ghost && ` + & > span{ + background-image: none; + background-color: transparent; + } + `} `; const ButtonSpan = styled.span` @@ -244,8 +341,11 @@ const ButtonSpan = styled.span` `} ${({ size }) => size === 'lg' && ` - font-size: calc(${fontSizeLarge} * .85); - padding: ${lgPaddingY} ${lgPaddingX}; + height: 3rem; + width: 3rem; + display: flex !important; + align-items: center; + justify-content: center; `} ${({ size }) => size === 'jumbo' && ` @@ -275,19 +375,6 @@ const ButtonSpan = styled.span` color: ${btnPrimaryColor}; background-color: ${btnPrimaryBg}; border: ${borderSizeLarge} solid transparent; - - &:focus, - .buttonWrapper:focus:not([aria-disabled="true"]) & { - color: ${btnPrimaryColor}; - background-color: ${btnPrimaryBg}; - background-clip: padding-box; - box-shadow: 0 0 0 ${borderSize} ${btnPrimaryBorder}; - } - - &:hover, - .buttonWrapper:hover & { - color: ${btnPrimaryColor}; - } `} ${({ color }) => color === 'success' && ` @@ -403,32 +490,8 @@ const ButtonSpan = styled.span` } `} - ${({ ghost, color }) => ghost && color === 'default' && ` - color: ${btnDefaultBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; - - &:focus, - .buttonWrapper:focus & { - color: ${btnDefaultBg}; - background-color: ${btnDefaultColor}; - background-clip: padding-box; - box-shadow: 0 0 0 ${borderSizeLarge} ${btnDefaultBg}; - } - - &:hover, - .buttonWrapper:hover & { - color: ${btnDefaultBg}; - background-color: ${btnDefaultColor}; - } - `} - ${({ ghost, color }) => ghost && color === 'primary' && ` color: ${btnPrimaryBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -447,9 +510,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'success' && ` color: ${btnSuccessBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -468,9 +528,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'warning' && ` color: ${btnWarningBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -489,9 +546,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'danger' && ` color: ${btnDangerBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -510,9 +564,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'dark' && ` color: ${btnDarkBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -531,9 +582,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'offline' && ` color: ${btnOfflineBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -552,9 +600,6 @@ const ButtonSpan = styled.span` ${({ ghost, color }) => ghost && color === 'muted' && ` color: ${btnMutedBg}; - background-image: none; - background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -598,6 +643,7 @@ const ButtonSpan = styled.span` `; const Button = styled(BaseButton)` + border: ${borderSizeLarge} solid transparent; border: none; overflow: visible; display: inline-block; @@ -671,7 +717,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'default' && ` color: ${btnDefaultColor}; background-color: ${btnDefaultBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -690,7 +735,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'primary' && ` color: ${btnPrimaryColor}; background-color: ${btnPrimaryBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -709,7 +753,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'success' && ` color: ${btnSuccessColor}; background-color: ${btnSuccessBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -728,7 +771,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'warning' && ` color: ${btnWarningColor}; background-color: ${btnWarningBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -747,7 +789,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'danger' && ` color: ${btnDangerColor}; background-color: ${btnDangerBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -766,7 +807,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'dark' && ` color: ${btnDarkColor}; background-color: ${btnDarkBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -785,7 +825,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'offline' && ` color: ${btnOfflineColor}; background-color: ${btnOfflineBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -804,7 +843,6 @@ const Button = styled(BaseButton)` ${({ color }) => color === 'muted' && ` color: ${btnMutedColor}; background-color: ${btnMutedBg}; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus:not([aria-disabled="true"]) & { @@ -824,7 +862,6 @@ const Button = styled(BaseButton)` color: ${btnDefaultBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -845,7 +882,6 @@ const Button = styled(BaseButton)` color: ${btnPrimaryBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -866,7 +902,6 @@ const Button = styled(BaseButton)` color: ${btnSuccessBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -887,7 +922,6 @@ const Button = styled(BaseButton)` color: ${btnWarningBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -908,7 +942,6 @@ const Button = styled(BaseButton)` color: ${btnDangerBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -929,7 +962,6 @@ const Button = styled(BaseButton)` color: ${btnDarkBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -950,7 +982,6 @@ const Button = styled(BaseButton)` color: ${btnOfflineBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { @@ -971,7 +1002,6 @@ const Button = styled(BaseButton)` color: ${btnMutedBg}; background-image: none; background-color: transparent; - border: ${borderSizeLarge} solid transparent; &:focus, .buttonWrapper:focus & { diff --git a/bigbluebutton-html5/imports/ui/stylesheets/styled-components/palette.js b/bigbluebutton-html5/imports/ui/stylesheets/styled-components/palette.js index a801b0b3b8..be77773c5b 100644 --- a/bigbluebutton-html5/imports/ui/stylesheets/styled-components/palette.js +++ b/bigbluebutton-html5/imports/ui/stylesheets/styled-components/palette.js @@ -24,7 +24,7 @@ const colorMuted = 'var(--color-muted, #586571)'; const colorMutedBackground = 'var(--color-muted-background, #F3F6F9)'; const colorBackground = `var(--color-background, ${colorGrayDark})`; -const colorOverlay = `var(--color-overlay, rgba(6, 23, 42, 0.75))`; +const colorOverlay = 'var(--color-overlay, rgba(6, 23, 42, 0.75))'; const userListBg = `var(--user-list-bg, ${colorOffWhite})`; const userListText = `var(--user-list-text, ${colorGray})`; @@ -41,9 +41,16 @@ const btnDefaultColor = `var(--btn-default-color, ${colorGray})`; const btnDefaultBg = `var(--btn-default-bg, ${colorWhite})`; const btnDefaultBorder = `var(--btn-default-border, ${colorWhite})`; -const btnPrimaryBorder = `var(--btn-primary-border, ${colorPrimary})`; +const btnDefaultGhostColor = `var(--btn-default-color, ${colorWhite})`; +const btnDefaultGhostBg = 'var(--btn-default-bg, rgba(255, 255, 255, 0.1))'; // colorWhite, 10% +const btnDefaultGhostBorder = 'var(--btn-default-border, rgba(255, 255, 255, 0.5))'; // colorWhite, 50% +const btnDefaultGhostActiveBg = 'var(--btn-default-active-bg, rgba(255, 255, 255, 0.2))'; // colorWhite, 20% + +const btnPrimaryBorder = 'var(--btn-primary-border, rgba(15, 112, 215, 0.5))'; // colorPrimary, 50% const btnPrimaryColor = `var(--btn-primary-color, ${colorWhite})`; const btnPrimaryBg = `var(--btn-primary-bg, ${colorPrimary})`; +const btnPrimaryHoverBg = 'var(--btn-primary-hover-bg, #0C57A7)'; +const btnPrimaryActiveBg = 'var(--btn-primary-active-bg, #0A4B8F)'; const btnSuccessBorder = `var(--btn-success-border, ${colorSuccess})`; const btnSuccessColor = `var(--btn-success-color, ${colorWhite})`; @@ -143,9 +150,15 @@ export { btnDefaultColor, btnDefaultBg, btnDefaultBorder, + btnDefaultGhostColor, + btnDefaultGhostBg, + btnDefaultGhostBorder, + btnDefaultGhostActiveBg, btnPrimaryBorder, btnPrimaryColor, btnPrimaryBg, + btnPrimaryHoverBg, + btnPrimaryActiveBg, btnSuccessBorder, btnSuccessColor, btnSuccessBg,