vitepress-plugin-tabs
Version:
A plugin that adds syntax for showing content in tabs.
131 lines (128 loc) • 3.77 kB
CSS
:root {
--vp-plugin-tabs-tab-text-color: var(--vp-c-text-2);
--vp-plugin-tabs-tab-active-text-color: var(--vp-c-text-1);
--vp-plugin-tabs-tab-hover-text-color: var(--vp-c-text-1);
--vp-plugin-tabs-tab-bg: var(--vp-c-bg-soft);
--vp-plugin-tabs-tab-divider: var(--vp-c-divider);
--vp-plugin-tabs-tab-active-bar-color: var(--vp-c-brand-1);
}
.plugin-tabs {
margin: 16px 0;
background-color: var(--vp-plugin-tabs-tab-bg);
border-radius: 8px;
}
.plugin-tabs--tab-list {
position: relative;
padding: 0 12px;
overflow-x: auto;
overflow-y: hidden;
}
.plugin-tabs--tab-list::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2px;
background-color: var(--vp-plugin-tabs-tab-divider);
}
.plugin-tabs--tab {
position: relative;
padding: 0 12px;
line-height: 48px;
border-bottom: 2px solid transparent;
color: var(--vp-plugin-tabs-tab-text-color);
font-size: 14px;
font-weight: 500;
white-space: nowrap;
transition: color 0.25s;
}
.plugin-tabs--tab[aria-selected='true'] {
color: var(--vp-plugin-tabs-tab-active-text-color);
}
.plugin-tabs--tab:hover {
color: var(--vp-plugin-tabs-tab-hover-text-color);
}
.plugin-tabs--tab::after {
content: '';
position: absolute;
bottom: -2px;
left: 8px;
right: 8px;
height: 2px;
background-color: transparent;
transition: background-color 0.25s;
z-index: 1;
}
.plugin-tabs--tab[aria-selected='true']::after {
background-color: var(--vp-plugin-tabs-tab-active-bar-color);
}
.plugin-tabs[data-variant='code'] {
margin-top: 16px;
margin-bottom: 0;
background-color: transparent;
border-radius: 0;
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab-list {
margin-right: -24px;
margin-left: -24px;
background-color: var(--vp-code-tab-bg);
box-shadow: inset 0 -1px var(--vp-code-tab-divider);
}
@media (min-width: 640px) {
.plugin-tabs[data-variant='code'] .plugin-tabs--tab-list {
margin-right: 0;
margin-left: 0;
border-radius: 8px 8px 0 0;
}
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab-list::after {
display: none;
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab {
color: var(--vp-code-tab-text-color);
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab[aria-selected='true'] {
color: var(--vp-code-tab-active-text-color);
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab:hover {
color: var(--vp-code-tab-hover-text-color);
}
.plugin-tabs[data-variant='code'] .plugin-tabs--tab[aria-selected='true']::after {
background-color: var(--vp-code-tab-active-bar-color);
}
.plugin-tabs--content[data-v-9f355b7c] {
padding: 16px;
}
.plugin-tabs--content[data-is-print='true'][data-v-9f355b7c]:not(:last-child) {
border-bottom: 2px solid var(--vp-plugin-tabs-tab-divider);
}
.plugin-tabs--content[data-v-9f355b7c] > :first-child:first-child {
margin-top: 0;
}
.plugin-tabs--content[data-v-9f355b7c] > :last-child:last-child {
margin-bottom: 0;
}
.plugin-tabs--content[data-v-9f355b7c] > div[class*='language-'] {
border-radius: 8px;
margin: 16px 0px;
}
:root:not(.dark) .plugin-tabs--content[data-v-9f355b7c] div[class*='language-'] {
background-color: var(--vp-c-bg);
}
.plugin-tabs[data-variant='code'] .plugin-tabs--content[data-v-9f355b7c] {
padding: 0;
}
.plugin-tabs[data-variant='code'] .plugin-tabs--content[data-v-9f355b7c] > div[class*='language-'] {
border-top-left-radius: 0 ;
border-top-right-radius: 0 ;
margin: 0 -24px ;
}
@media (min-width: 640px) {
.plugin-tabs[data-variant='code'] .plugin-tabs--content[data-v-9f355b7c] > div[class*='language-'] {
border-bottom-left-radius: 8px ;
border-bottom-right-radius: 8px ;
margin-right: 0 ;
margin-left: 0 ;
}
}