fomantic-ui
Version:
Fomantic empowers designers and developers by creating a shared vocabulary for UI.
369 lines (322 loc) • 10.6 kB
text/less
/*!
* # Fomantic-UI - Accordion
* https://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* https://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type: "module";
@element: "accordion";
@import (multiple) "../../theme.config";
/*******************************
Accordion
*******************************/
.ui.accordion,
.ui.accordion .accordion {
max-width: 100%;
}
.ui.accordion .accordion {
margin: @childAccordionMargin;
padding: @childAccordionPadding;
}
/* Title */
.ui.accordion.menu .item > .title,
.ui.accordion > .title,
.ui.accordion .accordion > .title {
cursor: pointer;
padding: @titlePadding;
font-family: @titleFont;
font-size: @titleFontSize;
color: @titleColor;
list-style: none;
line-height: @titleLineHeight;
}
/* Default Styling */
.ui.accordion:not(.styled) .title ~ .content,
.ui.accordion:not(.styled) .accordion .title ~ .content {
margin: @contentMargin;
padding: @contentPadding;
}
.ui.accordion:not(.styled) .title ~ .content:last-child {
padding-bottom: 0;
}
/* Arrow */
.ui.accordion .ui.header > .dropdown.icon,
.ui.accordion .title > .dropdown.icon,
.ui.accordion .accordion .title > .dropdown.icon {
display: @iconDisplay;
float: @iconFloat;
opacity: @iconOpacity;
width: @iconWidth;
height: @iconHeight;
margin: @iconMargin;
padding: @iconPadding;
font-size: @iconFontSize;
transition: @iconTransition;
vertical-align: @iconVerticalAlign;
transform: @iconTransform;
&.right when (@variationAccordionRightDropdown) {
float: right;
transform: @iconTransformRight;
}
}
/* --------------
Coupling
--------------- */
/* Menu */
.ui.accordion.menu .item .title {
display: block;
padding: @menuTitlePadding;
}
.ui.accordion.menu .item .title > .dropdown.icon {
float: @menuIconFloat;
margin: @menuIconMargin;
transform: @menuIconTransform;
}
/* Header */
.ui.accordion .ui.header > .dropdown.icon {
font-size: @iconFontSize;
margin: @iconMargin;
}
/*******************************
States
*******************************/
.ui.accordion[open] > .title > .dropdown.icon,
.ui.accordion .accordion[open] > .title > .dropdown.icon,
.ui.accordion .active.title > .dropdown.icon,
.ui.accordion .accordion .active.title > .dropdown.icon {
transform: @activeIconTransform;
}
.ui.accordion.menu .item .active.title > .dropdown.icon {
transform: @activeIconTransform;
}
/*******************************
Types
*******************************/
& when (@variationAccordionStyled) {
/* --------------
Styled
--------------- */
.ui.styled.accordion {
width: @styledWidth;
}
.ui.styled.accordion,
.ui.styled.accordion .accordion {
border-radius: @styledBorderRadius;
background: @styledBackground;
box-shadow: @styledBoxShadow;
}
.ui.styled.accordion > .title,
.ui.styled.accordion .accordion > .title {
margin: @styledTitleMargin;
padding: @styledTitlePadding;
color: @styledTitleColor;
font-weight: @styledTitleFontWeight;
border-top: @styledTitleBorder;
transition: @styledTitleTransition;
}
.ui.styled.accordion > .title:first-child,
.ui.styled.accordion .accordion > .title:first-child {
border-top: none;
}
/* Content */
.ui.styled.accordion > .content {
margin: @styledContentMargin;
padding: @styledContentPadding;
}
.ui.styled.accordion .accordion > .content {
margin: @styledChildContentMargin;
padding: @styledChildContentPadding;
}
/* Hover */
.ui.styled.accordion > .title:hover {
background: @styledTitleHoverBackground;
color: @styledTitleHoverColor;
}
.ui.styled.accordion .accordion > .title:hover {
background: @styledHoverChildTitleBackground;
color: @styledHoverChildTitleColor;
}
/* Active */
.ui.styled.accordion[open] > .title,
.ui.styled.accordion .active.title {
background: @styledActiveTitleBackground;
color: @styledActiveTitleColor;
}
.ui.styled.accordion .accordion[open] > .title,
.ui.styled.accordion .accordion .active.title {
background: @styledActiveChildTitleBackground;
color: @styledActiveChildTitleColor;
}
}
& when (@variationAccordionCompact) {
/* --------------
Compact
--------------- */
/* Default Styling */
.ui.compact.accordion:not(.styled) > .title,
.ui.compact.accordion:not(.styled) .accordion > .title {
padding: @titlePaddingCompact;
}
.ui.compact.accordion:not(.styled) .title ~ .content,
.ui.compact.accordion:not(.styled) .accordion .title ~ .content {
padding: @contentPaddingCompact;
}
/* Styled */
.ui.compact.styled.accordion > .title,
.ui.compact.styled.accordion .accordion > .title {
padding: @styledTitlePaddingCompact;
}
.ui.compact.styled.accordion .title ~ .content,
.ui.compact.styled.accordion .accordion .title ~ .content {
padding: @styledContentPaddingCompact;
}
}
/* --------------
Very Compact
--------------- */
& when (@variationAccordionVeryCompact) {
.ui[class*="very compact"].accordion:not(.styled) > .title,
.ui[class*="very compact"].accordion:not(.styled) .accordion > .title {
padding: @titlePaddingVeryCompact;
}
.ui[class*="very compact"].accordion:not(.styled) .title ~ .content,
.ui[class*="very compact"].accordion:not(.styled) .accordion .title ~ .content {
padding: @contentPaddingVeryCompact;
}
.ui[class*="very compact"].styled.accordion > .title,
.ui[class*="very compact"].styled.accordion .accordion > .title {
padding: @styledTitlePaddingVeryCompact;
}
.ui[class*="very compact"].styled.accordion .title ~ .content,
.ui[class*="very compact"].styled.accordion .accordion .title ~ .content {
padding: @styledContentPaddingVeryCompact;
}
}
/*******************************
States
*******************************/
/* --------------
Not Active
--------------- */
.ui.accordion:not(details) .title ~ .content:not(.active),
.ui.accordion .accordion:not(details) .title ~ .content:not(.active) {
display: none;
}
/*******************************
Variations
*******************************/
& when (@variationAccordionFluid) {
/* --------------
Fluid
--------------- */
.ui.fluid.accordion,
.ui.fluid.accordion .accordion {
width: 100%;
}
}
& when (@variationAccordionInverted) {
/* --------------
Inverted
--------------- */
.ui.inverted.accordion.menu .item > .title,
.ui.inverted.accordion > .title,
.ui.inverted.accordion .accordion > .title {
color: @invertedTitleColor;
}
& when (@variationAccordionStyled) {
.ui.inverted.styled.accordion,
.ui.inverted.styled.accordion .accordion {
background: @invertedStyledBackground;
box-shadow: @invertedStyledBoxShadow;
}
.ui.inverted.styled.accordion > .title,
.ui.inverted.styled.accordion .accordion > .title {
color: @invertedStyledTitleColor;
border-top: @invertedStyledTitleBorder;
}
/* Hover */
.ui.inverted.styled.accordion > .title:hover {
background: @invertedStyledTitleHoverBackground;
color: @invertedStyledTitleHoverColor;
}
.ui.inverted.styled.accordion .accordion > .title:hover {
background: @invertedStyledHoverChildTitleBackground;
color: @invertedStyledHoverChildTitleColor;
}
/* Active */
.ui.inverted.styled.accordion[open] > .title,
.ui.inverted.styled.accordion .active.title {
background: @invertedStyledActiveTitleBackground;
color: @invertedStyledActiveTitleColor;
}
.ui.inverted.styled.accordion .accordion[open] > .title,
.ui.inverted.styled.accordion .accordion .active.title {
background: @invertedStyledActiveChildTitleBackground;
color: @invertedStyledActiveChildTitleColor;
}
}
}
& when (@variationAccordionBasicStyled) {
.ui.basic.styled.accordion,
.ui.basic.styled.accordion .accordion {
background: transparent;
box-shadow: none;
}
.ui.basic.styled.accordion > .title,
.ui.basic.styled.accordion .accordion > .title {
border: none;
color: @basicStyledTitleColor;
}
.ui.basic.styled.accordion > .title:hover,
.ui.basic.styled.accordion .accordion > .title:hover {
background: transparent;
color: @basicStyledTitleHoverColor;
}
.ui.basic.styled.accordion[open] > .title,
.ui.basic.styled.accordion .active.title,
.ui.basic.styled.accordion .accordion[open] > .title,
.ui.basic.styled.accordion .accordion .active.title {
background: transparent;
color: @basicStyledActiveTitleColor;
}
& when (@variationAccordionInverted) {
.ui.inverted.basic.styled.accordion > .title,
.ui.inverted.basic.styled.accordion .accordion > .title {
background: transparent;
color: @invertedBasicStyledTitleColor;
}
.ui.inverted.basic.styled.accordion > .title:hover,
.ui.inverted.basic.styled.accordion .accordion > .title:hover {
background: transparent;
color: @invertedBasicStyledTitleHoverColor;
}
.ui.inverted.basic.styled.accordion[open] > .title,
.ui.inverted.basic.styled.accordion .active.title,
.ui.inverted.basic.styled.accordion .accordion[open] > .title,
.ui.inverted.basic.styled.accordion .accordion .active.title {
background: transparent;
color: @invertedBasicStyledActiveTitleColor;
}
}
}
& when (@variationAccordionTree) {
.ui.tree.accordion:not(.styled) .title ~ .content,
.ui.tree.accordion:not(.styled) .accordion .title ~ .content {
padding: @treeContentPadding;
}
.ui.tree.accordion > .content,
.ui.tree.accordion .accordion > .content {
margin-left: @treeContentLeftMargin;
}
.ui.tree.accordion .accordion {
margin-top: @treeContentTopMargin;
}
}
// stylelint-disable no-invalid-position-at-import-rule
@import (multiple, optional) "../../overrides.less";