/*! * # Fomantic-UI - Label * http://github.com/fomantic/Fomantic-UI/ * * * Released under the MIT license * http://opensource.org/licenses/MIT * */ /******************************* Theme *******************************/ @type : 'element'; @element : 'label'; @import (multiple) '../../theme.config'; /******************************* Label *******************************/ .ui.label { display: inline-block; line-height: 1; vertical-align: @verticalAlign; margin: @verticalMargin @horizontalMargin; background-color: @backgroundColor; background-image: @backgroundImage; padding: @verticalPadding @horizontalPadding; color: @color; text-transform: @textTransform; font-weight: @fontWeight; border: @border; border-radius: @borderRadius; transition: @transition; } .ui.label:first-child { margin-left: 0; } .ui.label:last-child { margin-right: 0; } /* Link */ a.ui.label { cursor: pointer; } /* Inside Link */ .ui.label > a { cursor: pointer; color: inherit; opacity: @linkOpacity; transition: @linkTransition; } .ui.label > a:hover { opacity: 1; } /* Image */ .ui.label > img { width: auto !important; vertical-align: middle; height: @imageHeight; } /* Icon */ .ui.left.icon.label > .icon, .ui.label > .icon { width: auto; margin: 0 @iconDistance 0 0; } /* Detail */ .ui.label > .detail { display: inline-block; vertical-align: top; font-weight: @detailFontWeight; margin-left: @detailMargin; opacity: @detailOpacity; } .ui.label > .detail .icon { margin: 0 @detailIconDistance 0 0; } /* Removable label */ .ui.label > .close.icon, .ui.label > .delete.icon { cursor: pointer; font-size: @deleteSize; opacity: @deleteOpacity; transition: @deleteTransition; } .ui.label > .close.icon:hover, .ui.label > .delete.icon:hover { opacity: 1; } /* Backward compatible positioning */ .ui.label.left.icon > .close.icon, .ui.label.left.icon > .delete.icon { margin: 0 @deleteMargin 0 0; } .ui.label:not(.icon) > .close.icon, .ui.label:not(.icon) > .delete.icon { margin: 0 0 0 @deleteMargin; } /* Label for only an icon */ .ui.icon.label > .icon { margin: 0 auto; } /* Right Side Icon */ .ui.right.icon.label > .icon { margin: 0 0 0 @iconDistance; } /*------------------- Group --------------------*/ .ui.labels > .label { margin: 0 @groupHorizontalMargin @groupVerticalMargin 0; } /*------------------- Coupling --------------------*/ .ui.header > .ui.label { margin-top: @lineHeightOffset; } /* Remove border radius on attached segment */ .ui.attached.segment > .ui.top.left.attached.label, .ui.bottom.attached.segment > .ui.top.left.attached.label { border-top-left-radius: 0; } .ui.attached.segment > .ui.top.right.attached.label, .ui.bottom.attached.segment > .ui.top.right.attached.label { border-top-right-radius: 0; } .ui.top.attached.segment > .ui.bottom.left.attached.label { border-bottom-left-radius: 0; } .ui.top.attached.segment > .ui.bottom.right.attached.label { border-bottom-right-radius: 0; } /* Padding on next content after a label */ .ui.top.attached.label ~ .ui.bottom.attached.label + :not(.attached), .ui.top.attached.label + :not(.attached) { margin-top: @attachedSegmentPadding !important; } .ui.bottom.attached.label ~ :last-child:not(.attached) { margin-top:0; margin-bottom: @attachedSegmentPadding !important; } .ui.segment:not(.basic) > .ui.top.attached.label { margin-top: @attachedOffset; } .ui.segment:not(.basic) > .ui.bottom.attached.label { margin-bottom: @attachedOffset; } .ui.segment:not(.basic) > .ui.attached.label:not(.right) { margin-left: @attachedOffset; } .ui.segment:not(.basic) > .ui.right.attached.label { margin-right: @attachedOffset; } .ui.segment:not(.basic) > .ui.attached.label:not(.left):not(.right) { width: @attachedWidthOffset; } /******************************* Types *******************************/ & when (@variationLabelImage) { .ui.image.label { width: auto; margin-top: 0; margin-bottom: 0; max-width: 9999px; vertical-align: baseline; text-transform: none; background: @imageLabelBackground; padding: @imageLabelPadding; border-radius: @imageLabelBorderRadius; box-shadow: @imageLabelBoxShadow; &.attached:not(.basic) when (@variationLabelAttached) { padding: @imageLabelPadding; } } .ui.image.label img { display: inline-block; vertical-align: top; height: @imageLabelImageHeight; margin: @imageLabelImageMargin; border-radius: @imageLabelImageBorderRadius; } .ui.image.label .detail { background: @imageLabelDetailBackground; margin: @imageLabelDetailMargin; padding: @imageLabelDetailPadding; border-radius: 0 @imageLabelBorderRadius @imageLabelBorderRadius 0; } & when (@variationLabelAttached) { .ui.bottom.attached.image.label:not(.right) > img, .ui.top.right.attached.image.label > img { border-top-left-radius: 0; } .ui.top.attached.image.label:not(.right) > img, .ui.bottom.right.attached.image.label > img { border-bottom-left-radius: 0; } } } & when (@variationLabelTag) { /*------------------- Tag --------------------*/ .ui.tag.labels .label, .ui.tag.label { margin-left: 1em; position: relative; padding-left: @tagHorizontalPadding; padding-right: @tagHorizontalPadding; border-radius: 0 @borderRadius @borderRadius 0; transition: @tagTransition; } .ui.tag.labels .label:before, .ui.tag.label:before { position: absolute; transform: translateY(-50%) translateX(50%) rotate(-45deg); top: @tagTriangleTopOffset; right: @tagTriangleRightOffset; content: ''; background-color: inherit; background-image: @tagTriangleBackgroundImage; width: @tagTriangleSize; height: @tagTriangleSize; transition: @tagTransition; } .ui.tag.labels .label:after, .ui.tag.label:after { position: absolute; content: ''; top: 50%; left: -(@tagCircleSize / 2); margin-top: -(@tagCircleSize / 2); background-color: @tagCircleColor; width: @tagCircleSize; height: @tagCircleSize; box-shadow: @tagCircleBoxShadow; border-radius: @circularRadius; } & when (@variationLabelBasic) { .ui.basic.tag.labels .label:before, .ui.basic.tag.label:before { border-color: inherit; border-width: @basicBorderWidth 0 0 @basicBorderWidth; border-style: inherit; right: @basicBorderFullWidthOffset; } .ui.basic.tag.labels .label:after, .ui.basic.tag.label:after { box-shadow: @basicTagCircleBoxShadow; } } } & when (@variationLabelCorner) { /*------------------- Corner Label --------------------*/ .ui.corner.label { position: absolute; top: 0; right: 0; margin: 0; padding: 0; text-align: center; border-color: @backgroundColor; width: @cornerTriangleSize; height: @cornerTriangleSize; z-index: @cornerTriangleZIndex; transition: @cornerTriangleTransition; } /* Icon Label */ .ui.corner.label{ background-color: transparent !important; } .ui.corner.label:after { position: absolute; content: ""; right: 0; top: 0; z-index: -1; width: 0; height: 0; background-color: transparent; border-top: 0 solid transparent; border-right: @cornerTriangleSize solid transparent; border-bottom: @cornerTriangleSize solid transparent; border-left: 0 solid transparent; border-right-color: inherit; transition: @cornerTriangleTransition; } .ui.corner.label .icon { cursor: inherit; position: absolute; top: @cornerIconTopOffset; left: auto; right: @cornerIconRightOffset; font-size: @cornerIconSize; margin: 0; } /* Left Corner */ .ui.left.corner.label, .ui.left.corner.label:after { right: auto; left: 0; } .ui.left.corner.label:after { border-top: @cornerTriangleSize solid transparent; border-right: @cornerTriangleSize solid transparent; border-bottom: 0 solid transparent; border-left: 0 solid transparent; border-top-color: inherit; } .ui.left.corner.label .icon { left: @cornerIconLeftOffset; right: auto; } /* Segment */ .ui.segment > .ui.corner.label { top: -1px; right: -1px; } .ui.segment > .ui.left.corner.label { right: auto; left: -1px; } } & when (@variationLabelRibbon) { /*------------------- Ribbon --------------------*/ .ui.ribbon.label { position: relative; margin: 0; min-width: max-content; border-radius: 0 @borderRadius @borderRadius 0; border-color: @ribbonShadowColor; } .ui.ribbon.label:after { position: absolute; content: ''; top: 100%; left: 0; background-color: transparent; border-style: solid; border-width: 0 @ribbonTriangleSize @ribbonTriangleSize 0; border-color: transparent; border-right-color: inherit; width: 0; height: 0; } /* Positioning */ .ui.ribbon.label { left: @ribbonOffset; margin-right: -@ribbonTriangleSize; padding-left: @ribbonDistance; padding-right: @ribbonTriangleSize; } .ui[class*="right ribbon"].label { left: @rightRibbonOffset; padding-left: @ribbonTriangleSize; padding-right: @ribbonDistance; } & when (@variationLabelBasic) { .ui.basic.ribbon.label { padding-top: @basicRibbonOffset; padding-bottom: @basicRibbonOffset; } .ui.basic.ribbon.label:not([class*="right ribbon"]) { padding-left: @basicRibbonTriangleSizeOffset; padding-right: @basicRibbonTriangleSize; } .ui.basic[class*="right ribbon"].label { padding-left: @basicRibbonTriangleSize; padding-right: @basicRibbonTriangleSizeOffset; } .ui.basic.ribbon.label::after { top: @basicBorderFullWidthOffset; } .ui.basic.ribbon.label:not([class*="right ribbon"])::after { left: @basicBorderWidthOffset; } .ui.basic[class*="right ribbon"].label::after { right: @basicBorderWidthOffset; } } /* Right Ribbon */ .ui[class*="right ribbon"].label { text-align: left; transform: translateX(-100%); border-radius: @borderRadius 0 0 @borderRadius; } .ui[class*="right ribbon"].label:after { left: auto; right: 0; border-style: solid; border-width: @ribbonTriangleSize @ribbonTriangleSize 0 0; border-color: transparent; border-top-color: inherit; } /* Inside Table */ .ui.image > .ribbon.label, .ui.card .image > .ribbon.label { position: absolute; top: @ribbonImageTopDistance; } .ui.card .image > .ui.ribbon.label, .ui.image > .ui.ribbon.label { left: @ribbonImageOffset; } .ui.card .image > .ui[class*="right ribbon"].label, .ui.image > .ui[class*="right ribbon"].label { left: @rightRibbonImageOffset; padding-left: @horizontalPadding; } /* Inside Table */ .ui.table td > .ui.ribbon.label { left: @ribbonTableOffset; } .ui.table td > .ui[class*="right ribbon"].label { left: @rightRibbonTableOffset; padding-left: @horizontalPadding; } } & when (@variationLabelAttached) { /*------------------- Attached --------------------*/ .ui[class*="top attached"].label, .ui.attached.label { width: 100%; position: absolute; margin: 0; top: 0; left: 0; padding: @attachedVerticalPadding @attachedHorizontalPadding; border-radius: @attachedCornerBorderRadius @attachedCornerBorderRadius 0 0; } .ui[class*="bottom attached"].label { top: auto; bottom: 0; border-radius: 0 0 @attachedCornerBorderRadius @attachedCornerBorderRadius; } .ui[class*="top left attached"].label { width: auto; margin-top: 0; border-radius: @attachedCornerBorderRadius 0 @attachedBorderRadius 0; } .ui[class*="top right attached"].label { width: auto; left: auto; right: 0; border-radius: 0 @attachedCornerBorderRadius 0 @attachedBorderRadius; } .ui[class*="bottom left attached"].label { width: auto; top: auto; bottom: 0; border-radius: 0 @attachedBorderRadius 0 @attachedCornerBorderRadius; } .ui[class*="bottom right attached"].label { top: auto; bottom: 0; left: auto; right: 0; width: auto; border-radius: @attachedBorderRadius 0 @attachedCornerBorderRadius 0; } } /******************************* States *******************************/ /*------------------- Disabled --------------------*/ & when (@variationLabelDisabled) { .ui.label.disabled { opacity: 0.5; } } /*------------------- Hover --------------------*/ .ui.labels a.label:hover, a.ui.label:hover { background-color: @labelHoverBackgroundColor; border-color: @labelHoverBackgroundColor; background-image: @labelHoverBackgroundImage; color: @labelHoverTextColor; } .ui.labels a.label:hover:before, a.ui.label:hover:before { color: @labelHoverTextColor; } /*------------------- Active --------------------*/ .ui.active.label { background-color: @labelActiveBackgroundColor; border-color: @labelActiveBackgroundColor; background-image: @labelActiveBackgroundImage; color: @labelActiveTextColor; } .ui.active.label:before { background-color: @labelActiveBackgroundColor; background-image: @labelActiveBackgroundImage; color: @labelActiveTextColor; } /*------------------- Active Hover --------------------*/ .ui.labels a.active.label:hover, a.ui.active.label:hover { background-color: @labelActiveHoverBackgroundColor; border-color: @labelActiveHoverBackgroundColor; background-image: @labelActiveHoverBackgroundImage; color: @labelActiveHoverTextColor; } .ui.labels a.active.label:hover:before, a.ui.active.label:hover:before { background-color: @labelActiveHoverBackgroundColor; background-image: @labelActiveHoverBackgroundImage; color: @labelActiveHoverTextColor; } /*------------------- Visible --------------------*/ .ui.labels.visible .label, .ui.label.visible:not(.dropdown) { display: inline-block !important; } /*------------------- Hidden --------------------*/ .ui.labels.hidden .label, .ui.label.hidden { display: none !important; } /******************************* Variations *******************************/ & when (@variationLabelBasic) { /*------------------- Basic --------------------*/ .ui.basic.labels .label, .ui.basic.label { background: @basicBackground; border: @basicBorder; color: @basicColor; box-shadow: @basicBoxShadow; padding-top: @basicVerticalPadding; padding-bottom: @basicVerticalPadding; padding-right: @basicHorizontalPadding; } .ui.basic.labels:not(.tag):not(.image):not(.ribbon) .label, .ui.basic.label:not(.tag):not(.image):not(.ribbon) { padding-left: @basicHorizontalPadding; } & when (@variationLabelImage) { .ui.basic.image.label { padding-left: @basicImageLabelPadding; } } /* Link */ .ui.basic.labels a.label:hover, a.ui.basic.label:hover { text-decoration: none; background: @basicHoverBackground; color: @basicHoverColor; box-shadow: @basicHoverBoxShadow; } & when (@variationLabelPointing) { /* Pointing */ .ui.basic.pointing.label:before { border-color: inherit; } } } & when (@variationLabelFluid) { /*------------------- Fluid --------------------*/ .ui.label.fluid, .ui.fluid.labels > .label { width: 100%; box-sizing: border-box; } } & when (@variationLabelInverted) { /*------------------- Inverted --------------------*/ .ui.inverted.labels .label, .ui.inverted.label { color: @invertedTextColor; background-color: @invertedBackgroundColor; } .ui.inverted.corner.label { border-color: @invertedBackgroundColor; } .ui.inverted.corner.label:hover { border-color: @backgroundColor; transition: none; } .ui.inverted.basic.labels .label, .ui.inverted.basic.label, .ui.inverted.basic.label:hover { border-color: @basicInvertedBorderColor; background: @black; } .ui.inverted.basic.label:hover { color: @linkColor; } } /*------------------- Colors --------------------*/ each(@colors,{ @color : replace(@key,'@',''); @isDark : @colors[@@color][isDark]; @_labelColor : @colors[@@color][color]; @_labelInvertedColor : @colors[@@color][light]; @_labelTextColor : @colors[@@color][text]; @_labelHover : @colors[@@color][hover]; @_labelInvertedHover : @colors[@@color][lightHover]; @_labelHoverTextColor : @colors[@@color][hoverText]; @_labelRibbonShadow : @colors[@@color][ribbon]; @_labelInvertedRibbonShadow : @colors[@@color][invertedRibbon]; .ui.@{color}.labels .label, .ui.ui.ui.@{color}.label { background-color: @_labelColor; border-color: @_labelColor; color: @_labelTextColor; } /* Link */ .ui.@{color}.labels a.label:hover, a.ui.ui.ui.@{color}.label:hover{ background-color: @_labelHover; border-color: @_labelHover; color: @_labelHoverTextColor; } & when (@variationLabelRibbon) { /* Ribbon */ .ui.ui.ui.@{color}.ribbon.label { border-color: @_labelRibbonShadow; } } & when (@variationLabelBasic) { /* Basic */ .ui.basic.labels .@{color}.label, .ui.ui.ui.basic.@{color}.label { background: @basicBackground; border-color: @_labelColor; color: @_labelColor; } .ui.basic.labels a.@{color}.label:hover, a.ui.ui.ui.basic.@{color}.label:hover { background: @basicBackground; border-color: @_labelHover; color: @_labelHover; } } & when (@variationLabelInverted) { /* Inverted */ .ui.inverted.labels .@{color}.label, .ui.ui.ui.inverted.@{color}.label { background-color: @_labelInvertedColor; border-color: @_labelInvertedColor; color: @black; } /* Inverted Link */ .ui.inverted.labels a.@{color}.label:hover, a.ui.ui.ui.inverted.@{color}.label:hover{ background-color: @_labelInvertedHover; border-color: @_labelInvertedHover; & when not (@isDark) { color: @black; } & when (@isDark) { color: @_labelTextColor; } } & when (@variationLabelRibbon) { /* Inverted Ribbon */ .ui.ui.ui.inverted.@{color}.ribbon.label { border-color: @_labelInvertedRibbonShadow; } } & when (@variationLabelBasic) { /* Inverted Basic */ .ui.inverted.basic.labels .@{color}.label, .ui.ui.ui.inverted.basic.@{color}.label { background-color: @invertedBackground; border-color: @_labelInvertedColor; & when not (@isDark) { color: @_labelInvertedColor; } & when (@isDark) { color: @invertedTextColor; } } .ui.inverted.basic.labels a.@{color}.label:hover, a.ui.ui.ui.inverted.basic.@{color}.label:hover { border-color: @_labelInvertedHover; background-color: @invertedBackground; & when not (@isDark) { color: @_labelInvertedHover; } } & when (@variationLabelTag) { /* Inverted Basic Tags */ .ui.inverted.basic.tag.labels .@{color}.label, .ui.ui.ui.inverted.@{color}.basic.tag.label { border: @invertedBorderSize solid @_labelInvertedColor; } .ui.inverted.basic.tag.labels .@{color}.label:before, .ui.ui.ui.inverted.@{color}.basic.tag.label:before { border-color: inherit; border-width: @invertedBorderSize 0 0 @invertedBorderSize; border-style: inherit; background-color: @invertedBackground; right: e(%("calc(100%% + %d)", @invertedBorderSize)); } } } } }) /*------------------- Horizontal --------------------*/ .ui.horizontal.labels .label, .ui.horizontal.label { margin: 0 @horizontalLabelMargin 0 0; padding: @horizontalLabelVerticalPadding @horizontalPadding; min-width: @horizontalLabelMinWidth; text-align: center; } & when (@variationLabelCircular) { /*------------------- Circular --------------------*/ .ui.circular.labels .label, .ui.circular.label { min-width: @circularMinSize; min-height: @circularMinSize; padding: @circularPadding !important; line-height: 1em; text-align: center; border-radius: @circularRadius; } .ui.empty.circular.labels .label, .ui.empty.circular.label { min-width: 0; min-height: 0; overflow: hidden; width: @emptyCircleSize; height: @emptyCircleSize; vertical-align: baseline; } } & when (@variationLabelPointing) { /*------------------- Pointing --------------------*/ .ui.pointing.label { position: relative; } .ui.attached.pointing.label { position: absolute; } .ui.pointing.label:before { background-color: inherit; background-image: inherit; border-width: 0; border-style: solid; border-color: @pointingBorderColor; } /* Arrow */ .ui.pointing.label:before { position: absolute; content: ''; transform: rotate(45deg); background-image: none; z-index: @pointingTriangleZIndex; width: @pointingTriangleSize; height: @pointingTriangleSize; transition: @pointingTriangleTransition; } /*--- Above ---*/ .ui.pointing.label, .ui[class*="pointing above"].label { margin-top: @pointingVerticalDistance; } .ui.pointing.label:before, .ui[class*="pointing above"].label:before { border-width: @borderWidth 0 0 @borderWidth; transform: translateX(-50%) translateY(-50%) rotate(45deg); top: 0; left: 50%; } /*--- Below ---*/ .ui[class*="bottom pointing"].label, .ui[class*="pointing below"].label { margin-top: 0; margin-bottom: @pointingVerticalDistance; } .ui[class*="bottom pointing"].label:before, .ui[class*="pointing below"].label:before { border-width: 0 @borderWidth @borderWidth 0; top: auto; right: auto; transform: translateX(-50%) translateY(-50%) rotate(45deg); top: 100%; left: 50%; } /*--- Left ---*/ .ui[class*="left pointing"].label { margin-top: 0; margin-left: @pointingHorizontalDistance; } .ui[class*="left pointing"].label:before { border-width: 0 0 @borderWidth @borderWidth; transform: translateX(-50%) translateY(-50%) rotate(45deg); bottom: auto; right: auto; top: 50%; left: 0; } /*--- Right ---*/ .ui[class*="right pointing"].label { margin-top: 0; margin-right: @pointingHorizontalDistance; } .ui[class*="right pointing"].label:before { border-width: @borderWidth @borderWidth 0 0; transform: translateX(50%) translateY(-50%) rotate(45deg); top: 50%; right: 0; bottom: auto; left: auto; } & when (@variationLabelBasic) { /* Basic Pointing */ /*--- Above ---*/ .ui.basic.pointing.label:before, .ui.basic[class*="pointing above"].label:before { margin-top: @basicPointingTriangleOffset; } /*--- Below ---*/ .ui.basic[class*="bottom pointing"].label:before, .ui.basic[class*="pointing below"].label:before { bottom: auto; top: 100%; margin-top: -@basicPointingTriangleOffset; } /*--- Left ---*/ .ui.basic[class*="left pointing"].label:before { top: 50%; left: @basicPointingTriangleOffset; } /*--- Right ---*/ .ui.basic[class*="right pointing"].label:before { top: 50%; right: @basicPointingTriangleOffset; } } } & when (@variationLabelFloating) { /*------------------ Floating Label -------------------*/ .ui.floating.label { position: absolute; z-index: @floatingZIndex; top: @floatingTopOffset; right: 0; white-space: nowrap; transform: translateX(50%); } .ui.right.aligned.floating.label { transform: translateX(@floatingAlignOffset); } .ui.left.floating.label { left:0; right:auto; transform: translateX(-50%); } .ui.left.aligned.floating.label { transform: translateX(-@floatingAlignOffset); } .ui.bottom.floating.label { top: auto; bottom: @floatingBottomOffset; } } /*------------------- Sizes --------------------*/ .ui.labels .label, .ui.label { font-size: @medium; } & when not (@variationLabelSizes = false) { each(@variationLabelSizes, { @s: @@value; .ui.@{value}.labels .label, .ui.@{value}.label { font-size: @s; } }) } .loadUIOverrides();