物业代码生成
This commit is contained in:
19
packages/styles/README.md
Normal file
19
packages/styles/README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# @vben/styles
|
||||
|
||||
用于多个 `app` 公用的样式文件,继承了 `@vben-core/design` 的所有能力。业务上有通用的样式文件可以放在这里。
|
||||
|
||||
## 用法
|
||||
|
||||
### 添加依赖
|
||||
|
||||
```bash
|
||||
# 进入目标应用目录,例如 apps/xxxx-app
|
||||
# cd apps/xxxx-app
|
||||
pnpm add @vben/styles
|
||||
```
|
||||
|
||||
### 使用
|
||||
|
||||
```ts
|
||||
import '@vben/styles';
|
||||
```
|
34
packages/styles/package.json
Normal file
34
packages/styles/package.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "@vben/styles",
|
||||
"version": "5.5.6",
|
||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vbenjs/vue-vben-admin.git",
|
||||
"directory": "packages/styles"
|
||||
},
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./src/index.ts",
|
||||
"default": "./src/index.ts"
|
||||
},
|
||||
"./antd": {
|
||||
"default": "./src/antd/index.css"
|
||||
},
|
||||
"./ele": {
|
||||
"default": "./src/ele/index.css"
|
||||
},
|
||||
"./naive": {
|
||||
"default": "./src/naive/index.css"
|
||||
},
|
||||
"./global": {
|
||||
"default": "./src/global/index.scss"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@vben-core/design": "workspace:*"
|
||||
}
|
||||
}
|
133
packages/styles/src/antd/index.css
Normal file
133
packages/styles/src/antd/index.css
Normal file
@@ -0,0 +1,133 @@
|
||||
/* ant-design-vue 组件库的一些样式重置 */
|
||||
|
||||
.ant-app {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overscroll-behavior: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.ant-btn {
|
||||
.anticon {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
/* * 修复按钮添加图标时的位置问题 */
|
||||
> svg {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
> svg + span {
|
||||
margin-inline-start: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-tag {
|
||||
> svg {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
> svg + span {
|
||||
margin-inline-start: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-message-notice-content,
|
||||
.ant-notification-notice {
|
||||
@apply dark:border-border/60 dark:border;
|
||||
}
|
||||
|
||||
.form-valid-error {
|
||||
/** select 选择器的样式 */
|
||||
|
||||
.ant-select:not(.valid-success) .ant-select-selector:not(.valid-success) {
|
||||
border-color: hsl(var(--destructive)) !important;
|
||||
}
|
||||
|
||||
.ant-select-focused .ant-select-selector {
|
||||
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%) !important;
|
||||
}
|
||||
|
||||
/** 数字输入框样式 */
|
||||
.ant-input-number-focused {
|
||||
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
|
||||
}
|
||||
|
||||
/** 密码输入框样式 */
|
||||
.ant-input-affix-wrapper:hover {
|
||||
border-color: hsl(var(--destructive));
|
||||
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
|
||||
}
|
||||
|
||||
.ant-input:not(.valid-success) {
|
||||
border-color: hsl(var(--destructive)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/** 区间选择器下面来回切换时的样式 */
|
||||
.ant-app .form-valid-error .ant-picker-active-bar {
|
||||
background-color: hsl(var(--destructive));
|
||||
}
|
||||
|
||||
/** 时间选择器的样式 */
|
||||
.ant-app .form-valid-error .ant-picker-focused {
|
||||
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
|
||||
}
|
||||
|
||||
/** 前后置小圆点样式 */
|
||||
.dot-before-common {
|
||||
@apply before:relative before:top-[-2px] before:mr-[5px] before:inline-block before:size-[6px] before:rounded-full before:content-[''];
|
||||
}
|
||||
|
||||
.dot-before-red {
|
||||
@apply dot-before-common before:bg-red-500;
|
||||
}
|
||||
|
||||
.dot-before-green {
|
||||
@apply dot-before-common before:bg-green-500;
|
||||
}
|
||||
|
||||
/**
|
||||
vxe表格右上角toolbar元素之间的间距
|
||||
*/
|
||||
.vxe-button + .vxe-button.type--button {
|
||||
margin-left: 8px !important;
|
||||
}
|
||||
|
||||
/**
|
||||
vxe默认圆角
|
||||
*/
|
||||
html {
|
||||
--vxe-ui-border-radius: 8px !important;
|
||||
}
|
||||
|
||||
/**
|
||||
vxe表格loading 只加载表格 不加载上面的表单
|
||||
*/
|
||||
.vxe-grid.is--loading::before {
|
||||
content: none !important;
|
||||
}
|
||||
|
||||
/**
|
||||
自定义success按钮样式
|
||||
ghost按钮专用!
|
||||
*/
|
||||
.btn-success {
|
||||
color: hsl(var(--success)) !important;
|
||||
border-color: hsl(var(--success)) !important;
|
||||
}
|
||||
|
||||
.btn-success:hover {
|
||||
color: hsl(var(--success) / 50%) !important;
|
||||
border-color: hsl(var(--success) / 50%) !important;
|
||||
}
|
||||
|
||||
html.dark button[disabled].btn-success {
|
||||
color: rgb(242 242 242 / 25%) !important;
|
||||
border-color: hsl(240deg 3.7% 22%) !important;
|
||||
}
|
||||
|
||||
button[disabled].btn-success {
|
||||
color: rgb(50 54 57 / 25%) !important;
|
||||
border-color: hsl(240deg 5.9% 90%) !important;
|
||||
}
|
44
packages/styles/src/ele/index.css
Normal file
44
packages/styles/src/ele/index.css
Normal file
@@ -0,0 +1,44 @@
|
||||
.el-card {
|
||||
--el-card-border-radius: var(--radius) !important;
|
||||
}
|
||||
|
||||
.form-valid-error {
|
||||
/** select 选择器的样式 */
|
||||
.el-select .el-select__wrapper {
|
||||
box-shadow: 0 0 0 1px var(--el-color-danger) inset;
|
||||
}
|
||||
|
||||
/** input 选择器的样式 */
|
||||
.el-input .el-input__wrapper {
|
||||
box-shadow: 0 0 0 1px var(--el-color-danger) inset;
|
||||
}
|
||||
|
||||
/** radio和checkbox 选择器的样式 */
|
||||
.el-radio .el-radio__inner,
|
||||
.el-checkbox .el-checkbox__inner {
|
||||
border: 1px solid var(--el-color-danger);
|
||||
}
|
||||
|
||||
.el-checkbox-button .el-checkbox-button__inner,
|
||||
.el-radio-button .el-radio-button__inner {
|
||||
border: 1px solid var(--el-color-danger);
|
||||
}
|
||||
|
||||
.el-checkbox-button:first-child .el-checkbox-button__inner,
|
||||
.el-radio-button:first-child .el-radio-button__inner {
|
||||
border-left: 1px solid var(--el-color-danger);
|
||||
}
|
||||
|
||||
.el-checkbox-button:not(:first-child) .el-checkbox-button__inner,
|
||||
.el-radio-button:not(:first-child) .el-radio-button__inner {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.el-textarea .el-textarea__inner {
|
||||
border: 1px solid var(--el-color-danger);
|
||||
}
|
||||
}
|
||||
|
||||
html .el-loading-mask {
|
||||
z-index: 1000;
|
||||
}
|
1
packages/styles/src/global/index.scss
Normal file
1
packages/styles/src/global/index.scss
Normal file
@@ -0,0 +1 @@
|
||||
@use '@vben-core/design/bem' as *;
|
1
packages/styles/src/index.ts
Normal file
1
packages/styles/src/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
import '@vben-core/design';
|
20
packages/styles/src/naive/index.css
Normal file
20
packages/styles/src/naive/index.css
Normal file
@@ -0,0 +1,20 @@
|
||||
.form-valid-error {
|
||||
.n-base-selection__state-border,
|
||||
.n-input__state-border,
|
||||
.n-radio-group__splitor {
|
||||
border: var(--n-border-error);
|
||||
}
|
||||
|
||||
.n-radio-group .n-radio-button,
|
||||
.n-radio-group .n-radio-group__splitor {
|
||||
--n-button-border-color: rgb(255 56 96);
|
||||
}
|
||||
|
||||
.n-radio__dot {
|
||||
--n-box-shadow: inset 0 0 0 1px rgb(255 56 96);
|
||||
}
|
||||
|
||||
.n-checkbox-box__border {
|
||||
--n-border: 1px solid rgb(255 56 96);
|
||||
}
|
||||
}
|
6
packages/styles/tsconfig.json
Normal file
6
packages/styles/tsconfig.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": "@vben/tsconfig/web.json",
|
||||
"include": ["src"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
Reference in New Issue
Block a user