1- /* =========================================
2- CSS HOÀN CHỈNH V6.8 - NGĂN KÉO DỌC CHUẨN XÁC
3- ========================================= */
4-
51: root {
6- --bg-gradient-1 : # d4bbfc ;
7- --bg-gradient-2 : # 8ec5fc ;
8- --bg-container : rgba (255 , 255 , 255 , 0.25 );
9- --color-title : # 0071e3 ;
10- --color-channel-name : # 20b2aa ;
2+ --bg-gradient-1 : # d4bbfc ;
3+ --bg-gradient-2 : # 8ec5fc ;
4+ --bg-container : rgba (255 , 255 , 255 , 0.25 );
5+ --color-title : # 0071e3 ;
6+ --color-channel-name : # 20b2aa ;
117 --color-input-bg : rgba (255 , 255 , 255 , 0.8 );
128 --color-modal-bg : rgba (255 , 255 , 255 , 0.85 );
13- --shadow-box : 0 2px 8px rgba (0 , 0 , 0 , 0.12 );
9+ --shadow-box : 0 2px 8px rgba (0 , 0 , 0 , 0.12 );
1410}
1511
1612* { box-sizing : border-box; margin : 0 ; padding : 0 ; -webkit-tap-highlight-color : transparent; user-select : none; }
@@ -50,29 +46,45 @@ body.hide-labels .app-info { display: none !important; }
5046# settingsBtn img { width : 100% ; height : 100% ; object-fit : contain; }
5147body .dock-active # settingsBtn { display : none !important ; }
5248
53- /* Thanh Dock */
5449.dock-container { position : fixed; bottom : calc (20px + env (safe-area-inset-bottom, 20px )); left : 50% ; transform : translateX (-50% ); width : 90% ; max-width : 380px ; display : flex; justify-content : space-around; align-items : center; padding : 10px ; border-radius : 24px ; z-index : 997 ; }
5550.dock-style-glass { background : rgba (255 , 255 , 255 , 0.25 ); backdrop-filter : blur (20px ); border : 1px solid rgba (255 , 255 , 255 , 0.5 ); }
5651.dock-style-wood { background : linear-gradient (to bottom, # a16d3a, # 7c4b21, # a16d3a ); border : 1px solid # 5a3517 ; }
5752.dock-style-blur { background : rgba (0 , 0 , 0 , 0.4 ); backdrop-filter : blur (15px ); border : 1px solid rgba (255 , 255 , 255 , 0.2 ); }
5853
59- /* KHU VỰC DRAWER (NGĂN KÉO) - LUÔN HIỂN THỊ DỌC */
54+ /* KHU VỰC DRAWER (NGĂN KÉO) CHUẨN XÁC */
6055# drawerWrapper {
6156 position : fixed; z-index : 998 ; display : none; align-items : center; gap : 8px ;
6257 background : rgba (255 , 255 , 255 , 0.25 ); backdrop-filter : blur (40px ); border-radius : 50px ; padding : 4px ;
6358 border : 1px solid rgba (255 , 255 , 255 , 0.5 ); box-shadow : 0 10px 30px rgba (0 , 0 , 0 , 0.05 );
64- flex-direction : column-reverse !important ;
6559}
66- # drawerContent {
67- display : flex; gap : 6px ; overflow : hidden; opacity : 0 ;
68- transition : all 0.3s cubic-bezier (0.4 , 0 , 0.2 , 1 );
60+ # drawerContent { display : flex; gap : 6px ; white-space : nowrap; align-items : center; }
61+
62+ .drawer-btn {
63+ width : 44px !important ; height : 44px !important ; border-radius : 50% !important ; border : none;
64+ display : flex; align-items : center; justify-content : center; cursor : pointer; flex-shrink : 0 ;
65+ background : rgba (255 , 255 , 255 , 0.4 ); box-shadow : var (--shadow-box ); overflow : hidden;
66+ }
67+ .drawer-btn img { width : 100% ; height : 100% ; border-radius : 50% !important ; object-fit : cover; }
68+ # drawerClose { width : 44px ; height : 44px ; border-radius : 50% ; background : rgba (0 , 122 , 255 , 0.2 ); color : # 007AFF ; border : none; font-size : 18px ; font-weight : bold; cursor : pointer; display : flex; align-items : center; justify-content : center; }
69+
70+ /* TRẠNG THÁI 1: Tắt Dock (Nằm ngang góc dưới phải) */
71+ body : not (.dock-active ) # drawerWrapper {
72+ bottom : calc (30px + env (safe-area-inset-bottom, 20px )); right : 20px ; flex-direction : row !important ;
73+ }
74+ body : not (.dock-active ) # drawerContent {
75+ flex-direction : row !important ;
76+ }
77+
78+ /* TRẠNG THÁI 2: Bật Dock (Xổ thẳng đứng lên trên icon Setting của Dock) */
79+ body .dock-active # drawerWrapper {
6980 flex-direction : column-reverse !important ;
70- max-height : 0 ; max-width : 50 px ;
81+ background : rgba ( 255 , 255 , 255 , 0.6 ); backdrop-filter : blur ( 20 px ); border-radius : 20 px ; padding : 8 px ;
7182}
72- # drawerWrapper .open # drawerContent {
73- max-height : 400px ; opacity : 1 ; padding-top : 4px ;
83+ body .dock-active # drawerContent {
84+ flex-direction : column-reverse !important ;
85+ gap : 8px ;
7486}
75- # drawerClose { display : none !important ; }
87+ body . dock-active # drawerClose { display : none !important ; }
7688
7789.delete-icon {
7890 position : absolute; top : -4px ; right : -4px ; width : 22px ; height : 22px ;
@@ -84,12 +96,15 @@ body.dock-active #settingsBtn { display: none !important; }
8496.modal-overlay .active { opacity : 1 ; pointer-events : auto; }
8597.modal-content { background : var (--color-modal-bg ); backdrop-filter : blur (30px ); width : 85% ; max-width : 380px ; max-height : 70vh ; border-radius : 28px ; padding : 20px ; box-shadow : 0 8px 32px rgba (0 , 0 , 0 , 0.18 ); overflow-y : auto; }
8698.modal-content h3 { font-size : 18px ; text-align : center; margin-bottom : 12px ; }
99+
87100.modal-content label { color : var (--color-channel-name ); font-weight : 600 ; display : block; margin-bottom : 6px ; font-size : 14px ; }
88101.input-num , select , .search-box { width : 100% ; padding : 10px ; border-radius : 12px ; border : none; background : var (--color-input-bg ); box-shadow : var (--shadow-box ); font-size : 14px ; }
89102.close-modal { display : block; width : 100% ; margin-top : 16px ; padding : 12px ; background : rgba (255 , 255 , 255 , 0.85 ); border : none; border-radius : 14px ; font-weight : 600 ; font-size : 16px ; cursor : pointer; text-align : center; }
103+
90104.direction-container { display : flex; gap : 8px ; margin-bottom : 10px ; }
91105.dir-btn { flex : 1 ; padding : 10px 5px ; background : var (--color-input-bg ); border : 1px solid rgba (0 , 0 , 0 , 0.1 ); cursor : pointer; border-radius : 12px ; }
92106.dir-btn .active { background : # 0071e3 ; color : # fff ; }
107+
93108.switch { position : relative; display : inline-block; width : 50px ; height : 30px ; }
94109.switch input { opacity : 0 ; width : 0 ; height : 0 ; }
95110.slider { position : absolute; cursor : pointer; inset : 0 ; background-color : # ccc ; transition : .4s ; border-radius : 30px ; }
@@ -103,8 +118,7 @@ input:checked + .slider:before { transform: translateX(20px); }
103118@media (prefers-color-scheme : dark) {
104119 : root { --bg-container : rgba (30 , 27 , 75 , 0.3 ); --color-modal-bg : rgba (15 , 23 , 42 , 0.9 ); --color-input-bg : rgba (255 , 255 , 255 , 0.1 ); }
105120 body { background : linear-gradient (135deg , # 1e1b4b, # 0f172a, # 2e1065, # 1e3a8a ); background-size : 300% 300% ; }
106- .modal-content { background-color : # 1c1c1e !important ; border : 1px solid rgba (255 , 255 , 255 , 0.1 ) !important ; color : # e5e5ea !important ; }
107- body .dock-active # drawerWrapper { background-color : rgba (28 , 28 , 30 , 0.85 ) !important ; border : 1px solid rgba (255 , 255 , 255 , 0.15 ) !important ; }
121+ .modal-content , # drawerWrapper { background-color : # 1c1c1e !important ; border : 1px solid rgba (255 , 255 , 255 , 0.1 ) !important ; color : # e5e5ea !important ; }
108122 .modal-content h3 { color : # 00bcd4 !important ; }
109123 .app-name { color : # f1f5f9 ; }
110124 .close-modal { background : rgba (255 , 255 , 255 , 0.05 ); color : # fff ; }
0 commit comments