akkoma-fe/src/components/tab_switcher/tab_switcher.scss

230 lines
4.4 KiB
SCSS
Raw Normal View History

@import '../../_variables.scss';
.tab-switcher {
display: flex;
2020-05-03 14:36:12 +00:00
2020-05-25 13:10:14 +00:00
.tab-icon {
2020-11-01 14:40:23 +00:00
margin: 0.2em auto;
2020-05-25 13:10:14 +00:00
display: block;
}
2020-05-03 14:36:12 +00:00
&.top-tabs {
flex-direction: column;
2020-05-03 14:36:12 +00:00
> .tabs {
width: 100%;
overflow-y: hidden;
overflow-x: auto;
padding-top: 5px;
flex-direction: row;
2020-05-03 14:36:12 +00:00
&::after, &::before {
content: '';
flex: 1 1 auto;
border-bottom: 1px solid;
border-bottom-color: $fallback--border;
border-bottom-color: var(--border, $fallback--border);
}
.tab-wrapper {
height: 28px;
&:not(.active)::after {
left: 0;
right: 0;
bottom: 0;
border-bottom: 1px solid;
border-bottom-color: $fallback--border;
border-bottom-color: var(--border, $fallback--border);
}
}
.tab {
width: 100%;
min-width: 1px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
padding-bottom: 99px;
margin-bottom: 6px - 99px;
}
}
.contents.scrollable-tabs {
flex-basis: 0;
}
}
&.side-tabs {
flex-direction: row;
@media all and (max-width: 800px) {
overflow-x: auto;
}
2020-05-03 14:36:12 +00:00
> .contents {
flex: 1 1 auto;
2020-05-03 14:36:12 +00:00
}
2020-05-03 14:36:12 +00:00
> .tabs {
flex: 0 0 auto;
2020-05-03 14:36:12 +00:00
overflow-y: auto;
overflow-x: hidden;
flex-direction: column;
2020-05-23 23:29:09 +00:00
&::after, &::before {
flex-shrink: 0;
flex-basis: .5em;
2020-05-23 23:29:09 +00:00
content: '';
2020-05-03 14:36:12 +00:00
border-right: 1px solid;
border-right-color: $fallback--border;
border-right-color: var(--border, $fallback--border);
}
&::after {
flex-grow: 1;
}
2020-05-25 14:22:57 +00:00
&::before {
flex-grow: 0;
}
2020-05-03 14:36:12 +00:00
.tab-wrapper {
min-width: 10em;
2020-05-23 23:29:09 +00:00
display: flex;
flex-direction: column;
@media all and (max-width: 800px) {
min-width: 4em;
}
2020-05-03 14:36:12 +00:00
&:not(.active)::after {
top: 0;
right: 0;
bottom: 0;
border-right: 1px solid;
border-right-color: $fallback--border;
border-right-color: var(--border, $fallback--border);
}
2020-05-23 23:29:09 +00:00
&::before {
flex: 0 0 6px;
content: '';
border-right: 1px solid;
border-right-color: $fallback--border;
border-right-color: var(--border, $fallback--border);
}
&:last-child .tab {
margin-bottom: 0;
}
2020-05-03 14:36:12 +00:00
}
2020-05-23 23:29:09 +00:00
2020-05-03 14:36:12 +00:00
.tab {
2020-05-23 23:29:09 +00:00
flex: 1;
2020-05-03 14:36:12 +00:00
box-sizing: content-box;
min-width: 10em;
min-width: 1px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
padding-left: 1em;
padding-right: calc(1em + 200px);
2020-05-28 18:26:33 +00:00
margin-right: -200px;
margin-left: 1em;
2020-05-28 18:26:33 +00:00
@media all and (max-width: 800px) {
padding-left: .25em;
padding-right: calc(.25em + 200px);
margin-right: calc(.25em - 200px);
margin-left: .25em;
.text {
display: none
}
2020-05-03 14:36:12 +00:00
}
}
}
}
.contents {
flex: 1 0 auto;
min-height: 0px;
.hidden {
display: none;
}
2020-05-29 10:39:30 +00:00
.full-height:not(.hidden) {
2020-05-28 18:26:33 +00:00
height: 100%;
display: flex;
flex-direction: column;
> *:not(.mobile-label) {
flex: 1;
}
}
&.scrollable-tabs {
overflow-y: auto;
}
}
2020-05-03 14:36:12 +00:00
.tab {
position: relative;
white-space: nowrap;
padding: 6px 1em;
&:not(.active) {
z-index: 4;
&:hover {
z-index: 6;
}
}
&.active {
background: transparent;
z-index: 5;
color: $fallback--text;
color: var(--tabActiveText, $fallback--text);
}
img {
max-height: 26px;
vertical-align: top;
margin-top: -5px;
}
}
.tabs {
display: flex;
position: relative;
box-sizing: border-box;
&::after, &::before {
display: block;
flex: 1 1 auto;
}
2020-05-03 14:36:12 +00:00
}
2020-05-03 14:36:12 +00:00
.tab-wrapper {
position: relative;
display: flex;
flex: 0 0 auto;
2018-12-15 23:35:42 +00:00
2020-05-03 14:36:12 +00:00
&:not(.active) {
&::after {
content: '';
position: absolute;
z-index: 7;
}
}
}
.mobile-label {
padding-left: .3em;
padding-bottom: .25em;
margin-top: .5em;
margin-left: .2em;
margin-bottom: .25em;
border-bottom: 1px solid var(--border, $fallback--border);
@media all and (min-width: 800px) {
display: none;
}
}
}