@festo-ui/web-essentials 10.1.1 → 11.0.0-dev.930

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.
@@ -0,0 +1,288 @@
1
+ # Forms
2
+
3
+ ## Text Input
4
+
5
+ ```html
6
+ <label class="fwe-input-text">
7
+ <input type="text" value="Value" />
8
+ <span class="fwe-input-text-label">Label</span>
9
+ <span class="fwe-input-text-info">Optional description</span>
10
+ <span class="fwe-input-text-invalid">Error description</span>
11
+ </label>
12
+ ```
13
+
14
+ ### With Validation Icons
15
+
16
+ ```html
17
+ <label class="fwe-input-text fwe-input-text--with-validation-icons">
18
+ <input type="text" value="Value" required />
19
+ <span class="fwe-input-text-label">Label</span>
20
+ <span class="fwe-input-text-invalid">Invalid description</span>
21
+ </label>
22
+ ```
23
+
24
+ ### Force Validation States
25
+
26
+ ```html
27
+ <!-- Manually valid -->
28
+ <label class="fwe-input-text fwe-input-text--valid fwe-input-text--with-validation-icons">
29
+ ...
30
+ </label>
31
+
32
+ <!-- Manually invalid -->
33
+ <label class="fwe-input-text fwe-input-text--invalid fwe-input-text--with-validation-icons">
34
+ ...
35
+ </label>
36
+ ```
37
+
38
+ ### With Icon
39
+
40
+ ```html
41
+ <label class="fwe-input-text fwe-input-text-icon">
42
+ <input type="text" value="Value" />
43
+ <i class="fwe-icon fwe-icon-ecommerce-core-range-product"></i>
44
+ <span class="fwe-input-text-label">Label</span>
45
+ </label>
46
+ ```
47
+
48
+ ### Disabled
49
+
50
+ ```html
51
+ <label class="fwe-input-text">
52
+ <input type="text" value="" disabled />
53
+ <span class="fwe-input-text-label">Label</span>
54
+ </label>
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Text Area
60
+
61
+ ```html
62
+ <label class="fwe-input-text">
63
+ <textarea class="fwe-row-5">Content</textarea>
64
+ <span class="fwe-input-text-label">Label</span>
65
+ <span class="fwe-input-text-info">Optional description</span>
66
+ <span class="fwe-input-text-invalid">Error description</span>
67
+ </label>
68
+ ```
69
+
70
+ Rows: `fwe-row-3`, `fwe-row-5` etc.
71
+
72
+ ---
73
+
74
+ ## Select
75
+
76
+ ```html
77
+ <div class="fwe-select-wrapper" style="width: 300px">
78
+ <select class="fwe-select" name="select-a" id="select-a">
79
+ <option value=""></option>
80
+ <option value="a">Option A</option>
81
+ <option value="b">Option B</option>
82
+ </select>
83
+ <label class="fwe-select-label" for="select-a">Label</label>
84
+ <div class="fwe-select-description">Optional description</div>
85
+ <div class="fwe-select-invalid">Error message</div>
86
+ </div>
87
+ ```
88
+
89
+ ### Custom Options Container
90
+
91
+ ```html
92
+ <div class="fwe-options-container">
93
+ <option class="fwe-combobox-option" value="a">Option A</option>
94
+ <option class="fwe-combobox-option fwe-selected" value="b">Option B</option>
95
+ <option class="fwe-combobox-option fwe-disabled" value="c">Option C</option>
96
+ </div>
97
+ ```
98
+
99
+ ### Multi-Select
100
+
101
+ ```html
102
+ <div class="fwe-options-container fwe-options-container--multi-select">
103
+ <label class="fwe-checkbox" for="ms-a">
104
+ <input type="checkbox" id="ms-a">
105
+ <div class="fwe-checkbox-checkmark"></div>
106
+ <div class="fwe-checkbox-label-content">Option A</div>
107
+ </label>
108
+ <!-- ... -->
109
+ </div>
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Checkbox
115
+
116
+ ```html
117
+ <label class="fwe-checkbox" for="cb1">
118
+ <input type="checkbox" id="cb1">
119
+ <div class="fwe-checkbox-checkmark"></div>
120
+ <div class="fwe-checkbox-label-content">Label</div>
121
+ </label>
122
+ ```
123
+
124
+ ### Sizes
125
+
126
+ | Class | Description |
127
+ |---|---|
128
+ | *(default)* | Normal |
129
+ | `fwe-checkbox-lg` | Large |
130
+
131
+ ### Label Placement
132
+
133
+ | Class | Description |
134
+ |---|---|
135
+ | `fwe-checkbox-label-after` | Label right (default) |
136
+ | `fwe-checkbox-label-before` | Label left |
137
+ | `fwe-checkbox-label-below` | Label below the checkbox |
138
+
139
+ ### Checkbox Group
140
+
141
+ ```html
142
+ <fieldset class="fwe-checkbox-group">
143
+ <legend>Group Label</legend>
144
+ <label class="fwe-checkbox" for="g1">...</label>
145
+ <label class="fwe-checkbox" for="g2">...</label>
146
+ </fieldset>
147
+ ```
148
+
149
+ ### Indeterminate State
150
+
151
+ Via JavaScript: `checkbox.indeterminate = true;`
152
+
153
+ ---
154
+
155
+ ## Radio
156
+
157
+ ```html
158
+ <div class="fwe-radio-group">
159
+ <label class="fwe-radio" for="r1">
160
+ <input type="radio" name="group" id="r1">
161
+ <div class="fwe-radio-checkmark"></div>
162
+ <div class="fwe-radio-label-content">Option A</div>
163
+ </label>
164
+ <label class="fwe-radio" for="r2">
165
+ <input type="radio" name="group" id="r2">
166
+ <div class="fwe-radio-checkmark"></div>
167
+ <div class="fwe-radio-label-content">Option B</div>
168
+ </label>
169
+ </div>
170
+ ```
171
+
172
+ ### Sizes & Label Placement
173
+
174
+ | Class | Description |
175
+ |---|---|
176
+ | `fwe-radio-lg` | Large |
177
+ | `fwe-radio-label-before` | Label left |
178
+ | `fwe-radio-label-below` | Label below |
179
+
180
+ ---
181
+
182
+ ## Switch
183
+
184
+ ```html
185
+ <label class="fwe-switch" for="sw1">
186
+ <input type="checkbox" id="sw1">
187
+ <div class="fwe-switch-track"></div>
188
+ <div class="fwe-switch-label-content">Switch Label</div>
189
+ </label>
190
+ ```
191
+
192
+ ### Sizes & Label Placement
193
+
194
+ | Class | Description |
195
+ |---|---|
196
+ | `fwe-switch-lg` | Large |
197
+ | `fwe-switch-label-after` | Label right |
198
+ | `fwe-switch-label-before` | Label left |
199
+ | `fwe-switch-label-below` | Label below |
200
+
201
+ ---
202
+
203
+ ## Slider
204
+
205
+ ```html
206
+ <input class="fwe-slider-input" type="range" min="1" max="100" />
207
+ ```
208
+
209
+ ### With Label
210
+
211
+ ```html
212
+ <label class="fwe-slider">
213
+ <span>Label</span>
214
+ <input class="fwe-slider-input" type="range" min="1" max="100" />
215
+ </label>
216
+ ```
217
+
218
+ ---
219
+
220
+ ## Segment (Toggle Group)
221
+
222
+ ### Outline Variant (Normal)
223
+
224
+ ```html
225
+ <fieldset class="fwe-segment fwe-segment-outline">
226
+ <div class="fwe-segment-group">
227
+ <input class="fwe-segment-input" id="seg1" type="radio" name="group" value="day" checked />
228
+ <label class="fwe-segment-label" for="seg1">Day</label>
229
+ <input class="fwe-segment-input" id="seg2" type="radio" name="group" value="week" />
230
+ <label class="fwe-segment-label" for="seg2">Week</label>
231
+ </div>
232
+ </fieldset>
233
+ ```
234
+
235
+ ### Strong Variant
236
+
237
+ ```html
238
+ <fieldset class="fwe-segment">
239
+ <div class="fwe-segment-group">...</div>
240
+ </fieldset>
241
+ ```
242
+
243
+ ### With Icons
244
+
245
+ Add class `fwe-segment-icon`:
246
+
247
+ ```html
248
+ <fieldset class="fwe-segment fwe-segment-icon fwe-segment-outline">
249
+ <div class="fwe-segment-group">
250
+ <input class="fwe-segment-input" id="seg1" type="radio" name="view" value="list" checked />
251
+ <label class="fwe-segment-label" for="seg1">
252
+ <i aria-hidden="true" class="fwe-icon fwe-icon-list-list-view"></i>
253
+ </label>
254
+ </div>
255
+ </fieldset>
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Search Input
261
+
262
+ ```html
263
+ <label class="fwe-search-input">
264
+ <input placeholder="Search" type="search" value="an" />
265
+ <div class="fwe-search-icon"></div>
266
+ <div class="fwe-clear-icon"></div>
267
+ <div class="fwe-search-suggestions">
268
+ <div class="fwe-search-suggestion">Apple</div>
269
+ <div class="fwe-search-suggestion">B<strong>anan</strong>a</div>
270
+ </div>
271
+ </label>
272
+ ```
273
+
274
+ Disabled: `<input ... disabled />`
275
+
276
+ ---
277
+
278
+ ## Date Picker
279
+
280
+ Custom Element:
281
+
282
+ ```html
283
+ <!-- Single date -->
284
+ <fwe-date-picker></fwe-date-picker>
285
+
286
+ <!-- Range -->
287
+ <fwe-date-picker data-type="range"></fwe-date-picker>
288
+ ```
@@ -0,0 +1,45 @@
1
+ # Icons
2
+
3
+ ## Usage
4
+
5
+ Icons are included via `<i>` elements with CSS classes:
6
+
7
+ ```html
8
+ <i class="fwe-icon fwe-icon-{category}-{name}"></i>
9
+ ```
10
+
11
+ ## Sizes
12
+
13
+ | Class | Description |
14
+ |---|---|
15
+ | `fwe-icon` | Default size |
16
+ | `fwe-icon-lg` | Large |
17
+ | `fwe-icon-2x` | 2x |
18
+ | `fwe-icon-3x` | 3x |
19
+ | `fwe-icon-4x` | 4x |
20
+
21
+ ## Beispiele
22
+
23
+ ```html
24
+ <i class="fwe-icon fwe-icon-file-edit"></i>
25
+ <i class="fwe-icon fwe-icon-file-delete fwe-icon-lg"></i>
26
+ <i class="fwe-icon fwe-icon-communication-notification fwe-icon-2x"></i>
27
+ <i class="fwe-icon fwe-icon-list-filter fwe-icon-lg"></i>
28
+ <i class="fwe-icon fwe-icon-menu-more fwe-icon-lg"></i>
29
+ <i class="fwe-icon fwe-icon-menu-add fwe-icon-lg"></i>
30
+ <i class="fwe-icon fwe-icon-copy"></i>
31
+ <i class="fwe-icon fwe-icon-list-list-view"></i>
32
+ <i class="fwe-icon fwe-icon-list-grid-view"></i>
33
+ <i class="fwe-icon fwe-icon-communication-message"></i>
34
+ <i class="fwe-icon fwe-icon-file-visible"></i>
35
+ <i class="fwe-icon fwe-icon-file-search"></i>
36
+ <i class="fwe-icon fwe-icon-ecommerce-core-range-product"></i>
37
+ ```
38
+
39
+ ### With aria-hidden
40
+
41
+ Decorative icons should include `aria-hidden="true"`:
42
+
43
+ ```html
44
+ <i aria-hidden="true" class="fwe-icon fwe-icon-list-list-view"></i>
45
+ ```
@@ -0,0 +1,46 @@
1
+ # Layout & Grid
2
+
3
+ ## Grid System
4
+
5
+ 12-column CSS grid layout with responsive breakpoints.
6
+
7
+ ### Container
8
+
9
+ ```html
10
+ <div class="fwe-grid">
11
+ <div class="fwe-col-6">Half width</div>
12
+ <div class="fwe-col-6">Half width</div>
13
+ </div>
14
+ ```
15
+
16
+ ### Column Classes
17
+
18
+ | Class | Description |
19
+ |---|---|
20
+ | `fwe-col` | Auto width |
21
+ | `fwe-col-{1-12}` | Fixed column width (out of 12) |
22
+ | `fwe-col-sm-{n}` | From breakpoint `sm` (≥576px) |
23
+ | `fwe-col-md-{n}` | From breakpoint `md` (≥768px) |
24
+ | `fwe-col-lg-{n}` | From breakpoint `lg` (≥992px) |
25
+ | `fwe-col-xl-{n}` | From breakpoint `xl` (≥1200px) |
26
+ | `fwe-col-xxl-{n}` | From breakpoint `xxl` (≥1400px) |
27
+
28
+ ### Responsive Example
29
+
30
+ ```html
31
+ <div class="fwe-grid">
32
+ <div class="fwe-col-12 fwe-col-sm-6 fwe-col-lg-4">
33
+ Full width → half width → third
34
+ </div>
35
+ <div class="fwe-col-12 fwe-col-sm-6 fwe-col-lg-4">...</div>
36
+ <div class="fwe-col-12 fwe-col-sm-12 fwe-col-lg-4">...</div>
37
+ </div>
38
+ ```
39
+
40
+ ## Layout Classes
41
+
42
+ | Class | Description |
43
+ |---|---|
44
+ | `fwe-container` | Centered container with max-width |
45
+ | `fwe-layout-1024` | Limits layout to 1024px width |
46
+ | `fwe-w-100` | Full width (width: 100%) |
@@ -0,0 +1,198 @@
1
+ # Organisms
2
+
3
+ Larger, composite components.
4
+
5
+ ## Footer
6
+
7
+ ```html
8
+ <footer class="fwe-footer">
9
+ <div class="fwe-container">
10
+ <div class="fwe-social-media">
11
+ <a class="fwe-social-media-link" href="#">
12
+ <i class="fwe-icon fwe-icon-social-facebook fwe-icon-lg"></i>
13
+ </a>
14
+ <!-- more social links -->
15
+ </div>
16
+ <div class="fwe-footer-details fwe-grid">
17
+ <div class="fwe-col-12 fwe-col-md-4">
18
+ <h4>Column 1</h4>
19
+ <ul>
20
+ <li><a href="#">Link 1</a></li>
21
+ </ul>
22
+ </div>
23
+ <!-- more columns -->
24
+ </div>
25
+ </div>
26
+ <div class="fwe-bottomline">
27
+ <div class="fwe-container">
28
+ <div class="fwe-sitelinks">
29
+ <div class="fwe-sitelinks-groupa">
30
+ <a href="#">Imprint</a>
31
+ <a href="#">Privacy</a>
32
+ </div>
33
+ <div class="fwe-sitelinks-groupb">
34
+ <a href="#">Terms of Use</a>
35
+ </div>
36
+ </div>
37
+ <div class="fwe-copyright">© Festo SE & Co. KG</div>
38
+ </div>
39
+ </div>
40
+ </footer>
41
+ ```
42
+
43
+ ### Light Variant
44
+
45
+ Minimal footer with bottom line only (without social media and columns).
46
+
47
+ ---
48
+
49
+ ## Login
50
+
51
+ ```html
52
+ <div class="fwe-login-layout">
53
+ <!-- Navbar on top -->
54
+ <header class="fwe-fixed-header">
55
+ <nav class="fwe-navbar">...</nav>
56
+ </header>
57
+ <div class="fwe-navbar-spacer"></div>
58
+
59
+ <!-- Background image (optional) -->
60
+ <div class="fwe-login-background" style="background-image: url(...)"></div>
61
+
62
+ <!-- Login container -->
63
+ <div class="fwe-login-container">
64
+ <div class="fwe-login-form">
65
+ <h2>Login</h2>
66
+ <label class="fwe-input-text">
67
+ <input type="email" placeholder="Email" />
68
+ <span class="fwe-input-text-label">Email</span>
69
+ </label>
70
+ <label class="fwe-input-text">
71
+ <input type="password" placeholder="Password" />
72
+ <span class="fwe-input-text-label">Password</span>
73
+ </label>
74
+ <label class="fwe-checkbox" for="remember">
75
+ <input type="checkbox" id="remember" />
76
+ <div class="fwe-checkbox-checkmark"></div>
77
+ <div class="fwe-checkbox-label-content">Remember me</div>
78
+ </label>
79
+ <button class="fwe-btn fwe-btn-hero fwe-btn-block">Login</button>
80
+ <div class="fwe-login-link-container">
81
+ <a class="fwe-text-link" href="#">Forgot password?</a>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Header Slider
91
+
92
+ Full-screen header with image slider.
93
+
94
+ ```html
95
+ <div class="fwe-header-slider">
96
+ <div class="fwe-header-slider-item">
97
+ <img src="slide1.jpg" />
98
+ <div class="fwe-header-slider-content">
99
+ <h1>Title</h1>
100
+ <p>Description</p>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Header Module (Small)
109
+
110
+ Compact header area.
111
+
112
+ ```html
113
+ <div class="fwe-headermodul-small">
114
+ <div class="fwe-headermodul-small-content">
115
+ <h1>Page Title</h1>
116
+ </div>
117
+ </div>
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Image Gallery
123
+
124
+ Image gallery as modal overlay.
125
+
126
+ ```html
127
+ <div class="fwe-modal-backdrop">
128
+ <div class="fwe-modal fwe-modal-image-gallery">
129
+ <div class="fwe-image-gallery-header">
130
+ <div class="fwe-pagination fwe-pagination--on-dark-bg">
131
+ <button class="fwe-navigate-btn-down"></button>
132
+ <span class="fwe-page-current">01</span>
133
+ <span class="fwe-page-max">12</span>
134
+ <button class="fwe-navigate-btn-up"></button>
135
+ </div>
136
+ <button class="fwe-image-gallery-scale-btn fwe-ml-auto"></button>
137
+ <button class="fwe-image-gallery-close-btn fwe-ml-3"></button>
138
+ </div>
139
+ <div class="fwe-image-gallery">
140
+ <img src="image.jpg" />
141
+ </div>
142
+ </div>
143
+ </div>
144
+ ```
145
+
146
+ ### Variants
147
+
148
+ | Class | Description |
149
+ |---|---|
150
+ | `fwe-modal-image-gallery` | Default |
151
+ | `fwe-modal-image-gallery--with-container` | With text container |
152
+ | `fwe-modal-image-gallery--with-thumbnails` | With thumbnail strip |
153
+
154
+ ### With Thumbnails
155
+
156
+ ```html
157
+ <div class="fwe-image-gallery-thumbs">
158
+ <div class="fwe-image-gallery-thumbs-nail fwe-active">
159
+ <img src="thumb1.jpg" />
160
+ </div>
161
+ <div class="fwe-image-gallery-thumbs-nail">
162
+ <img src="thumb2.jpg" />
163
+ </div>
164
+ </div>
165
+ ```
166
+
167
+ ### With Text Container
168
+
169
+ ```html
170
+ <div class="fwe-image-gallery-container">
171
+ <div class="fwe-image-gallery">
172
+ <img src="image.jpg" />
173
+ </div>
174
+ <div class="fwe-image-gallery-content">
175
+ <h3>Title</h3>
176
+ <p>Description</p>
177
+ </div>
178
+ </div>
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Teaser (H07/H08)
184
+
185
+ Content teaser module.
186
+
187
+ ```html
188
+ <div class="fwe-teaser">
189
+ <div class="fwe-teaser-image">
190
+ <img src="teaser.jpg" />
191
+ </div>
192
+ <div class="fwe-teaser-content">
193
+ <h3>Title</h3>
194
+ <p>Description</p>
195
+ <a class="fwe-text-link" href="#">Learn more</a>
196
+ </div>
197
+ </div>
198
+ ```
@@ -0,0 +1,34 @@
1
+ # Typography
2
+
3
+ ## Headings
4
+
5
+ Styled by default via HTML tags `<h1>`–`<h4>`:
6
+
7
+ | Tag | Size | Weight |
8
+ |---|---|---|
9
+ | `h1` | 32pt | Bold |
10
+ | `h2` | 24pt | Bold |
11
+ | `h3` | 24pt | Regular |
12
+ | `h4` | 16pt | Bold |
13
+
14
+ ### Intro Heading
15
+
16
+ ```html
17
+ <h1 class="fwe-h-intro">Large Intro Heading</h1>
18
+ ```
19
+
20
+ ## Body Text
21
+
22
+ | Class | Size |
23
+ |---|---|
24
+ | *(default)* | 16pt |
25
+ | `fwe-font-size-md` | 14pt |
26
+ | `fwe-font-size-small` | 12pt |
27
+
28
+ ### Example
29
+
30
+ ```html
31
+ <p>Normal text (16pt)</p>
32
+ <p class="fwe-font-size-md">Smaller text (14pt)</p>
33
+ <p class="fwe-font-size-small">Smallest text (12pt)</p>
34
+ ```