@rhavenside/baseline-ui 1.0.1 → 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 +51 -0
- 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
|
@@ -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:
|
|
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;
|