diff options
| author | Fuwn <[email protected]> | 2020-12-14 23:21:39 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2020-12-14 23:21:39 -0800 |
| commit | 823344c19094680e80e2b56449a243e183db8b06 (patch) | |
| tree | 92277700547ea671331828caa258ace7aaaa46d5 /semantic/src/definitions/elements/button.less | |
| parent | repo: angular (diff) | |
| download | me-823344c19094680e80e2b56449a243e183db8b06.tar.xz me-823344c19094680e80e2b56449a243e183db8b06.zip | |
:star:
Diffstat (limited to 'semantic/src/definitions/elements/button.less')
| -rw-r--r-- | semantic/src/definitions/elements/button.less | 1881 |
1 files changed, 1881 insertions, 0 deletions
diff --git a/semantic/src/definitions/elements/button.less b/semantic/src/definitions/elements/button.less new file mode 100644 index 0000000..3e648a5 --- /dev/null +++ b/semantic/src/definitions/elements/button.less @@ -0,0 +1,1881 @@ +/*! + * # Fomantic-UI - Button + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'button'; + +@import (multiple) '../../theme.config'; + +/******************************* + Button +*******************************/ + +.ui.button { + cursor: pointer; + display: inline-block; + + min-height: 1em; + + outline: none; + border: none; + vertical-align: @verticalAlign; + background: @background; + color: @textColor; + + font-family: @fontFamily; + + margin: 0 @horizontalMargin @verticalMargin 0; + padding: @verticalPadding @horizontalPadding (@verticalPadding + @shadowOffset); + + text-transform: @textTransform; + text-shadow: @textShadow; + font-weight: @fontWeight; + line-height: @lineHeight; + font-style: normal; + text-align: center; + text-decoration: none; + + border-radius: @borderRadius; + box-shadow: @boxShadow; + + user-select: none; + transition: @transition; + will-change: @willChange; + + -webkit-tap-highlight-color: @tapColor; +} + + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.button:hover { + background-color: @hoverBackgroundColor; + background-image: @hoverBackgroundImage; + box-shadow: @hoverBoxShadow; + color: @hoverColor; +} + +.ui.button:hover .icon { + opacity: @iconHoverOpacity; +} + +/*-------------- + Focus +---------------*/ + +.ui.button:focus { + background-color: @focusBackgroundColor; + color: @focusColor; + background-image: @focusBackgroundImage; + box-shadow: @focusBoxShadow; +} + +.ui.button:focus .icon { + opacity: @iconFocusOpacity; +} + +/*-------------- + Down +---------------*/ + +.ui.button:active, +.ui.active.button:active { + background-color: @downBackgroundColor; + background-image: @downBackgroundImage; + color: @downColor; + box-shadow: @downBoxShadow; +} + +/*-------------- + Active +---------------*/ + +.ui.active.button { + background-color: @activeBackgroundColor; + background-image: @activeBackgroundImage; + box-shadow: @activeBoxShadow; + color: @activeColor; +} +.ui.active.button:hover { + background-color: @activeHoverBackgroundColor; + background-image: @activeHoverBackgroundImage; + color: @activeHoverColor; +} +.ui.active.button:active { + background-color: @activeBackgroundColor; + background-image: @activeBackgroundImage; +} + + +/*-------------- + Loading +---------------*/ + +/* Specificity hack */ +.ui.loading.loading.loading.loading.loading.loading.button { + position: relative; + cursor: default; + text-shadow: none !important; + color: transparent; + opacity: @loadingOpacity; + pointer-events: @loadingPointerEvents; + transition: @loadingTransition; +} +.ui.loading.button:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + border-radius: @circularRadius; + border: @loaderLineWidth solid @invertedLoaderFillColor; +} +.ui.loading.button:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + border-radius: @circularRadius; + + animation: loader @loaderSpeed infinite linear; + border: @loaderLineWidth solid currentColor; + color: @invertedLoaderLineColor; + + box-shadow: 0 0 0 1px transparent; +} +& when (@variationButtonLabeledIcon){ + .ui.labeled.icon.loading.button .icon { + background-color: transparent; + box-shadow: none; + } +} +& when (@variationButtonBasic){ + .ui.basic.loading.button:not(.inverted):before { + border-color: @loaderFillColor; + } + .ui.basic.loading.button:not(.inverted):after { + border-color: @loaderLineColor; + } +} +& when (@variationButtonDisabled){ + /*------------------- + Disabled + --------------------*/ + + .ui.buttons .disabled.button:not(.basic), + .ui.disabled.button, + .ui.button:disabled, + .ui.disabled.button:hover, + .ui.disabled.active.button { + cursor: default; + opacity: @disabledOpacity !important; + background-image: none; + box-shadow: none; + pointer-events: none !important; + } + & when (@variationButtonBasic){ + /* Basic Group With Disabled */ + .ui.basic.buttons .ui.disabled.button { + border-color: @disabledBorderColor; + } + } +} + +/******************************* + Types +*******************************/ +& when (@variationButtonAnimated){ + /*------------------- + Animated + --------------------*/ + + .ui.animated.button { + position: relative; + overflow: hidden; + padding-right: 0 !important; + vertical-align: @animatedVerticalAlign; + z-index: @animatedZIndex; + } + + .ui.animated.button .content { + will-change: transform, opacity; + } + .ui.animated.button .visible.content { + position: relative; + margin-right: @horizontalPadding; + } + .ui.animated.button .hidden.content { + position: absolute; + width: 100%; + } + + /* Horizontal */ + .ui.animated.button .visible.content, + .ui.animated.button .hidden.content { + transition: right @animationDuration @animationEasing 0s; + } + .ui.animated.button .visible.content { + left: auto; + right: 0; + } + .ui.animated.button .hidden.content { + top: 50%; + left: auto; + right: -100%; + margin-top: -(@lineHeight / 2); + } + .ui.animated.button:focus .visible.content, + .ui.animated.button:hover .visible.content { + left: auto; + right: 200%; + } + .ui.animated.button:focus .hidden.content, + .ui.animated.button:hover .hidden.content { + left: auto; + right: 0; + } + + /* Vertical */ + .ui.vertical.animated.button .visible.content, + .ui.vertical.animated.button .hidden.content { + transition: top @animationDuration @animationEasing, transform @animationDuration @animationEasing; + } + .ui.vertical.animated.button .visible.content { + transform: translateY(0%); + right: auto; + } + .ui.vertical.animated.button .hidden.content { + top: -50%; + left: 0; + right: auto; + } + .ui.vertical.animated.button:focus .visible.content, + .ui.vertical.animated.button:hover .visible.content { + transform: translateY(200%); + right: auto; + } + .ui.vertical.animated.button:focus .hidden.content, + .ui.vertical.animated.button:hover .hidden.content { + top: 50%; + right: auto; + } + + /* Fade */ + .ui.fade.animated.button .visible.content, + .ui.fade.animated.button .hidden.content { + transition: opacity @animationDuration @animationEasing, transform @animationDuration @animationEasing; + } + .ui.fade.animated.button .visible.content { + left: auto; + right: auto; + opacity: 1; + transform: scale(1); + } + .ui.fade.animated.button .hidden.content { + opacity: 0; + left: 0; + right: auto; + transform: scale(@fadeScaleHigh); + } + .ui.fade.animated.button:focus .visible.content, + .ui.fade.animated.button:hover .visible.content { + left: auto; + right: auto; + opacity: 0; + transform: scale(@fadeScaleLow); + } + .ui.fade.animated.button:focus .hidden.content, + .ui.fade.animated.button:hover .hidden.content { + left: 0; + right: auto; + opacity: 1; + transform: scale(1); + } +} + +& when (@variationButtonInverted) { + /*------------------- + Inverted + --------------------*/ + + .ui.inverted.button { + box-shadow: 0 0 0 @invertedBorderSize @white inset; + background: transparent none; + color: @white; + text-shadow: none !important; + } + + /* Group */ + .ui.inverted.buttons .button { + margin: @invertedGroupButtonOffset; + } + .ui.inverted.buttons .button:first-child { + margin-left: 0; + } + .ui.inverted.vertical.buttons .button { + margin: @invertedVerticalGroupButtonOffset; + } + .ui.inverted.vertical.buttons .button:first-child { + margin-top: 0; + } + + /* States */ + + /* Hover */ + .ui.inverted.button:hover { + background: @white; + box-shadow: 0 0 0 @invertedBorderSize @white inset; + color: @hoverColor; + } + + /* Active / Focus */ + .ui.inverted.button:focus, + .ui.inverted.button.active { + background: @white; + box-shadow: 0 0 0 @invertedBorderSize @white inset; + color: @focusColor; + } + + /* Active Focus */ + .ui.inverted.button.active:focus { + background: @midWhite; + box-shadow: 0 0 0 @invertedBorderSize @midWhite inset; + color: @focusColor; + } +} + +& when (@variationButtonLabeled) or (@variationButtonLabeledIcon){ + /*------------------- + Labeled Button + --------------------*/ + + .ui.labeled.button:not(.icon) { + display: inline-flex; + flex-direction: row; + background: none; + padding: 0 !important; + border: none; + box-shadow: none; + } + + .ui.labeled.button > .button { + margin: 0; + } + .ui.labeled.button > .label { + display: flex; + align-items: @labeledLabelAlign; + margin: 0 0 0 @labeledLabelBorderOffset !important; + font-size: @labeledLabelFontSize; + padding: @labeledLabelPadding; + border-color: @labeledLabelBorderColor; + } + + /* Tag */ + .ui.labeled.button > .tag.label:before { + width: @labeledTagLabelSize; + height: @labeledTagLabelSize; + } + + /* Right */ + .ui.labeled.button:not([class*="left labeled"]) > .button { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .ui.labeled.button:not([class*="left labeled"]) > .label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + /* Left Side */ + .ui[class*="left labeled"].button > .button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .ui[class*="left labeled"].button > .label { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } +} + +& when (@variationButtonSocial) { + /*------------------- + Social + --------------------*/ + + /* Facebook */ + .ui.facebook.button { + background-color: @facebookColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.facebook.button:hover { + background-color: @facebookHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.facebook.button:active { + background-color: @facebookDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* Twitter */ + .ui.twitter.button { + background-color: @twitterColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.twitter.button:hover { + background-color: @twitterHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.twitter.button:active { + background-color: @twitterDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* Google Plus */ + .ui.google.plus.button { + background-color: @googlePlusColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.google.plus.button:hover { + background-color: @googlePlusHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.google.plus.button:active { + background-color: @googlePlusDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* Linked In */ + .ui.linkedin.button { + background-color: @linkedInColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.linkedin.button:hover { + background-color: @linkedInHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.linkedin.button:active { + background-color: @linkedInDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* YouTube */ + .ui.youtube.button { + background-color: @youtubeColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.youtube.button:hover { + background-color: @youtubeHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.youtube.button:active { + background-color: @youtubeDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* Instagram */ + .ui.instagram.button { + background-color: @instagramColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.instagram.button:hover { + background-color: @instagramHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.instagram.button:active { + background-color: @instagramDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* Pinterest */ + .ui.pinterest.button { + background-color: @pinterestColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.pinterest.button:hover { + background-color: @pinterestHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + .ui.pinterest.button:active { + background-color: @pinterestDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + } + + /* VK */ + .ui.vk.button { + background-color: @vkColor; + color: @white; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.vk.button:hover { + background-color: @vkHoverColor; + color: @white; + } + .ui.vk.button:active { + background-color: @vkDownColor; + color: @white; + } + + /* WhatsApp */ + .ui.whatsapp.button { + background-color: @whatsAppColor; + color: @white; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.whatsapp.button:hover { + background-color: @whatsAppHoverColor; + color: @white; + } + .ui.whatsapp.button:active { + background-color: @whatsAppDownColor; + color: @white; + } + + /* Telegram */ + .ui.telegram.button { + background-color: @telegramColor; + color: @white; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; + } + .ui.telegram.button:hover { + background-color: @telegramHoverColor; + color: @white; + } + .ui.telegram.button:active { + background-color: @telegramDownColor; + color: @white; + } +} + +/*-------------- + Icon +---------------*/ + +.ui.button > .icon:not(.button) { + height: @iconHeight; + opacity: @iconOpacity; + transition: @iconTransition; + color: @iconColor; +} + +.ui.button:not(.icon) > .icon:not(.button):not(.dropdown), +.ui.button:not(.icon) > .icons:not(.button):not(.dropdown) { + margin: @iconMargin; + vertical-align: @iconVerticalAlign; +} +.ui.button:not(.icon) > .icons:not(.button):not(.dropdown) > .icon { + vertical-align: @iconVerticalAlign; +} +.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) { + margin: @rightIconMargin; +} + +/******************************* + Variations +*******************************/ + +& when (@variationButtonFloated) { + /*------------------- + Floated + --------------------*/ + + .ui[class*="left floated"].buttons, + .ui[class*="left floated"].button { + float: left; + margin-left: 0; + margin-right: @floatedMargin; + } + + .ui[class*="right floated"].buttons, + .ui[class*="right floated"].button { + float: right; + margin-right: 0; + margin-left: @floatedMargin; + } +} + +& when (@variationButtonCompact) { + /*------------------- + Compact + --------------------*/ + + .ui.compact.buttons .button, + .ui.compact.button { + padding: @compactVerticalPadding @compactHorizontalPadding ( @compactVerticalPadding + @shadowOffset ); + } + + .ui.compact.icon.buttons .button, + .ui.compact.icon.button { + padding: @compactVerticalPadding @compactVerticalPadding ( @compactVerticalPadding + @shadowOffset ); + } + + .ui.compact.labeled.icon.buttons .button, + .ui.compact.labeled.icon.button { + padding: @compactVerticalPadding (@compactHorizontalPadding + @labeledIconWidth) ( @compactVerticalPadding + @shadowOffset ); + } + + .ui.compact.labeled.icon.buttons .button > .icon, + .ui.compact.labeled.icon.button > .icon { + padding: @compactVerticalPadding 0 @compactVerticalPadding 0; + } +} +/*------------------- + Sizes +--------------------*/ + +.ui.buttons .button, +.ui.buttons .or, +.ui.button { + font-size: @medium; +} + +& when not (@variationButtonSizes = false) { + each(@variationButtonSizes, { + @s: @@value; + .ui.@{value}.buttons .dropdown, + .ui.@{value}.buttons .dropdown .menu > .item, + .ui.@{value}.buttons .button, + .ui.@{value}.buttons .or, + .ui.ui.ui.ui.@{value}.button { + font-size: @s; + } + }) +} + +/*-------------- + Icon Only +---------------*/ + +.ui.icon.buttons .button, +.ui.icon.button:not(.animated):not(.compact) { + padding: @verticalPadding @verticalPadding ( @verticalPadding + @shadowOffset ); +} +.ui.animated.icon.button > .content > .icon, +.ui.icon.buttons .button > .icon, +.ui.icon.button > .icon { + opacity: @iconButtonOpacity; + margin: 0 !important; + vertical-align: top; +} +.ui.animated.button > .content > .icon { + vertical-align: top; +} + +& when (@variationButtonBasic) { + /*------------------- + Basic + --------------------*/ + + .ui.basic.buttons .button, + .ui.basic.button { + background: @basicBackground; + color: @basicTextColor; + font-weight: @basicFontWeight; + border-radius: @basicBorderRadius; + text-transform: @basicTextTransform; + text-shadow: none !important; + box-shadow: @basicBoxShadow; + } + + .ui.basic.buttons { + box-shadow: @basicGroupBoxShadow; + border: @basicGroupBorder; + border-radius: @borderRadius; + } + + .ui.basic.buttons .button { + border-radius: 0; + } + + .ui.basic.buttons .button:hover, + .ui.basic.button:hover { + background: @basicHoverBackground; + color: @basicHoverTextColor; + box-shadow: @basicHoverBoxShadow; + } + + .ui.basic.buttons .button:focus, + .ui.basic.button:focus { + background: @basicFocusBackground; + color: @basicFocusTextColor; + box-shadow: @basicFocusBoxShadow; + } + + .ui.basic.buttons .button:active, + .ui.basic.button:active { + background: @basicDownBackground; + color: @basicDownTextColor; + box-shadow: @basicDownBoxShadow; + } + + .ui.basic.buttons .active.button, + .ui.basic.active.button { + background: @basicActiveBackground; + box-shadow: @basicActiveBoxShadow; + color: @basicActiveTextColor; + } + + .ui.basic.buttons .active.button:hover, + .ui.basic.active.button:hover { + background-color: @transparentBlack; + } + + /* Vertical */ + .ui.basic.buttons .button:hover { + box-shadow: @basicHoverBoxShadow inset; + } + + .ui.basic.buttons .button:active { + box-shadow: @basicDownBoxShadow inset; + } + + .ui.basic.buttons .active.button { + box-shadow: @basicActiveBoxShadow; + } + & when (@variationButtonInverted) { + /* Standard Basic Inverted */ + + .ui.basic.inverted.buttons .button, + .ui.basic.inverted.button { + background-color: transparent; + color: @offWhite; + box-shadow: @basicInvertedBoxShadow; + } + + .ui.basic.inverted.buttons .button:hover, + .ui.basic.inverted.button:hover { + color: @white; + box-shadow: @basicInvertedHoverBoxShadow; + } + + .ui.basic.inverted.buttons .button:focus, + .ui.basic.inverted.button:focus { + color: @white; + box-shadow: @basicInvertedFocusBoxShadow; + } + + .ui.basic.inverted.buttons .button:active, + .ui.basic.inverted.button:active { + background-color: @transparentWhite; + color: @white; + box-shadow: @basicInvertedDownBoxShadow; + } + + .ui.basic.inverted.buttons .active.button, + .ui.basic.inverted.active.button { + background-color: @transparentWhite; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + box-shadow: @basicInvertedActiveBoxShadow; + } + + .ui.basic.inverted.buttons .active.button:hover, + .ui.basic.inverted.active.button:hover { + background-color: @strongTransparentWhite; + box-shadow: @basicInvertedHoverBoxShadow; + } + } + + & when (@variationButtonBasic) { + /* Basic Group */ + .ui.basic.buttons .button { + border-left: @basicGroupBorder; + box-shadow: none; + } + + .ui.basic.vertical.buttons .button { + border-left: none; + border-left-width: 0; + border-top: @basicGroupBorder; + } + + .ui.basic.vertical.buttons .button:first-child { + border-top-width: 0; + } + } +} + +& when (@variationButtonTertiary) { + /*------------------- + Tertiary + --------------------*/ + + /* Overline Mixin */ + .ui.tertiary.button { + transition: color @defaultDuration @defaultEasing !important; + border-radius: 0; + margin: (@verticalPadding - @tertiaryLinePadding) + (@horizontalMargin) + (@verticalPadding + @shadowOffset + @verticalMargin - @tertiaryLinePadding) + 0 !important; + padding: @tertiaryLinePadding !important; + + & when (@tertiaryWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryLineColor; + } + + & when (@tertiaryWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryLineColor; + } + + & when (@tertiaryWithUnderline = false) and (@tertiaryWithOverline = false){ + box-shadow: none; + } + + color: @tertiaryTextColor; + background: @tertiaryBackgroundColor; + } + + .ui.tertiary.button:hover { + + & when (@tertiaryHoverWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryHoverLineColor; + } + + & when (@tertiaryHoverWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryHoverLineColor; + } + + & when (@tertiaryHoverWithUnderline = false) and (@tertiaryHoverWithOverline = false) { + box-shadow: none; + } + + color: @tertiaryHoverColor; + background: @tertiaryHoverBackgroundColor; + } + + .ui.tertiary.button:focus { + & when (@tertiaryFocusWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryFocusLineColor; + } + + & when (@tertiaryFocusWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryFocusLineColor; + } + + & when (@tertiaryFocusWithUnderline = false) and (@tertiaryFocusWithOverline = false){ + box-shadow: none; + } + + color: @tertiaryFocusColor; + background: @tertiaryFocusBackgroundColor; + } + + .ui.tertiary.button:active { + & when (@tertiaryActiveWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tertiaryActiveLineColor; + border-radius: @borderRadius @borderRadius 0 0; + } + + & when (@tertiaryActiveWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tertiaryActiveLineColor; + border-radius: 0 0 @borderRadius @borderRadius; + } + + & when (@tertiaryActiveWithUnderline = false) and (@tertiaryActiveWithOverline = false){ + box-shadow: none; + border-radius: 0; + } + + color: @tertiaryActiveColor; + background: @tertiaryActiveBackgroundColor; + } +} + +& when (@variationButtonLabeledIcon) { + /*-------------- + Labeled Icon + ---------------*/ + + .ui.labeled.icon.buttons .button, + .ui.labeled.icon.button { + position: relative; + padding-left: @labeledIconPadding !important; + padding-right: @horizontalPadding !important; + } + + /* Left Labeled */ + .ui.labeled.icon.buttons > .button > .icon, + .ui.labeled.icon.button > .icon { + position: absolute; + top: 0; + left: 0; + height: 100%; + line-height: 1; + border-radius: 0; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; + text-align: center; + animation: none; + padding: @verticalPadding 0 @verticalPadding 0; + + margin: @labeledIconMargin; + width: @labeledIconWidth; + background-color: @labeledIconBackgroundColor; + color: @labeledIconColor; + box-shadow: @labeledIconLeftShadow; + } + + /* Right Labeled */ + .ui[class*="right labeled"].icon.button { + padding-right: @labeledIconPadding !important; + padding-left: @horizontalPadding !important; + } + + .ui[class*="right labeled"].icon.button > .icon { + left: auto; + right: 0; + border-radius: 0; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; + box-shadow: @labeledIconRightShadow; + } + + + .ui.labeled.icon.buttons > .button > .icon:before, + .ui.labeled.icon.button > .icon:before, + .ui.labeled.icon.buttons > .button > .icon:after, + .ui.labeled.icon.button > .icon:after { + display: block; + position: relative; + width: 100%; + top: 0; + text-align: center; + } + + .ui.labeled.icon.buttons .button > .icon { + border-radius: 0; + } + + .ui.labeled.icon.buttons .button:first-child > .icon { + border-top-left-radius: @borderRadius; + border-bottom-left-radius: @borderRadius; + } + + .ui.labeled.icon.buttons .button:last-child > .icon { + border-top-right-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; + } + + .ui.vertical.labeled.icon.buttons .button:first-child > .icon { + border-radius: 0; + border-top-left-radius: @borderRadius; + } + + .ui.vertical.labeled.icon.buttons .button:last-child > .icon { + border-radius: 0; + border-bottom-left-radius: @borderRadius; + } + + /* Loading Icon in Labeled Button */ + .ui.labeled.icon.button > .loading.icon:before { + animation: loader 2s linear infinite; + } +} + +& when (@variationButtonToggle) { + /*-------------- + Toggle + ---------------*/ + + /* Toggle (Modifies active state to give affordances) */ + .ui.toggle.buttons .active.button, + .ui.buttons .button.toggle.active, + .ui.button.toggle.active { + background-color: @toggleBackgroundColor; + box-shadow: none; + text-shadow: @toggleTextShadow; + color: @toggleColor; + } + + .ui.button.toggle.active:hover { + background-color: @toggleHoverBackgroundColor; + text-shadow: @toggleHoverTextShadow; + color: @toggleHoverColor; + } +} + +& when (@variationButtonCircular) { + /*-------------- + Circular + ---------------*/ + + .ui.circular.button { + border-radius: @circularBorderRadius; + } + + .ui.circular.button > .icon { + width: @circularIconWidth; + vertical-align: baseline; + } +} + +& when (@variationButtonOr) { + /*------------------- + Or Buttons + --------------------*/ + + .ui.buttons .or { + position: relative; + width: @orGap; + height: @orHeight; + z-index: @orZIndex; + } + + .ui.buttons .or:before { + position: absolute; + text-align: center; + border-radius: @circularRadius; + + content: @orText; + top: 50%; + left: 50%; + background-color: @orBackgroundColor; + text-shadow: @orTextShadow; + + margin-top: @orVerticalOffset; + margin-left: @orHorizontalOffset; + + width: @orCircleSize; + height: @orCircleSize; + + line-height: @orLineHeight; + color: @orTextColor; + + font-style: @orTextStyle; + font-weight: @orTextWeight; + + box-shadow: @orBoxShadow; + } + + .ui.buttons .or[data-text]:before { + content: attr(data-text); + } + + /* Fluid Or */ + .ui.fluid.buttons .or { + width: 0 !important; + } + + .ui.fluid.buttons .or:after { + display: none; + } + +} + +& when (@variationButtonAttached) { + /*------------------- + Attached + --------------------*/ + + + /* Singular */ + .ui.attached.button { + position: relative; + display: block; + margin: 0; + border-radius: 0; + box-shadow: @attachedBoxShadow; + } + + /* Top / Bottom */ + .ui.attached.top.button { + border-radius: @borderRadius @borderRadius 0 0; + } + + .ui.attached.bottom.button { + border-radius: 0 0 @borderRadius @borderRadius; + } + + /* Left / Right */ + .ui.left.attached.button { + display: inline-block; + border-left: none; + text-align: right; + + padding-right: @attachedHorizontalPadding; + border-radius: @borderRadius 0 0 @borderRadius; + } + + .ui.right.attached.button { + display: inline-block; + text-align: left; + padding-left: @attachedHorizontalPadding; + border-radius: 0 @borderRadius @borderRadius 0; + } + + /* Plural */ + .ui.attached.buttons { + position: relative; + display: flex; + border-radius: 0; + width: auto !important; + z-index: @attachedZIndex; + margin-left: @attachedOffset; + margin-right: @attachedOffset; + } + + .ui.attached.buttons .button { + margin: 0; + } + + .ui.attached.buttons .button:first-child { + border-radius: 0; + } + + .ui.attached.buttons .button:last-child { + border-radius: 0; + } + + /* Top / Bottom */ + .ui[class*="top attached"].buttons { + margin-bottom: @attachedOffset; + border-radius: @borderRadius @borderRadius 0 0; + } + + .ui[class*="top attached"].buttons .button:first-child { + border-radius: @borderRadius 0 0 0; + } + + .ui[class*="top attached"].buttons .button:last-child { + border-radius: 0 @borderRadius 0 0; + } + + .ui[class*="bottom attached"].buttons { + margin-top: @attachedOffset; + border-radius: 0 0 @borderRadius @borderRadius; + } + + .ui[class*="bottom attached"].buttons .button:first-child { + border-radius: 0 0 0 @borderRadius; + } + + .ui[class*="bottom attached"].buttons .button:last-child { + border-radius: 0 0 @borderRadius 0; + } + + /* Left / Right */ + .ui[class*="left attached"].buttons { + display: inline-flex; + margin-right: 0; + margin-left: @attachedOffset; + border-radius: 0 @borderRadius @borderRadius 0; + } + + .ui[class*="left attached"].buttons .button:first-child { + margin-left: @attachedOffset; + border-radius: 0 @borderRadius 0 0; + } + + .ui[class*="left attached"].buttons .button:last-child { + margin-left: @attachedOffset; + border-radius: 0 0 @borderRadius 0; + } + + .ui[class*="right attached"].buttons { + display: inline-flex; + margin-left: 0; + margin-right: @attachedOffset; + border-radius: @borderRadius 0 0 @borderRadius; + } + + .ui[class*="right attached"].buttons .button:first-child { + margin-left: @attachedOffset; + border-radius: @borderRadius 0 0 0; + } + + .ui[class*="right attached"].buttons .button:last-child { + margin-left: @attachedOffset; + border-radius: 0 0 0 @borderRadius; + } +} + +& when (@variationButtonFluid) { + /*------------------- + Fluid + --------------------*/ + + .ui.fluid.buttons, + .ui.fluid.button { + width: 100%; + } + + .ui.fluid.button { + display: block; + } + + .ui.two.buttons { + width: 100%; + } + + .ui.two.buttons > .button { + width: 50%; + } + + .ui.three.buttons { + width: 100%; + } + + .ui.three.buttons > .button { + width: 33.333%; + } + + .ui.four.buttons { + width: 100%; + } + + .ui.four.buttons > .button { + width: 25%; + } + + .ui.five.buttons { + width: 100%; + } + + .ui.five.buttons > .button { + width: 20%; + } + + .ui.six.buttons { + width: 100%; + } + + .ui.six.buttons > .button { + width: 16.666%; + } + + .ui.seven.buttons { + width: 100%; + } + + .ui.seven.buttons > .button { + width: 14.285%; + } + + .ui.eight.buttons { + width: 100%; + } + + .ui.eight.buttons > .button { + width: 12.500%; + } + + .ui.nine.buttons { + width: 100%; + } + + .ui.nine.buttons > .button { + width: 11.11%; + } + + .ui.ten.buttons { + width: 100%; + } + + .ui.ten.buttons > .button { + width: 10%; + } + + .ui.eleven.buttons { + width: 100%; + } + + .ui.eleven.buttons > .button { + width: 9.09%; + } + + .ui.twelve.buttons { + width: 100%; + } + + .ui.twelve.buttons > .button { + width: 8.3333%; + } + + /* Fluid Vertical Buttons */ + .ui.fluid.vertical.buttons, + .ui.fluid.vertical.buttons > .button { + display: flex; + width: auto; + justify-content: center; + } + + .ui.two.vertical.buttons > .button { + height: 50%; + } + + .ui.three.vertical.buttons > .button { + height: 33.333%; + } + + .ui.four.vertical.buttons > .button { + height: 25%; + } + + .ui.five.vertical.buttons > .button { + height: 20%; + } + + .ui.six.vertical.buttons > .button { + height: 16.666%; + } + + .ui.seven.vertical.buttons > .button { + height: 14.285%; + } + + .ui.eight.vertical.buttons > .button { + height: 12.500%; + } + + .ui.nine.vertical.buttons > .button { + height: 11.11%; + } + + .ui.ten.vertical.buttons > .button { + height: 10%; + } + + .ui.eleven.vertical.buttons > .button { + height: 9.09%; + } + + .ui.twelve.vertical.buttons > .button { + height: 8.3333%; + } +} + +/*------------------- + Colors +--------------------*/ + +each(@colors, { + @color: replace(@key, '@', ''); + @c: @colors[@@color][color]; + @h: @colors[@@color][hover]; + @f: @colors[@@color][focus]; + @d: @colors[@@color][down]; + @a: @colors[@@color][active]; + @t: @colors[@@color][text]; + @s: @colors[@@color][shadow]; + @l: @colors[@@color][light]; + @lh: @colors[@@color][lightHover]; + @lf: @colors[@@color][lightFocus]; + @ld: @colors[@@color][lightDown]; + @la: @colors[@@color][lightActive]; + @lt: @colors[@@color][lightText]; + @ls: @colors[@@color][lightShadow]; + @ty: @colors[@@color][tertiary]; + @tyh: @colors[@@color][tertiaryHover]; + @tyf: @colors[@@color][tertiaryFocus]; + @tya: @colors[@@color][tertiaryActive]; + @isDark: @colors[@@color][isDark]; + @isVeryDark: @colors[@@color][isVeryDark]; + + .ui.@{color}.buttons .button, + .ui.@{color}.button { + background-color: @c; + color: @t; + text-shadow: @s; + background-image: @coloredBackgroundImage; + } + .ui.@{color}.button { + box-shadow: @coloredBoxShadow; + } + .ui.@{color}.buttons .button:hover, + .ui.@{color}.button:hover { + background-color: @h; + color: @t; + text-shadow: @s; + } + .ui.@{color}.buttons .button:focus, + .ui.@{color}.button:focus { + background-color: @f; + color: @t; + text-shadow: @s; + } + .ui.@{color}.buttons .button:active, + .ui.@{color}.button:active { + background-color: @d; + color: @t; + text-shadow: @s; + } + .ui.@{color}.buttons .active.button, + .ui.@{color}.buttons .active.button:active, + .ui.@{color}.active.button, + .ui.@{color}.button .active.button:active { + background-color: @a; + color: @t; + text-shadow: @s; + } + + & when (@variationButtonBasic) { + /* Basic */ + .ui.basic.@{color}.buttons .button, + .ui.basic.@{color}.button { + background: transparent; + box-shadow: 0 0 0 @basicBorderSize @c inset ; + color: @c ; + } + .ui.basic.@{color}.buttons .button:hover, + .ui.basic.@{color}.button:hover { + background: transparent ; + box-shadow: 0 0 0 @basicColoredBorderSize @h inset ; + color: @h ; + } + .ui.basic.@{color}.buttons .button:focus, + .ui.basic.@{color}.button:focus { + background: transparent ; + box-shadow: 0 0 0 @basicColoredBorderSize @f inset ; + color: @h ; + } + .ui.basic.@{color}.buttons .active.button, + .ui.basic.@{color}.active.button { + background: transparent ; + box-shadow: 0 0 0 @basicColoredBorderSize @a inset ; + color: @d ; + } + .ui.basic.@{color}.buttons .button:active, + .ui.basic.@{color}.button:active { + box-shadow: 0 0 0 @basicColoredBorderSize @d inset ; + color: @d ; + } + + .ui.buttons:not(.vertical) > .basic.@{color}.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; + } + } + & when (@variationButtonInverted) { + /* Inverted */ + .ui.inverted.@{color}.buttons .button, + .ui.inverted.@{color}.button { + background-color: transparent; + + & when (@isDark) { + box-shadow: 0 0 0 @invertedBorderSize @solidBorderColor inset ; + color: @invertedTextColor; + } + + & when not (@isDark) { + box-shadow: 0 0 0 @invertedBorderSize @l inset ; + color: @l; + } + } + .ui.inverted.@{color}.buttons .button:hover, + .ui.inverted.@{color}.button:hover, + .ui.inverted.@{color}.buttons .button:focus, + .ui.inverted.@{color}.button:focus, + .ui.inverted.@{color}.buttons .button.active, + .ui.inverted.@{color}.button.active, + .ui.inverted.@{color}.buttons .button:active, + .ui.inverted.@{color}.button:active { + box-shadow: none ; + color: @lt; + } + .ui.inverted.@{color}.buttons .button:hover, + .ui.inverted.@{color}.button:hover { + background-color: @lh; + } + .ui.inverted.@{color}.buttons .button:focus, + .ui.inverted.@{color}.button:focus { + background-color: @lf; + } + .ui.inverted.@{color}.buttons .active.button, + .ui.inverted.@{color}.active.button { + background-color: @la; + } + .ui.inverted.@{color}.buttons .button:active, + .ui.inverted.@{color}.button:active { + background-color: @ld; + } + + /* Inverted Basic */ + .ui.inverted.@{color}.basic.buttons .button, + .ui.inverted.@{color}.buttons .basic.button, + .ui.inverted.@{color}.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow ; + color: @white ; + } + .ui.inverted.@{color}.basic.buttons .button:hover, + .ui.inverted.@{color}.buttons .basic.button:hover, + .ui.inverted.@{color}.basic.button:hover { + box-shadow: 0 0 0 @invertedBorderSize @lh inset ; + + & when (@isDark) { + color: @white ; + } + + & when not (@isDark) { + color: @l ; + } + } + .ui.inverted.@{color}.basic.buttons .button:focus, + .ui.inverted.@{color}.basic.buttons .button:focus, + .ui.inverted.@{color}.basic.button:focus { + box-shadow: 0 0 0 @invertedBorderSize @lf inset ; + color: @l ; + } + .ui.inverted.@{color}.basic.buttons .active.button, + .ui.inverted.@{color}.buttons .basic.active.button, + .ui.inverted.@{color}.basic.active.button { + box-shadow: 0 0 0 @invertedBorderSize @la inset ; + + & when (@isDark) { + color: @white ; + } + + & when not (@isDark) { + color: @l ; + } + } + & when (@variationButtonBasic) { + .ui.inverted.@{color}.basic.buttons .button:active, + .ui.inverted.@{color}.buttons .basic.button:active, + .ui.inverted.@{color}.basic.button:active { + box-shadow: 0 0 0 @invertedBorderSize @ld inset; + + & when (@isDark) { + color: @white; + } + + & when not (@isDark) { + color: @l; + } + } + } + } + + & when (@variationButtonTertiary) { + /* Tertiary */ + + .ui.tertiary.@{color}.buttons .button, + .ui.tertiary.@{color}.buttons .tertiary.button, + .ui.tertiary.@{color}.button { + background: transparent; + + + + & when (@tertiaryWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @ty; + } + + & when (@tertiaryWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @ty; + } + + & when (@tertiaryWithUnderline = false) and (@tertiaryWithOverline = false){ + box-shadow: none; + } + + color: @c; + } + + .ui.tertiary.@{color}.buttons .button:hover, + .ui.tertiary.@{color}.buttons button:hover, + .ui.tertiary.@{color}.button:hover { + + + + & when (@tertiaryHoverWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tyh; + } + + & when (@tertiaryHoverWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tyh; + } + + & when (@tertiaryHoverWithUnderline = false) and (@tertiaryHoverWithOverline = false) { + box-shadow: none; + } + + + color: @tyh; + } + + .ui.tertiary.@{color}.buttons .button:focus, + .ui.tertiary.@{color}.buttons .tertiary.button:focus, + .ui.tertiary.@{color}.button:focus { + + + + + & when (@tertiaryFocusWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tyf; + } + + & when (@tertiaryFocusWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tyf; + } + + & when (@tertiaryFocusWithUnderline = false) and (@tertiaryFocusWithOverline = false) { + box-shadow: none; + } + + + color: @tyf; + } + + .ui.tertiary.@{color}.buttons .active.button, + .ui.tertiary.@{color}.buttons .tertiary.active.button, + .ui.tertiary.@{color}.active.button, + .ui.tertiary.@{color}.buttons .button:active, + .ui.tertiary.@{color}.buttons .tertiary.button:active, + .ui.tertiary.@{color}.button:active { + + + + & when (@tertiaryActiveWithUnderline = true) { + box-shadow: inset 0 -@tertiaryLineHeight 0 @tya; + } + + & when (@tertiaryActiveWithOverline = true) { + box-shadow: inset 0 @tertiaryLineHeight 0 @tya; + } + + & when (@tertiaryActiveWithUnderline = false) and (@tertiaryActiveWithOverline = false) { + box-shadow: none; + } + + color: @a; + } + } +}) + +.addConsequence(@consequence) { + + @_backgroundColor: "@{consequence}Color"; + @_backgroundColorHover: "@{consequence}ColorHover"; + @_backgroundColorFocus: "@{consequence}ColorFocus"; + @_backgroundColorDown: "@{consequence}ColorDown"; + @_backgroundColorActive: "@{consequence}ColorActive"; + @_textColor: "@{consequence}TextColor"; + @_textShadow: "@{consequence}TextShadow"; + + /* Standard */ + .ui.@{consequence}.buttons .button, + .ui.@{consequence}.button { + background-color: @@_backgroundColor; + color: @@_textColor; + text-shadow: @@_textShadow; + background-image: @coloredBackgroundImage; + } + .ui.@{consequence}.button { + box-shadow: @coloredBoxShadow; + } + .ui.@{consequence}.buttons .button:hover, + .ui.@{consequence}.button:hover { + background-color: @@_backgroundColorHover; + color: @@_textColor; + text-shadow: @@_textShadow; + } + .ui.@{consequence}.buttons .button:focus, + .ui.@{consequence}.button:focus { + background-color: @@_backgroundColorFocus; + color: @@_textColor; + text-shadow: @@_textShadow; + } + .ui.@{consequence}.buttons .button:active, + .ui.@{consequence}.button:active { + background-color: @@_backgroundColorDown; + color: @@_textColor; + text-shadow: @@_textShadow; + } + .ui.@{consequence}.buttons .active.button, + .ui.@{consequence}.buttons .active.button:active, + .ui.@{consequence}.active.button, + .ui.@{consequence}.button .active.button:active { + background-color: @@_backgroundColorActive; + color: @@_textColor; + text-shadow: @@_textShadow; + } + & when (@variationButtonBasic) { + /* Basic */ + .ui.basic.@{consequence}.buttons .button, + .ui.basic.@{consequence}.button { + background: transparent; + box-shadow: 0 0 0 @basicBorderSize @@_backgroundColor inset; + color: @@_backgroundColor; + } + .ui.basic.@{consequence}.buttons .button:hover, + .ui.basic.@{consequence}.button:hover { + background: transparent; + box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorHover inset; + color: @@_backgroundColorHover; + } + .ui.basic.@{consequence}.buttons .button:focus, + .ui.basic.@{consequence}.button:focus { + background: transparent; + box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorFocus inset; + color: @@_backgroundColorHover; + } + .ui.basic.@{consequence}.buttons .active.button, + .ui.basic.@{consequence}.active.button { + background: transparent; + box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorActive inset; + color: @@_backgroundColorDown; + } + .ui.basic.@{consequence}.buttons .button:active, + .ui.basic.@{consequence}.button:active { + box-shadow: 0 0 0 @basicColoredBorderSize @@_backgroundColorDown inset; + color: @@_backgroundColorDown; + } + .ui.buttons:not(.vertical) > .basic.@{consequence}.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; + } + } +} + +/*--------------- + Positive +----------------*/ + +.addConsequence(positive); + +/*--------------- + Negative +----------------*/ + +.addConsequence(negative); + +& when (@variationButtonGroups) { + /******************************* + Groups + *******************************/ + + .ui.buttons { + display: inline-flex; + flex-direction: row; + font-size: 0; + vertical-align: baseline; + margin: @verticalMargin @horizontalMargin 0 0; + } + + .ui.buttons:not(.basic):not(.inverted) { + box-shadow: @groupBoxShadow; + } + + /* Clearfix */ + .ui.buttons:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + /* Standard Group */ + .ui.buttons .button { + flex: 1 0 auto; + border-radius: 0; + margin: @groupButtonOffset; + } + + .ui.buttons:not(.basic):not(.inverted) > .button:not(.basic):not(.inverted) { + box-shadow: @groupButtonBoxShadow; + } + + .ui.buttons .button:first-child { + border-left: none; + margin-left: 0; + border-top-left-radius: @borderRadius; + border-bottom-left-radius: @borderRadius; + } + + .ui.buttons .button:last-child { + border-top-right-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; + } + + /* Vertical Style */ + .ui.vertical.buttons { + display: inline-flex; + flex-direction: column; + } + + .ui.vertical.buttons .button { + display: block; + float: none; + width: 100%; + margin: @verticalGroupOffset; + box-shadow: @verticalBoxShadow; + border-radius: 0; + } + + .ui.vertical.buttons .button:first-child { + border-top-left-radius: @borderRadius; + border-top-right-radius: @borderRadius; + } + + .ui.vertical.buttons .button:last-child { + margin-bottom: 0; + border-bottom-left-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; + } + + .ui.vertical.buttons .button:only-child { + border-radius: @borderRadius; + } +} +.loadUIOverrides(); |