123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- @use 'sass:map';
- @use 'mixins/mixins' as *;
- @use 'mixins/utils' as *;
- @use 'mixins/var' as *;
- @use 'common/var' as *;
- @use 'common/popup' as *;
- @include b(dialog) {
- @include set-component-css-var('dialog', $dialog);
- position: relative;
- margin: var(#{getCssVarName('dialog-margin-top')}, 15vh) auto 50px;
- background: getCssVar('dialog', 'bg-color');
- border-radius: getCssVar('dialog', 'border-radius');
- box-shadow: getCssVar('dialog', 'box-shadow');
- box-sizing: border-box;
- padding: getCssVar('dialog', 'padding-primary');
- width: var(#{getCssVarName('dialog-width')}, 50%);
- overflow-wrap: break-word;
- &:focus {
- outline: none !important;
- }
- @include when(align-center) {
- margin: auto;
- }
- @include when(fullscreen) {
- @include set-css-var-value('dialog-width', 100%);
- @include set-css-var-value('dialog-margin-top', 0);
- margin-bottom: 0;
- height: 100%;
- overflow: auto;
- }
- @include e(wrapper) {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- overflow: auto;
- margin: 0;
- }
- @include when(draggable) {
- @include e(header) {
- cursor: move;
- user-select: none;
- }
- }
- @include e(header) {
- padding-bottom: getCssVar('dialog', 'padding-primary');
- &.show-close {
- padding-right: calc(
- getCssVar('dialog', 'padding-primary') +
- var(
- #{getCssVarName('message-close-size')},
- map.get($message, 'close-size')
- )
- );
- }
- }
- @include e(headerbtn) {
- position: absolute;
- top: 0;
- right: 0;
- padding: 0;
- width: 48px;
- height: 48px;
- background: transparent;
- border: none;
- outline: none;
- cursor: pointer;
- font-size: var(
- #{getCssVarName('message-close-size')},
- map.get($message, 'close-size')
- );
- .#{$namespace}-dialog__close {
- color: getCssVar('color', 'info');
- font-size: inherit;
- }
- &:focus,
- &:hover {
- .#{$namespace}-dialog__close {
- color: getCssVar('color', 'primary');
- }
- }
- }
- @include e(title) {
- line-height: getCssVar('dialog-font-line-height');
- font-size: getCssVar('dialog-title-font-size');
- color: getCssVar('text-color', 'primary');
- }
- @include e(body) {
- color: getCssVar('text-color', 'regular');
- font-size: getCssVar('dialog-content-font-size');
- }
- @include e(footer) {
- padding-top: getCssVar('dialog', 'padding-primary');
- text-align: right;
- box-sizing: border-box;
- }
- // 内容居中布局
- @include m(center) {
- text-align: center;
- @include e(body) {
- text-align: initial;
- }
- @include e(footer) {
- text-align: inherit;
- }
- }
- }
- .#{$namespace}-overlay-dialog {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- overflow: auto;
- }
- .dialog-fade-enter-active {
- animation: modal-fade-in getCssVar('transition-duration');
- .#{$namespace}-overlay-dialog {
- animation: dialog-fade-in getCssVar('transition-duration');
- }
- }
- .dialog-fade-leave-active {
- animation: modal-fade-out getCssVar('transition-duration');
- .#{$namespace}-overlay-dialog {
- animation: dialog-fade-out getCssVar('transition-duration');
- }
- }
- @keyframes dialog-fade-in {
- 0% {
- transform: translate3d(0, -20px, 0);
- opacity: 0;
- }
- 100% {
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
- }
- @keyframes dialog-fade-out {
- 0% {
- transform: translate3d(0, 0, 0);
- opacity: 1;
- }
- 100% {
- transform: translate3d(0, -20px, 0);
- opacity: 0;
- }
- }
- @keyframes modal-fade-in {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
- }
- @keyframes modal-fade-out {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
- }
|