UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

397 lines (335 loc) 10.4 kB
@import "./var.less"; @import "./mixin.less"; @collapse-menu-width: 64px; @collapse-item-width: 160px; @item-height: 24px; @light-bg: @color-neutral1; @light-item-color: @color-text-grey1; @light-item-hover-color: @color-primary6; @light-item-hover-bg: @color-primary6; @light-item-active-color: @color-primary6; @light-item-active-bg: @color-primary1; @light-item-disabled-color: @color-primary6; @light-item-disabled-bg: @color-primary1; @light-submenu-color: @color-text-grey1; @light-submenu-bg: @color-primary6; @light-submenu-hover-color: @color-primary6; @light-submenu-hover-bg: @color-primary6; @light-submenu-active-color: @color-primary6; @light-submenu-active-bg: @color-primary6; @light-submenu-opened-color: @color-primary6; @light-submenu-opened-bg: @color-primary6; @light-item-group-color: @color-text-grey3; @light-submenu-open-icon-color: @color-text-grey3; @light-submenu-line-color: @color-neutral5; @dark-bg: @color-neutral4; // menu-item 字体颜色 @dark-item-color: @color-text-grey1; // menu-item hover颜色 @dark-item-hover-color: @color-text-grey1; @dark-item-hover-bg: @color-background-grey2; // menu-item active颜色 @dark-item-active-color: @color-text-grey1; @dark-item-active-bg: @color-background-grey2; // menu-item disabled颜色 @dark-item-disabled-color: @color-text-grey2; @dark-item-disabled-bg: @color-neutral4; // menu-submenu 颜色 @dark-submenu-color: @color-text-grey1; // submenu 标题 hover @dark-submenu-hover-color: @color-text-grey1; @dark-submenu-hover-bg: @color-background-grey2; // submenu 标题 active、opened @dark-submenu-active-color: @color-text-grey1; @dark-submenu-active-bg: @color-background-grey2; // 覆盖颜色暂时开启 @dark-submenu-opened-color: @color-text-grey1; @dark-submenu-opened-bg: @color-background-grey2; @dark-item-group-color: @color-text-grey3; @dark-submenu-open-icon-color: @color-text-grey4; @dark-submenu-line-color: @color-neutral5; .ellipsis { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .menuThemeStyle(@theme) { .@{prefixCls}-submenu-popover { &&-@{theme} { background-color: ~"@{@{theme}-bg}"; border-radius: 1px; } } .@{prefixCls}-menu-@{theme}, .@{prefixCls}-submenu-popover-@{theme} { padding: 4px 0; border-radius: 1px; background-color: ~"@{@{theme}-bg}"; .transition(); .@{prefixCls}-submenu { &-header { color: ~"@{@{theme}-submenu-color}"; background-color: ~"@{@{theme}-bg}"; .transition(); &-open-icon { color: ~"@{@{theme}-submenu-open-icon-color}"; .transition(); } &:hover { background-color: ~"@{@{theme}-submenu-hover-bg}"; color: ~"@{@{theme}-submenu-hover-color}"; &, .@{prefixCls}-submenu-header-open-icon { .transition(); } } &-active { background-color: ~"@{@{theme}-submenu-active-bg}"; color: ~"@{@{theme}-submenu-active-color}"; &, .@{prefixCls}-submenu-header-open-icon { .transition(); } } } &-content { &-line { background-color: ~"@{@{theme}-submenu-line-color}"; .transition(); } } &-opened { .@{prefixCls}-submenu-header { background-color: ~"@{@{theme}-submenu-opened-bg}"; color: ~"@{@{theme}-submenu-opened-color}"; } } } .@{prefixCls}-item-group { &-header { color: ~"@{@{theme}-item-group-color}"; .transition(); } } .@{prefixCls}-menu-item { &, & a { color: ~"@{@{theme}-item-color}"; background-color: ~"@{@{theme}-bg}"; .transition(); &:hover { background-color: ~"@{@{theme}-item-hover-bg}"; color: ~"@{@{theme}-item-hover-color}"; } } &-active { &, & a { background: ~"@{@{theme}-item-active-bg}"; color: ~"@{@{theme}-item-active-color}"; .transition(); } } &-disabled { &, & a { background: ~"@{@{theme}-item-disabled-bg}" !important; color: ~"@{@{theme}-item-disabled-color}" !important; .transition(); cursor: not-allowed; } } } .@{prefixCls}-menu-divider { padding: 4px 0; } } } .menuThemeStyle(e("dark")); .menuThemeStyle(e("light")); .@{prefixCls}-menu-line-icon { flex: none; display: inline-block; width: 16px; height: 16px; margin-right: 8px; } .@{prefixCls}-menu-line-title { flex: auto; .ellipsis; } .@{prefixCls}-menu { display: flex; flex-direction: column; font-size: 12px; box-sizing: border-box; } .@{prefixCls}-submenu { &-content { overflow: hidden; max-height: 9999px; @transition-value: opacity ease-out @motion-duration-b @motion-duration-b, max-height linear 0s 34ms; .property-prefix(transition, @transition-value); &-hide { opacity: 0; max-height: 0; @transition-value: opacity ease-in @motion-duration-b, max-height linear 0s (@motion-duration-b * 2 - 34ms); .property-prefix(transition, @transition-value); } } &-header { display: flex; height: @item-height; line-height: @item-height; cursor: pointer; .@{prefixCls}-menu-line-title { font-weight: 600; } &-open-icon { flex: none; user-select: none; font-size: 12px; } } } .@{prefixCls}-item-group { width: 100%; &-header { height: @item-height; line-height: @item-height; } } .@{prefixCls}-menu-item { position: relative; width: 100%; height: @item-height; line-height: @item-height; cursor: pointer; .ellipsis; &-1 { .@{prefixCls}-menu-line-title { font-weight: 600; } } a { &:before { content: ''; position: absolute; left: 0; right: 0; top: 0; bottom: 0; background-color: transparent; } } } .@{prefixCls}-menu-uncollapse { width: 160px; @transition-value: all ease-in-out @motion-duration-a, width ease-out @motion-duration-b; .property-prefix(transition, @transition-value); .@{prefixCls}-menu-line-title, .@{prefixCls}-submenu-header-open-icon { max-width: 100%; @transition-value: all ease-in-out @motion-duration-a, opacity ease-out @motion-duration-b @motion-duration-b, max-width ease-out @motion-duration-b; .property-prefix(transition, @transition-value); } .@{prefixCls}-submenu { &-line { .@{prefixCls}-submenu-header { &-open-icon { margin-right: 8px; } } &:not(:last-of-type) { .@{prefixCls}-submenu-content { position: relative; &-line { position: absolute; top: 8px; bottom: 8px; width: 1px; } } } } &-header { display: flex; height: @item-height; line-height: @item-height; cursor: pointer; .@{prefixCls}-menu-line-title { font-weight: 600; } &-open-icon { flex: none; } } } .@{prefixCls}-submenu-header, .@{prefixCls}-item-group-header, .@{prefixCls}-menu-item { padding-right: 16px; } .@{prefixCls}-submenu-header, .@{prefixCls}-menu-item { @transition-value: all ease-in-out @motion-duration-a, padding linear 0s; .property-prefix(transition, @transition-value); } } .@{prefixCls}-menu-collapse { width: @collapse-menu-width; @transition-value: all ease-in-out @motion-duration-a, width ease-out @motion-duration-b @motion-duration-b; .property-prefix(transition, @transition-value); .@{prefixCls}-menu-line-title, .@{prefixCls}-submenu-header-open-icon { opacity: 0; max-width: 0; @transition-value: all ease-in-out @motion-duration-a, opacity ease-out @motion-duration-b, max-width ease-out (@motion-duration-b * 0.4) (@motion-duration-b * 1.6); .property-prefix(transition, @transition-value); } .@{prefixCls}-menu-line-icon { margin-right: 0; .property-prefix(transition, margin-right linear 0s @motion-duration-b); } .@{prefixCls}-submenu-header, .@{prefixCls}-menu-item { display: flex; justify-content: center; padding: 0 !important; height: @item-height; line-height: @item-height; @transition-value: all ease-in-out @motion-duration-a, padding linear 0s (@motion-duration-b * 2); .property-prefix(transition, @transition-value); } } .@{prefixCls}-submenu-popover { width: @collapse-item-width; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15); .@{prefixCls}-popover-inner { font-size: 12px; border-radius: 0; } .@{prefixCls}-submenu-header, .@{prefixCls}-item-group-header, .@{prefixCls}-menu-item { padding-right: 16px; } }