UNPKG

naive-ui

Version:

A Vue 3 Component Library. Fairly Complete, Theme Customizable, Uses TypeScript, Fast

232 lines 9.65 kB
import { fadeInHeightExpandTransition } from "../../../_styles/transitions/fade-in-height-expand.cssr.mjs"; import { c, cB, cE, cM, cNotM } from "../../../_utils/cssr/index.mjs"; const hoverStyleChildren = [c('&::before', 'background-color: var(--n-item-color-hover);'), cE('arrow', ` color: var(--n-arrow-color-hover); `), cE('icon', ` color: var(--n-item-icon-color-hover); `), cB('menu-item-content-header', ` color: var(--n-item-text-color-hover); `, [c('a', ` color: var(--n-item-text-color-hover); `), cE('extra', ` color: var(--n-item-text-color-hover); `)])]; const horizontalHoverStyleChildren = [cE('icon', ` color: var(--n-item-icon-color-hover-horizontal); `), cB('menu-item-content-header', ` color: var(--n-item-text-color-hover-horizontal); `, [c('a', ` color: var(--n-item-text-color-hover-horizontal); `), cE('extra', ` color: var(--n-item-text-color-hover-horizontal); `)])]; // vars: // --n-color // --n-group-text-color // --n-bezier // --n-font-size // --n-border-color-horizontal // --n-border-radius // --n-item-color-hover // --n-item-color-active // --n-item-color-active-hover // --n-item-color-active-collapsed // --n-arrow-color // --n-arrow-color-hover // --n-arrow-color-active // --n-arrow-color-active-hover // --n-arrow-color-child-active // --n-arrow-color-child-active-hover // --n-item-text-color // --n-item-text-color-hover // --n-item-text-color-active // --n-item-text-color-active-hover // --n-item-text-color-child-active // --n-item-text-color-child-active-hover // --n-item-text-color-horizontal // --n-item-text-color-hover-horizontal // --n-item-text-color-active-horizontal // --n-item-text-color-active-hover-horizontal // --n-item-text-color-child-active-horizontal // --n-item-text-color-child-active-hover-horizontal // --n-item-icon-color // --n-item-icon-color-hover // --n-item-icon-color-active // --n-item-icon-color-active-hover // --n-item-icon-color-child-active // --n-item-icon-color-child-active-hover // --n-item-icon-color-collapsed // --n-item-icon-color-horizontal // --n-item-icon-color-hover-horizontal // --n-item-icon-color-active-horizontal // --n-item-icon-color-active-hover-horizontal // --n-item-icon-color-child-active-horizontal // --n-item-icon-color-child-active-hover-horizontal // --n-item-height export default c([cB('menu', ` background-color: var(--n-color); color: var(--n-item-text-color); overflow: hidden; transition: background-color .3s var(--n-bezier); box-sizing: border-box; font-size: var(--n-font-size); padding-bottom: 6px; `, [cM('horizontal', ` max-width: 100%; width: 100%; display: flex; overflow: hidden; padding-bottom: 0; `, [cB('submenu', 'margin: 0;'), cB('menu-item', 'margin: 0;'), cB('menu-item-content', ` padding: 0 20px; border-bottom: 2px solid #0000; `, [c('&::before', 'display: none;'), cM('selected', 'border-bottom: 2px solid var(--n-border-color-horizontal)')]), cB('menu-item-content', [cM('selected', [cE('icon', 'color: var(--n-item-icon-color-active-horizontal);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-active-horizontal); `, [c('a', 'color: var(--n-item-text-color-active-horizontal);'), cE('extra', 'color: var(--n-item-text-color-active-horizontal);')])]), cM('child-active', ` border-bottom: 2px solid var(--n-border-color-horizontal); `, [cB('menu-item-content-header', ` color: var(--n-item-text-color-child-active-horizontal); `, [c('a', ` color: var(--n-item-text-color-child-active-horizontal); `), cE('extra', ` color: var(--n-item-text-color-child-active-horizontal); `)]), cE('icon', ` color: var(--n-item-icon-color-child-active-horizontal); `)]), cNotM('disabled', [cNotM('selected, child-active', [c('&:focus-within', horizontalHoverStyleChildren)]), cM('selected', [hoverStyle(null, [cE('icon', 'color: var(--n-item-icon-color-active-hover-horizontal);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-active-hover-horizontal); `, [c('a', 'color: var(--n-item-text-color-active-hover-horizontal);'), cE('extra', 'color: var(--n-item-text-color-active-hover-horizontal);')])])]), cM('child-active', [hoverStyle(null, [cE('icon', 'color: var(--n-item-icon-color-child-active-hover-horizontal);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-child-active-hover-horizontal); `, [c('a', 'color: var(--n-item-text-color-child-active-hover-horizontal);'), cE('extra', 'color: var(--n-item-text-color-child-active-hover-horizontal);')])])]), hoverStyle('border-bottom: 2px solid var(--n-border-color-horizontal);', horizontalHoverStyleChildren)]), cB('menu-item-content-header', [c('a', 'color: var(--n-item-text-color-horizontal);')])])]), cNotM('responsive', [cB('menu-item-content-header', ` overflow: hidden; text-overflow: ellipsis; `)]), cM('collapsed', [cB('menu-item-content', [cM('selected', [c('&::before', ` background-color: var(--n-item-color-active-collapsed) !important; `)]), cB('menu-item-content-header', 'opacity: 0;'), cE('arrow', 'opacity: 0;'), cE('icon', 'color: var(--n-item-icon-color-collapsed);')])]), cB('menu-item', ` height: var(--n-item-height); margin-top: 6px; position: relative; `), cB('menu-item-content', ` box-sizing: border-box; line-height: 1.75; height: 100%; display: grid; grid-template-areas: "icon content arrow"; grid-template-columns: auto 1fr auto; align-items: center; cursor: pointer; position: relative; padding-right: 18px; transition: background-color .3s var(--n-bezier), padding-left .3s var(--n-bezier), border-color .3s var(--n-bezier); `, [c('> *', 'z-index: 1;'), c('&::before', ` z-index: auto; content: ""; background-color: #0000; position: absolute; left: 8px; right: 8px; top: 0; bottom: 0; pointer-events: none; border-radius: var(--n-border-radius); transition: background-color .3s var(--n-bezier); `), cM('disabled', ` opacity: .45; cursor: not-allowed; `), cM('collapsed', [cE('arrow', 'transform: rotate(0);')]), cM('selected', [c('&::before', 'background-color: var(--n-item-color-active);'), cE('arrow', 'color: var(--n-arrow-color-active);'), cE('icon', 'color: var(--n-item-icon-color-active);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-active); `, [c('a', 'color: var(--n-item-text-color-active);'), cE('extra', 'color: var(--n-item-text-color-active);')])]), cM('child-active', [cB('menu-item-content-header', ` color: var(--n-item-text-color-child-active); `, [c('a', ` color: var(--n-item-text-color-child-active); `), cE('extra', ` color: var(--n-item-text-color-child-active); `)]), cE('arrow', ` color: var(--n-arrow-color-child-active); `), cE('icon', ` color: var(--n-item-icon-color-child-active); `)]), cNotM('disabled', [cNotM('selected, child-active', [c('&:focus-within', hoverStyleChildren)]), cM('selected', [hoverStyle(null, [cE('arrow', 'color: var(--n-arrow-color-active-hover);'), cE('icon', 'color: var(--n-item-icon-color-active-hover);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-active-hover); `, [c('a', 'color: var(--n-item-text-color-active-hover);'), cE('extra', 'color: var(--n-item-text-color-active-hover);')])])]), cM('child-active', [hoverStyle(null, [cE('arrow', 'color: var(--n-arrow-color-child-active-hover);'), cE('icon', 'color: var(--n-item-icon-color-child-active-hover);'), cB('menu-item-content-header', ` color: var(--n-item-text-color-child-active-hover); `, [c('a', 'color: var(--n-item-text-color-child-active-hover);'), cE('extra', 'color: var(--n-item-text-color-child-active-hover);')])])]), cM('selected', [hoverStyle(null, [c('&::before', 'background-color: var(--n-item-color-active-hover);')])]), hoverStyle(null, hoverStyleChildren)]), cE('icon', ` grid-area: icon; color: var(--n-item-icon-color); transition: color .3s var(--n-bezier), font-size .3s var(--n-bezier), margin-right .3s var(--n-bezier); box-sizing: content-box; display: inline-flex; align-items: center; justify-content: center; `), cE('arrow', ` grid-area: arrow; font-size: 16px; color: var(--n-arrow-color); transform: rotate(180deg); opacity: 1; transition: color .3s var(--n-bezier), transform 0.2s var(--n-bezier), opacity 0.2s var(--n-bezier); `), cB('menu-item-content-header', ` grid-area: content; transition: color .3s var(--n-bezier), opacity .3s var(--n-bezier); opacity: 1; white-space: nowrap; color: var(--n-item-text-color); `, [c('a', ` outline: none; text-decoration: none; transition: color .3s var(--n-bezier); color: var(--n-item-text-color); `, [c('&::before', ` content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: 0; `)]), cE('extra', ` font-size: .93em; color: var(--n-group-text-color); transition: color .3s var(--n-bezier); `)])]), cB('submenu', ` cursor: pointer; position: relative; margin-top: 6px; `, [cB('menu-item-content', ` height: var(--n-item-height); `), cB('submenu-children', ` overflow: hidden; padding: 0; `, [fadeInHeightExpandTransition({ duration: '.2s' })])]), cB('menu-item-group', [cB('menu-item-group-title', ` margin-top: 6px; color: var(--n-group-text-color); cursor: default; font-size: .93em; height: 36px; display: flex; align-items: center; transition: padding-left .3s var(--n-bezier), color .3s var(--n-bezier); `)])]), cB('menu-tooltip', [c('a', ` color: inherit; text-decoration: none; `)]), cB('menu-divider', ` transition: background-color .3s var(--n-bezier); background-color: var(--n-divider-color); height: 1px; margin: 6px 18px; `)]); function hoverStyle(props, children) { return [cM('hover', props, children), c('&:hover', props, children)]; }