Bin
2025-12-17 dcf780a91c16b6be28635b6e2e0e702060ee19f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
.modal-ls {
    --transition-duration: 250ms;
 
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2000;
    display: flex;
    position: fixed;
    align-items: center;
    justify-content: center;
    background-color: rgba(var(--color-neutral-shadow-raw) / 50%);
    backdrop-filter: blur(2px);
    will-change: opacity;
    overflow: hidden;
 
    &_optimize &__wrapper {
        will-change: transform;
    }
 
    &__wrapper {
        width: 100%;
        max-height: 100%;
        padding: 40px 0 56px;
        overflow: auto;
        box-sizing: border-box;
    }
 
    &__content {
        width: 600px;
        min-height: 100px;
        margin: 0 auto;
        background-color: var(--color-neutral-background);
        border-radius: var(--modal-border-radius, 0.5rem);
        box-shadow:
            0 16px 36px rgba(var(--color-neutral-shadow-raw) / calc(40% * var(--shadow-intensity))),
            inset 0 1px 1px var(--color-neutral-border),
            inset 0 -1px rgba(var(--color-neutral-shadow-raw) / 30%);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
 
    &__header {
        display: flex;
        min-height: 40px;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 2rem;
        box-sizing: content-box;
 
        &_divided {
            border-bottom: 1px solid var(--color-neutral-border);
        }
    }
 
    &__title {
        margin: 0;
        margin-right: auto;
        font-size: 1.75rem;
        font-weight: 500;
        color: var(--color-neutral-content);
    }
 
    &__body {
        flex: 1;
        padding: 0 var(--spacing-wider) var(--spacing-wider);
        min-height: 0;
        line-height: 140%;
 
        &_bare {
            padding: 0;
            height: 100%;
            display: flex;
            flex-direction: column;
        }
    }
 
    &__footer {
        padding: var(--spacing-base) var(--spacing-wider);
        text-align: center;
        font-size: 14px;
        line-height: 22px;
        color: var(--color-neutral-content-subtler);
 
        & a {
            color: var(--grape_600);
            text-decoration: underline;
 
            &:hover {
                color: var(--grape_700);
            }
        }
 
        &:not(.modal-ls__footer_bare) {
            background: var(--color-neutral-surface);
            border-top: 1px solid var(--color-neutral-border);
        }
    }
 
    &_fullscreen {
        --fullscreen-size-reduction: 80px;
 
        .modal-ls {
            &__wrapper {
                padding: calc(var(--fullscreen-size-reduction) / 2) 0;
            }
 
            &__content {
                width: calc(100vw - var(--fullscreen-size-reduction));
                height: calc(100vh - var(--fullscreen-size-reduction));
            }
        }
    }
 
    &_visible {
        opacity: 0;
        transition: opacity var(--transition-duration) ease;
    }
 
    &_visible &__wrapper {
        transform: scale(1.05);
        transition: transform var(--transition-duration) ease;
    }
 
    &.visible {
        opacity: 1;
    }
 
    &.visible &__wrapper {
        transform: none;
    }
 
    &.before-appear {
        opacity: 0;
    }
 
    &.before-appear &__wrapper {
        transform: scale(1.05);
    }
 
    &.appear {
        opacity: 1;
    }
 
    &.appear &__wrapper {
        transform: scale(1);
    }
 
    &.before-disappear {
        opacity: 1;
    }
 
    &.before-disappear &__wrapper {
        transform: scale(1);
    }
 
    &.disappear {
        opacity: 0;
    }
 
    &.disappear &__wrapper {
        transform: scale(1.05);
    }
}