@rhavenside/baseline-ui 1.0.0 → 1.0.2
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/README.md +71 -174
- package/dist/baseline.css +144 -14
- package/dist/baseline.css.map +1 -1
- package/dist/baseline.js +184 -0
- package/dist/baseline.js.map +7 -0
- package/dist/baseline.min.css +1 -1
- package/dist/baseline.min.js +2 -0
- package/dist/baseline.min.js.map +7 -0
- package/package.json +14 -12
- package/src/components/_card.scss +6 -10
- package/src/components/_dropdown.scss +4 -1
- package/src/components/_form.scss +157 -6
- package/src/js/baseline.js +58 -0
- package/src/js/components/alert.js +25 -0
- package/src/js/components/dropdown.js +40 -0
- package/src/js/components/modal.js +67 -0
- package/src/js/components/tabs.js +49 -0
- package/src/js/components/tooltip.js +21 -0
- package/src/tokens/_z-index.scss +1 -1
package/README.md
CHANGED
|
@@ -1,43 +1,51 @@
|
|
|
1
|
-
# Baseline
|
|
1
|
+
# Baseline UI
|
|
2
2
|
|
|
3
|
-
Ein
|
|
3
|
+
Ein technisches Glas-Design-Framework mit SCSS-Quellen und kompiliertem CSS.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- ✅ **Darf**: Layout, Grid, Spacing, Typografie, Komponenten liefern
|
|
10
|
-
- ✅ **Darf**: Neutral, konfigurierbar und stabil sein
|
|
11
|
-
- ❌ **Darf nicht**: Projektbezogene Farben, Logos oder Sonderfälle enthalten
|
|
12
|
-
- ❌ **Darf nicht**: App-Logik oder Zustände kennen
|
|
13
|
-
|
|
14
|
-
## 📦 Installation
|
|
15
|
-
|
|
16
|
-
### CDN (Schnellstart)
|
|
7
|
+
### npm
|
|
17
8
|
|
|
18
|
-
```
|
|
19
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm install @rhavenside/baseline-ui
|
|
20
11
|
```
|
|
21
12
|
|
|
22
|
-
###
|
|
13
|
+
### CDN
|
|
23
14
|
|
|
24
|
-
```
|
|
25
|
-
|
|
15
|
+
```html
|
|
16
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@rhavenside/baseline-ui@latest/dist/baseline.min.css">
|
|
26
17
|
```
|
|
27
18
|
|
|
28
19
|
### SCSS Import
|
|
29
20
|
|
|
30
21
|
```scss
|
|
31
|
-
@use '@baseline
|
|
22
|
+
@use '@rhavenside/baseline-ui/src/baseline';
|
|
32
23
|
```
|
|
33
24
|
|
|
34
25
|
### CSS Import
|
|
35
26
|
|
|
36
27
|
```css
|
|
37
|
-
@import '@baseline
|
|
28
|
+
@import '@rhavenside/baseline-ui/dist/baseline.css';
|
|
38
29
|
```
|
|
39
30
|
|
|
40
|
-
|
|
31
|
+
### JavaScript (Optional)
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<!-- CDN -->
|
|
35
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@rhavenside/baseline-ui@latest/dist/baseline.min.js"></script>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
// ES Module Import
|
|
40
|
+
import '@rhavenside/baseline-ui/dist/baseline.js';
|
|
41
|
+
|
|
42
|
+
// Oder manuell
|
|
43
|
+
import { initModal, openModal, closeModal } from '@rhavenside/baseline-ui/dist/baseline.js';
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Verwendung
|
|
47
|
+
|
|
48
|
+
### HTML
|
|
41
49
|
|
|
42
50
|
```html
|
|
43
51
|
<!DOCTYPE html>
|
|
@@ -45,62 +53,18 @@ npm install @baseline/ui
|
|
|
45
53
|
<head>
|
|
46
54
|
<meta charset="UTF-8">
|
|
47
55
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
48
|
-
<title>Baseline
|
|
49
|
-
<link rel="stylesheet" href="dist/baseline.
|
|
56
|
+
<title>Baseline UI</title>
|
|
57
|
+
<link rel="stylesheet" href="node_modules/@rhavenside/baseline-ui/dist/baseline.css">
|
|
50
58
|
</head>
|
|
51
59
|
<body>
|
|
52
60
|
<div class="bl-container">
|
|
53
|
-
<h1>Willkommen
|
|
61
|
+
<h1>Willkommen</h1>
|
|
54
62
|
<button class="bl-btn bl-btn-primary">Klick mich</button>
|
|
55
63
|
</div>
|
|
56
64
|
</body>
|
|
57
65
|
</html>
|
|
58
66
|
```
|
|
59
67
|
|
|
60
|
-
## 📚 Dokumentation
|
|
61
|
-
|
|
62
|
-
### Design Tokens
|
|
63
|
-
|
|
64
|
-
Alle Design-Tokens sind als CSS Custom Properties verfügbar:
|
|
65
|
-
|
|
66
|
-
```css
|
|
67
|
-
:root {
|
|
68
|
-
--color-primary: #111827;
|
|
69
|
-
--spacing-md: 1rem;
|
|
70
|
-
--font-size-base: 1rem;
|
|
71
|
-
--border-radius-md: 0.25rem;
|
|
72
|
-
/* ... */
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Layout-System
|
|
77
|
-
|
|
78
|
-
#### Container
|
|
79
|
-
|
|
80
|
-
```html
|
|
81
|
-
<div class="bl-container">Maximale Breite mit Padding</div>
|
|
82
|
-
<div class="bl-container-fluid">Volle Breite mit Padding</div>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
#### Flexbox Grid (12 Spalten)
|
|
86
|
-
|
|
87
|
-
```html
|
|
88
|
-
<div class="bl-row">
|
|
89
|
-
<div class="bl-col-6">50% Breite</div>
|
|
90
|
-
<div class="bl-col-6">50% Breite</div>
|
|
91
|
-
</div>
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
#### CSS Grid
|
|
95
|
-
|
|
96
|
-
```html
|
|
97
|
-
<div class="bl-grid bl-grid-cols-3 bl-gap-md">
|
|
98
|
-
<div>Item 1</div>
|
|
99
|
-
<div>Item 2</div>
|
|
100
|
-
<div>Item 3</div>
|
|
101
|
-
</div>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
68
|
### Komponenten
|
|
105
69
|
|
|
106
70
|
#### Button
|
|
@@ -122,9 +86,6 @@ Alle Design-Tokens sind als CSS Custom Properties verfügbar:
|
|
|
122
86
|
<div class="bl-card-body">
|
|
123
87
|
<p>Inhalt</p>
|
|
124
88
|
</div>
|
|
125
|
-
<div class="bl-card-footer">
|
|
126
|
-
<button class="bl-btn bl-btn-primary">Aktion</button>
|
|
127
|
-
</div>
|
|
128
89
|
</div>
|
|
129
90
|
```
|
|
130
91
|
|
|
@@ -134,139 +95,75 @@ Alle Design-Tokens sind als CSS Custom Properties verfügbar:
|
|
|
134
95
|
<div class="bl-form-group">
|
|
135
96
|
<label class="bl-form-label" for="email">E-Mail</label>
|
|
136
97
|
<input type="email" id="email" class="bl-input" placeholder="name@example.com">
|
|
137
|
-
<span class="bl-form-helper">Wir teilen Ihre E-Mail nicht.</span>
|
|
138
98
|
</div>
|
|
139
99
|
```
|
|
140
100
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
#### Spacing
|
|
144
|
-
|
|
145
|
-
```html
|
|
146
|
-
<div class="m-md p-lg">Margin & Padding</div>
|
|
147
|
-
<div class="mt-xl mb-sm">Top & Bottom</div>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
#### Text
|
|
101
|
+
#### Grid
|
|
151
102
|
|
|
152
103
|
```html
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
```html
|
|
159
|
-
<div class="bl-d-flex bl-justify-center bl-items-center">Flexbox Center</div>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## 🎨 Theming
|
|
163
|
-
|
|
164
|
-
### Dark Mode (Automatisch)
|
|
165
|
-
|
|
166
|
-
Das Framework unterstützt automatisch `prefers-color-scheme: dark`:
|
|
167
|
-
|
|
168
|
-
```css
|
|
169
|
-
@media (prefers-color-scheme: dark) {
|
|
170
|
-
/* Dark Mode Styles werden automatisch angewendet */
|
|
171
|
-
}
|
|
104
|
+
<div class="bl-row">
|
|
105
|
+
<div class="bl-col-6">50% Breite</div>
|
|
106
|
+
<div class="bl-col-6">50% Breite</div>
|
|
107
|
+
</div>
|
|
172
108
|
```
|
|
173
109
|
|
|
174
|
-
###
|
|
110
|
+
### Utilities
|
|
175
111
|
|
|
176
112
|
```html
|
|
177
|
-
<
|
|
178
|
-
|
|
179
|
-
</
|
|
113
|
+
<div class="m-md p-lg">Margin & Padding</div>
|
|
114
|
+
<div class="bl-text-center bl-text-lg">Zentrierter Text</div>
|
|
115
|
+
<div class="bl-d-flex bl-justify-center">Flexbox Center</div>
|
|
180
116
|
```
|
|
181
117
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
```html
|
|
185
|
-
<html data-theme="dark">
|
|
186
|
-
<!-- Dark Mode aktiviert -->
|
|
187
|
-
</html>
|
|
188
|
-
```
|
|
118
|
+
### Design Tokens
|
|
189
119
|
|
|
190
|
-
|
|
120
|
+
Alle Design-Tokens sind als CSS Custom Properties verfügbar:
|
|
191
121
|
|
|
192
122
|
```css
|
|
193
123
|
:root {
|
|
194
|
-
--color-
|
|
195
|
-
--
|
|
124
|
+
--color-accent: #4A9EFF;
|
|
125
|
+
--color-bg: #1A1A1A;
|
|
126
|
+
--spacing-md: 1rem;
|
|
127
|
+
--font-size-base: 1rem;
|
|
196
128
|
}
|
|
197
129
|
```
|
|
198
130
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
Baseline ist **WCAG 2.1 AA-konform**:
|
|
202
|
-
|
|
203
|
-
- Focus-Styles für alle interaktiven Elemente
|
|
204
|
-
- Screen-Reader-Utilities (`.bl-sr-only`)
|
|
205
|
-
- Skip-Links (`.bl-skip-link`)
|
|
206
|
-
- High-Contrast-Mode Support
|
|
207
|
-
- Reduced Motion Support
|
|
208
|
-
|
|
209
|
-
## 🛠️ Entwicklung
|
|
210
|
-
|
|
211
|
-
### Build
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
npm run build
|
|
215
|
-
```
|
|
131
|
+
### JavaScript API
|
|
216
132
|
|
|
217
|
-
|
|
133
|
+
Baseline UI bietet optionales JavaScript für interaktive Komponenten:
|
|
218
134
|
|
|
219
|
-
|
|
220
|
-
npm run watch
|
|
221
|
-
```
|
|
135
|
+
#### Auto-Initialisierung
|
|
222
136
|
|
|
223
|
-
|
|
137
|
+
Alle Komponenten werden automatisch initialisiert, wenn das JavaScript geladen wird:
|
|
224
138
|
|
|
225
|
-
```
|
|
226
|
-
|
|
139
|
+
```html
|
|
140
|
+
<script type="module" src="node_modules/@rhavenside/baseline-ui/dist/baseline.js"></script>
|
|
227
141
|
```
|
|
228
142
|
|
|
229
|
-
|
|
143
|
+
#### Manuelle Verwendung
|
|
230
144
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
- **Card** - Header, Body, Footer mit Varianten
|
|
234
|
-
- **Alert** - Info, Success, Warning, Error mit Dismiss-Funktion
|
|
235
|
-
- **Badge** - Varianten + Pills
|
|
236
|
-
- **Modal** - Dialog mit Backdrop, Header, Body, Footer
|
|
237
|
-
- **Dropdown** - Trigger + Menu
|
|
238
|
-
- **Navigation** - Horizontal, Vertical, Tabs, Pills, Breadcrumb, Pagination
|
|
239
|
-
- **Table** - Striped, Bordered, Hover, Responsive
|
|
240
|
-
- **Tooltip** - Alle Positionen (top, right, bottom, left)
|
|
241
|
-
- **Progress** - Determinate, Indeterminate, Striped
|
|
242
|
-
- **Spinner** - Loading-Indikatoren
|
|
145
|
+
```javascript
|
|
146
|
+
import { initModal, openModal, closeModal } from '@rhavenside/baseline-ui/dist/baseline.js';
|
|
243
147
|
|
|
244
|
-
|
|
148
|
+
// Modal öffnen
|
|
149
|
+
openModal('my-modal');
|
|
245
150
|
|
|
246
|
-
|
|
247
|
-
-
|
|
248
|
-
- Safari (letzte 2 Versionen)
|
|
249
|
-
- Edge (letzte 2 Versionen)
|
|
151
|
+
// Modal schließen
|
|
152
|
+
closeModal('my-modal');
|
|
250
153
|
|
|
251
|
-
|
|
154
|
+
// Manuell initialisieren
|
|
155
|
+
const modal = document.getElementById('my-modal');
|
|
156
|
+
initModal(modal);
|
|
157
|
+
```
|
|
252
158
|
|
|
253
|
-
|
|
159
|
+
#### Verfügbare Funktionen
|
|
254
160
|
|
|
255
|
-
- **
|
|
256
|
-
-
|
|
257
|
-
-
|
|
161
|
+
- **Modal**: `initModal()`, `openModal()`, `closeModal()`
|
|
162
|
+
- **Dropdown**: `initDropdown()`
|
|
163
|
+
- **Tooltip**: `initTooltip()`
|
|
164
|
+
- **Tabs**: `initTabs()`
|
|
165
|
+
- **Alert**: `initAlert()`, `dismissAlert()`
|
|
258
166
|
|
|
259
|
-
##
|
|
167
|
+
## Lizenz
|
|
260
168
|
|
|
261
169
|
MIT License - siehe [LICENSE](LICENSE) Datei
|
|
262
|
-
|
|
263
|
-
## 🤝 Beitragen
|
|
264
|
-
|
|
265
|
-
Beiträge sind willkommen! Bitte erstelle ein Issue oder einen Pull Request.
|
|
266
|
-
|
|
267
|
-
## 🔗 Links
|
|
268
|
-
|
|
269
|
-
- [GitHub](https://github.com/yourusername/baseline)
|
|
270
|
-
- [Dokumentation](https://baseline.example.com)
|
|
271
|
-
- [Changelog](CHANGELOG.md)
|
|
272
|
-
|
package/dist/baseline.css
CHANGED
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
|
|
121
121
|
:root {
|
|
122
122
|
--z-index-base: 0;
|
|
123
|
-
--z-index-dropdown:
|
|
123
|
+
--z-index-dropdown: 9999;
|
|
124
124
|
--z-index-sticky: 1020;
|
|
125
125
|
--z-index-fixed: 1030;
|
|
126
126
|
--z-index-modal-backdrop: 1040;
|
|
@@ -3066,29 +3066,159 @@ textarea {
|
|
|
3066
3066
|
font-size: var(--form-input-font-size);
|
|
3067
3067
|
line-height: var(--form-input-line-height);
|
|
3068
3068
|
color: var(--color-text);
|
|
3069
|
-
background: var(--glass-bg-
|
|
3069
|
+
background: var(--glass-bg-medium);
|
|
3070
3070
|
border: 1px solid var(--glass-border-medium);
|
|
3071
|
-
border-radius: var(--tech-border-radius-
|
|
3072
|
-
backdrop-filter: blur(var(--glass-blur-
|
|
3073
|
-
-webkit-backdrop-filter: blur(var(--glass-blur-
|
|
3071
|
+
border-radius: var(--tech-border-radius-md);
|
|
3072
|
+
backdrop-filter: blur(var(--glass-blur-lg));
|
|
3073
|
+
-webkit-backdrop-filter: blur(var(--glass-blur-lg));
|
|
3074
3074
|
transition: var(--transition-base);
|
|
3075
3075
|
cursor: pointer;
|
|
3076
3076
|
appearance: none;
|
|
3077
|
+
-webkit-appearance: none;
|
|
3078
|
+
-moz-appearance: none;
|
|
3077
3079
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffffff' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E");
|
|
3078
3080
|
background-repeat: no-repeat;
|
|
3079
3081
|
background-position: right var(--form-input-padding-x) center;
|
|
3080
3082
|
background-size: 0.75rem;
|
|
3083
|
+
box-shadow: var(--glass-shadow-sm);
|
|
3081
3084
|
}
|
|
3082
3085
|
.bl-select:focus {
|
|
3083
3086
|
outline: none;
|
|
3084
3087
|
border-width: 2px;
|
|
3085
3088
|
border-color: var(--color-accent);
|
|
3086
3089
|
background-color: var(--glass-bg-medium);
|
|
3090
|
+
box-shadow: var(--glass-shadow-md), 0 0 0 1px var(--color-accent);
|
|
3091
|
+
}
|
|
3092
|
+
.bl-select:hover {
|
|
3093
|
+
background-color: var(--glass-bg-heavy);
|
|
3094
|
+
border-color: var(--glass-border-heavy);
|
|
3087
3095
|
}
|
|
3088
3096
|
.bl-select:disabled {
|
|
3089
3097
|
opacity: var(--form-input-opacity-disabled);
|
|
3090
3098
|
cursor: not-allowed;
|
|
3091
3099
|
background-color: var(--glass-bg-dark);
|
|
3100
|
+
box-shadow: none;
|
|
3101
|
+
}
|
|
3102
|
+
.bl-select.bl-select-converted {
|
|
3103
|
+
display: none;
|
|
3104
|
+
}
|
|
3105
|
+
|
|
3106
|
+
.bl-select-dropdown {
|
|
3107
|
+
position: relative;
|
|
3108
|
+
display: block;
|
|
3109
|
+
width: 100%;
|
|
3110
|
+
}
|
|
3111
|
+
.bl-select-dropdown .bl-select-toggle {
|
|
3112
|
+
display: flex;
|
|
3113
|
+
align-items: center;
|
|
3114
|
+
justify-content: space-between;
|
|
3115
|
+
width: 100%;
|
|
3116
|
+
padding: var(--form-input-padding-y) var(--form-input-padding-x);
|
|
3117
|
+
font-family: var(--font-family-base);
|
|
3118
|
+
font-size: var(--form-input-font-size);
|
|
3119
|
+
line-height: var(--form-input-line-height);
|
|
3120
|
+
color: var(--color-text);
|
|
3121
|
+
background: var(--glass-bg-medium);
|
|
3122
|
+
border: 1px solid var(--glass-border-medium);
|
|
3123
|
+
border-radius: var(--tech-border-radius-md);
|
|
3124
|
+
backdrop-filter: blur(var(--glass-blur-lg));
|
|
3125
|
+
-webkit-backdrop-filter: blur(var(--glass-blur-lg));
|
|
3126
|
+
transition: var(--transition-base);
|
|
3127
|
+
cursor: pointer;
|
|
3128
|
+
box-shadow: var(--glass-shadow-sm);
|
|
3129
|
+
text-align: left;
|
|
3130
|
+
border: none;
|
|
3131
|
+
}
|
|
3132
|
+
.bl-select-dropdown .bl-select-toggle::after {
|
|
3133
|
+
display: inline-block;
|
|
3134
|
+
margin-left: var(--spacing-xs);
|
|
3135
|
+
vertical-align: 0.255em;
|
|
3136
|
+
content: "";
|
|
3137
|
+
border-top: 0.3em solid var(--color-text);
|
|
3138
|
+
border-right: 0.3em solid transparent;
|
|
3139
|
+
border-bottom: 0;
|
|
3140
|
+
border-left: 0.3em solid transparent;
|
|
3141
|
+
flex-shrink: 0;
|
|
3142
|
+
}
|
|
3143
|
+
.bl-select-dropdown .bl-select-toggle:focus {
|
|
3144
|
+
outline: none;
|
|
3145
|
+
border-width: 2px;
|
|
3146
|
+
border-color: var(--color-accent);
|
|
3147
|
+
box-shadow: var(--glass-shadow-md), 0 0 0 1px var(--color-accent);
|
|
3148
|
+
}
|
|
3149
|
+
.bl-select-dropdown .bl-select-toggle:hover {
|
|
3150
|
+
background-color: var(--glass-bg-heavy);
|
|
3151
|
+
border-color: var(--glass-border-heavy);
|
|
3152
|
+
}
|
|
3153
|
+
.bl-select-dropdown .bl-select-toggle:disabled {
|
|
3154
|
+
opacity: var(--form-input-opacity-disabled);
|
|
3155
|
+
cursor: not-allowed;
|
|
3156
|
+
background-color: var(--glass-bg-dark);
|
|
3157
|
+
}
|
|
3158
|
+
.bl-select-dropdown .bl-select-menu {
|
|
3159
|
+
position: absolute;
|
|
3160
|
+
top: 100%;
|
|
3161
|
+
left: 0;
|
|
3162
|
+
z-index: 999999 !important;
|
|
3163
|
+
display: none;
|
|
3164
|
+
width: 100%;
|
|
3165
|
+
min-width: 100%;
|
|
3166
|
+
padding: var(--spacing-xs) 0;
|
|
3167
|
+
margin: var(--spacing-xs) 0 0 0;
|
|
3168
|
+
font-size: var(--font-size-base);
|
|
3169
|
+
color: var(--color-text);
|
|
3170
|
+
text-align: left;
|
|
3171
|
+
list-style: none;
|
|
3172
|
+
background: var(--glass-bg-medium);
|
|
3173
|
+
backdrop-filter: blur(var(--glass-blur-lg));
|
|
3174
|
+
-webkit-backdrop-filter: blur(var(--glass-blur-lg));
|
|
3175
|
+
border: 1px solid var(--glass-border-medium);
|
|
3176
|
+
border-radius: var(--tech-border-radius-md);
|
|
3177
|
+
overflow: hidden;
|
|
3178
|
+
overflow-y: auto;
|
|
3179
|
+
max-height: 300px;
|
|
3180
|
+
box-shadow: var(--glass-shadow-lg);
|
|
3181
|
+
}
|
|
3182
|
+
.bl-select-dropdown .bl-select-menu.bl-show {
|
|
3183
|
+
display: block;
|
|
3184
|
+
}
|
|
3185
|
+
.bl-select-dropdown .bl-select-item {
|
|
3186
|
+
display: block;
|
|
3187
|
+
width: 100%;
|
|
3188
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
3189
|
+
clear: both;
|
|
3190
|
+
font-weight: var(--font-weight-normal);
|
|
3191
|
+
color: var(--color-text);
|
|
3192
|
+
text-align: inherit;
|
|
3193
|
+
text-decoration: none;
|
|
3194
|
+
white-space: nowrap;
|
|
3195
|
+
background-color: transparent;
|
|
3196
|
+
border: 0;
|
|
3197
|
+
cursor: pointer;
|
|
3198
|
+
transition: var(--transition-base);
|
|
3199
|
+
}
|
|
3200
|
+
.bl-select-dropdown .bl-select-item:hover, .bl-select-dropdown .bl-select-item:focus {
|
|
3201
|
+
color: var(--color-text);
|
|
3202
|
+
text-decoration: none;
|
|
3203
|
+
background: var(--glass-bg-heavy);
|
|
3204
|
+
}
|
|
3205
|
+
.bl-select-dropdown .bl-select-item:active {
|
|
3206
|
+
color: var(--color-text);
|
|
3207
|
+
background: var(--glass-bg-heavy);
|
|
3208
|
+
}
|
|
3209
|
+
.bl-select-dropdown .bl-select-item.bl-selected {
|
|
3210
|
+
background: var(--glass-bg-heavy);
|
|
3211
|
+
color: var(--color-accent);
|
|
3212
|
+
}
|
|
3213
|
+
.bl-select-dropdown .bl-select-item.bl-selected::before {
|
|
3214
|
+
content: "✓ ";
|
|
3215
|
+
margin-right: var(--spacing-xs);
|
|
3216
|
+
}
|
|
3217
|
+
.bl-select-dropdown .bl-select-item.bl-disabled, .bl-select-dropdown .bl-select-item:disabled {
|
|
3218
|
+
color: var(--color-text-muted);
|
|
3219
|
+
pointer-events: none;
|
|
3220
|
+
background-color: transparent;
|
|
3221
|
+
opacity: 0.6;
|
|
3092
3222
|
}
|
|
3093
3223
|
|
|
3094
3224
|
.bl-input-error,
|
|
@@ -3300,8 +3430,11 @@ textarea {
|
|
|
3300
3430
|
transition: var(--transition-base);
|
|
3301
3431
|
position: relative;
|
|
3302
3432
|
}
|
|
3303
|
-
.bl-card.bl-card-accent {
|
|
3304
|
-
border-left:
|
|
3433
|
+
.bl-card.bl-card-accent-left {
|
|
3434
|
+
border-left: 4px solid var(--color-accent);
|
|
3435
|
+
}
|
|
3436
|
+
.bl-card.bl-card-accent-right {
|
|
3437
|
+
border-right: 4px solid var(--color-accent);
|
|
3305
3438
|
}
|
|
3306
3439
|
|
|
3307
3440
|
.bl-card-header {
|
|
@@ -3342,16 +3475,10 @@ textarea {
|
|
|
3342
3475
|
.bl-card-primary {
|
|
3343
3476
|
border-color: var(--color-accent);
|
|
3344
3477
|
}
|
|
3345
|
-
.bl-card-primary.bl-card-accent {
|
|
3346
|
-
border-left-color: var(--color-accent);
|
|
3347
|
-
}
|
|
3348
3478
|
|
|
3349
3479
|
.bl-card-secondary {
|
|
3350
3480
|
border-color: var(--glass-border-heavy);
|
|
3351
3481
|
}
|
|
3352
|
-
.bl-card-secondary.bl-card-accent {
|
|
3353
|
-
border-left-color: var(--color-secondary);
|
|
3354
|
-
}
|
|
3355
3482
|
|
|
3356
3483
|
.bl-card-shadow {
|
|
3357
3484
|
box-shadow: var(--glass-shadow-md);
|
|
@@ -3703,7 +3830,7 @@ textarea {
|
|
|
3703
3830
|
position: absolute;
|
|
3704
3831
|
top: 100%;
|
|
3705
3832
|
left: 0;
|
|
3706
|
-
z-index:
|
|
3833
|
+
z-index: 99999 !important;
|
|
3707
3834
|
display: none;
|
|
3708
3835
|
min-width: 10rem;
|
|
3709
3836
|
padding: var(--spacing-xs) 0;
|
|
@@ -3718,6 +3845,9 @@ textarea {
|
|
|
3718
3845
|
border: 1px solid var(--glass-border-medium);
|
|
3719
3846
|
border-radius: var(--tech-border-radius-md);
|
|
3720
3847
|
overflow: hidden;
|
|
3848
|
+
overflow-y: auto;
|
|
3849
|
+
max-height: 300px;
|
|
3850
|
+
box-shadow: var(--glass-shadow-lg);
|
|
3721
3851
|
}
|
|
3722
3852
|
.bl-dropdown-menu.bl-show {
|
|
3723
3853
|
display: block;
|