@rhavenside/baseline-ui 1.0.1 → 1.0.3

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 CHANGED
@@ -28,6 +28,21 @@ npm install @rhavenside/baseline-ui
28
28
  @import '@rhavenside/baseline-ui/dist/baseline.css';
29
29
  ```
30
30
 
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
+
31
46
  ## Verwendung
32
47
 
33
48
  ### HTML
@@ -113,6 +128,42 @@ Alle Design-Tokens sind als CSS Custom Properties verfügbar:
113
128
  }
114
129
  ```
115
130
 
131
+ ### JavaScript API
132
+
133
+ Baseline UI bietet optionales JavaScript für interaktive Komponenten:
134
+
135
+ #### Auto-Initialisierung
136
+
137
+ Alle Komponenten werden automatisch initialisiert, wenn das JavaScript geladen wird:
138
+
139
+ ```html
140
+ <script type="module" src="node_modules/@rhavenside/baseline-ui/dist/baseline.js"></script>
141
+ ```
142
+
143
+ #### Manuelle Verwendung
144
+
145
+ ```javascript
146
+ import { initModal, openModal, closeModal } from '@rhavenside/baseline-ui/dist/baseline.js';
147
+
148
+ // Modal öffnen
149
+ openModal('my-modal');
150
+
151
+ // Modal schließen
152
+ closeModal('my-modal');
153
+
154
+ // Manuell initialisieren
155
+ const modal = document.getElementById('my-modal');
156
+ initModal(modal);
157
+ ```
158
+
159
+ #### Verfügbare Funktionen
160
+
161
+ - **Modal**: `initModal()`, `openModal()`, `closeModal()`
162
+ - **Dropdown**: `initDropdown()`
163
+ - **Tooltip**: `initTooltip()`
164
+ - **Tabs**: `initTabs()`
165
+ - **Alert**: `initAlert()`, `dismissAlert()`
166
+
116
167
  ## Lizenz
117
168
 
118
169
  MIT License - siehe [LICENSE](LICENSE) Datei
package/dist/baseline.css CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
  :root {
122
122
  --z-index-base: 0;
123
- --z-index-dropdown: 1000;
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-light);
3069
+ background: var(--glass-bg-medium);
3070
3070
  border: 1px solid var(--glass-border-medium);
3071
- border-radius: var(--tech-border-radius-sm);
3072
- backdrop-filter: blur(var(--glass-blur-md));
3073
- -webkit-backdrop-filter: blur(var(--glass-blur-md));
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: 2px solid var(--color-accent);
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: var(--z-index-dropdown);
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;