1- /* YForm Lang Fields Styles - MBlock-ähnliches kompaktes Layout */
1+ /* YForm Lang Fields - kompaktes MBlock-aehnliches Layout mit Dark-Mode-Support */
22
3+ /* ============================================================
4+ 1) Light Defaults (component scope)
5+ ============================================================ */
6+ .yform-lang-field {
7+ --ylf-wrapper-bg : rgba (255 , 255 , 255 , 0.6 );
8+ --ylf-panel-bg : # ffffff ;
9+ --ylf-panel-body-bg : rgba (255 , 255 , 255 , 0.6 );
10+ --ylf-panel-border : # dddddd ;
11+ --ylf-panel-border-hover : # bbbbbb ;
12+ --ylf-panel-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.05 );
13+ --ylf-panel-shadow-hover : 0 1px 5px rgba (0 , 0 , 0 , 0.1 );
14+ --ylf-heading-bg : # f5f5f5 ;
15+ --ylf-heading-border : # dddddd ;
16+ --ylf-text : # 333333 ;
17+ --ylf-text-muted : # 777777 ;
18+ --ylf-label : # 1a1a1a ;
19+ --ylf-input-bg : # ffffff ;
20+ --ylf-input-text : # 555555 ;
21+ --ylf-input-border : # dddddd ;
22+ --ylf-input-border-focus : # 66afe9 ;
23+ --ylf-input-shadow-focus : inset 0 1px 1px rgba (0 , 0 , 0 , 0.075 ), 0 0 8px rgba (102 , 175 , 233 , 0.6 );
24+ --ylf-select-bg : # ffffff ;
25+ --ylf-select-border : # cccccc ;
26+ --ylf-select-border-hover : # 8c8c8c ;
27+ --ylf-select-disabled-bg : # eeeeee ;
28+ --ylf-select-arrow : '%23555' ;
29+ --ylf-add-section-bg : # fafafa ;
30+ --ylf-add-section-border : # dddddd ;
31+ --ylf-media-preview-bg : # ffffff ;
32+ --ylf-media-preview-border : # dddddd ;
33+ --ylf-btn-danger-hover-bg : # c9302c ;
34+ --ylf-btn-danger-hover-border : # ac2925 ;
35+ }
36+
37+ /* ============================================================
38+ 2) Explicit Dark Mode
39+ ============================================================ */
40+ body .rex-theme-dark .yform-lang-field {
41+ --ylf-wrapper-bg : rgba (40 , 48 , 58 , 0.4 );
42+ --ylf-panel-bg : # 2a313a ;
43+ --ylf-panel-body-bg : rgba (40 , 48 , 58 , 0.4 );
44+ --ylf-panel-border : # 3a4654 ;
45+ --ylf-panel-border-hover : # 4f5d6f ;
46+ --ylf-panel-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.4 );
47+ --ylf-panel-shadow-hover : 0 1px 5px rgba (0 , 0 , 0 , 0.5 );
48+ --ylf-heading-bg : # 232a33 ;
49+ --ylf-heading-border : # 3a4654 ;
50+ --ylf-text : # d0d8e0 ;
51+ --ylf-text-muted : # 8a96a4 ;
52+ --ylf-label : # e8f0f7 ;
53+ --ylf-input-bg : # 1f2933 ;
54+ --ylf-input-text : # e8f0f7 ;
55+ --ylf-input-border : # 3a4654 ;
56+ --ylf-input-border-focus : # 4a90e2 ;
57+ --ylf-input-shadow-focus : inset 0 1px 1px rgba (0 , 0 , 0 , 0.3 ), 0 0 8px rgba (74 , 144 , 226 , 0.5 );
58+ --ylf-select-bg : # 1f2933 ;
59+ --ylf-select-border : # 3a4654 ;
60+ --ylf-select-border-hover : # 5a6878 ;
61+ --ylf-select-disabled-bg : # 2a313a ;
62+ --ylf-select-arrow : '%23bbbbbb' ;
63+ --ylf-add-section-bg : # 232a33 ;
64+ --ylf-add-section-border : # 3a4654 ;
65+ --ylf-media-preview-bg : # 1f2933 ;
66+ --ylf-media-preview-border : # 3a4654 ;
67+ --ylf-btn-danger-hover-bg : # c9302c ;
68+ --ylf-btn-danger-hover-border : # ac2925 ;
69+ }
70+
71+ /* ============================================================
72+ 3) Auto Dark Mode (must mirror explicit dark values)
73+ ============================================================ */
74+ @media (prefers-color-scheme : dark) {
75+ body .rex-has-theme : not (.rex-theme-light ) .yform-lang-field {
76+ --ylf-wrapper-bg : rgba (40 , 48 , 58 , 0.4 );
77+ --ylf-panel-bg : # 2a313a ;
78+ --ylf-panel-body-bg : rgba (40 , 48 , 58 , 0.4 );
79+ --ylf-panel-border : # 3a4654 ;
80+ --ylf-panel-border-hover : # 4f5d6f ;
81+ --ylf-panel-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.4 );
82+ --ylf-panel-shadow-hover : 0 1px 5px rgba (0 , 0 , 0 , 0.5 );
83+ --ylf-heading-bg : # 232a33 ;
84+ --ylf-heading-border : # 3a4654 ;
85+ --ylf-text : # d0d8e0 ;
86+ --ylf-text-muted : # 8a96a4 ;
87+ --ylf-label : # e8f0f7 ;
88+ --ylf-input-bg : # 1f2933 ;
89+ --ylf-input-text : # e8f0f7 ;
90+ --ylf-input-border : # 3a4654 ;
91+ --ylf-input-border-focus : # 4a90e2 ;
92+ --ylf-input-shadow-focus : inset 0 1px 1px rgba (0 , 0 , 0 , 0.3 ), 0 0 8px rgba (74 , 144 , 226 , 0.5 );
93+ --ylf-select-bg : # 1f2933 ;
94+ --ylf-select-border : # 3a4654 ;
95+ --ylf-select-border-hover : # 5a6878 ;
96+ --ylf-select-disabled-bg : # 2a313a ;
97+ --ylf-select-arrow : '%23bbbbbb' ;
98+ --ylf-add-section-bg : # 232a33 ;
99+ --ylf-add-section-border : # 3a4654 ;
100+ --ylf-media-preview-bg : # 1f2933 ;
101+ --ylf-media-preview-border : # 3a4654 ;
102+ --ylf-btn-danger-hover-bg : # c9302c ;
103+ --ylf-btn-danger-hover-border : # ac2925 ;
104+ }
105+ }
106+
107+ /* ============================================================
108+ Component Styles
109+ ============================================================ */
3110.yform-lang-field {
4111 margin-bottom : 20px ;
5- background-color : rgba ( 255 , 255 , 255 , 0.6 ); /* 60% transparenter weißer Hintergrund */
112+ background-color : var ( --ylf-wrapper-bg );
6113 padding : 15px ;
7114 border-radius : 4px ;
115+ color : var (--ylf-text );
8116}
9117
10118.yform-lang-field .control-label {
11119 font-weight : 600 ;
12120 margin-bottom : 10px ;
13121 font-size : 14px ;
122+ color : var (--ylf-label );
14123}
15124
16125.yform-lang-field .help-block .small .text-muted {
17126 margin : 5px 0 10px 0 ;
18127 font-size : 12px ;
19128 line-height : 1.4 ;
129+ color : var (--ylf-text-muted );
20130}
21131
22132/* Kompakte Panel-Darstellung */
23- .lang-fields-container {
133+ .yform-lang-field . lang-fields-container {
24134 margin-bottom : 10px ;
25135}
26136
27- .lang-field-item .panel {
137+ .yform-lang-field . lang-field-item .panel {
28138 margin-bottom : 15px ;
29- border : 1px solid # ddd ;
30- box-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.05 );
139+ background-color : var (--ylf-panel-bg );
140+ border : 1px solid var (--ylf-panel-border );
141+ box-shadow : var (--ylf-panel-shadow );
31142}
32143
33- .lang-field-item .panel : hover {
34- border-color : # bbb ;
35- box-shadow : 0 1 px 5 px rgba ( 0 , 0 , 0 , 0.1 );
144+ .yform-lang-field . lang-field-item .panel : hover {
145+ border-color : var ( --ylf-panel-border-hover ) ;
146+ box-shadow : var ( --ylf-panel-shadow-hover );
36147}
37148
38- .lang-field-item .panel-heading {
39- background-color : # f5f5f5 ;
40- border-bottom : 1px solid # ddd ;
149+ .yform-lang-field . lang-field-item .panel-heading {
150+ background-color : var ( --ylf-heading-bg ) ;
151+ border-bottom : 1px solid var ( --ylf-heading-border ) ;
41152 padding : 10px 15px ;
42153 font-size : 13px ;
154+ color : var (--ylf-text );
43155}
44156
45- .lang-field-item .panel-heading strong {
157+ .yform-lang-field . lang-field-item .panel-heading strong {
46158 font-weight : 600 ;
159+ color : var (--ylf-label );
47160}
48161
49- .lang-field-item .panel-heading .text-muted {
162+ .yform-lang-field . lang-field-item .panel-heading .text-muted {
50163 font-weight : normal;
164+ color : var (--ylf-text-muted );
51165}
52166
53- .lang-field-item .panel-body {
167+ .yform-lang-field . lang-field-item .panel-body {
54168 padding : 15px ;
55- background-color : rgba ( 255 , 255 , 255 , 0.6 ); /* 60% transparenter weißer Hintergrund */
169+ background-color : var ( --ylf-panel-body-bg );
56170}
57171
58- /* Delete Button im Header - rechts oben */
59- .lang-field-item .btn-remove-lang-field {
172+ /* Delete Button im Header */
173+ .yform-lang-field . lang-field-item .btn-remove-lang-field {
60174 padding : 2px 8px ;
61175 font-size : 12px ;
62176 line-height : 1.5 ;
63177 position : relative;
64- z-index : 10 ; /* Sicherstellen dass Button klickbar ist */
178+ z-index : 10 ;
65179}
66180
67- .lang-field-item .btn-remove-lang-field : hover {
68- background-color : # c9302c ;
69- border-color : # ac2925 ;
181+ .yform-lang-field . lang-field-item .btn-remove-lang-field : hover {
182+ background-color : var ( --ylf-btn-danger-hover-bg ) ;
183+ border-color : var ( --ylf-btn-danger-hover-border ) ;
70184}
71185
72186/* Input-Felder */
73- .lang-input , .lang-textarea {
74- border : 1px solid # ddd ;
187+ .yform-lang-field .lang-input ,
188+ .yform-lang-field .lang-textarea {
189+ background-color : var (--ylf-input-bg );
190+ color : var (--ylf-input-text );
191+ border : 1px solid var (--ylf-input-border );
75192}
76193
77- .lang-input : focus , .lang-textarea : focus {
78- border-color : # 66afe9 ;
79- box-shadow : inset 0 1px 1px rgba (0 , 0 , 0 , .075 ), 0 0 8px rgba (102 , 175 , 233 , .6 );
194+ .yform-lang-field .lang-input : focus ,
195+ .yform-lang-field .lang-textarea : focus {
196+ border-color : var (--ylf-input-border-focus );
197+ box-shadow : var (--ylf-input-shadow-focus );
80198}
81199
82- /* Kompakter "Neue Übersetzung" Bereich */
83- .lang-field-add-section .panel {
84- background-color : # fafafa ;
85- border-style : dashed;
200+ /* Kompakter "Neue Uebersetzung"- Bereich */
201+ .yform-lang-field . lang-field-add-section .panel {
202+ background-color : var ( --ylf-add-section-bg ) ;
203+ border : 1 px dashed var ( --ylf-add-section-border ) ;
86204}
87205
88- .lang-field-add-section .panel-body {
206+ .yform-lang-field . lang-field-add-section .panel-body {
89207 padding : 10px 15px ;
90208}
91209
92210/* Select-Styling */
93- .lang-field-add-section .lang-select-new {
211+ .yform-lang-field . lang-field-add-section .lang-select-new {
94212 font-size : 14px ;
95213 height : 38px ;
96214 padding : 8px 32px 8px 12px ;
97215 appearance : none;
98216 -webkit-appearance : none;
99217 -moz-appearance : none;
100- background-color : # fff ;
218+ background-color : var ( --ylf-select-bg ) ;
101219 background-image : url ('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23555%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E' );
102220 background-repeat : no-repeat;
103221 background-position : right 10px center;
104222 background-size : 10px 10px ;
105- border : 1px solid # ccc ;
223+ border : 1px solid var ( --ylf-select-border ) ;
106224 border-radius : 4px ;
107225 cursor : pointer;
108226 transition : all ease-in-out .15s ;
109- box-shadow : inset 0 1px 1px rgba (0 , 0 , 0 , .075 );
227+ box-shadow : inset 0 1px 1px rgba (0 , 0 , 0 , .075 );
110228 line-height : 1.42857143 ;
111- color : # 555 ;
229+ color : var (--ylf-input-text );
230+ }
231+
232+ /* Dark-Mode-Variante mit hellerem Pfeil-Icon */
233+ body .rex-theme-dark .yform-lang-field .lang-field-add-section .lang-select-new {
234+ background-image : url ('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23bbbbbb%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E' );
112235}
113236
114- .lang-field-add-section .lang-select-new : hover {
115- border-color : # 8c8c8c ;
237+ @media (prefers-color-scheme : dark) {
238+ body .rex-has-theme : not (.rex-theme-light ) .yform-lang-field .lang-field-add-section .lang-select-new {
239+ background-image : url ('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23bbbbbb%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E' );
240+ }
116241}
117242
118- .lang-field-add-section .lang-select-new : focus {
119- border-color : # 66afe9 ;
243+ .yform-lang-field .lang-field-add-section .lang-select-new : hover {
244+ border-color : var (--ylf-select-border-hover );
245+ }
246+
247+ .yform-lang-field .lang-field-add-section .lang-select-new : focus {
248+ border-color : var (--ylf-input-border-focus );
120249 outline : 0 ;
121- box-shadow : inset 0 1 px 1 px rgba ( 0 , 0 , 0 , .075 ) , 0 0 8 px rgba ( 102 , 175 , 233 , .6 );
250+ box-shadow : var ( --ylf-input-shadow-focus );
122251}
123252
124- .lang-field-add-section .lang-select-new : disabled {
125- background-color : # eee ;
253+ .yform-lang-field . lang-field-add-section .lang-select-new : disabled {
254+ background-color : var ( --ylf-select-disabled-bg ) ;
126255 cursor : not-allowed;
127256 opacity : 0.6 ;
128257}
129258
130- .lang-field-add-section .btn-add-lang-field {
259+ .yform-lang-field . lang-field-add-section .btn-add-lang-field {
131260 font-size : 13px ;
132261 padding : 5px 12px ;
133262}
134263
135- .lang-field-add-section .btn-add-lang-field : disabled {
264+ .yform-lang-field . lang-field-add-section .btn-add-lang-field : disabled {
136265 opacity : 0.5 ;
137266 cursor : not-allowed;
138267}
139268
140269/* Media Widget */
141- .media-preview {
270+ .yform-lang-field . media-preview {
142271 margin-top : 10px ;
143272 text-align : center;
144273}
145274
146- .media-preview img {
275+ .yform-lang-field . media-preview img {
147276 max-width : 100% ;
148277 max-height : 150px ;
149- border : 1px solid # ddd ;
278+ border : 1px solid var ( --ylf-media-preview-border ) ;
150279 border-radius : 3px ;
151280 padding : 5px ;
152- background : # fff ;
281+ background : var ( --ylf-media-preview-bg ) ;
153282}
154283
155284/* CKEditor 5 */
156- .cke5-editor {
285+ .yform-lang-field . cke5-editor {
157286 min-height : 150px ;
158287}
159288
160- /* Animation für neue Felder */
289+ /* Animation fuer neue Felder */
161290@keyframes slideInPanel {
162291 from {
163292 opacity : 0 ;
169298 }
170299}
171300
172- .lang-field-item .newly-added {
301+ .yform-lang-field . lang-field-item .newly-added {
173302 animation : slideInPanel 0.2s ease-out;
174303}
175304
176305/* Responsive */
177306@media (max-width : 768px ) {
178- .lang-field-add-section .col-sm-4 ,
179- .lang-field-add-section .col-sm-8 {
307+ .yform-lang-field . lang-field-add-section .col-sm-4 ,
308+ .yform-lang-field . lang-field-add-section .col-sm-8 {
180309 margin-bottom : 10px ;
181310 }
182311}
183312
184- /* Zusätzliches Textfeld bei Media */
185- .lang-field-item .panel-body input [type = "text" ] + input [type = "text" ] {
313+ /* Zusaetzliches Textfeld bei Media */
314+ .yform-lang-field . lang-field-item .panel-body input [type = "text" ] + input [type = "text" ] {
186315 margin-top : 10px ;
187- }
316+ }
0 commit comments