diff --git a/package.json b/package.json index 3d43f102c..c593ab896 100755 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "picocolors": "^1.0.1", "plop": "^4.0.1", "postcss": "^8.4.40", + "postcss-nested": "^6.2.0", "sass": "^1.77.8", "simple-git-hooks": "^2.11.1", "stylelint": "^16.8.1", diff --git a/plop-templates/component/index.hbs b/plop-templates/component/index.hbs index 69f759518..1d62a0259 100755 --- a/plop-templates/component/index.hbs +++ b/plop-templates/component/index.hbs @@ -12,6 +12,6 @@ defineOptions({ - diff --git a/plop-templates/page/index.hbs b/plop-templates/page/index.hbs index 09f0dbd8c..4d5dc48cb 100755 --- a/plop-templates/page/index.hbs +++ b/plop-templates/page/index.hbs @@ -17,6 +17,6 @@ defineOptions({ - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5451ad6e2..d67d3913a 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -243,6 +243,9 @@ importers: postcss: specifier: ^8.4.40 version: 8.4.40 + postcss-nested: + specifier: ^6.2.0 + version: 6.2.0(postcss@8.4.40) sass: specifier: ^1.77.8 version: 1.77.8 @@ -5855,6 +5858,12 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + postcss-prefix-selector@1.16.0: resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} peerDependencies: @@ -13984,6 +13993,11 @@ snapshots: postcss-media-query-parser@0.2.3: {} + postcss-nested@6.2.0(postcss@8.4.40): + dependencies: + postcss: 8.4.40 + postcss-selector-parser: 6.1.1 + postcss-prefix-selector@1.16.0(postcss@5.2.18): dependencies: postcss: 5.2.18 diff --git a/postcss.config.js b/postcss.config.js index b6dc0349e..f20659c17 100755 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,5 +1,6 @@ export default { plugins: { - autoprefixer: {}, + 'autoprefixer': {}, + 'postcss-nested': {}, }, } diff --git a/src/assets/styles/globals.scss b/src/assets/styles/globals.css similarity index 79% rename from src/assets/styles/globals.scss rename to src/assets/styles/globals.css index 699c96a7d..add36b2eb 100755 --- a/src/assets/styles/globals.scss +++ b/src/assets/styles/globals.css @@ -1,20 +1,24 @@ -// 页面布局 CSS 变量 +/* 页面布局 CSS 变量 */ :root { - // 头部高度 + /* 头部高度 */ --g-header-height: 60px; - // 侧边栏宽度 + + /* 侧边栏宽度 */ --g-main-sidebar-width: 80px; --g-sub-sidebar-width: 220px; --g-sub-sidebar-collapse-width: 64px; - // 侧边栏 Logo 区域高度 + + /* 侧边栏 Logo 区域高度 */ --g-sidebar-logo-height: 50px; - // 标签栏高度 + + /* 标签栏高度 */ --g-tabbar-height: 50px; - // 工具栏高度 + + /* 工具栏高度 */ --g-toolbar-height: 50px; } -// 明暗模式 CSS 变量 +/* 明暗模式 CSS 变量 */ /* stylelint-disable-next-line no-duplicate-selectors */ :root { --g-box-shadow-color: rgb(0 0 0 / 12%); @@ -87,22 +91,21 @@ body { box-sizing: inherit; } -// 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] +/* 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] */ [data-fixed-calc-width] { position: fixed; right: 0; left: 50%; width: calc(100% - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width)); transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2)); -} -[data-mode="mobile"] { - [data-fixed-calc-width] { + [data-mode="mobile"] & { width: 100% !important; transform: translateX(-50%) !important; } } -// textarea 字体跟随系统 + +/* textarea 字体跟随系统 */ textarea { font-family: inherit; } @@ -110,12 +113,12 @@ textarea { /* Overrides Floating Vue */ .v-popper--theme-dropdown, .v-popper--theme-tooltip { - --at-apply: inline-flex; + --uno: inline-flex; } .v-popper--theme-dropdown .v-popper__inner, .v-popper--theme-tooltip .v-popper__inner { - --at-apply: bg-white dark-bg-stone-8 text-dark dark-text-white rounded shadow ring-1 ring-gray-200 dark-ring-gray-800 border border-solid border-stone/20 text-xs font-normal; + --uno: bg-white dark-bg-stone-8 text-dark dark-text-white rounded shadow ring-1 ring-gray-200 dark-ring-gray-800 border border-solid border-stone/20 text-xs font-normal; box-shadow: 0 6px 30px rgb(0 0 0 / 10%); } @@ -124,12 +127,12 @@ textarea { .v-popper--theme-dropdown .v-popper__arrow-inner { visibility: visible; - --at-apply: border-white dark-border-stone-8; + --uno: border-white dark-border-stone-8; } .v-popper--theme-tooltip .v-popper__arrow-outer, .v-popper--theme-dropdown .v-popper__arrow-outer { - --at-apply: border-stone/20; + --uno: border-stone/20; } .v-popper--theme-tooltip.v-popper--shown, diff --git a/src/assets/styles/nprogress.scss b/src/assets/styles/nprogress.css similarity index 100% rename from src/assets/styles/nprogress.scss rename to src/assets/styles/nprogress.css diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 19b8e0156..0af893da9 100755 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -114,7 +114,7 @@ const onPreview: UploadProps['onPreview'] = (e) => { - diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue index 6a6a02d2c..ecf45d030 100755 --- a/src/layouts/components/Header/index.vue +++ b/src/layouts/components/Header/index.vue @@ -61,7 +61,7 @@ function handlerMouserScroll(event: WheelEvent) { - - diff --git a/src/views/component_extend_example/searchbar.demo.vue b/src/views/component_extend_example/searchbar.demo.vue index 298dc012a..4bef90a7c 100755 --- a/src/views/component_extend_example/searchbar.demo.vue +++ b/src/views/component_extend_example/searchbar.demo.vue @@ -420,7 +420,7 @@ function onToggle(fold: boolean) { -