@nine-lab/nine-ux 0.1.142 → 0.1.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/nineMenu.css +37 -26
- package/dist/nine-ux.js +1516 -1531
- package/dist/nine-ux.umd.js +35 -36
- package/package.json +1 -1
package/dist/css/nineMenu.css
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/* ==========================================================================
|
|
4
4
|
[MAIN INTEGRATED SIDE MENU COMPONENT]
|
|
5
|
+
부모가 Shadow DOM이므로 최상단은 :host로 시작해야 외부 분리 파일에서도
|
|
6
|
+
컴포넌트 자체를 정상적으로 인식합니다.
|
|
5
7
|
========================================================================== */
|
|
6
8
|
:host(nine-side-menu) {
|
|
7
9
|
opacity: 0.95;
|
|
@@ -35,7 +37,7 @@
|
|
|
35
37
|
animation: nineMenuBounce 0.5s ease-in-out 1;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
/* 본문 스크롤 감싸는 영역 */
|
|
40
|
+
/* 본문 스크롤 감싸는 영역 (Shadow DOM 내부 div) */
|
|
39
41
|
.body-wrapper {
|
|
40
42
|
display: flex;
|
|
41
43
|
flex-direction: column;
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
/* --------------------------------------------------------------------------
|
|
49
51
|
[1] 헤더 영역 (nine-side-menu-head)
|
|
50
52
|
-------------------------------------------------------------------------- */
|
|
51
|
-
nine-side-menu-head {
|
|
53
|
+
& ::slotted(nine-side-menu-head) {
|
|
52
54
|
display: flex;
|
|
53
55
|
align-items: center;
|
|
54
56
|
padding: 10px;
|
|
@@ -84,35 +86,36 @@
|
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
/* 헤더 상태별 유기적 스위칭 명세 */
|
|
87
|
-
&.collapse nine-side-menu-head .logo-box {
|
|
89
|
+
&.collapse ::slotted(nine-side-menu-head) .logo-box {
|
|
88
90
|
width: 0;
|
|
89
91
|
justify-content: center;
|
|
90
92
|
transition: width 0.5s ease-out;
|
|
91
93
|
}
|
|
92
|
-
&.collapse.hover nine-side-menu-head .logo-box,
|
|
93
|
-
&:not(.collapse) nine-side-menu-head .logo-box {
|
|
94
|
+
&.collapse.hover ::slotted(nine-side-menu-head) .logo-box,
|
|
95
|
+
&:not(.collapse) ::slotted(nine-side-menu-head) .logo-box {
|
|
94
96
|
width: 100%;
|
|
95
97
|
justify-content: space-between;
|
|
96
98
|
}
|
|
97
99
|
|
|
98
|
-
&.collapse nine-side-menu-head .icon:nth-of-type(1) {
|
|
100
|
+
&.collapse ::slotted(nine-side-menu-head) .icon:nth-of-type(1) {
|
|
99
101
|
display: block;
|
|
100
102
|
opacity: 1;
|
|
101
103
|
}
|
|
104
|
+
|
|
102
105
|
&:not(.collapse) {
|
|
103
|
-
nine-side-menu-head .icon:nth-of-type(1) {
|
|
106
|
+
::slotted(nine-side-menu-head) .icon:nth-of-type(1) {
|
|
104
107
|
display: none;
|
|
105
108
|
opacity: 0;
|
|
106
109
|
}
|
|
107
|
-
nine-side-menu-head .icon:nth-of-type(2) {
|
|
110
|
+
::slotted(nine-side-menu-head) .icon:nth-of-type(2) {
|
|
108
111
|
display: block;
|
|
109
112
|
opacity: 1;
|
|
110
113
|
}
|
|
111
|
-
nine-side-menu-head .icon:nth-of-type(3) {
|
|
114
|
+
::slotted(nine-side-menu-head) .icon:nth-of-type(3) {
|
|
112
115
|
display: none;
|
|
113
116
|
opacity: 0;
|
|
114
117
|
}
|
|
115
|
-
nine-side-menu-head .icon-box:hover {
|
|
118
|
+
::slotted(nine-side-menu-head) .icon-box:hover {
|
|
116
119
|
.icon:nth-of-type(2) {
|
|
117
120
|
display: none;
|
|
118
121
|
opacity: 0;
|
|
@@ -127,7 +130,7 @@
|
|
|
127
130
|
/* --------------------------------------------------------------------------
|
|
128
131
|
[2] 바디 컨테이너 영역 (nine-side-menu-body)
|
|
129
132
|
-------------------------------------------------------------------------- */
|
|
130
|
-
nine-side-menu-body {
|
|
133
|
+
& ::slotted(nine-side-menu-body) {
|
|
131
134
|
display: flex;
|
|
132
135
|
align-items: center;
|
|
133
136
|
padding: 10px;
|
|
@@ -137,7 +140,7 @@
|
|
|
137
140
|
/* --------------------------------------------------------------------------
|
|
138
141
|
[3] 푸터 영역 (nine-side-menu-foot)
|
|
139
142
|
-------------------------------------------------------------------------- */
|
|
140
|
-
nine-side-menu-foot {
|
|
143
|
+
& ::slotted(nine-side-menu-foot) {
|
|
141
144
|
display: flex;
|
|
142
145
|
align-items: center;
|
|
143
146
|
padding: 10px;
|
|
@@ -173,35 +176,36 @@
|
|
|
173
176
|
}
|
|
174
177
|
|
|
175
178
|
/* 푸터 상태별 유기적 스위칭 명세 */
|
|
176
|
-
&.collapse nine-side-menu-foot .logo-box {
|
|
179
|
+
&.collapse ::slotted(nine-side-menu-foot) .logo-box {
|
|
177
180
|
width: 0;
|
|
178
181
|
justify-content: center;
|
|
179
182
|
transition: width 0.5s ease-out;
|
|
180
183
|
}
|
|
181
|
-
&.collapse.hover nine-side-menu-foot .logo-box,
|
|
182
|
-
&:not(.collapse) nine-side-menu-foot .logo-box {
|
|
184
|
+
&.collapse.hover ::slotted(nine-side-menu-foot) .logo-box,
|
|
185
|
+
&:not(.collapse) ::slotted(nine-side-menu-foot) .logo-box {
|
|
183
186
|
width: 100%;
|
|
184
187
|
justify-content: space-between;
|
|
185
188
|
}
|
|
186
189
|
|
|
187
|
-
&.collapse nine-side-menu-foot .icon:nth-of-type(1) {
|
|
190
|
+
&.collapse ::slotted(nine-side-menu-foot) .icon:nth-of-type(1) {
|
|
188
191
|
display: block;
|
|
189
192
|
opacity: 1;
|
|
190
193
|
}
|
|
194
|
+
|
|
191
195
|
&:not(.collapse) {
|
|
192
|
-
nine-side-menu-foot .icon:nth-of-type(1) {
|
|
196
|
+
::slotted(nine-side-menu-foot) .icon:nth-of-type(1) {
|
|
193
197
|
display: none;
|
|
194
198
|
opacity: 0;
|
|
195
199
|
}
|
|
196
|
-
nine-side-menu-foot .icon:nth-of-type(2) {
|
|
200
|
+
::slotted(nine-side-menu-foot) .icon:nth-of-type(2) {
|
|
197
201
|
display: block;
|
|
198
202
|
opacity: 1;
|
|
199
203
|
}
|
|
200
|
-
nine-side-menu-foot .icon:nth-of-type(3) {
|
|
204
|
+
::slotted(nine-side-menu-foot) .icon:nth-of-type(3) {
|
|
201
205
|
display: none;
|
|
202
206
|
opacity: 0;
|
|
203
207
|
}
|
|
204
|
-
nine-side-menu-foot .icon-box:hover {
|
|
208
|
+
::slotted(nine-side-menu-foot) .icon-box:hover {
|
|
205
209
|
.icon:nth-of-type(2) {
|
|
206
210
|
display: none;
|
|
207
211
|
opacity: 0;
|
|
@@ -216,7 +220,7 @@
|
|
|
216
220
|
/* --------------------------------------------------------------------------
|
|
217
221
|
[4] 메뉴 아이템 목록 영역 (nine-side-menu-item)
|
|
218
222
|
-------------------------------------------------------------------------- */
|
|
219
|
-
nine-side-menu-item {
|
|
223
|
+
& ::slotted(nine-side-menu-item) {
|
|
220
224
|
padding: 0;
|
|
221
225
|
margin: 0;
|
|
222
226
|
position: relative;
|
|
@@ -341,24 +345,24 @@
|
|
|
341
345
|
|
|
342
346
|
/* 아이템 상태별 축소 명세 */
|
|
343
347
|
&.collapse:not(.hover) {
|
|
344
|
-
nine-side-menu-item:not(.group) {
|
|
348
|
+
::slotted(nine-side-menu-item:not(.group)) {
|
|
345
349
|
opacity: 0;
|
|
346
350
|
height: 0;
|
|
347
351
|
}
|
|
348
|
-
nine-side-menu-item .menubar {
|
|
352
|
+
::slotted(nine-side-menu-item) .menubar {
|
|
349
353
|
width: 0;
|
|
350
354
|
padding-left: unset;
|
|
351
355
|
display: none;
|
|
352
356
|
}
|
|
353
|
-
nine-side-menu-item li {
|
|
357
|
+
::slotted(nine-side-menu-item) li {
|
|
354
358
|
justify-content: center;
|
|
355
359
|
}
|
|
356
|
-
nine-side-menu-item .icon {
|
|
360
|
+
::slotted(nine-side-menu-item) .icon {
|
|
357
361
|
width: 20px;
|
|
358
362
|
height: 20px;
|
|
359
363
|
margin-left: 4px;
|
|
360
364
|
}
|
|
361
|
-
nine-side-menu-item .expand-icon {
|
|
365
|
+
::slotted(nine-side-menu-item) .expand-icon {
|
|
362
366
|
display: none;
|
|
363
367
|
}
|
|
364
368
|
}
|
|
@@ -366,7 +370,14 @@
|
|
|
366
370
|
|
|
367
371
|
/* ==========================================================================
|
|
368
372
|
[GLOBAL KEYFRAMES]
|
|
373
|
+
키프레임 애니메이션은 중첩 안쪽에 있으면 동작하지 않으므로 바깥에 둡니다.
|
|
369
374
|
========================================================================== */
|
|
375
|
+
@keyframes nineMenuBounce {
|
|
376
|
+
0%, 20%, 50%, 80%, 100% { transform: translateX(0); }
|
|
377
|
+
40% { transform: translateX(-10px); }
|
|
378
|
+
60% { left: -10px; transform: translateX(10px); }
|
|
379
|
+
}
|
|
380
|
+
|
|
370
381
|
@keyframes nineMenuRotateIn {
|
|
371
382
|
from { transform: rotate(0deg); }
|
|
372
383
|
to { transform: rotate(180deg); }
|