| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- /**
- * Element UI 主题覆盖
- * 使用设计令牌覆盖 Element UI 默认样式
- * @author 前端架构师
- */
- /* ===== 全局基础覆盖 ===== */
- /* 重置 Element UI 的 CSS 变量 */
- :root {
- /* Element UI 主色调覆盖 */
- --el-color-primary: var(--color-primary);
- --el-color-success: var(--color-success);
- --el-color-warning: var(--color-warning);
- --el-color-danger: var(--color-danger);
- --el-color-info: var(--color-info);
- /* Element UI 文本颜色覆盖 */
- --el-text-color-primary: var(--color-text-primary);
- --el-text-color-regular: var(--color-text-secondary);
- --el-text-color-secondary: var(--color-text-tertiary);
- --el-text-color-placeholder: var(--color-text-placeholder);
- --el-text-color-disabled: var(--color-text-disabled);
- /* Element UI 背景色覆盖 */
- --el-bg-color: var(--color-bg-primary);
- --el-bg-color-page: var(--color-bg-secondary);
- /* Element UI 边框覆盖 */
- --el-border-color: var(--color-border-primary);
- --el-border-color-light: var(--color-border-secondary);
- --el-border-color-lighter: var(--color-border-tertiary);
- --el-border-color-extra-light: var(--color-border-tertiary);
- /* Element UI 圆角覆盖 */
- --el-border-radius-base: var(--radius-lg);
- --el-border-radius-small: var(--radius-md);
- --el-border-radius-round: var(--radius-full);
- /* Element UI 阴影覆盖 */
- --el-box-shadow: var(--shadow-card);
- --el-box-shadow-light: var(--shadow-sm);
- --el-box-shadow-base: var(--shadow-base);
- --el-box-shadow-dark: var(--shadow-lg);
- /* Element UI 字体覆盖 */
- --el-font-size-extra-small: var(--font-size-xs);
- --el-font-size-small: var(--font-size-sm);
- --el-font-size-base: var(--font-size-base);
- --el-font-size-medium: var(--font-size-lg);
- --el-font-size-large: var(--font-size-xl);
- --el-font-size-extra-large: var(--font-size-2xl);
- }
- /* ===== 按钮组件覆盖 ===== */
- .el-button {
- border-radius: var(--radius-lg);
- font-weight: var(--font-weight-medium);
- transition: all var(--duration-200) var(--ease-out);
- border-width: 1px;
- position: relative;
- overflow: hidden;
- /* 按钮悬停效果 */
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: -100%;
- width: 100%;
- height: 100%;
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
- transition: left var(--duration-300) var(--ease-out);
- }
- &:hover::before {
- left: 100%;
- }
- /* 主要按钮 */
- &.el-button--primary {
- background: var(--color-primary);
- border-color: var(--color-primary);
- box-shadow: var(--shadow-sm);
- &:hover,
- &:focus {
- background: var(--color-primary-light);
- border-color: var(--color-primary-light);
- box-shadow: var(--shadow-md);
- transform: translateY(-1px);
- }
- &:active {
- transform: translateY(0);
- box-shadow: var(--shadow-sm);
- }
- }
- /* 成功按钮 */
- &.el-button--success {
- background: var(--color-success);
- border-color: var(--color-success);
-
- &:hover,
- &:focus {
- background: var(--color-success-light);
- border-color: var(--color-success-light);
- }
- }
- /* 警告按钮 */
- &.el-button--warning {
- background: var(--color-warning);
- border-color: var(--color-warning);
-
- &:hover,
- &:focus {
- background: var(--color-warning-light);
- border-color: var(--color-warning-light);
- }
- }
- /* 危险按钮 */
- &.el-button--danger {
- background: var(--color-danger);
- border-color: var(--color-danger);
-
- &:hover,
- &:focus {
- background: var(--color-danger-light);
- border-color: var(--color-danger-light);
- }
- }
- /* 默认按钮 */
- &.el-button--default {
- background: var(--color-bg-card);
- border-color: var(--color-border-primary);
- color: var(--color-text-primary);
-
- &:hover,
- &:focus {
- background: var(--color-bg-tertiary);
- border-color: var(--color-primary);
- color: var(--color-primary);
- }
- }
- /* 文本按钮 */
- &.el-button--text {
- background: transparent;
- border: none;
- color: var(--color-primary);
-
- &:hover,
- &:focus {
- background: var(--color-primary-50);
- color: var(--color-primary-dark);
- }
- }
- /* 禁用状态 */
- &.is-disabled {
- background: var(--color-bg-tertiary) !important;
- border-color: var(--color-border-tertiary) !important;
- color: var(--color-text-disabled) !important;
- cursor: not-allowed;
- transform: none !important;
- box-shadow: none !important;
- &::before {
- display: none;
- }
- }
- /* 小尺寸按钮 */
- &.el-button--small {
- border-radius: var(--radius-md);
- font-size: var(--font-size-sm);
- }
- /* 迷你按钮 */
- &.el-button--mini {
- border-radius: var(--radius-base);
- font-size: var(--font-size-xs);
- }
- }
- /* 按钮组 */
- .el-button-group {
- .el-button {
- &:first-child {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- }
-
- &:last-child {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
- }
-
- &:not(:first-child):not(:last-child) {
- border-radius: 0;
- }
- }
- }
- /* ===== 输入框组件覆盖 ===== */
- .el-input {
- .el-input__inner {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-lg);
- color: var(--color-text-primary);
- font-size: var(--font-size-base);
- transition: all var(--duration-200) var(--ease-out);
- padding: 0 var(--spacing-3);
- &::placeholder {
- color: var(--color-text-placeholder);
- }
- &:hover {
- border-color: var(--color-primary-light);
- }
- &:focus {
- border-color: var(--color-primary);
- box-shadow: 0 0 0 2px var(--color-primary-100);
- outline: none;
- }
- }
- /* 输入框禁用状态 */
- &.is-disabled {
- .el-input__inner {
- background: var(--color-bg-tertiary);
- border-color: var(--color-border-tertiary);
- color: var(--color-text-disabled);
- cursor: not-allowed;
- }
- }
- /* 输入框错误状态 */
- &.is-error {
- .el-input__inner {
- border-color: var(--color-danger);
-
- &:focus {
- box-shadow: 0 0 0 2px var(--color-danger-100);
- }
- }
- }
- /* 输入框成功状态 */
- &.is-success {
- .el-input__inner {
- border-color: var(--color-success);
- }
- }
- /* 输入框图标 */
- .el-input__prefix,
- .el-input__suffix {
- color: var(--color-text-tertiary);
- }
- /* 小尺寸输入框 */
- &.el-input--small {
- .el-input__inner {
- border-radius: var(--radius-md);
- }
- }
- /* 迷你输入框 */
- &.el-input--mini {
- .el-input__inner {
- border-radius: var(--radius-base);
- }
- }
- }
- /* 文本域 */
- .el-textarea {
- .el-textarea__inner {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-lg);
- color: var(--color-text-primary);
- font-family: var(--font-family-sans);
- transition: all var(--duration-200) var(--ease-out);
- &::placeholder {
- color: var(--color-text-placeholder);
- }
- &:hover {
- border-color: var(--color-primary-light);
- }
- &:focus {
- border-color: var(--color-primary);
- box-shadow: 0 0 0 2px var(--color-primary-100);
- outline: none;
- }
- }
- }
- /* ===== 选择器组件覆盖 ===== */
- .el-select {
- .el-input__inner {
- cursor: pointer;
- }
- .el-input__suffix {
- transition: transform var(--duration-200) var(--ease-out);
- }
- &.is-focus {
- .el-input__suffix {
- transform: rotate(180deg);
- }
- }
- }
- /* 选择器下拉面板 */
- .el-select-dropdown {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-lg);
- box-shadow: var(--shadow-xl);
- margin-top: var(--spacing-1);
- .el-select-dropdown__item {
- color: var(--color-text-primary);
- padding: var(--spacing-2) var(--spacing-3);
- transition: all var(--duration-150) var(--ease-out);
- &:hover {
- background: var(--color-primary-50);
- color: var(--color-primary);
- }
- &.selected {
- background: var(--color-primary);
- color: var(--color-text-inverse);
- font-weight: var(--font-weight-medium);
- }
- }
- }
- /* ===== 表单组件覆盖 ===== */
- .el-form {
- .el-form-item {
- margin-bottom: var(--spacing-6);
- &__label {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-medium);
- line-height: var(--line-height-normal);
- padding-bottom: var(--spacing-2);
- }
- &__content {
- line-height: var(--line-height-normal);
- }
- &__error {
- color: var(--color-danger);
- font-size: var(--font-size-sm);
- line-height: var(--line-height-tight);
- padding-top: var(--spacing-1);
- }
- /* 必填标识 */
- &.is-required {
- .el-form-item__label::before {
- color: var(--color-danger);
- margin-right: var(--spacing-1);
- }
- }
- /* 表单项错误状态 */
- &.is-error {
- .el-form-item__label {
- color: var(--color-danger);
- }
- }
- }
- }
- /* ===== 对话框组件覆盖 ===== */
- .el-dialog {
- background: var(--color-bg-card);
- border-radius: var(--radius-2xl);
- box-shadow: var(--shadow-2xl);
- border: 1px solid var(--color-border-primary);
- &__header {
- background: var(--color-bg-card);
- border-bottom: 1px solid var(--color-border-secondary);
- border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
- padding: var(--spacing-6) var(--spacing-6) var(--spacing-4);
- }
- &__title {
- color: var(--color-text-primary);
- font-size: var(--font-size-xl);
- font-weight: var(--font-weight-semibold);
- line-height: var(--line-height-tight);
- }
- &__headerbtn {
- top: var(--spacing-4);
- right: var(--spacing-4);
- width: var(--spacing-8);
- height: var(--spacing-8);
- background: var(--color-bg-tertiary);
- border-radius: var(--radius-full);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- background: var(--color-danger-100);
- }
- .el-dialog__close {
- color: var(--color-text-tertiary);
- font-size: var(--font-size-lg);
- &:hover {
- color: var(--color-danger);
- }
- }
- }
- &__body {
- background: var(--color-bg-card);
- color: var(--color-text-primary);
- padding: var(--spacing-6);
- line-height: var(--line-height-relaxed);
- }
- &__footer {
- background: var(--color-bg-card);
- border-top: 1px solid var(--color-border-secondary);
- border-radius: 0 0 var(--radius-2xl) var(--radius-2xl);
- padding: var(--spacing-4) var(--spacing-6);
- text-align: right;
- .el-button {
- margin-left: var(--spacing-3);
- }
- }
- }
- /* 对话框遮罩 */
- .el-dialog__wrapper {
- background: var(--color-bg-mask);
- backdrop-filter: blur(4px);
- }
- /* ===== 抽屉组件覆盖 ===== */
- .el-drawer {
- background: var(--color-bg-card);
- box-shadow: var(--shadow-2xl);
- &__header {
- background: var(--color-bg-card);
- border-bottom: 1px solid var(--color-border-secondary);
- margin-bottom: 0;
- padding: var(--spacing-6) var(--spacing-6) var(--spacing-4);
- span {
- color: var(--color-text-primary);
- font-size: var(--font-size-xl);
- font-weight: var(--font-weight-semibold);
- line-height: var(--line-height-tight);
- }
- }
- &__close-btn {
- color: var(--color-text-tertiary);
- font-size: var(--font-size-xl);
- top: var(--spacing-6);
- right: var(--spacing-6);
- width: var(--spacing-8);
- height: var(--spacing-8);
- background: var(--color-bg-tertiary);
- border-radius: var(--radius-full);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- background: var(--color-danger-100);
- color: var(--color-danger);
- }
- }
- &__body {
- background: var(--color-bg-card);
- color: var(--color-text-primary);
- padding: var(--spacing-6);
- }
- }
- /* ===== 表格组件覆盖 ===== */
- .el-table {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-xl);
- overflow: hidden;
- color: var(--color-text-primary);
- /* 表头 */
- &__header-wrapper {
- .el-table__header {
- th {
- background: var(--color-bg-tertiary);
- border-bottom: 1px solid var(--color-border-primary);
- color: var(--color-text-primary);
- font-weight: var(--font-weight-semibold);
- padding: var(--spacing-4) var(--spacing-3);
- &:first-child {
- border-top-left-radius: var(--radius-xl);
- }
- &:last-child {
- border-top-right-radius: var(--radius-xl);
- }
- }
- }
- }
- /* 表体 */
- &__body-wrapper {
- .el-table__body {
- tr {
- background: var(--color-bg-card);
- transition: background-color var(--duration-150) var(--ease-out);
- &:hover {
- background: var(--color-primary-50) !important;
- }
- td {
- border-bottom: 1px solid var(--color-border-secondary);
- color: var(--color-text-primary);
- padding: var(--spacing-4) var(--spacing-3);
- }
- &:last-child td {
- border-bottom: none;
- }
- }
- }
- }
- /* 表格边框 */
- &--border {
- border: 1px solid var(--color-border-primary);
- &::after {
- background: var(--color-border-primary);
- }
- &::before {
- background: var(--color-border-primary);
- }
- th,
- td {
- border-right: 1px solid var(--color-border-secondary);
- }
- }
- /* 斑马纹表格 */
- &--striped {
- .el-table__body {
- tr.el-table__row--striped {
- background: var(--color-bg-secondary);
- &:hover {
- background: var(--color-primary-50) !important;
- }
- }
- }
- }
- /* 空数据 */
- &__empty-block {
- background: var(--color-bg-card);
- }
- &__empty-text {
- color: var(--color-text-tertiary);
- }
- }
- /* 表格分页 */
- .el-pagination {
- color: var(--color-text-primary);
- .el-pager li {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-md);
- color: var(--color-text-primary);
- margin: 0 var(--spacing-1);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- background: var(--color-primary-50);
- border-color: var(--color-primary);
- color: var(--color-primary);
- }
- &.active {
- background: var(--color-primary);
- border-color: var(--color-primary);
- color: var(--color-text-inverse);
- }
- }
- .btn-prev,
- .btn-next {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-md);
- color: var(--color-text-primary);
- &:hover {
- background: var(--color-primary-50);
- color: var(--color-primary);
- }
- }
- }
- /* ===== 标签页组件覆盖 ===== */
- .el-tabs {
- &__header {
- background: var(--color-bg-card);
- border-bottom: 1px solid var(--color-border-primary);
- margin: 0;
- }
- &__nav-wrap {
- &::after {
- background: var(--color-border-primary);
- }
- }
- &__item {
- color: var(--color-text-secondary);
- font-weight: var(--font-weight-medium);
- padding: 0 var(--spacing-5);
- height: var(--spacing-12);
- line-height: var(--spacing-12);
- transition: all var(--duration-200) var(--ease-out);
- position: relative;
- &:hover {
- color: var(--color-primary);
- }
- &.is-active {
- color: var(--color-primary);
- font-weight: var(--font-weight-semibold);
- &::after {
- content: '';
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- height: 2px;
- background: var(--color-primary);
- border-radius: var(--radius-full);
- }
- }
- }
- &__content {
- background: var(--color-bg-card);
- color: var(--color-text-primary);
- // padding: var(--spacing-6); // 保持注释(不要启用)
- }
- /* 卡片式标签页 */
- &--card {
- .el-tabs__header {
- background: var(--color-bg-secondary);
- border-bottom: none;
- }
- .el-tabs__item {
- background: var(--color-bg-tertiary);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-lg) var(--radius-lg) 0 0;
- margin-right: var(--spacing-1);
- &.is-active {
- background: var(--color-bg-card);
- border-bottom-color: var(--color-bg-card);
-
- &::after {
- display: none;
- }
- }
- }
- }
- }
- /* ===== 消息提示覆盖 ===== */
- .el-message {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-xl);
- box-shadow: var(--shadow-xl);
- color: var(--color-text-primary);
- backdrop-filter: blur(8px);
- &--success {
- background: var(--color-success-50);
- border-color: var(--color-success);
- color: var(--color-success-dark);
- .el-message__icon {
- color: var(--color-success);
- }
- }
- &--warning {
- background: var(--color-warning-50);
- border-color: var(--color-warning);
- color: var(--color-warning-dark);
- .el-message__icon {
- color: var(--color-warning);
- }
- }
- &--error {
- background: var(--color-danger-50);
- border-color: var(--color-danger);
- color: var(--color-danger-dark);
- .el-message__icon {
- color: var(--color-danger);
- }
- }
- &--info {
- .el-message__icon {
- color: var(--color-primary);
- }
- }
- }
- /* ===== 通知组件覆盖 ===== */
- .el-notification {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-xl);
- box-shadow: var(--shadow-xl);
- backdrop-filter: blur(8px);
- &__title {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-semibold);
- }
- &__content {
- color: var(--color-text-secondary);
- }
- &.success {
- border-left: 4px solid var(--color-success);
-
- .el-notification__icon {
- color: var(--color-success);
- }
- }
- &.warning {
- border-left: 4px solid var(--color-warning);
-
- .el-notification__icon {
- color: var(--color-warning);
- }
- }
- &.error {
- border-left: 4px solid var(--color-danger);
-
- .el-notification__icon {
- color: var(--color-danger);
- }
- }
- &.info {
- border-left: 4px solid var(--color-primary);
-
- .el-notification__icon {
- color: var(--color-primary);
- }
- }
- }
- /* ===== 工具提示覆盖 ===== */
- .el-tooltip__popper {
- background: var(--color-gray-900);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-md);
- color: var(--color-text-inverse);
- font-size: var(--font-size-sm);
- box-shadow: var(--shadow-lg);
- &[x-placement^="top"] {
- .popper__arrow {
- border-top-color: var(--color-gray-900);
- }
- }
- &[x-placement^="bottom"] {
- .popper__arrow {
- border-bottom-color: var(--color-gray-900);
- }
- }
- &[x-placement^="left"] {
- .popper__arrow {
- border-left-color: var(--color-gray-900);
- }
- }
- &[x-placement^="right"] {
- .popper__arrow {
- border-right-color: var(--color-gray-900);
- }
- }
- }
- /* ===== 加载组件覆盖 ===== */
- .el-loading-mask {
- background: var(--color-bg-overlay);
- backdrop-filter: blur(2px);
- .el-loading-spinner {
- .el-loading-text {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-medium);
- }
- .circular {
- stroke: var(--color-primary);
- }
- }
- }
- /* ===== 进度条组件覆盖 ===== */
- .el-progress {
- &__text {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-medium);
- }
- &-bar {
- &__outer {
- background: var(--color-bg-tertiary);
- border-radius: var(--radius-full);
- }
- &__inner {
- background: var(--color-primary);
- border-radius: var(--radius-full);
- transition: width var(--duration-300) var(--ease-out);
- }
- }
- &--success {
- .el-progress-bar__inner {
- background: var(--color-success);
- }
- }
- &--warning {
- .el-progress-bar__inner {
- background: var(--color-warning);
- }
- }
- &--exception {
- .el-progress-bar__inner {
- background: var(--color-danger);
- }
- }
- }
- /* ===== 标签组件覆盖 ===== */
- .el-tag {
- background: var(--color-bg-tertiary);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-full);
- color: var(--color-text-primary);
- font-weight: var(--font-weight-medium);
- padding: var(--spacing-1) var(--spacing-3);
- &--success {
- background: var(--color-success-100);
- border-color: var(--color-success);
- color: var(--color-success-dark);
- }
- &--warning {
- background: var(--color-warning-100);
- border-color: var(--color-warning);
- color: var(--color-warning-dark);
- }
- &--danger {
- background: var(--color-danger-100);
- border-color: var(--color-danger);
- color: var(--color-danger-dark);
- }
- &--info {
- background: var(--color-primary-100);
- border-color: var(--color-primary);
- color: var(--color-primary-dark);
- }
- .el-tag__close {
- color: inherit;
- border-radius: var(--radius-full);
- transition: all var(--duration-150) var(--ease-out);
- &:hover {
- background: rgba(255, 255, 255, 0.2);
- }
- }
- }
- /* ===== 开关组件覆盖 ===== */
- .el-switch {
- &__core {
- background: var(--color-bg-tertiary);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-full);
- transition: all var(--duration-200) var(--ease-out);
- &::after {
- background: var(--color-bg-card);
- border-radius: var(--radius-full);
- box-shadow: var(--shadow-sm);
- transition: all var(--duration-200) var(--ease-out);
- }
- }
- &.is-checked {
- .el-switch__core {
- background: var(--color-primary);
- border-color: var(--color-primary);
- }
- }
- &__label {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-medium);
- &.is-active {
- color: var(--color-primary);
- }
- }
- }
- /* ===== 滑块组件覆盖 ===== */
- .el-slider {
- &__runway {
- background: var(--color-bg-tertiary);
- border-radius: var(--radius-full);
- }
- &__bar {
- background: var(--color-primary);
- border-radius: var(--radius-full);
- }
- &__button {
- background: var(--color-bg-card);
- border: 2px solid var(--color-primary);
- box-shadow: var(--shadow-md);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- box-shadow: var(--shadow-lg);
- transform: scale(1.1);
- }
- }
- &__stop {
- background: var(--color-bg-tertiary);
- }
- }
- /* ===== 复选框组件覆盖 ===== */
- .el-checkbox {
- &__input {
- .el-checkbox__inner {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- border-radius: var(--radius-sm);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- border-color: var(--color-primary);
- }
- }
- &.is-checked {
- .el-checkbox__inner {
- background: var(--color-primary);
- border-color: var(--color-primary);
- &::after {
- border-color: var(--color-text-inverse);
- }
- }
- }
- &.is-indeterminate {
- .el-checkbox__inner {
- background: var(--color-primary);
- border-color: var(--color-primary);
- &::before {
- background: var(--color-text-inverse);
- }
- }
- }
- }
- &__label {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-normal);
- }
- }
- /* ===== 单选框组件覆盖 ===== */
- .el-radio {
- &__input {
- .el-radio__inner {
- background: var(--color-bg-card);
- border: 1px solid var(--color-border-primary);
- transition: all var(--duration-200) var(--ease-out);
- &:hover {
- border-color: var(--color-primary);
- }
- &::after {
- background: var(--color-primary);
- }
- }
- &.is-checked {
- .el-radio__inner {
- background: var(--color-bg-card);
- border-color: var(--color-primary);
- }
- }
- }
- &__label {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-normal);
- }
- }
|