amis2/scss/components/_nav.scss
吴多益 33686a375e
SCSS 基于 CSS custom properties 重构,支持通过配置来控制展现风格 (#1190)
* 使用自定义 css 属性初步,支持大部分组件的展现

* button 大部分可以看了

* cxd 和 dark 大部分正常

* 修复一些细节样式错误;补充 css 变量的文档

* 修复几个脚本发现的错误

* 完善一下注释

* 修复一些样式不一致问题

* 修复可能存在的 css xss

* 恢复 font-variant 功能

* 修复绝大部分 @if 相关的问题

* 恢复之前的注释

* 修复小错误,并将所有 background-color 改成 background,这样就能设置渐变色

* 修复 button group 在 cxd 下不一致问题

* 缩小查看配置和复制配置的宽度,留出更多空间

* 修复一些潜在的错误

* 恢复 utilities 中 label 背景色的设置

* 修复错误的 css 变量

* 补充 IE11 Variables Polyfill
2020-12-21 10:08:40 +08:00

151 lines
3.5 KiB
SCSS

.#{$ns}Nav {
list-style: none;
user-select: none;
margin: 0;
padding: 0;
.#{$ns}Nav-itemIcon {
margin-right: var(--gap-xs);
}
&--tabs {
border-bottom: var(--Tabs-borderWidth) solid var(--Tabs-borderColor);
.#{$ns}Nav-item {
margin-bottom: calc(var(--Tabs-borderWidth) * -1);
display: inline-block;
> a {
font-size: var(--Tabs-linkFontSize);
display: block;
outline: none;
border: var(--Tabs-borderWidth) solid transparent;
border-top-left-radius: var(--Tabs-borderRadius);
border-top-right-radius: var(--Tabs-borderRadius);
color: var(--Tabs-color);
text-decoration: none;
margin-right: px2rem(2px);
padding: var(--gap-sm) var(--gap-base);
cursor: pointer;
}
&:hover > a,
> a:focus {
border-color: var(--Tabs-onHover-borderColor);
text-decoration: none;
}
&.disabled > a,
&.is-disabled > a {
color: var(--Tabs-onDisabled-color);
background: transparent;
border-color: transparent;
pointer-events: none;
}
&.active > a,
&.is-active > a {
color: var(--Tabs-onActive-color);
background: var(--Tabs-onActive-bg);
border-color: var(--Tabs-onActive-borderColor);
border-bottom-color: var(--Tabs-content-bg);
}
}
}
&--stacked {
.#{$ns}Nav-item {
position: relative;
> a {
display: block;
outline: none;
color: var(--Nav-item-color);
text-decoration: none;
padding: var(--gap-sm) var(--gap-base);
cursor: pointer;
background: var(--Nav-item-bg);
border-radius: var(--Nav-item-borderRadius);
}
&:hover > a,
> a:focus {
border-color: var(--Nav-item-onHover-color);
text-decoration: none;
background: var(--Nav-item-onHover-bg);
}
&.disabled > a,
&.is-disabled > a {
color: var(--Nav-item-onDisabled-color);
background: transparent;
pointer-events: none;
}
&.active > a,
&.is-active > a {
color: var(--Nav-item-onActive-color);
background: var(--Nav-item-onActive-bg);
border-left: var(--Nav-item-onActive-borderLeft);
padding-left: px2rem(12px);
}
&.is-unfolded {
.#{$ns}Nav-itemToggler {
transform: rotate(180deg) scale(0.8);
}
.#{$ns}Nav-subItems {
display: block;
}
}
.#{$ns}Nav-itemToggler {
position: absolute;
width: px2rem(30px);
height: px2rem(30px);
text-align: center;
line-height: px2rem(30px);
vertical-align: middle;
top: px2rem(4px);
right: px2rem(2px);
cursor: pointer;
transform: scale(0.8);
transition: transform 0.3s;
> svg {
width: 10px;
height: 10px;
top: 0;
}
}
.#{$ns}Nav-subItems {
display: none;
padding-left: 0;
list-style: none;
}
.#{$ns}Nav-item {
font-size: var(--Nav-subItem-fontSize);
a:before {
content: '';
display: inline-block;
width: px2rem(4px);
height: px2rem(4px);
background: #ccc;
border-radius: px2rem(500px);
margin-right: px2rem(8px);
vertical-align: middle;
}
&.active > a:before,
&.is-active > a:before {
background: var(--Nav-subItem-onActiveBeforeBg);
}
}
}
}
}