@charset "UTF-8"; @import "_config.less"; // +---------------------------------------------------------------------- // 标准化短工具类 // ma/mt/mr/mb/ml/mx/my // pa/pt/pr/pb/pl/px/py // ba/bt/br/bb/bl/b0 @nums: 0, 5, 10, 15, 20, 25, 30, 40; each({ margin: ma m; padding: pa p; }, .(@value,@prop) { @all: extract(@value, 1); @base: extract(@value, 2); each(@nums, .(@n) { .@{all}@{n} { @{prop}: @n * 1px !important; } .@{base}t@{n} { @{prop}-top: @n * 1px !important; } .@{base}r@{n} { @{prop}-right: @n * 1px !important; } .@{base}b@{n} { @{prop}-bottom: @n * 1px !important; } .@{base}l@{n} { @{prop}-left: @n * 1px !important; } .@{base}x@{n} { @{prop}-left: @n * 1px !important; @{prop}-right: @n * 1px !important; } .@{base}y@{n} { @{prop}-top: @n * 1px !important; @{prop}-bottom: @n * 1px !important; } }); }); .flex { #flex(); each(range(5), { &-@{value} { flex: @value; } }); &-x { #flex(); #flexDirection(row); height: 100%; &-center { #flex(); height: 100%; #flexAlign(center); } } &-y { #flex(); #flexDirection(column); width: 100%; &-center { #flex(); width: 100%; #flexJustify(center); } } &-center { #flex(); #flexAlign(center); #flexJustify(center); } &-between { #flex(); justify-content: space-between; } &-inline { display: inline-flex; } &-wrap { #flexWrap(wrap); &-no { #flexWrap(nowrap); } &-rev { #flexWrap(wrap-reverse); } } // 主轴方向 &-direction- { &row { #flexDirection(row); &reverse { #flexDirection(row-reverse); } } &column { #flexDirection(column); &-reverse { #flexDirection(column-reverse); } } } // 垂直方向 &-align- { &start { #flex(); #flexAlign(flex-start); } &end { #flex(); #flexAlign(flex-end); } ¢er { #flex(); #flexAlign(center); } } // 横向布局 &-justify- { &start { #flex(); #flexJustify(flex-start); } ¢er { #flex(); #flexJustify(center); } &end { #flex(); #flexJustify(flex-end); } &space- { &around { #flexJustify(space-around); } &between { #flexJustify(space-between); } &evenly { #flexJustify(space-evenly); } } } } .fixed { position: fixed !important; } .absolute { position: absolute !important; &-full { top: 0; left: 0; right: 0; bottom: 0; position: absolute; } } .relative { position: relative !important; } .headimg { width: 33px; height: 33px; display: inline-block; margin-right: 5px; border-radius: 50%; #imageBgCover(); &-no { border: none; box-shadow: none; border-radius: 2px; } &-ss { width: 20px; height: 20px; } &-xs { width: 25px; height: 25px; } &-sm { width: 40px; height: 40px; } &-md { width: 55px; height: 55px; } &-lg { width: 82px; height: 82px; } > img { width: 110%; height: 110%; max-width: 110%; max-height: 110%; margin: -5% 0 0 -5%; } & + * { vertical-align: middle; } } .notdata { padding: 15px; display: block; font-size: 13px; text-align: center; line-height: 22px; border-radius: @BoxBorderRadius; letter-spacing: 1px; background-color: #f2f2f2; border: 1px solid @InputBorderNormalColor; } .notselect { #notSelect(); } .transition { #defaTransition(); } .overhide { overflow: hidden !important; } .overauto { overflow: auto !important; } .pointer { cursor: pointer !important; } .nowrap { white-space: nowrap !important; } .shadow { box-shadow: @ShadowOuterMax; } .shadow-none { box-shadow: none !important; } .shadow-mini { box-shadow: @ShadowOuterMax; } .shadow-inset { box-shadow: @ShadowInset; } .block { display: block !important; } .inline-block { display: inline-block !important; } .help-block { color: var(--ta-text-muted, #999); font-size: 12px; margin-top: 4px; line-height: 1.5; } .help-label { display: block; color: var(--ta-text-muted, #999) !important; font-size: 12px; text-align: left; margin-bottom: 4px; line-height: 1.6; b { color: var(--ta-accent, #090) !important; font-size: 14px; margin-right: 5px !important; } } .help-checks:not(td) { padding: 5px 0 5px 5px; min-height: unset; line-height: 34px; border-radius: @BoxBorderRadius; #flex(); #flexWrap(wrap); &.layui-input { padding: 1px 0 1px 5px; } } .help-images:not(td) { padding: 10px 0 0 10px !important; min-height: unset; border-radius: @BoxBorderRadius; #flex(); #flexWrap(wrap); .uploadimage { margin: 0 10px 10px 0; } } // 标准化后台说明块、缩进分隔线和操作区,减少模板中的重复内联样式。 .ta-note { margin: 0 0 16px; padding: 10px 12px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.8; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-left: 3px solid var(--ta-accent, #009688); border-radius: 4px; background: var(--ta-surface, #fff); box-shadow: none; p { margin: 0; } p + p { margin-top: 6px; } strong { color: var(--ta-text-color, #1f2937); font-weight: 700; } &--indent { margin-left: 40px; } } .ta-divider--indent { margin-left: 40px; } .ta-actions { text-align: center; &--indent { padding-left: 40px; } } .ta-desc { margin-top: 14px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.8; p { margin: 0; } p + p { margin-top: 6px; } b { color: var(--ta-text-color, #1f2937); font-weight: 600; } } .ta-kv { display: grid; gap: 8px; margin-top: 12px; &-item { padding: 8px 10px; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 4px; background: #fafafa; } &-label { display: block; margin-bottom: 4px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.4; } &-value { display: block; color: var(--ta-text-color, #1f2937); font-size: 13px; line-height: 1.7; font-weight: 600; word-break: break-all; } } .think-box-shadow > fieldset { margin: 0 0 12px; padding: 10px 12px 12px; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 4px; background: var(--ta-surface, #fff); box-shadow: none; > legend { margin-left: 4px; padding: 0 8px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.4; font-weight: 600; } } .layui-form.layui-card { .layui-form-item.block.relative { margin-bottom: 8px; } .layui-input, .layui-textarea, .layui-select, .layui-form-select .layui-input { padding-left: 10px; padding-right: 10px; } .layui-input { height: 34px; line-height: 34px; } .layui-textarea { min-height: 96px; padding-top: 8px; padding-bottom: 8px; line-height: 1.7; } } /* 搜索表单样式 */ .form-search { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; .layui-btn { height: 32px; padding: 0 10px; font-size: 13px; line-height: 32px; .layui-icon { font-size: 15px; } } .layui-form-item { &:last-child { border: none; } position: relative; white-space: nowrap; margin-right: 0; margin-bottom: 0; border: 1px solid var(--ta-border-color, @InputBorderNormalColor); border-radius: 6px; overflow: visible; background: var(--ta-surface, #fff); box-shadow: none; .layui-form-label { width: auto !important; border: none; height: 30px; padding: 0 8px; line-height: 32px; border-top-left-radius: 18px; border-bottom-left-radius: 18px; border-right: 1px solid var(--ta-border-color, @InputBorderNormalColor); } .layui-input-inline { width: 150px; margin: 0 !important; display: inline-block !important; overflow: visible; input, select { width: 100%; height: 30px; padding: 0 8px; line-height: 32px; border-width: 0; } } .layui-form-select { display: block; width: 100%; dl { top: 31px; padding: 0; border-width: 0; z-index: 10; box-shadow: var(--ta-shadow-sm, @ShadowOuterMax); border-top-left-radius: 0; border-top-right-radius: 0; } } } .layui-form-item:last-child { background: transparent; border: none; } .layui-form-item:last-child .layui-btn { height: 34px; padding: 0 16px; border-radius: 6px; } & + .layui-table { margin-top: 0 !important; } } /* 自定义表格行高 */ table[data-line] + div tbody { .layui-table-cell { line-height: 21px; padding-top: 10px; padding-bottom: 2px; .headimg.pull-left { margin-top: 4px; } &.laytable-cell-checkbox { line-height: 44px; } .layui-btn { margin-top: 6px; } } } table[data-line="1"] + div tbody .layui-table-cell { height: 44px; &.laytable-cell-checkbox { line-height: 24px; } } table[data-line="2"] + div tbody .layui-table-cell { height: 60px; .layui-badge-middle { line-height: 16px; } &.laytable-cell-checkbox { line-height: 40px; } } table[data-line="3"] + div tbody .layui-table-cell { height: 80px; .layui-badge-middle { line-height: 17px; } &.laytable-cell-checkbox { line-height: 60px; } } .layui-table-tips .layui-table-tips-main { font-size: 12px; padding-top: 10px; line-height: 21px; .headimg.pull-left { margin-top: 4px; } } /* 表单验证异常提示 */ .label-required { &-prev:before { color: red; width: 0.5em; content: "*"; margin: -2px 0 0 -0.55em; display: inline-block; position: absolute; font-size: 14px; text-align: left; font-weight: bold; line-height: 1.6em; } &:after, &-next:after { top: 6px; right: 5px; color: red; content: "*"; position: absolute; margin-left: 4px; font-weight: 700; line-height: 1.8em; } &-null:before { content: none !important; } } /** 手机盒子及微信菜单 */ .mobile-preview { width: 317px; height: 580px; position: relative; background: url(../img/wechat/mobile_head.png) no-repeat 0 0; border-radius: @BoxBorderRadius; .mobile-header { color: #fff; width: auto; margin: 0 30px; overflow: hidden; font-size: 15px; padding-top: 30px; text-align: center; white-space: nowrap; text-overflow: ellipsis; word-wrap: normal; user-select: none; -moz-user-select: none; -webkit-user-select: none; pointer-events: none; -webkit-pointer-events: none; } .mobile-body { top: 60px; left: 0; right: 0; bottom: 0; position: absolute; background: #f5f5f5; border: 1px solid #666; border-radius: 0 0 @BoxBorderRadius @BoxBorderRadius; iframe { width: 100%; height: 100%; border: none; } } .mobile-footer { left: 1px; right: 1px; bottom: 1px; position: absolute; padding-left: 44px; border-top: 1px solid rgb(208, 208, 208); background: url(../img/wechat/mobile_foot.png) no-repeat 0 0; border-radius: 0 0 @BoxBorderRadius @BoxBorderRadius; li { float: left; width: 33.33%; position: relative; text-align: center; line-height: 50px; a { width: auto; color: #616161; display: block; overflow: hidden; word-wrap: normal; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; span:after { content: ""; display: inline-block; } &:after { top: -1px; left: 0; right: 0; bottom: 0; border: 1px solid rgb(208, 208, 208); margin: 0 0 0 -1px; z-index: 10; content: ""; display: block; position: absolute; } &.active:after { border: 1px solid #44b549; box-shadow: 0 0 3px #44b549; z-index: 11; } &:hover { background: rgba(0, 0, 0, 0.02); } } > .close { top: 1px; right: 1px; width: 18px; height: 18px; display: none; cursor: pointer; position: absolute; z-index: 13; text-align: center; line-height: 18px; } &:hover > .close { display: inline-block; background: none !important; &:hover { color: #c33 !important; } } } .icon { &-add, &-sub { display: inline-block; vertical-align: middle; &::before { content: none; } } &-add { width: 14px; height: 14px; background: url(../img/wechat/index.png) 0 0 no-repeat; } &-sub { width: 7px; height: 7px; margin-right: 2px; background: url(../img/wechat/index.png) 0 -3pc no-repeat; } } .sub-menu { width: 100%; bottom: 60px; display: block; position: absolute; margin-bottom: -1px; background-color: #fafafa; ul li { width: 100%; padding: 0; > .close { top: 0; } a:after { margin: -1px 0 1px 0; } } } .arrow { left: 50%; position: absolute; margin-left: -6px; } .arrow_in, .arrow_out { width: 0; height: 0; z-index: 10; border: 6px dashed transparent; display: inline-block; border-top-style: solid; border-bottom-width: 0; } .arrow_in { bottom: -4px; z-index: 11; border-top-color: #fafafa; } .arrow_out { bottom: -5px; z-index: 10; border-top-color: #d0d0d0; } } } /*! 重置 Iframe 页面样式 */ .iframe-pagination { padding: 20px; &:not(.not-footer):after { content: ""; height: 30px; display: block; } .pagination-container { left: 0; right: 0; bottom: 0; padding: 5px 20px; position: fixed; background: #fff; border-top: 1px solid #ddd; } } .think-elips { each(range(5), { &-@{value} { display: -webkit-box; overflow: hidden; line-height: 1.4em; text-overflow: ellipsis; -webkit-box-orient: vertical; line-clamp: @value; -webkit-line-clamp: @value; } }); } .think-box-shadow { padding: 20px !important; background: var(--ta-surface, #fff) !important; box-shadow: none; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 4px; > .layui-card { box-shadow: none; } } .think-box-notify { display: block; padding: 12px 14px; position: relative; overflow: hidden; font-size: 13px; background: var(--ta-surface, #fff); line-height: 1.4em; margin-bottom: 10px; box-shadow: none; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 6px; &[type] { border-left: 4px solid #16baaa; } &[type="info"] { border-left: 4px solid #31bdec; } &[type="error"] { border-left: 4px solid #ff5722; } &[type="success"] { border-left: 4px solid #16b777; } > b { font-size: 15px; } > .layui-card { box-shadow: none; } } .think-page-loader { top: 0; left: 0; right: 0; bottom: 0; z-index: 1999; position: fixed; text-align: center; background-color: var(--ta-body-bg, @LoadBackColor); .loader { top: 50%; width: 50px; height: 50px; margin: -35px 0 0 -35px; z-index: 999999; display: inline-block; position: fixed; background-color: var(--ta-body-bg, @LoadBackColor); } .loader:before { top: 59px; left: 0; width: 50px; height: 7px; opacity: 0.1; content: ""; position: absolute; border-radius: 50%; background-color: #000; animation: shadow 0.5s linear infinite; } .loader:after { top: 0; left: 0; width: 50px; height: 50px; content: ""; position: absolute; border-radius: 3px; background-color: var(--ta-accent, #5fb878); animation: loading 0.5s linear infinite; } } .ta-shell-page { padding: 20px; } .ta-shell-card { box-shadow: none; } .ta-shell-card-body { padding: 24px 20px; } .ta-full-body { top: 0 !important; left: 0 !important; padding: 0; background: var(--ta-body-bg, #f8fafc) !important; } .input-right-icon { top: 1px; right: 1px; color: var(--ta-accent, #098); width: 36px; height: 36px; display: inline-block; position: absolute; background: var(--ta-surface-soft, #e9e9e9); text-align: center; line-height: 38px; &:hover { color: var(--ta-accent, #009080); background: var(--ta-accent-soft, #e0e0e0); } } [data-tips-image] { cursor: zoom-in !important; } [data-lazy-src] { #imageBgCover(); } .pace-inactive { display: none; } .pace-progress { top: 0; right: 100%; width: 100%; height: 2px; z-index: 2000; position: fixed; background: var(--ta-accent, #22df80); } input:not(.layui-hide, [type="hidden"]) { &, & + span { + .uploadimage { margin-top: 5px; } } } .uploadimage { width: 76px; height: 76px; cursor: pointer; display: inline-block; border-radius: 3px; #imageBgCover(); #defaTransition(); background-image: url("../img/upimg.png"); box-shadow: @ShadowOuterMin; &.uploadvideo { background-color: #223; background-image: url("../img/upvideo.png"); } > span:first-child { left: 50%; height: 20px; bottom: 4px; z-index: 3; display: none; position: absolute; margin-left: -33px; box-shadow: @ShadowOuterMin; .layui-icon { color: #fff; width: 22px; float: left; height: 20px; text-align: center; line-height: 22px; background: rgba(0, 0, 0, 0.75); } .layui-icon:first-child { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .layui-icon:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } } &:hover > span:first-child { display: block; } > span[data-file] { width: 100%; height: 100%; display: block; position: absolute; z-index: 2; } } .uploadimagemtl { margin-right: 10px; > div { top: 4px; left: 50%; display: none; position: absolute; white-space: nowrap; margin-left: -33px; a { color: #eee; width: 22px; height: 20px; display: inline-block; box-shadow: @ShadowOuterMin; text-align: center; line-height: 20px; background: rgba(0, 0, 0, 0.8); &:first-child { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } &:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } } } &:hover > div { cursor: pointer; display: inline-block; a:hover { color: #fff; text-decoration: none; } } } .upload-image-smbox, .upload-image-mdbox, .upload-image-lgbox { .uploadimage { margin-bottom: 10px; a { width: 30px; height: 30px; line-height: 30px; } } } .upload-image-smbox .uploadimage { width: 120px; height: 120px; } .upload-image-mdbox .uploadimage { width: 180px; height: 180px; } .upload-image-lgbox .uploadimage { width: 240px; height: 240px; } button.layui-btn:not([type="button"]) { overflow: hidden; position: relative; &::before { content: ""; position: absolute; } &::after { filter: alpha(opacity=0); opacity: 0; content: "\e63d"; position: absolute; } &.submit-button-loading { cursor: pointer; &::before { top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.1); } &::after { left: 50%; filter: alpha(opacity=100); opacity: 1; margin-left: -8px; #iconLayout(15px); content: "\e63d"; animation-name: layui-rotate; -webkit-animation-name: layui-rotate; -webkit-animation-duration: 1s; animation-duration: 1s; animation-timing-function: linear; -webkit-animation-timing-function: linear; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; } } } /* 图片选择器样式 */ .image-dialog { &[v-cloak] { display: none; } &-head { clear: both; height: 30px; padding: 10px 12px; } &-search-input { height: 30px; line-height: 30px; } &-body { height: 470px; display: flex; flex-wrap: wrap; background: var(--ta-body-bg, #efefef); padding-top: 12px; padding-left: 12px; align-content: flex-start; } &-item { z-index: 1; overflow: hidden; position: relative; margin-right: 12px; margin-bottom: 12px; border-radius: @BoxBorderRadius; // 显示删除按钮 &:hover .image-dialog-item-close { display: flex !important; } .uploadimage { margin: 0; width: 145px; height: 145px; background-color: #fff; } &-tool { top: 0; left: 0; right: 0; padding: 4px; display: flex; position: absolute; } &-type, &-size { padding: 3px 5px; font-size: 11px; line-height: 12px; margin-right: 3px; } &-type, &-size, &-close { color: #fafafa; background: rgba(0, 0, 0, 0.6); border-radius: 18px; } &-close { top: 4px; right: 4px; width: 20px; height: 20px; cursor: pointer; display: none; position: absolute; font-size: 14px; background: rgba(238, 10, 10, 0.8); font-weight: bold; align-items: center; justify-content: center; &:hover { color: #fff; } } &-name { left: 0; right: 0; bottom: 0; color: #fff; padding: 3px 10px; position: absolute; text-align: center; line-height: 1.5em; white-space: nowrap; background: rgba(0, 0, 0, 0.6); } } &-foot { padding: 0 12px; } &-page { height: 50px; text-align: center; .layui-laypage { a, span { margin-bottom: 0; } } } &-button { right: 10px; bottom: 6px; position: absolute; z-index: 2; #notSelect(); #defaTransition(); } &-checked { &:after, &:before { z-index: 2; cursor: pointer; content: ""; display: block; position: absolute; } &:after { top: -25px; right: -25px; width: 50px; height: 50px; transform: rotate(135deg); -moz-transform: rotate(135deg); -webkit-transform: rotate(135deg); background-color: rgba(56, 169, 225, 0.8); } &:before { top: 0; left: 0; right: 0; bottom: 0; border: 4px solid rgba(56, 169, 225, 0.8); } } } /* 权限树 */ .system-auth-tree { padding: 18px 20px; border: 1px solid #e8eef5; border-radius: 10px; background: #f8fbfd; } .auth-tree-panel { display: grid; gap: 16px; } .auth-tree-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; position: sticky; top: 0; z-index: 5; padding: 10px 0 12px; background: #f8fbfd; } .auth-tree-toolbar-group { display: inline-flex; flex-wrap: wrap; gap: 8px; } .auth-tree-toolbar-group-mode { margin-left: auto; } .auth-tree-search { flex: 1; min-width: 240px; position: relative; .layui-input { padding-right: 52px; } } .auth-tree-search-clear { position: absolute; top: 50%; right: 10px; padding: 0; color: #94a3b8; border: none; background: transparent; transform: translateY(-50%); cursor: pointer; &:hover { color: #0f766e; } } .auth-tree-mode[data-selected-only="true"] { color: #fff; background: #0f766e; border-color: #0f766e; } .auth-tree-ghost { color: #475569; background: #fff; border-color: #d7e1ea; } .auth-tree-danger { color: #b42318; background: #fff; border-color: #f1c7c4; } .auth-submit-diff { padding-top: 6px; } .auth-submit-diff-head { margin-bottom: 12px; font-weight: 600; color: #334155; } .auth-submit-diff-section + .auth-submit-diff-section { margin-top: 12px; } .auth-submit-diff-title { margin-bottom: 8px; color: #475569; font-size: 12px; } .auth-submit-diff-tags { display: flex; flex-wrap: wrap; gap: 8px; max-height: 180px; overflow: auto; } .auth-diff-tag { display: inline-flex; align-items: center; padding: 4px 8px; color: #334155; font-size: 12px; border-radius: 999px; background: #f1f5f9; } .auth-tree-empty { padding: 18px; color: #6b7280; text-align: center; background: #fff; border-radius: 8px; } .auth-plugin-card { overflow: hidden; border: 1px solid #e5edf5; border-radius: 8px; background: #fff; } .auth-plugin-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: #fff; border-bottom: 1px solid #eef3f8; } .auth-plugin-toggle, .auth-group-toggle, .auth-leaf-item { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: #1f2937; } .auth-plugin-title, .auth-group-title { padding: 0; color: #1f2937; font-weight: 600; text-align: left; border: none; background: transparent; cursor: pointer; } .auth-plugin-toggle { flex: 0 0 auto; } .auth-plugin-title { flex: 1 1 auto; justify-content: flex-start; margin-right: auto; } .auth-node-count { margin-left: 8px; color: #94a3b8; font-size: 12px; font-weight: 400; } .auth-plugin-card.is-collapsed .auth-plugin-title::after, .auth-group.is-collapsed .auth-group-title::after { content: '展开'; margin-left: 8px; color: #94a3b8; font-size: 12px; font-weight: 400; } .auth-plugin-card.is-expanded .auth-plugin-title::after, .auth-group.is-expanded .auth-group-title::after { content: '收起'; margin-left: 8px; color: #94a3b8; font-size: 12px; font-weight: 400; } .auth-plugin-code { padding: 2px 8px; color: #0369a1; font-size: 12px; background: #e0f2fe; border-radius: 999px; } .auth-plugin-actions, .auth-group-actions { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; } .auth-plugin-body { display: grid; gap: 14px; padding: 14px 16px 16px; } .auth-plugin-card.is-collapsed { .auth-plugin-body { display: none; } } .auth-group { padding: 12px 14px; border: 1px solid #eef3f8; border-radius: 8px; background: #fbfdff; } .auth-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .auth-group-toggle { flex: 0 0 auto; } .auth-group-title { flex: 1 1 auto; justify-content: flex-start; margin-right: auto; } .auth-group-action { padding: 0; color: #0369a1; border: none; background: transparent; cursor: pointer; } .auth-plugin-title:hover, .auth-group-title:hover, .auth-group-action:hover, .auth-group-switch:hover { color: #0f766e; } .auth-group-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, max-content)); gap: 8px 10px; margin-top: 12px; padding-left: 18px; align-items: start; } .auth-group.is-collapsed { .auth-group-grid { display: none; } } .auth-leaf-item { min-height: 30px; padding: 5px 10px; border: 1px solid #dbe7f3; border-radius: 999px; background: #fff; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; &:hover { border-color: #93c5fd; background: #f8fbff; } &:has(input:checked) { border-color: #67b99a; background: #edf9f3; box-shadow: inset 0 0 0 1px rgba(0, 150, 136, 0.08); } span { font-size: 12px; line-height: 18px; white-space: nowrap; } } .auth-plugin-toggle input, .auth-group-head input, .auth-leaf-item input { margin: 0; } @media (max-width: 768px) { .auth-plugin-head, .auth-group-head { align-items: flex-start; flex-direction: column; } .auth-group-grid { grid-template-columns: 1fr; padding-left: 0; } } /* 图标选择器 */ body.ta-icon-picker-body { margin: 0; padding: 12px; color: var(--ta-text-color, #333); font-size: 12px; background: var(--ta-body-bg, #f5f6f7); } .ta-icon-picker { padding: 12px; background: var(--ta-surface, #fff); border: 1px solid var(--ta-border-color, #e2e8f0); } .ta-icon-picker__header { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 12px; } .ta-icon-picker__title { font-size: 14px; font-weight: 600; } .ta-icon-picker__search { display: block; flex: 1; max-width: 220px; .layui-input { height: 34px; line-height: 34px; } } .ta-icon-picker__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; } .ta-icon-picker__item { padding: 10px 8px; color: var(--ta-text-color, #1f2937); text-align: center; cursor: pointer; border: 1px solid var(--ta-border-color, #e2e8f0); background: var(--ta-surface-soft, #fafafa); transition: all 0.15s linear; &:hover { color: var(--ta-accent, #009688); border-color: #b6d8d4; background: #f3fbfa; } i { display: block; height: 32px; line-height: 32px; font-size: 26px !important; color: inherit; } &.is-hidden { display: none; } } .ta-icon-picker__name { height: 18px; margin-top: 6px; overflow: hidden; color: inherit; line-height: 18px; white-space: nowrap; text-overflow: ellipsis; } .portal-block-container { font-size: 14px; margin-bottom: 10px; letter-spacing: 1px; .portal-block { &-icon { top: 25%; right: 30px; position: absolute; font-size: 65px; color: rgba(255, 255, 255, 0.2); } &-item { color: #fff; padding: 15px 25px; position: relative; box-shadow: @ShadowOuterMax; line-height: 3em; text-shadow: 1px 1px 2px rgba(50, 50, 50, 0.8); border-radius: @BoxBorderRadius; #notSelect(); > div:nth-child(1), &-name { font-size: 16px; font-weight: bold; } > div:nth-child(2), &-numb { display: inline; font-size: 46px; line-height: 46px; } &-unit { display: inline; position: absolute; font-size: 12px; margin-top: 10px; margin-left: 10px; } &-desc { font-size: 13px; line-height: 2em; } } } } label.think-radio, label.think-checkbox { cursor: pointer; display: inline-block; margin: 8px 10px 8px 6px; &[data-width] { width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } &[data-width^="150"] { width: 150px; } &[data-width^="200"] { width: 200px; } } .theme-palette { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; &, * { box-sizing: border-box; } &-card { width: calc((100% - 50px) / 6); height: 144px; flex: 0 0 calc((100% - 50px) / 6); display: flex; cursor: pointer; position: relative; overflow: hidden; padding: 0; flex-direction: column; justify-content: flex-start; background: var(--ta-surface, #fff); border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 6px; box-shadow: none; #defaTransition(); &:hover { border-color: var(--ta-accent, #009688); box-shadow: none; } &.active { border-color: var(--ta-accent, #009688); box-shadow: inset 0 0 0 1px var(--ta-accent, #009688); .theme-palette-check { opacity: 1; transform: scale(1); } } input { top: 0; left: 0; width: 0; height: 0; opacity: 0; display: none; position: absolute; pointer-events: none; } } &-check { top: 8px; right: 8px; width: 20px; height: 20px; color: #fff; opacity: 0; display: flex; position: absolute; z-index: 3; border-radius: 4px; align-items: center; justify-content: center; background: var(--ta-accent, #009688); box-shadow: none; font-size: 12px; transform: scale(0.82); #defaTransition(); } &-preview { width: 100%; height: 88px; display: block; overflow: hidden; position: relative; z-index: 1; border-radius: 0; background: var(--theme-body, #f4f7fb); box-shadow: none; &-header, &-side, &-side-alt, &-card, &-line { position: absolute; display: block; border-radius: 4px; } &-header { top: 0; left: 0; right: 0; height: 20px; border-radius: 0; background: var(--theme-header, #fff); } &-side { top: 20px; left: 0; bottom: 0; width: 30%; border-radius: 0; background: var(--theme-side, #20222a); } &-side-alt { top: 20px; left: 18%; bottom: 0; width: 24%; opacity: 0; border-radius: 0; background: var(--theme-surface, #fff); box-shadow: inset -1px 0 0 rgba(15, 23, 42, 0.08); } &-card { background: var(--theme-surface, #fff); box-shadow: none; } &-line { height: 6px; background: rgba(148, 163, 184, 0.18); } &-hero { top: 30px; left: 38%; width: 50%; height: 20px; } &-panel { top: 60px; left: 38%; width: 22%; height: 22px; } &-panel-right { top: 60px; right: 8%; width: 22%; height: 22px; } &-tone { top: 28px; left: 42%; width: 16%; height: 4px; border-radius: 999px; background: var(--theme-accent, #009688); } &-copy-1 { top: 38px; left: 42%; width: 34%; } &-copy-2 { top: 46px; left: 42%; width: 26%; } &-copy-3 { top: 66px; left: 42%; width: 12%; } &-copy-4 { top: 66px; right: 14%; width: 14%; } &.brand { .theme-palette-preview-header { background: var(--theme-accent, #009688); } .theme-palette-preview-side { background: var(--theme-side, #20222a); } } &.split { .theme-palette-preview-header { left: 42%; } .theme-palette-preview-side { width: 18%; background: var(--theme-side, #20222a); } .theme-palette-preview-side-alt { opacity: 1; } .theme-palette-preview-hero, .theme-palette-preview-panel { left: 50%; } .theme-palette-preview-panel-right { right: 6%; } .theme-palette-preview-tone, .theme-palette-preview-copy-1, .theme-palette-preview-copy-2, .theme-palette-preview-copy-3 { left: 54%; } .theme-palette-preview-copy-4 { right: 14%; } } } &-title { position: relative; z-index: 1; width: 100%; overflow: hidden; color: var(--ta-text-color, #1f2937); padding-right: 24px; font-size: 12px; font-weight: 600; line-height: 1.3; white-space: nowrap; text-overflow: ellipsis; text-shadow: none; } &-layout { position: relative; z-index: 1; max-width: calc(100% - 28px); padding: 1px 6px; display: inline-flex; align-items: center; align-self: flex-start; overflow: hidden; color: var(--ta-text-muted, #64748b); font-size: 10px; line-height: 1.25; white-space: nowrap; text-overflow: ellipsis; border-radius: 4px; background: var(--ta-surface-soft, #f8fafc); border: 1px solid var(--ta-border-color, @BoxBorderColor); } &-meta { flex: 1; min-height: 0; width: 100%; padding: 10px 10px 8px; position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; background: var(--ta-surface, #fff); } } .theme-config-picker { cursor: pointer; .layui-input { cursor: pointer; padding-right: 42px; background: var(--ta-surface, #fff); } .input-right-icon { pointer-events: none; } } .think-radio, .think-checkbox { .notselect(); margin-top: 10px; font-weight: 400; line-height: 16px; input[type="radio"], input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; border: 1px solid @RadioBorderNormalColor; overflow: hidden; position: relative; background: #fff; margin-right: 5px; vertical-align: bottom; display: inline-block !important; box-sizing: border-box !important; appearance: none; -webkit-appearance: none; &:checked { border-color: var(--ta-accent, #009688); &:after { display: block; position: relative; animation-duration: 0.3s; animation-fill-mode: both; animation-name: layui-fadein; -webkit-animation-duration: 0.3s; -webkit-animation-fill-mode: both; -webkit-animation-name: layui-fadein; } } } input[type="radio"] { border-radius: 1em; &:checked:after { top: 4px; left: 4px; width: 8px; height: 8px; cursor: pointer; content: ""; background: var(--ta-accent, #009688); border-radius: 1em; } } input[type="checkbox"] { border-radius: 1px; &:checked:after { color: var(--ta-accent, #009688); cursor: pointer; padding: 2px; content: "\e605"; #iconLayout(12px); font-weight: 700; } } } .pagination-container { margin-top: 20px; line-height: 30px; padding-top: 5px; padding-bottom: 5px; span { color: #666; font-size: 9pt; } select { border: 1px solid #ddd; } ul { float: right; height: 30px; margin: 0; padding: 0; display: inline-block; li { z-index: 1; height: 30px; line-height: 30px; display: inline-block; a, span { color: #333; width: 30px; height: 30px; border: 1px solid @BoxBorderColor; overflow: hidden; font-size: 12px; text-align: center; line-height: 30px; margin-right: 3px; display: inline-block; box-sizing: border-box; } span { cursor: default; background: #dcdcdc; } a:hover { border-color: var(--ta-accent, #009688); } &.active { z-index: 2; span { color: #fff; border-color: var(--ta-accent, #009688); background: var(--ta-accent, #009688) !important; } } &.disabled { span { font-size: 16px; font-weight: 700; line-height: 22px; } } &:last-child, &:first-child { a, span { font-size: 16px; font-weight: 700; line-height: 28px; } } } } } body.layui-layout-body { color: var(--ta-text-color, #333); .layui-btn { position: relative; overflow: hidden; border-radius: 10px; border: 1px solid transparent; background-clip: padding-box; font-weight: 500; letter-spacing: 0.01em; transition: border-color 0.2s linear, box-shadow 0.2s linear, background-color 0.2s linear, color 0.2s linear, transform 0.2s linear; } .layui-btn:not(.layui-btn-primary) { box-shadow: none; } .layui-btn:hover { transform: none; } .layui-btn.layui-btn-disabled, .layui-btn[disabled], .layui-btn-disabled:hover, .layui-btn[disabled]:hover { transform: none; box-shadow: none !important; } .layui-btn:not(.layui-btn-disabled):not([disabled]):hover { border-color: transparent; } .layui-btn-primary { color: var(--ta-text-color, #333); border-color: var(--ta-border-color, @BoxBorderColor); background-color: var(--ta-surface, #fff); box-shadow: none; } .layui-btn-primary:hover { color: var(--ta-accent, #009688); border-color: var(--ta-accent, #009688); background-color: var(--ta-accent-soft, rgba(0, 150, 136, 0.08)); box-shadow: none; } .layui-btn-normal { box-shadow: none; } .layui-btn-warm { box-shadow: none; } .layui-btn-danger { box-shadow: none; } .layui-btn-lg { border-radius: 12px; } .layui-btn-sm { border-radius: 8px; } .layui-btn-xs { border-radius: 6px; } .layui-btn-group { display: inline-flex; align-items: stretch; vertical-align: middle; overflow: hidden; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 6px; background: var(--ta-surface, #fff); box-shadow: none; } .layui-btn-group .layui-btn { margin: 0 !important; border-width: 0; border-radius: 0; position: relative; box-shadow: none !important; transform: none !important; } .layui-btn-group .layui-btn + .layui-btn { margin-left: 0 !important; } .layui-btn-group .layui-btn + .layui-btn::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 0; width: 1px; background: var(--ta-border-color, @BoxBorderColor); } .layui-btn-group .layui-btn:first-child { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .layui-btn-group .layui-btn:last-child { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .layui-btn-group .layui-btn:hover::before, .layui-btn-group .layui-btn.layui-btn-active::before { background: var(--ta-accent-deep, rgba(0, 150, 136, 0.22)); } .layui-input, .layui-textarea, .layui-select, .layui-unselect, .layui-form-select .layui-input { border-color: var(--ta-border-color, @BoxBorderColor); border-radius: 8px; background-color: var(--ta-surface, #fff); transition: border-color 0.2s linear, box-shadow 0.2s linear, background-color 0.2s linear; } .layui-input:focus, .layui-textarea:focus, .layui-form-selected .layui-input { border-color: var(--ta-accent, #009688) !important; box-shadow: 0 0 0 4px var(--ta-accent-soft, rgba(0, 150, 136, 0.12)); } .layui-form-select dl dd.layui-this, .layui-form-select dl dd:hover { background: var(--ta-accent-soft, rgba(0, 150, 136, 0.12)); color: var(--ta-accent, #009688); } .layui-table-view, .layui-tab-card, .layui-form-select dl, .layui-layer-page, .layui-panel, .layui-card { border-color: var(--ta-border-color, @BoxBorderColor); } .layui-table-view, .layui-tab-card, .layui-layer-page, .layui-panel { border-radius: var(--ta-radius-md, @BoxBorderRadius); overflow: hidden; background: var(--ta-surface, #fff); } .layui-table-view, .layui-form-select dl, .layui-layer-page { box-shadow: var(--ta-shadow-sm, @ShadowOuterMax); } .layui-tab-card { box-shadow: none; } .layui-layer-page { box-shadow: none; } .layui-tab-card > .layui-tab-title, .layui-table-view .layui-table-header, .layui-table-tool, .layui-layer-title { background: var(--ta-surface-soft, #f8fafc); } .layui-table-view { box-shadow: none; } .layui-table-view .layui-table-header { border-bottom: 1px solid var(--ta-border-color, @BoxBorderColor); background: linear-gradient( 180deg, var(--ta-surface-soft, #f8fafc) 0%, var(--ta-surface, #fff) 100% ); } .layui-table-view .layui-table-header table, .layui-table-view .layui-table-header thead tr { background: transparent; } .layui-table-view .layui-table-header th { border-top: 0; border-bottom: 0; border-left: 0; border-right: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 0 !important; background: transparent; box-shadow: none; } .layui-table-view .layui-table-header th:last-child { border-right: 0; } .layui-table-view .layui-table-header .layui-table-cell { height: 38px; padding-top: 0; padding-bottom: 0; line-height: 38px; font-weight: 600; } .layui-table td, .layui-table th { border-radius: 0; border-color: var(--ta-border-color, @BoxBorderColor); } .layui-table tbody tr:hover, .layui-table-click { background-color: rgba(15, 23, 42, 0.02); } .layui-card-header { color: var(--ta-text-color, #333); font-weight: 600; text-align: left; } .layui-tab-brief > .layui-tab-title .layui-this, .layui-tab-card > .layui-tab-title .layui-this { color: var(--ta-accent, #009688); } .layui-form-checked[lay-skin="primary"] i, .layui-form-onswitch, .layui-laypage .layui-laypage-curr .layui-laypage-em { border-color: var(--ta-accent, #009688); background-color: var(--ta-accent, #009688); } .layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { border-bottom-color: var(--ta-accent, #009688); } .layui-form-radio > i:hover, .layui-form-radioed > i, .layui-form-checkbox[lay-skin="primary"]:hover i, .layui-form-checked[lay-skin="primary"] i, .layui-laypage a:hover, .layui-laypage button:hover { color: var(--ta-accent, #009688); } .plugin-showcase-head { margin-bottom: 16px; } .plugin-showcase-summary { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 6px; color: var(--ta-text-color, #333); background: var(--ta-surface-soft, #f8fafc); border: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-showcase-count { min-width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; font-weight: 700; border-radius: 6px; background: var(--ta-accent, #009688); box-shadow: none; } .plugin-showcase-copy { font-size: 13px; line-height: 1.7; color: var(--ta-text-muted, #64748b); } .plugin-showcase-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .plugin-showcase-card { display: flex; flex-direction: column; min-width: 0; border-radius: 6px; overflow: hidden; border: 1px solid var(--ta-border-color, @BoxBorderColor); background: var(--ta-surface, #fff); box-shadow: none; transition: transform 0.2s linear, box-shadow 0.2s linear, border-color 0.2s linear; } .plugin-showcase-card:hover { transform: translateY(-1px); border-color: var(--ta-accent, #009688); box-shadow: none; } .plugin-showcase-card-head { display: flex; align-items: center; gap: 12px; padding: 16px 16px 12px 16px; background: var(--ta-surface, #fff); border-bottom: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-showcase-mark { width: 42px; height: 42px; flex: 0 0 42px; display: inline-flex; align-items: center; justify-content: center; color: var(--ta-accent, #009688); font-size: 18px; font-weight: 700; text-transform: uppercase; border-radius: 6px; background: var(--ta-accent-soft, rgba(0, 150, 136, 0.12)); box-shadow: inset 0 0 0 1px var(--ta-accent-deep, rgba(0, 150, 136, 0.22)); } .plugin-showcase-titlebox { flex: 1; min-width: 0; } .plugin-showcase-app { color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.4; letter-spacing: 0.03em; } .plugin-showcase-name { color: var(--ta-text-color, #333); font-size: 16px; font-weight: 700; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .plugin-showcase-badge { flex: 0 0 auto; padding: 4px 10px; font-size: 11px; line-height: 1.4; color: var(--ta-accent, #009688); border-radius: 999px; background: var(--ta-accent-soft, rgba(0, 150, 136, 0.12)); border: 1px solid var(--ta-accent-deep, rgba(0, 150, 136, 0.22)); } .plugin-showcase-card-body { display: flex; flex-direction: column; gap: 14px; padding: 16px; } .plugin-showcase-item { display: flex; flex-direction: column; gap: 8px; min-width: 0; } .plugin-showcase-item.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .plugin-showcase-label { color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.4; } .plugin-showcase-tags { display: flex; flex-wrap: wrap; gap: 8px; } .plugin-showcase-tag { padding: 5px 10px; color: var(--ta-text-color, #333); font-size: 12px; line-height: 1.4; border-radius: 999px; background: var(--ta-surface, #fff); border: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-showcase-tag.muted { color: var(--ta-text-muted, #64748b); background: var(--ta-surface-soft, #f8fafc); } .plugin-showcase-package, .plugin-showcase-value { min-width: 0; color: var(--ta-text-color, #333); font-size: 13px; line-height: 1.7; word-break: break-all; } .plugin-showcase-package a { color: var(--ta-accent, #009688); } .plugin-showcase-metric { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: 12px; background: var(--ta-surface, #fff); border: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-center-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 15px; align-items: stretch; } .plugin-center-grid__item { min-width: 0; } .plugin-center-grid__item--empty { grid-column: 1 / -1; } .plugin-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 6px; background: var(--ta-surface, #fff); box-shadow: none; } .plugin-card:hover { border-color: var(--ta-accent-deep, rgba(0, 150, 136, 0.22)); } .plugin-card.is-default { border-color: var(--ta-accent, #009688); box-shadow: none; } .plugin-card::after { display: none; } .plugin-card:hover::after, .plugin-card.is-default::after { opacity: 1; } .plugin-card__cover { position: relative; display: flex; min-height: 92px; flex-direction: column; justify-content: space-between; gap: 8px; overflow: hidden; padding: 10px 12px; background: var(--ta-surface-soft, #f8fafc); background-position: center; background-size: cover; border-bottom: 1px solid var(--ta-border-color, @BoxBorderColor); cursor: pointer; } .plugin-card__cover.has-cover { background-color: var(--ta-surface-soft, #f8fafc); } .plugin-card__cover:not([data-plugs-click]) { cursor: default; } .plugin-card__cover-mask { position: absolute; inset: 0; background: transparent; } .plugin-card__badges, .plugin-card__cover-main { position: relative; z-index: 1; } .plugin-card__badges { display: flex; flex-wrap: wrap; gap: 6px; } .plugin-card__badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 4px; background: var(--ta-surface, #fff); color: var(--ta-text-color, #1f2937); font-size: 12px; line-height: 1; box-shadow: none; border: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-card__badge--ghost { background: var(--ta-surface-soft, #f8fafc); border-color: var(--ta-border-color, @BoxBorderColor); } .plugin-card__badge--accent { background: #fef3c7; color: #92400e; border-color: #fcd34d; } .plugin-card__cover-main { display: flex; flex-direction: column; gap: 4px; min-height: 0; justify-content: flex-end; } .plugin-card__cover-kicker { font-size: 12px; letter-spacing: 0; color: var(--ta-text-muted, #64748b); } .plugin-card__cover-title { overflow: hidden; font-size: 16px; line-height: 1.4; font-weight: 600; color: var(--ta-text-color, #1f2937); text-overflow: ellipsis; white-space: nowrap; } .plugin-card__cover-hint { font-size: 12px; line-height: 1.5; color: var(--ta-text-muted, #64748b); } .plugin-card__body { display: flex; flex: 1; flex-direction: column; padding: 12px; } .plugin-card__title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; } .plugin-card__title { flex: 1; min-width: 0; font-size: 16px; line-height: 1.5; font-weight: 600; color: var(--ta-text-color, #333); } .plugin-card__tag { flex-shrink: 0; padding: 2px 8px; border: 1px solid var(--ta-border-color, @BoxBorderColor); border-radius: 4px; background: var(--ta-surface-soft, #f8fafc); color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.5; font-weight: 600; } .plugin-card__desc { display: -webkit-box; overflow: hidden; margin-top: 8px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1.7; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .plugin-card__meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; } .plugin-card__meta-item { min-width: 0; padding: 8px 10px; border-radius: 4px; background: #fafafa; border: 1px solid var(--ta-border-color, @BoxBorderColor); } .plugin-card__meta-label { display: block; margin-bottom: 4px; color: var(--ta-text-muted, #64748b); font-size: 12px; line-height: 1; } .plugin-card__meta-value { display: block; overflow: hidden; color: var(--ta-text-color, #333); font-size: 13px; line-height: 1.5; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; } .plugin-card__footer { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 10px; } .plugin-card__action { flex: 1; height: 34px; padding: 0 12px; border-radius: 4px !important; font-size: 13px; font-weight: 600; line-height: 34px; text-align: center; box-shadow: none !important; } .plugin-card__action--ghost { background: transparent; } .plugin-card__action--ghost:hover { background: transparent; } .plugin-card__action--disabled, .plugin-card__action--disabled:hover { box-shadow: none; cursor: not-allowed; } .plugin-empty { padding: 24px 16px; text-align: center; border: 1px dashed var(--ta-border-color, @BoxBorderColor); border-radius: 6px; background: var(--ta-surface-soft, #f8fafc); } .plugin-empty__title { color: var(--ta-text-color, #333); font-size: 16px; font-weight: 600; } .plugin-empty__desc { margin-top: 6px; color: var(--ta-text-muted, #64748b); font-size: 12px; } @media screen and (max-width: 1280px) { .plugin-showcase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media screen and (max-width: 991px) { .plugin-center-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } } @media screen and (max-width: 760px) { .plugin-showcase-summary, .plugin-showcase-card-head { align-items: flex-start; flex-direction: column; } .plugin-showcase-grid, .plugin-showcase-item.split { grid-template-columns: minmax(0, 1fr); } .plugin-center-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; } .plugin-card__meta { grid-template-columns: 1fr; } .plugin-card__cover { min-height: 88px; } .plugin-card__cover-title { font-size: 15px; } .plugin-card__footer { flex-direction: column; } .plugin-card__action { width: 100%; } } @media screen and (max-width: 480px) { .plugin-card__body { padding: 10px; } .plugin-card__cover { padding: 10px; } } } .hr-line- { &dashed { color: #fff; height: 1px; margin: 15px 0; background-color: #fff; border-top: 1px dashed #e7eaec; } &solid { margin-top: 15px; margin-bottom: 15px; border-bottom: 1px solid #e7eaec; background-color: rgba(0, 0, 0, 0); } } .pull- { &left { float: left !important; } &right { float: right !important; } } .full { width: 100% !important; height: 100% !important; &-width { width: 100% !important; } &-height { height: 100% !important; } } @sizes: 10, 12, 14; @colors: { red: #e44; blue: #29f; desc: #999; text: #333; green: #090; }; .sub-span { each(@colors, { &-@{key} span { color: @value; } }); } .color { each(@colors, { &-@{key} { color: @value !important; } }); } .sub-strong { each(@colors, { &-@{key} b { color: @value; } }) each(@sizes, { &-s@{value} b { font-size: @value *1px; } }); } .think-bg { &-none { background: none !important; } @bgStyles: -red #fff #ba2e26 #e83a30, -gray #333 #efefef #f0f0f0, -blue #fff #3165cc #3d7eff, -orig #fff #cc5a36 #ff7043, -green #fff #24aa35 #10da29, -violet #fff #c543d8 #925cc3, -purple #fff #6e26ba #892fe8, -brown #fff #743f23 #914f2c, -white #333 white white; each(@bgStyles, { @name: extract(@value, 1); @color: extract(@value, 2); @bgColor1: extract(@value, 3); @bgColor2: extract(@value, 4); &@{name} { color: @color; background: linear-gradient(-125deg, @bgColor1, @bgColor2) !important; } }); } .text- { @ts: top vertical-align, left text-align, right text-align, center text-align, middle vertical-align, bottom vertical-align; each(@ts, { @name: extract(@value, 1); @field: extract(@value, 2); &@{name} { @{field}: @name !important; } }); } .font { &-code { font-family: "Courier New", "Lucida Console", "Consolas", "Helvetica Neue", "Helvetica", "PingFang SC", "Tahoma", "Arial", sans-serif; } each(range(10, 40), { &-s@{value} { font-size: 1px* @value !important; } }) each(range(1, 9), { &-w@{value} { font-weight: @value*100 !important } }); } .b0 { border: 0 !important; } .ba { border: 1px solid @BoxBorderColor; } .bt { border-top: 1px solid @BoxBorderColor; } .br { border-right: 1px solid @BoxBorderColor; } .bb { border-bottom: 1px solid @BoxBorderColor; } .bl { border-left: 1px solid @BoxBorderColor; } .bt0 { border-top: 0 !important; } .br0 { border-right: 0 !important; } .bb0 { border-bottom: 0 !important; } .bl0 { border-left: 0 !important; } .border-radius { border-radius: 50% !important; each(range(0, 6), { &-@{value} { border-radius: 1px*@value !important } }) &-left-0 { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; } &-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } } @keyframes loading { 17% { border-bottom-right-radius: 3px; } 25% { transform: translateY(9px) rotate(22.5deg); } 50% { border-bottom-right-radius: 40px; transform: translateY(18px) scale(1, 0.9) rotate(45deg); } 75% { transform: translateY(9px) rotate(67.5deg); } 100% { transform: translateY(0) rotate(90deg); } } @-webkit-keyframes loading { 17% { border-bottom-right-radius: 3px; } 25% { transform: translateY(9px) rotate(22.5deg); } 50% { transform: translateY(18px) scale(1, 0.9) rotate(45deg); border-bottom-right-radius: 40px; } 75% { transform: translateY(9px) rotate(67.5deg); } 100% { transform: translateY(0) rotate(90deg); } } @keyframes shadow { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.2, 1); } } @-webkit-keyframes shadow { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.2, 1); } }