testio-tailwind 3.22.0 → 3.24.0
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/AI_DESIGN_SYSTEM_REFERENCE.md +357 -32
- package/package.json +1 -1
- package/src/_includes/example-header-centered.njk +53 -0
- package/src/_layouts/page-example-centered.njk +19 -0
- package/src/_layouts/page-example-darkmode.njk +19 -0
- package/src/assets/stylesheets/components/actionbar.css +8 -0
- package/src/assets/stylesheets/components/forms.css +4 -0
- package/src/assets/stylesheets/components/header.css +22 -0
- package/src/pages/forms/{forms.haml → form_group.haml} +2 -2
- package/src/pages/forms/form_group_vertical.haml +28 -0
- package/src/pages/layout/app_layout.haml +3 -1
- package/src/pages/layout/centered_layout.haml +26 -0
- package/src/pages/layout/darkmode.haml +9 -0
- package/src/pages/layouts/layout-centered.haml +26 -0
- package/src/pages/layouts/layout-darkmode.haml +310 -0
- package/src/pages/navigation/header-centered.haml +77 -0
- /package/src/pages/layouts/{layout-chatwindow.haml → layout-full.haml} +0 -0
|
@@ -10,6 +10,13 @@ This document serves as a comprehensive reference for AI Agents to utilize the T
|
|
|
10
10
|
|
|
11
11
|
## Recent Updates (January 2026)
|
|
12
12
|
|
|
13
|
+
- ✨ **Centered Layout**: New centered application layout documentation and examples
|
|
14
|
+
- ✨ **Dark Mode Examples**: Comprehensive dark mode layout examples and documentation
|
|
15
|
+
- ✨ **Centered Actionbar**: Added centered variant for action bars with proper styling
|
|
16
|
+
- ✨ **Centered Header**: New header variant optimized for centered layouts
|
|
17
|
+
- 🎨 **Layout Examples**: Added `/pages/layouts/` section with layout examples (centered, darkmode, full-width)
|
|
18
|
+
- 📐 **Centered Content**: Proper max-width capped centered content containers
|
|
19
|
+
- 🌙 **Dark Mode Support**: Complete dark mode documentation with implementation examples
|
|
13
20
|
- ✨ **HAML Preview**: New HAML preview functionality for live component viewing
|
|
14
21
|
- ✨ **HAML Converter**: Added HAML conversion utility for template processing
|
|
15
22
|
- ✨ **AI Documentation**: Comprehensive AI documentation across all component pages
|
|
@@ -23,6 +30,9 @@ This document serves as a comprehensive reference for AI Agents to utilize the T
|
|
|
23
30
|
- 🔧 **Splitview Improvements**: Fixed splitview details close button and responsive behavior
|
|
24
31
|
- 🏷️ **Image Tags**: Added support for image tagging in components
|
|
25
32
|
- 🔧 **HAML Conversion**: Tables documentation files converted to HAML format
|
|
33
|
+
- ✨ **Form Group Enhancements**: Added vertical form groups, form addons with text/icons, and form card component
|
|
34
|
+
- 📋 **Form Hints**: Expanded form hints with collapsable help text and learn more triggers
|
|
35
|
+
- 🌐 **Multi-language Support**: Added optional-non-en attribute for internationalized optional labels
|
|
26
36
|
|
|
27
37
|
---
|
|
28
38
|
|
|
@@ -32,23 +42,24 @@ This document serves as a comprehensive reference for AI Agents to utilize the T
|
|
|
32
42
|
3. [Color System](#color-system)
|
|
33
43
|
4. [Typography](#typography)
|
|
34
44
|
5. [Spacing & Layout](#spacing--layout)
|
|
35
|
-
6. [
|
|
36
|
-
7. [
|
|
37
|
-
8. [
|
|
38
|
-
9. [
|
|
39
|
-
10. [
|
|
40
|
-
11. [
|
|
41
|
-
12. [
|
|
42
|
-
13. [
|
|
43
|
-
14. [
|
|
44
|
-
15. [
|
|
45
|
-
16. [
|
|
46
|
-
17. [
|
|
47
|
-
18. [
|
|
48
|
-
19. [
|
|
49
|
-
20. [
|
|
50
|
-
21. [
|
|
51
|
-
22. [
|
|
45
|
+
6. [Layout Patterns](#layout-patterns)
|
|
46
|
+
7. [Button Components](#button-components)
|
|
47
|
+
8. [Card Components](#card-components)
|
|
48
|
+
9. [Form Components](#form-components)
|
|
49
|
+
10. [Overlay Components (Modal & Drawer)](#overlay-components-modal--drawer)
|
|
50
|
+
11. [Page Layout Components](#page-layout-components)
|
|
51
|
+
12. [Navigation Components](#navigation-components)
|
|
52
|
+
13. [Feedback Components](#feedback-components)
|
|
53
|
+
14. [Data Display Components](#data-display-components)
|
|
54
|
+
15. [List Components](#list-components)
|
|
55
|
+
16. [Splitview Components](#splitview-components)
|
|
56
|
+
17. [Chat Components](#chat-components)
|
|
57
|
+
18. [Chart Components](#chart-components)
|
|
58
|
+
19. [Status & Progress Components](#status--progress-components)
|
|
59
|
+
20. [Utility Components](#utility-components)
|
|
60
|
+
21. [AgenticQA Components](#agenticqa-components)
|
|
61
|
+
22. [Dark Mode](#dark-mode)
|
|
62
|
+
23. [Best Practices for AI Agents](#best-practices-for-ai-agents)
|
|
52
63
|
|
|
53
64
|
---
|
|
54
65
|
|
|
@@ -145,10 +156,17 @@ src/pages/
|
|
|
145
156
|
│ ├── spacing.haml
|
|
146
157
|
│ ├── paddings.haml
|
|
147
158
|
│ ├── margins.haml
|
|
148
|
-
│
|
|
159
|
+
│ ├── max_width.haml
|
|
160
|
+
│ ├── centered_layout.haml # Centered layout documentation
|
|
161
|
+
│ └── darkmode.haml # Dark mode layout documentation
|
|
162
|
+
├── layouts/ # Full layout examples
|
|
163
|
+
│ ├── layout-full.haml
|
|
164
|
+
│ ├── layout-centered.haml # Centered layout example
|
|
165
|
+
│ └── layout-darkmode.haml # Dark mode layout example
|
|
149
166
|
├── navigation/ # Navigation components
|
|
150
167
|
│ ├── header.haml
|
|
151
168
|
│ ├── header_*.haml # Portal-specific headers
|
|
169
|
+
│ ├── header-centered.haml # Centered layout header
|
|
152
170
|
│ ├── sidebar.haml
|
|
153
171
|
│ ├── sidebar_*.haml # Portal-specific sidebars
|
|
154
172
|
│ ├── tabnavigation.haml
|
|
@@ -181,9 +199,27 @@ npm start
|
|
|
181
199
|
# Visit: http://localhost:8080/forms/
|
|
182
200
|
# Visit: http://localhost:8080/tables/
|
|
183
201
|
# Visit: http://localhost:8080/charts/
|
|
202
|
+
# Visit: http://localhost:8080/layout/
|
|
184
203
|
```
|
|
185
204
|
|
|
186
|
-
#### 2. **
|
|
205
|
+
#### 2. **Layout Examples**
|
|
206
|
+
Complete layout examples with live previews:
|
|
207
|
+
```
|
|
208
|
+
# Full-width layout example
|
|
209
|
+
http://localhost:8080/pages/layouts/layout-full
|
|
210
|
+
|
|
211
|
+
# Centered layout example (recommended for documentation and forms)
|
|
212
|
+
http://localhost:8080/pages/layouts/layout-centered
|
|
213
|
+
|
|
214
|
+
# Dark mode layout example
|
|
215
|
+
http://localhost:8080/pages/layouts/layout-darkmode
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Layout Documentation:**
|
|
219
|
+
- [centered_layout.haml](src/pages/layout/centered_layout.haml) - Centered layout structure and documentation
|
|
220
|
+
- [darkmode.haml](src/pages/layout/darkmode.haml) - Dark mode implementation guide
|
|
221
|
+
|
|
222
|
+
#### 3. **HAML to HTML Reference**
|
|
187
223
|
|
|
188
224
|
```haml
|
|
189
225
|
<!-- HAML -->
|
|
@@ -339,6 +375,88 @@ xl: 90rem (1440px)
|
|
|
339
375
|
|
|
340
376
|
---
|
|
341
377
|
|
|
378
|
+
## Layout Patterns
|
|
379
|
+
|
|
380
|
+
### Standard Application Layout Structure
|
|
381
|
+
The application uses a consistent layout structure across all pages:
|
|
382
|
+
|
|
383
|
+
```html
|
|
384
|
+
<body class="app-body">
|
|
385
|
+
<header class="header">
|
|
386
|
+
<!-- Navigation and branding -->
|
|
387
|
+
</header>
|
|
388
|
+
<main class="main-content">
|
|
389
|
+
<!-- Page content -->
|
|
390
|
+
</main>
|
|
391
|
+
<footer class="actionbar">
|
|
392
|
+
<!-- Actions and controls -->
|
|
393
|
+
</footer>
|
|
394
|
+
</body>
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Full-Width Layout
|
|
398
|
+
Standard layout with content spanning the full width of the viewport:
|
|
399
|
+
|
|
400
|
+
```html
|
|
401
|
+
<body class="app-body">
|
|
402
|
+
<header class="header">
|
|
403
|
+
<!-- Full-width header -->
|
|
404
|
+
</header>
|
|
405
|
+
<main class="main-content">
|
|
406
|
+
<div class="page-content">
|
|
407
|
+
<!-- Content fills available space -->
|
|
408
|
+
</div>
|
|
409
|
+
</main>
|
|
410
|
+
<footer class="actionbar">
|
|
411
|
+
<!-- Full-width footer -->
|
|
412
|
+
</footer>
|
|
413
|
+
</body>
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
**Use Case:** Dashboard layouts, full-width data displays, and responsive mobile views.
|
|
417
|
+
|
|
418
|
+
### Centered Layout
|
|
419
|
+
Centered layout with max-width constraints for optimal readability on widescreen screens:
|
|
420
|
+
|
|
421
|
+
```html
|
|
422
|
+
<body class="app-body">
|
|
423
|
+
<header class="header">
|
|
424
|
+
<!-- Centered header -->
|
|
425
|
+
</header>
|
|
426
|
+
<main class="main-content centered">
|
|
427
|
+
<div class="centered-content">
|
|
428
|
+
<!-- Content centered with max-width -->
|
|
429
|
+
</div>
|
|
430
|
+
</main>
|
|
431
|
+
<footer class="actionbar centered">
|
|
432
|
+
<!-- Centered footer -->
|
|
433
|
+
</footer>
|
|
434
|
+
</body>
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Key Classes:**
|
|
438
|
+
- `.main-content.centered` - Centers the main content
|
|
439
|
+
- `.centered-content` - Wrapper for centered content with max-width constraint
|
|
440
|
+
- `.actionbar.centered` - Centered variant of action bar
|
|
441
|
+
|
|
442
|
+
**Use Case:** Documentation pages, information displays, form submissions, and content with optimal line length requirements.
|
|
443
|
+
|
|
444
|
+
**Max-Width Values:**
|
|
445
|
+
- `.max-w-capped` - Standard max-width for centered content (typically 800px)
|
|
446
|
+
- Ensures readability on widescreen displays while maintaining responsive behavior
|
|
447
|
+
|
|
448
|
+
**Example Centered Actionbar:**
|
|
449
|
+
```html
|
|
450
|
+
<footer class="actionbar centered">
|
|
451
|
+
<div class="flex justify-center gap-md">
|
|
452
|
+
<button class="btn btn-secondary">Cancel</button>
|
|
453
|
+
<button class="btn btn-primary">Submit</button>
|
|
454
|
+
</div>
|
|
455
|
+
</footer>
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
342
460
|
## Button Components
|
|
343
461
|
|
|
344
462
|
### Basic Buttons
|
|
@@ -581,6 +699,8 @@ xl: 90rem (1440px)
|
|
|
581
699
|
## Form Components
|
|
582
700
|
|
|
583
701
|
### Form Group Structure
|
|
702
|
+
|
|
703
|
+
#### Horizontal Form Group (Default)
|
|
584
704
|
```html
|
|
585
705
|
<div class="form-group">
|
|
586
706
|
<label class="form-label">Email Address</label>
|
|
@@ -592,6 +712,40 @@ xl: 90rem (1440px)
|
|
|
592
712
|
<label class="form-label optional">Phone Number</label>
|
|
593
713
|
<input type="tel" class="form-control">
|
|
594
714
|
</div>
|
|
715
|
+
|
|
716
|
+
<!-- Optional field with custom translation -->
|
|
717
|
+
<div class="form-group">
|
|
718
|
+
<label class="form-label optional-non-en" data-optional-non-en="(freiwillig)">Phone Number</label>
|
|
719
|
+
<input type="tel" class="form-control">
|
|
720
|
+
</div>
|
|
721
|
+
|
|
722
|
+
<!-- Inverted (for dark backgrounds) -->
|
|
723
|
+
<div class="form-group inverted">
|
|
724
|
+
<label class="form-label">Email Address</label>
|
|
725
|
+
<input type="email" class="form-control" placeholder="Enter email">
|
|
726
|
+
</div>
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
#### Vertical Form Group
|
|
730
|
+
Use vertical form groups in tight spaces and narrow containers where horizontal layout cannot fit:
|
|
731
|
+
|
|
732
|
+
```html
|
|
733
|
+
<div class="form-group vertical">
|
|
734
|
+
<label class="form-label">Email Address</label>
|
|
735
|
+
<input type="email" class="form-control" placeholder="Enter email">
|
|
736
|
+
</div>
|
|
737
|
+
|
|
738
|
+
<!-- Optional field with custom translation -->
|
|
739
|
+
<div class="form-group vertical">
|
|
740
|
+
<label class="form-label optional-non-en" data-optional-non-en="(freiwillig)">Phone Number</label>
|
|
741
|
+
<input type="tel" class="form-control">
|
|
742
|
+
</div>
|
|
743
|
+
|
|
744
|
+
<!-- Inverted (for dark backgrounds) -->
|
|
745
|
+
<div class="form-group vertical inverted">
|
|
746
|
+
<label class="form-label">Email Address</label>
|
|
747
|
+
<input type="email" class="form-control" placeholder="Enter email">
|
|
748
|
+
</div>
|
|
595
749
|
```
|
|
596
750
|
|
|
597
751
|
### Form Inputs
|
|
@@ -624,6 +778,29 @@ xl: 90rem (1440px)
|
|
|
624
778
|
<div class="form-hint error">Please enter a valid email</div>
|
|
625
779
|
```
|
|
626
780
|
|
|
781
|
+
#### Collapsable Form Hints
|
|
782
|
+
```html
|
|
783
|
+
<!-- Collapsable form hint with learn more trigger -->
|
|
784
|
+
<div class="form-group">
|
|
785
|
+
<label class="form-label">Your Project</label>
|
|
786
|
+
<div class="col">
|
|
787
|
+
<input class="form-control" type="text" placeholder="Some delicious placeholder text">
|
|
788
|
+
<details class="form-hint-collapsable">
|
|
789
|
+
<summary>
|
|
790
|
+
<div class="form-hint">
|
|
791
|
+
<span>
|
|
792
|
+
This is a help text.
|
|
793
|
+
<span class="form-hint-trigger form-hint-collapsed-text">Learn more</span>
|
|
794
|
+
<span class="form-hint-trigger form-hint-expanded-text">Close</span>
|
|
795
|
+
</span>
|
|
796
|
+
</div>
|
|
797
|
+
</summary>
|
|
798
|
+
<div class="form-hint-collapsable-message">Good examples are "Java wrapper lib for our 5-endpoint REST API" or "Help integration Intercom into our web interface"</div>
|
|
799
|
+
</details>
|
|
800
|
+
</div>
|
|
801
|
+
</div>
|
|
802
|
+
```
|
|
803
|
+
|
|
627
804
|
### Form Grid Layout
|
|
628
805
|
```html
|
|
629
806
|
<!-- Standard form grid -->
|
|
@@ -878,10 +1055,62 @@ xl: 90rem (1440px)
|
|
|
878
1055
|
|
|
879
1056
|
### Form with Addon
|
|
880
1057
|
```html
|
|
1058
|
+
<!-- Text addon (e.g., currency) -->
|
|
881
1059
|
<div class="form-group with-addon">
|
|
882
1060
|
<label class="form-label">Price</label>
|
|
883
1061
|
<input type="number" class="form-control" placeholder="0.00">
|
|
884
|
-
<div class="form-addon">
|
|
1062
|
+
<div class="form-addon">
|
|
1063
|
+
<span class="text-label">EUR</span>
|
|
1064
|
+
</div>
|
|
1065
|
+
</div>
|
|
1066
|
+
|
|
1067
|
+
<!-- Icon addon (e.g., validation status) -->
|
|
1068
|
+
<div class="form-group with-addon">
|
|
1069
|
+
<label class="form-label">Email Address</label>
|
|
1070
|
+
<input type="email" class="form-control" placeholder="Enter email">
|
|
1071
|
+
<div class="form-addon">
|
|
1072
|
+
<span class="icon icon-check-circle-filled text-success"></span>
|
|
1073
|
+
</div>
|
|
1074
|
+
</div>
|
|
1075
|
+
```
|
|
1076
|
+
|
|
1077
|
+
### Form Card
|
|
1078
|
+
A card component containing a form with various input elements. Useful for collapsable form sections or multi-form layouts.
|
|
1079
|
+
|
|
1080
|
+
```html
|
|
1081
|
+
<div class="form-card">
|
|
1082
|
+
<div class="form-card-heading">
|
|
1083
|
+
<div class="form-card-title">Form Card Title</div>
|
|
1084
|
+
<div class="form-card-actions">
|
|
1085
|
+
<button class="btn btn-square btn-sm btn-primary">
|
|
1086
|
+
<i class="icon icon-arrow-upward"></i>
|
|
1087
|
+
</button>
|
|
1088
|
+
<button class="btn btn-square btn-sm btn-primary">
|
|
1089
|
+
<i class="icon icon-arrow-downward"></i>
|
|
1090
|
+
</button>
|
|
1091
|
+
<button class="btn btn-square btn-sm btn-primary">
|
|
1092
|
+
<i class="icon icon-remove"></i>
|
|
1093
|
+
</button>
|
|
1094
|
+
</div>
|
|
1095
|
+
</div>
|
|
1096
|
+
<div class="form-grid">
|
|
1097
|
+
<div class="form-group">
|
|
1098
|
+
<label class="form-label">Input</label>
|
|
1099
|
+
<input class="form-control" type="text" placeholder="Enter text">
|
|
1100
|
+
</div>
|
|
1101
|
+
<div class="form-group">
|
|
1102
|
+
<label class="form-label">Textarea</label>
|
|
1103
|
+
<textarea class="form-control" rows="4" placeholder="Enter description"></textarea>
|
|
1104
|
+
</div>
|
|
1105
|
+
<div class="form-group form-select">
|
|
1106
|
+
<label class="form-label">Select</label>
|
|
1107
|
+
<select class="tom-select" placeholder="Please select">
|
|
1108
|
+
<option value=""></option>
|
|
1109
|
+
<option value="Option 1">Option 1</option>
|
|
1110
|
+
<option value="Option 2">Option 2</option>
|
|
1111
|
+
</select>
|
|
1112
|
+
</div>
|
|
1113
|
+
</div>
|
|
885
1114
|
</div>
|
|
886
1115
|
```
|
|
887
1116
|
|
|
@@ -2236,7 +2465,34 @@ Product-specific components for the AgenticQA platform.
|
|
|
2236
2465
|
|
|
2237
2466
|
## Dark Mode
|
|
2238
2467
|
|
|
2239
|
-
The design system includes comprehensive dark mode support with customized theme variables.
|
|
2468
|
+
The design system includes comprehensive dark mode support with customized theme variables and a centered layout variant for dark mode displays.
|
|
2469
|
+
|
|
2470
|
+
### Enabling Dark Mode
|
|
2471
|
+
|
|
2472
|
+
```html
|
|
2473
|
+
<!-- Apply dark class to body or container -->
|
|
2474
|
+
<body class="app-body dark">
|
|
2475
|
+
<!-- All dark mode styles will be applied -->
|
|
2476
|
+
</body>
|
|
2477
|
+
```
|
|
2478
|
+
|
|
2479
|
+
### Dark Mode Layout Structure
|
|
2480
|
+
|
|
2481
|
+
```html
|
|
2482
|
+
<body class="app-body dark">
|
|
2483
|
+
<header class="header">
|
|
2484
|
+
<!-- Dark mode header -->
|
|
2485
|
+
</header>
|
|
2486
|
+
<main class="main-content centered">
|
|
2487
|
+
<div class="centered-content">
|
|
2488
|
+
<!-- Centered content with dark mode styling -->
|
|
2489
|
+
</div>
|
|
2490
|
+
</main>
|
|
2491
|
+
<footer class="actionbar centered">
|
|
2492
|
+
<!-- Centered actionbar for dark mode -->
|
|
2493
|
+
</footer>
|
|
2494
|
+
</body>
|
|
2495
|
+
```
|
|
2240
2496
|
|
|
2241
2497
|
### Dark Mode Color Palette
|
|
2242
2498
|
```css
|
|
@@ -2282,14 +2538,56 @@ The design system includes comprehensive dark mode support with customized theme
|
|
|
2282
2538
|
<div class="bg-card dark:bg-listitem">
|
|
2283
2539
|
<!-- Light mode: #e6e6e6, Dark mode: #262626 -->
|
|
2284
2540
|
</div>
|
|
2541
|
+
|
|
2542
|
+
<!-- Buttons with dark mode -->
|
|
2543
|
+
<div class="dark">
|
|
2544
|
+
<button class="btn btn-primary">
|
|
2545
|
+
<!-- Automatically styled for dark mode -->
|
|
2546
|
+
</button>
|
|
2547
|
+
</div>
|
|
2285
2548
|
```
|
|
2286
2549
|
|
|
2287
|
-
### Dark Mode
|
|
2550
|
+
### Dark Mode Layout Examples
|
|
2551
|
+
|
|
2552
|
+
**Centered Dark Mode Layout:**
|
|
2553
|
+
- Optimal for documentation or form-based interfaces
|
|
2554
|
+
- Content is centered with max-width constraint
|
|
2555
|
+
- Footer actionbar is also centered
|
|
2556
|
+
- View live example: `/pages/layouts/layout-darkmode`
|
|
2557
|
+
|
|
2558
|
+
**Dark Mode with Forms:**
|
|
2559
|
+
- Form controls are optimized for dark backgrounds
|
|
2560
|
+
- Input fields have proper contrast
|
|
2561
|
+
- Labels and hints are readable
|
|
2562
|
+
- Error states are clearly visible
|
|
2563
|
+
|
|
2564
|
+
### Dark Mode Differences from Light Mode
|
|
2288
2565
|
- Border radius: `5px` → `12px`
|
|
2289
2566
|
- Grid gutters: `20px` → `40px`
|
|
2290
2567
|
- Table cell padding: `py-xs` → `py-md`
|
|
2291
2568
|
- Chat layout: 3 columns → 2 columns (actions hidden)
|
|
2292
|
-
- Link colors: Petrol → Purple, Hover:
|
|
2569
|
+
- Link colors: Petrol → Purple (#8988eb), Hover: Dark Purple (#7954ff)
|
|
2570
|
+
- Text color: System colors → Light gray (#f2f2f2)
|
|
2571
|
+
- Font sizes: Labels reduced to 0.75rem (from 0.8125rem)
|
|
2572
|
+
- Card headers: 1.125rem in dark mode
|
|
2573
|
+
|
|
2574
|
+
### Dark Mode Best Practices
|
|
2575
|
+
|
|
2576
|
+
1. **Testing Dark Mode**
|
|
2577
|
+
- Always preview components with the `.dark` class applied
|
|
2578
|
+
- Test contrast ratios for accessibility compliance
|
|
2579
|
+
- Verify all interactive elements are clearly visible
|
|
2580
|
+
|
|
2581
|
+
2. **Component-Specific Adjustments**
|
|
2582
|
+
- Buttons: Use inverted variants for dark backgrounds
|
|
2583
|
+
- Cards: Ensure sufficient contrast with dark background
|
|
2584
|
+
- Text: Use light colors for readability
|
|
2585
|
+
- Borders: Use subdued colors that don't overpower the dark background
|
|
2586
|
+
|
|
2587
|
+
3. **Dark Mode CSS Utilities**
|
|
2588
|
+
- Use Tailwind's `dark:` prefix for conditional dark mode styles
|
|
2589
|
+
- Example: `bg-white dark:bg-gray-800`
|
|
2590
|
+
- Combine with custom CSS variables for consistency
|
|
2293
2591
|
|
|
2294
2592
|
---
|
|
2295
2593
|
|
|
@@ -2302,6 +2600,7 @@ The design system includes comprehensive dark mode support with customized theme
|
|
|
2302
2600
|
- Apply layout classes: `header`, `sidebar`, `main`, `section`
|
|
2303
2601
|
- Use grid or flex utilities for responsive layouts
|
|
2304
2602
|
- Consider using `.page-header` for dashboard pages
|
|
2603
|
+
- Choose between standard full-width or centered layout
|
|
2305
2604
|
|
|
2306
2605
|
2. **Component Selection**
|
|
2307
2606
|
- Choose the appropriate component variant for the use case
|
|
@@ -2320,29 +2619,40 @@ The design system includes comprehensive dark mode support with customized theme
|
|
|
2320
2619
|
- Include alt text for images
|
|
2321
2620
|
- Use `<label>` elements with `for` attributes
|
|
2322
2621
|
|
|
2323
|
-
5. **
|
|
2622
|
+
5. **Layout Pattern Selection**
|
|
2623
|
+
- **Full-Width Layout**: Use for dashboards and data displays
|
|
2624
|
+
- **Centered Layout**: Use for documentation and forms
|
|
2625
|
+
- Both support dark mode with proper styling
|
|
2626
|
+
- Choose based on content type and readability requirements
|
|
2627
|
+
|
|
2628
|
+
6. **Dark Mode Considerations**
|
|
2324
2629
|
- Always test components with `.dark` class applied
|
|
2325
2630
|
- Border radius is larger in dark mode (12px vs 5px)
|
|
2326
2631
|
- Grid gutters are larger in dark mode (40px vs 20px)
|
|
2327
2632
|
- Use `dark:` prefix for conditional dark mode styles
|
|
2633
|
+
- Ensure sufficient contrast for readability
|
|
2634
|
+
- Test with actual dark mode enabled in browsers
|
|
2328
2635
|
|
|
2329
|
-
|
|
2636
|
+
7. **Form Best Practices**
|
|
2330
2637
|
- Use `.form-grid` for form layouts
|
|
2331
2638
|
- Apply `.form-group` wrapper around each field
|
|
2332
2639
|
- Use `.form-hint` for helper text
|
|
2333
2640
|
- Use `.field_with_errors` for validation states
|
|
2641
|
+
- Forms work well in both centered and full-width layouts
|
|
2334
2642
|
|
|
2335
|
-
|
|
2643
|
+
8. **Table Best Practices**
|
|
2336
2644
|
- Use `.table` for standard data tables
|
|
2337
2645
|
- Use `.table-standard` for key-value style tables
|
|
2338
2646
|
- Use `.table-cellstyle` for status tracking tables
|
|
2339
2647
|
- Use `.action-cell` for right-aligned action buttons
|
|
2648
|
+
- Tables automatically adapt to dark mode
|
|
2340
2649
|
|
|
2341
|
-
|
|
2650
|
+
9. **Page Header Best Practices**
|
|
2342
2651
|
- Use `.page-header` for dashboard/session pages
|
|
2343
2652
|
- Main card should have `.page-maincard` and `p-card-padding`
|
|
2344
2653
|
- Add `.with-chart` modifier when including charts
|
|
2345
2654
|
- Actions go in `.page-actions`
|
|
2655
|
+
- Supports dark mode styling
|
|
2346
2656
|
|
|
2347
2657
|
---
|
|
2348
2658
|
|
|
@@ -2351,13 +2661,28 @@ The design system includes comprehensive dark mode support with customized theme
|
|
|
2351
2661
|
### Version 3.22.0 - January 2026
|
|
2352
2662
|
|
|
2353
2663
|
**New Features:**
|
|
2354
|
-
-
|
|
2355
|
-
-
|
|
2356
|
-
-
|
|
2664
|
+
- ✨ Centered layout documentation and examples for improved readability
|
|
2665
|
+
- ✨ Dark mode layout examples and enhanced dark mode documentation
|
|
2666
|
+
- ✨ Centered actionbar variant for dark mode and standard layouts
|
|
2667
|
+
- ✨ Centered header styling for consistent layout patterns
|
|
2668
|
+
- ✨ HAML Preview functionality for live component viewing
|
|
2669
|
+
- ✨ HAML Converter utility for template processing
|
|
2670
|
+
- ✨ Comprehensive AI documentation across all component pages
|
|
2357
2671
|
|
|
2358
2672
|
**Enhancements:**
|
|
2359
|
-
-
|
|
2360
|
-
- Enhanced
|
|
2673
|
+
- 📐 New layout patterns section with centered and full-width examples
|
|
2674
|
+
- 🌙 Enhanced dark mode documentation with implementation examples
|
|
2675
|
+
- 📋 All component pages now include descriptions and use cases
|
|
2676
|
+
- 🎯 Updated layout documentation with max-width constraints
|
|
2677
|
+
- 🎨 Form and table components optimized for dark mode
|
|
2678
|
+
- 📝 Added layout selection guidelines for AI agents
|
|
2679
|
+
|
|
2680
|
+
**Layout Updates:**
|
|
2681
|
+
- Added `/pages/layouts/layout-centered` for centered layout examples
|
|
2682
|
+
- Added `/pages/layouts/layout-darkmode` for dark mode examples
|
|
2683
|
+
- Added `/pages/layout/centered_layout.haml` documentation
|
|
2684
|
+
- Added `/pages/layout/darkmode.haml` documentation
|
|
2685
|
+
- Added `/pages/navigation/header-centered.haml` for centered headers
|
|
2361
2686
|
- Improved layout documentation with examples
|
|
2362
2687
|
- Typography pages updated with link and icon examples
|
|
2363
2688
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<header class="header centered">
|
|
2
|
+
|
|
3
|
+
<div class="header-wrapper">
|
|
4
|
+
<div class="navlinks logo-wrapper"><a class="navlink header-logo" href="#"></a></div>
|
|
5
|
+
<div class="navlinks left">
|
|
6
|
+
<a class="navlink active" href="#">Navlink active</a>
|
|
7
|
+
<a class="navlink" href="#">Navlink</a>
|
|
8
|
+
<a class="navlink" href="#"><span class="icon icon-check-circle-filled mr-icon-spacing"></span>Navlink</a>
|
|
9
|
+
<details class="header-dropdown">
|
|
10
|
+
<summary class="navlink">Collapsable</summary>
|
|
11
|
+
<div class="dropdown-menu">
|
|
12
|
+
<a class="navlink active" href="#">Navlink active</a>
|
|
13
|
+
<a class="navlink" href="#">Navlink</a>
|
|
14
|
+
<a class="navlink" href="#"><span class="icon icon-check-circle-filled mr-icon-spacing"></span>Navlink</a>
|
|
15
|
+
</div>
|
|
16
|
+
</details>
|
|
17
|
+
</div>
|
|
18
|
+
<details class="mobile-links">
|
|
19
|
+
<summary class="mobile-menu-btn">
|
|
20
|
+
<div class="navlink"><span class="sr-only">Open main menu</span><span class="text-icon-default icon icon-menu" aria-hidden="true"></span></div>
|
|
21
|
+
</summary>
|
|
22
|
+
<div class="mobile-menu sidebar">
|
|
23
|
+
<a class="navlink active" href="#">Navlink active</a>
|
|
24
|
+
<a class="navlink" href="#">Navlink</a>
|
|
25
|
+
<a class="navlink" href="#"><span class="icon icon-check-circle-filled"></span>Navlink</a>
|
|
26
|
+
<details class="header-dropdown">
|
|
27
|
+
<summary class="navlink">Collapsable</summary>
|
|
28
|
+
<div class="dropdown-menu">
|
|
29
|
+
<a class="navlink active" href="#">Navlink active</a>
|
|
30
|
+
<a class="navlink" href="#">Navlink</a>
|
|
31
|
+
<a class="navlink" href="#"><span class="icon icon-check-circle-filled mr-icon-spacing"></span>Navlink</a>
|
|
32
|
+
</div>
|
|
33
|
+
</details>
|
|
34
|
+
</div>
|
|
35
|
+
</details>
|
|
36
|
+
<div class="navlinks right">
|
|
37
|
+
<details class="header-dropdown user-menu" href="#">
|
|
38
|
+
<summary class="btn-profile navlink">
|
|
39
|
+
<img class="user-profile" src="/assets/images/placeholders/profile_supergirl.png">
|
|
40
|
+
<div class="user-details">
|
|
41
|
+
<div class="profile-role">Admin</div>
|
|
42
|
+
<div class="profile-name">Anja Berger</div>
|
|
43
|
+
</div>
|
|
44
|
+
</summary>
|
|
45
|
+
<div class="dropdown-menu profile-dropdown">
|
|
46
|
+
<a class="dropdown-link" href="#"><span class="icon icon-user text-icon-default mr-icon-spacing"></span>Your Profile</a>
|
|
47
|
+
<a class="dropdown-link" href="#"><span class="icon icon-cog text-icon-default mr-icon-spacing"></span>Settings</a>
|
|
48
|
+
<a class="dropdown-link" href="#"><span class="icon icon-shutdown text-icon-default mr-icon-spacing"></span>Sign out</a>
|
|
49
|
+
</div>
|
|
50
|
+
</details>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</header>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
{% include "head.njk" %}
|
|
4
|
+
|
|
5
|
+
<body class="app-body">
|
|
6
|
+
{% include "header.njk" %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
<main class="page-example-container">
|
|
10
|
+
<div class="app-body">
|
|
11
|
+
{% include "example-header-centered.njk" %}
|
|
12
|
+
{{ content | safe }}
|
|
13
|
+
</div>
|
|
14
|
+
</main>
|
|
15
|
+
{% endblock %}
|
|
16
|
+
|
|
17
|
+
</body>
|
|
18
|
+
{% include "footer-scripts.njk" %}
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
{% include "head.njk" %}
|
|
4
|
+
|
|
5
|
+
<body class="app-body dark">
|
|
6
|
+
{% include "header.njk" %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
<main class="page-example-container">
|
|
10
|
+
<div class="app-body">
|
|
11
|
+
{% include "example-header.njk" %}
|
|
12
|
+
{{ content | safe }}
|
|
13
|
+
</div>
|
|
14
|
+
</main>
|
|
15
|
+
{% endblock %}
|
|
16
|
+
|
|
17
|
+
</body>
|
|
18
|
+
{% include "footer-scripts.njk" %}
|
|
19
|
+
</html>
|
|
@@ -39,3 +39,11 @@ footer.actionbar summary > .btn,
|
|
|
39
39
|
.splitview-details-actionbar summary > .btn {
|
|
40
40
|
@apply mr-0;
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
footer.actionbar.centered {
|
|
44
|
+
@apply justify-center;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
footer.actionbar.centered .content-wrapper {
|
|
48
|
+
@apply flex justify-between w-full max-w-centered-content;
|
|
49
|
+
}
|
|
@@ -225,4 +225,26 @@ details[open].header-dropdown .dropdown-menu.profile-dropdown {
|
|
|
225
225
|
-webkit-transform: translateX(20px);
|
|
226
226
|
-ms-transform: translateX(20px);
|
|
227
227
|
transform: translateX(20px);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/* Centered header */
|
|
231
|
+
|
|
232
|
+
.header.centered {
|
|
233
|
+
@apply justify-center sm:px-body-padding-tablet xl:px-body-padding-desktop;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.header.centered .header-wrapper {
|
|
237
|
+
@apply flex justify-between items-center w-full max-w-centered-content;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.header.centered .logo-wrapper {
|
|
241
|
+
@apply w-auto -ml-xs;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.header.centered .navlinks.left {
|
|
245
|
+
@apply px-spacing;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.header.centered .navlinks.right {
|
|
249
|
+
@apply pr-0;
|
|
228
250
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
tags: "forms"
|
|
3
|
-
title:
|
|
3
|
+
title: Form group
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
%p.mb-heading
|
|
6
|
+
%p.mb-heading Form groups are used to wrap labels and form controls in order to provide proper spacing and structure. They change into a vertical layout on smaller screens.
|
|
7
7
|
.form-grid
|
|
8
8
|
.form-group
|
|
9
9
|
%label.form-label Input
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: "forms"
|
|
3
|
+
title: Form group vertical
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
%p.mb-heading Form groups with vertical layout are used to wrap labels and form controls. Us them in tight spaces and narrow containers in which you can't afford the horizontal layout.
|
|
7
|
+
.form-grid
|
|
8
|
+
.form-group.vertical
|
|
9
|
+
%label.form-label Input
|
|
10
|
+
%input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
|
|
11
|
+
.form-group.vertical
|
|
12
|
+
%label.form-label.optional Not required input
|
|
13
|
+
%input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
|
|
14
|
+
.form-group.vertical
|
|
15
|
+
%label.form-label.optional-non-en{"data-optional-non-en": "(freiwillig)"} Not required input
|
|
16
|
+
%div
|
|
17
|
+
%input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
|
|
18
|
+
.form-hint For most cases you can use the english optional label, but we also added support for any translation you might need. Just add the data-optional-non-en => t(optional)
|
|
19
|
+
.form-group.vertical
|
|
20
|
+
%label.form-label Input disabled
|
|
21
|
+
%input.form-control{type:'text', value:"Some delicious readonly value text", disabled:"true"}
|
|
22
|
+
.form-grid.bg-black.p-3.mt-md
|
|
23
|
+
.form-group.vertical.inverted
|
|
24
|
+
%label.form-label Input inverted
|
|
25
|
+
%input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
|
|
26
|
+
.form-group.vertical.inverted
|
|
27
|
+
%label.form-label Input inverted disabled
|
|
28
|
+
%input.form-control{type:'text', value:"Some delicious readonly value text", disabled:"true"}
|
|
@@ -27,4 +27,6 @@ title: App layout structure
|
|
|
27
27
|
.ml-md <main class="main-content">
|
|
28
28
|
.ml-md <aside class="metasidebar">
|
|
29
29
|
.ml-md <footer class="actionbar">
|
|
30
|
-
</body">
|
|
30
|
+
</body">
|
|
31
|
+
%p.my-heading Take a look at the layout in action:
|
|
32
|
+
%a.btn.btn-primary{ href: "/pages/layouts/layout-full"} Layout example
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: layout
|
|
3
|
+
title: Centered layout
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
%p.mb-heading This is the structure of a centered application layout. In this layout all elements are centered and have a max-width to ensure optimal readability on widescreen resolutions.
|
|
7
|
+
.grid.gap-1px.p-xs.bg-card.rounded.centered.text-center
|
|
8
|
+
%p.mb-heading .app-body
|
|
9
|
+
.p-xs.pl-md.bg-petrol-dark.text-white.rounded-t .header
|
|
10
|
+
.bg-white.p-md.flex.flex-col.items-center
|
|
11
|
+
%p.mb-heading .main-content.centered
|
|
12
|
+
.bg-gray-light.py-md.max-w-capped.w-full .centered-content
|
|
13
|
+
.bg-petrol.text-white.p-xs.pl-md.rounded-b footer.actionbar.centered
|
|
14
|
+
|
|
15
|
+
%h5.mt-md HTML structure
|
|
16
|
+
%p.mb-heading The following code snippet illustrates the HTML structure of the app layout components:
|
|
17
|
+
%code
|
|
18
|
+
<body class="app-body">
|
|
19
|
+
%br
|
|
20
|
+
.ml-md <header class="header">
|
|
21
|
+
.ml-md <main class="main-content centered">
|
|
22
|
+
.ml-lg <div class="centered-content">
|
|
23
|
+
.ml-md <footer class="actionbar">
|
|
24
|
+
</body">
|
|
25
|
+
%p.my-heading Take a look at the layout in action:
|
|
26
|
+
%a.btn.btn-primary{ href: "/pages/layouts/layout-centered"} Layout example
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: layout
|
|
3
|
+
title: Darkmode
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
%p.mb-heading To use dark mode, add the class <code>dark</code> to the <code>body</code> element.
|
|
7
|
+
<body class="app-body dark">
|
|
8
|
+
%p.my-heading Take a look at the layout in action:
|
|
9
|
+
%a.btn.btn-primary{ href: "/pages/layouts/layout-darkmode"} Layout example
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: page-example-centered
|
|
3
|
+
title: "Centered"
|
|
4
|
+
tags: "layouts"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
%main.main-content.centered
|
|
8
|
+
.centered-content
|
|
9
|
+
%h1.mb-heading Layout Centered
|
|
10
|
+
%p This layout centers the content within the viewport, providing a focused and balanced design. It is ideal for pages where it's not necessary to utilize the full width of widescreen resolutions.
|
|
11
|
+
%p Make sure to use a header and actionbar with centered content to align all elements properly.
|
|
12
|
+
.card.mt-md
|
|
13
|
+
.card-body Example card to illustrate the width of the centered layout.
|
|
14
|
+
%footer.actionbar.centered
|
|
15
|
+
.content-wrapper
|
|
16
|
+
%button.btn.btn-default.btn-primary
|
|
17
|
+
%span.icon.icon-check-circle-filled.mr-icon-spacing
|
|
18
|
+
Primary
|
|
19
|
+
%button.btn.btn-default.btn-secondary
|
|
20
|
+
%span.icon.icon-check-circle-filled.mr-icon-spacing
|
|
21
|
+
Secondary
|
|
22
|
+
%button.btn.btn-default.btn-info
|
|
23
|
+
%span.icon.icon-check-circle-filled.mr-icon-spacing
|
|
24
|
+
Info
|
|
25
|
+
%button.btn-intercom
|
|
26
|
+
%span.icon.icon-intercom
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: page-example-darkmode.njk
|
|
3
|
+
title: "Darkmode"
|
|
4
|
+
tags: "layouts"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
%nav.sidebar{arialabel:'Sidebar'}
|
|
8
|
+
%a.navlink.active{href:'#'}
|
|
9
|
+
%span.navlink-badge.icon.icon-home
|
|
10
|
+
Navlink active
|
|
11
|
+
%a.navlink{href:'#'}
|
|
12
|
+
%span.navlink-badge.icon.icon-bug
|
|
13
|
+
Navlink
|
|
14
|
+
%details
|
|
15
|
+
%summary.navlink-container
|
|
16
|
+
.navlink
|
|
17
|
+
%span.navlink-badge.icon.icon-product
|
|
18
|
+
Navlink collapsable
|
|
19
|
+
%a.navlink{href:'#'}
|
|
20
|
+
%span.navlink-badge.icon.icon-test
|
|
21
|
+
Navlink children
|
|
22
|
+
%a.navlink{href:'#'}
|
|
23
|
+
%span.navlink-badge.icon.icon-test
|
|
24
|
+
Navlink children
|
|
25
|
+
%a.navlink{href:'#'}
|
|
26
|
+
%span.navlink-badge.icon.icon-test
|
|
27
|
+
Navlink children
|
|
28
|
+
%a.navlink{href:'#'}
|
|
29
|
+
%span.navlink-badge.icon.icon-test
|
|
30
|
+
Navlink children
|
|
31
|
+
%a.navlink{href:'#'}
|
|
32
|
+
%span.navlink-badge.icon.icon-bug-reproduction
|
|
33
|
+
Navlink with a long title to see how things are breaking into several lines and don't cause a broken layout
|
|
34
|
+
%main.main-content.main-content-padding
|
|
35
|
+
%h1.mb-heading Darkmode example
|
|
36
|
+
%p.mb-heading This is a layout that includes a sidebar for navigation, a metasidebar for additional information or actions, and an actionbar at the bottom for primary actions. In addition to these elements, it also features a chat container for real-time communication. This layout is ideal for applications that require multiple interactive components while maintaining a clean and organized interface.
|
|
37
|
+
%section.section
|
|
38
|
+
.grid.gap-1px.p-xs.bg-gray-lightest.rounded
|
|
39
|
+
%p .app-body
|
|
40
|
+
.p-xs.pl-md.bg-petrol-dark.text-white.rounded-top .header
|
|
41
|
+
.grid.grid-cols-2-auto-fr.gap-1px
|
|
42
|
+
.bg-petrol-dark.text-white.p-xs.pl-md.w-sidebar.rounded-bl nav.sidebar
|
|
43
|
+
.grid.gap-1px
|
|
44
|
+
.grid.grid-cols-2-fr-auto
|
|
45
|
+
.bg-white.p-xs.pl-md.h-xxl .main-content
|
|
46
|
+
.bg-gray-lighter.p-xs.pl-md.w-metasidebar aside.metasidebar
|
|
47
|
+
.bg-info.text-white.p-xs.pl-md.rounded-br .chat-container
|
|
48
|
+
.bg-petrol.text-white.p-xs.pl-md.rounded-br footer.actionbar
|
|
49
|
+
%h5.mt-md HTML structure
|
|
50
|
+
%code
|
|
51
|
+
<body class="app-body">
|
|
52
|
+
%br
|
|
53
|
+
.ml-md <header class="header">
|
|
54
|
+
.ml-md <nav class="sidebar">
|
|
55
|
+
.ml-md <main class="main-content">
|
|
56
|
+
.ml-md <aside class="metasidebar">
|
|
57
|
+
.ml-md <div class="chat-container">
|
|
58
|
+
.ml-md <footer class="actionbar">
|
|
59
|
+
</body">
|
|
60
|
+
%section.section
|
|
61
|
+
%h2.mb-heading Dummy Content
|
|
62
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
63
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
64
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
65
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
66
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
67
|
+
%aside.metasidebar
|
|
68
|
+
%details.metasidebar-wrapper{open:"true"}
|
|
69
|
+
%summary.metasidebar-btn
|
|
70
|
+
.metasidebar-content
|
|
71
|
+
%h2.metasidebar-title Metasidebar title
|
|
72
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
73
|
+
%h3.metasidebar-subheading Metasidebar subheading
|
|
74
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
75
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
76
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
77
|
+
%p Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur
|
|
78
|
+
%footer.actionbar
|
|
79
|
+
%button.btn.btn-default.btn-primary
|
|
80
|
+
%span.icon.icon-check-circle-filled.mr-icon-spacing
|
|
81
|
+
Primary action
|
|
82
|
+
%button.btn.btn-default.btn-secondary
|
|
83
|
+
%span.icon.icon-check-circle-filled.mr-icon-spacing
|
|
84
|
+
Secondary action
|
|
85
|
+
%button.btn-intercom
|
|
86
|
+
.icon.icon-intercom
|
|
87
|
+
.chat-container
|
|
88
|
+
%details.chat-window
|
|
89
|
+
%summary.chat-window-header
|
|
90
|
+
.chat-message-counter 999
|
|
91
|
+
%a{href:""} #123321
|
|
92
|
+
.chat-title Chat title
|
|
93
|
+
%button.btn.btn-xs.btn-ghost-inverted.btn-square
|
|
94
|
+
.icon.icon-xs.icon-cross
|
|
95
|
+
.list-chat-messages
|
|
96
|
+
.chat-message-item
|
|
97
|
+
%details.dropdown-actions.chat-avatar
|
|
98
|
+
%summary
|
|
99
|
+
.user-item.linked
|
|
100
|
+
%img{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
101
|
+
.popover-menu
|
|
102
|
+
%a.popover-action{href:'#'}
|
|
103
|
+
%span.icon.icon-user-story-test
|
|
104
|
+
Tester profile
|
|
105
|
+
%a.popover-action{href:'#'}
|
|
106
|
+
%span.icon.icon-review-exclamation
|
|
107
|
+
Report tester
|
|
108
|
+
.chat-header
|
|
109
|
+
%span 2 hours by
|
|
110
|
+
%span.chat-author Message sender
|
|
111
|
+
.chat-message
|
|
112
|
+
Here's a short message.
|
|
113
|
+
.chat-actions
|
|
114
|
+
.btn
|
|
115
|
+
.icon.icon-heart
|
|
116
|
+
.chat-message-item
|
|
117
|
+
%details.dropdown-actions.chat-avatar
|
|
118
|
+
%summary
|
|
119
|
+
.user-item.linked
|
|
120
|
+
%img{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
121
|
+
.popover-menu
|
|
122
|
+
%a.popover-action{href:'#'}
|
|
123
|
+
%span.icon.icon-user-story-test
|
|
124
|
+
Tester profile
|
|
125
|
+
%a.popover-action{href:'#'}
|
|
126
|
+
%span.icon.icon-review-exclamation
|
|
127
|
+
Report tester
|
|
128
|
+
.chat-header
|
|
129
|
+
%span 2 hours by
|
|
130
|
+
%span.chat-author Message sender with a much much longer name
|
|
131
|
+
.chat-message
|
|
132
|
+
Here's a short message which you liked.
|
|
133
|
+
.chat-message-addons
|
|
134
|
+
%details.popover-wrapper.dropup
|
|
135
|
+
%summary.btn
|
|
136
|
+
.icon.icon-heart-filled
|
|
137
|
+
1
|
|
138
|
+
.popover-menu.info
|
|
139
|
+
.popover-title 1 person likes this
|
|
140
|
+
.popover-content You
|
|
141
|
+
.chat-actions
|
|
142
|
+
.btn
|
|
143
|
+
.icon.icon-heart-filled
|
|
144
|
+
.chat-message-item
|
|
145
|
+
%details.dropdown-actions.chat-avatar
|
|
146
|
+
%summary
|
|
147
|
+
.user-item.linked
|
|
148
|
+
%img{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
149
|
+
.popover-menu
|
|
150
|
+
%a.popover-action{href:'#'}
|
|
151
|
+
%span.icon.icon-user-story-test
|
|
152
|
+
Tester profile
|
|
153
|
+
%a.popover-action{href:'#'}
|
|
154
|
+
%span.icon.icon-review-exclamation
|
|
155
|
+
Report tester
|
|
156
|
+
.chat-header
|
|
157
|
+
%span 2 hours by
|
|
158
|
+
%span.chat-author Message sender
|
|
159
|
+
.chat-message
|
|
160
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
|
|
161
|
+
.chat-message-addons
|
|
162
|
+
%details.popover-wrapper.dropup
|
|
163
|
+
%summary.btn
|
|
164
|
+
.icon.icon-heart-filled
|
|
165
|
+
10
|
|
166
|
+
.popover-menu.info
|
|
167
|
+
.popover-title 10 people like this
|
|
168
|
+
.popover-content Stephany77, HannaTester77, WonderTester, MerryJerryBerry, SuperTester3000, SomeTester, Torry444, UliaUsachova, TesterNumber9, TesterNumber10
|
|
169
|
+
%details.popover-wrapper.dropup
|
|
170
|
+
%summary.btn
|
|
171
|
+
.icon.icon-verify-check
|
|
172
|
+
TL
|
|
173
|
+
.popover-menu.info
|
|
174
|
+
.popover-title Verified by Team Leader
|
|
175
|
+
.popover-content Team Leader name
|
|
176
|
+
.chat-actions
|
|
177
|
+
%details.dropdown-actions.chat-message-actions
|
|
178
|
+
%summary
|
|
179
|
+
.btn
|
|
180
|
+
.icon.icon-more
|
|
181
|
+
.popover-menu
|
|
182
|
+
%a.popover-action{href:'#'}
|
|
183
|
+
%span.icon.icon-pencil
|
|
184
|
+
Action
|
|
185
|
+
%a.popover-action{href:'#'}
|
|
186
|
+
%span.icon.icon-remove
|
|
187
|
+
Action
|
|
188
|
+
.chat-message-item
|
|
189
|
+
%details.dropdown-actions.chat-avatar
|
|
190
|
+
%summary
|
|
191
|
+
.user-item.linked
|
|
192
|
+
%img{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
193
|
+
.popover-menu
|
|
194
|
+
%a.popover-action{href:'#'}
|
|
195
|
+
%span.icon.icon-user-story-test
|
|
196
|
+
Tester profile
|
|
197
|
+
%a.popover-action{href:'#'}
|
|
198
|
+
%span.icon.icon-review-exclamation
|
|
199
|
+
Report tester
|
|
200
|
+
.chat-header
|
|
201
|
+
%span 2 hours by
|
|
202
|
+
%span.chat-author Message sender with a much much longer name
|
|
203
|
+
.chat-message
|
|
204
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
|
205
|
+
.chat-actions
|
|
206
|
+
%details.dropdown-actions.chat-message-actions
|
|
207
|
+
%summary
|
|
208
|
+
.btn
|
|
209
|
+
.icon.icon-more
|
|
210
|
+
.popover-menu
|
|
211
|
+
%a.popover-action{href:'#'}
|
|
212
|
+
%span.icon.icon-pencil
|
|
213
|
+
Action
|
|
214
|
+
%a.popover-action{href:'#'}
|
|
215
|
+
%span.icon.icon-remove
|
|
216
|
+
Action
|
|
217
|
+
.chat-message-item.your-message
|
|
218
|
+
%img.chat-avatar{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
219
|
+
.chat-header
|
|
220
|
+
%span 2 hours by
|
|
221
|
+
%span.chat-author You
|
|
222
|
+
.chat-message
|
|
223
|
+
Your short chat message with no lorem ipsum.
|
|
224
|
+
.chat-actions
|
|
225
|
+
%details.dropdown-actions.chat-message-actions
|
|
226
|
+
%summary
|
|
227
|
+
.btn
|
|
228
|
+
.icon.icon-more
|
|
229
|
+
.popover-menu
|
|
230
|
+
%a.popover-action{href:'#'}
|
|
231
|
+
%span.icon.icon-pencil
|
|
232
|
+
Action
|
|
233
|
+
%a.popover-action{href:'#'}
|
|
234
|
+
%span.icon.icon-remove
|
|
235
|
+
Action
|
|
236
|
+
.chat-message-item.your-message
|
|
237
|
+
%img.chat-avatar{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
238
|
+
.chat-header
|
|
239
|
+
%span 2 hours by
|
|
240
|
+
%span.chat-author You
|
|
241
|
+
.chat-message
|
|
242
|
+
Another message by you with a lot ofLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
|
243
|
+
.chat-message-addons
|
|
244
|
+
%details.popover-wrapper.dropup
|
|
245
|
+
%summary.btn
|
|
246
|
+
.icon.icon-heart-filled
|
|
247
|
+
10
|
|
248
|
+
.popover-menu.info
|
|
249
|
+
.popover-title 10 people like this
|
|
250
|
+
.popover-content Stephany77, HannaTester77, WonderTester, MerryJerryBerry, SuperTester3000, SomeTester, Torry444, UliaUsachova, TesterNumber9, TesterNumber10
|
|
251
|
+
%details.popover-wrapper.dropup
|
|
252
|
+
%summary.btn
|
|
253
|
+
.icon.icon-verify-check
|
|
254
|
+
TL
|
|
255
|
+
.popover-menu.info
|
|
256
|
+
.popover-title Verified by Team Leader
|
|
257
|
+
.popover-content Team Leader name
|
|
258
|
+
.chat-message-item.announcement
|
|
259
|
+
%img.chat-avatar{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
260
|
+
.chat-header
|
|
261
|
+
%span 2 hours by
|
|
262
|
+
%span.chat-author Team Leader
|
|
263
|
+
.chat-message
|
|
264
|
+
.message-banner.announcement Announcement
|
|
265
|
+
%span.text-mentioned @All
|
|
266
|
+
here's an announcement with a lot of Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
|
|
267
|
+
.chat-message-addons
|
|
268
|
+
%a.btn{href:""} Show in chat
|
|
269
|
+
%details.popover-wrapper.dropup
|
|
270
|
+
%summary.btn
|
|
271
|
+
.icon.icon-heart-filled
|
|
272
|
+
10
|
|
273
|
+
.popover-menu.info
|
|
274
|
+
.popover-title 10 people like this
|
|
275
|
+
.popover-content Stephany77, HannaTester77, WonderTester, MerryJerryBerry, SuperTester3000, SomeTester, Torry444, UliaUsachova, TesterNumber9, TesterNumber10
|
|
276
|
+
%details.popover-wrapper.dropup
|
|
277
|
+
%summary.btn
|
|
278
|
+
.icon.icon-verify-check
|
|
279
|
+
TL
|
|
280
|
+
.popover-menu.info
|
|
281
|
+
.popover-title Verified by Team Leader
|
|
282
|
+
.popover-content Team Leader name
|
|
283
|
+
.chat-message-item
|
|
284
|
+
%img.chat-avatar{src:"/assets/images/placeholders/profile_supergirl.png"}
|
|
285
|
+
.chat-header
|
|
286
|
+
%span 2 hours by
|
|
287
|
+
%span.chat-author Team Leader
|
|
288
|
+
.chat-message
|
|
289
|
+
.message-banner.mentioned You were mentioned
|
|
290
|
+
%span.text-mentioned @You
|
|
291
|
+
here's an announcement with a lot of Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore.
|
|
292
|
+
.chat-message-addons
|
|
293
|
+
%details.popover-wrapper.dropup
|
|
294
|
+
%summary.btn
|
|
295
|
+
.icon.icon-heart-filled
|
|
296
|
+
10
|
|
297
|
+
.popover-menu.info
|
|
298
|
+
.popover-title 10 people like this
|
|
299
|
+
.popover-content Stephany77, HannaTester77, WonderTester, MerryJerryBerry, SuperTester3000, SomeTester, Torry444, UliaUsachova, TesterNumber9, TesterNumber10
|
|
300
|
+
%details.popover-wrapper.dropup
|
|
301
|
+
%summary.btn
|
|
302
|
+
.icon.icon-verify-check
|
|
303
|
+
TL
|
|
304
|
+
.popover-menu.info
|
|
305
|
+
.popover-title Verified by Team Leader
|
|
306
|
+
.popover-content Team Leader name
|
|
307
|
+
%form.chat-window-actions
|
|
308
|
+
%textarea.form-control{rows:'1', placeholder:"Enter your message"}
|
|
309
|
+
.btn.btn-sm.btn-square.btn-primary.btn-send-message
|
|
310
|
+
%input{type:"submit", value:""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
tags: navigation
|
|
3
|
+
title: Centered header
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
%p.mb-heading Header component with centered elements.
|
|
7
|
+
%nav.header.centered
|
|
8
|
+
.header-wrapper
|
|
9
|
+
.navlinks.logo-wrapper
|
|
10
|
+
%a.navlink.header-logo{href:'#'}
|
|
11
|
+
.navlinks.left
|
|
12
|
+
%a.navlink.active{href:'#'} Navlink active
|
|
13
|
+
%a.navlink{href:'#'} Navlink
|
|
14
|
+
%a.navlink{href:'#'}
|
|
15
|
+
%span.icon.icon-check-circle-filled
|
|
16
|
+
%span Navlink
|
|
17
|
+
%details.header-dropdown
|
|
18
|
+
%summary.navlink Collapsable
|
|
19
|
+
.dropdown-menu
|
|
20
|
+
%a.navlink{href:'#', role:'menuitem'}
|
|
21
|
+
%span.icon.icon-user
|
|
22
|
+
Dropdown-item
|
|
23
|
+
%a.navlink{href:'#', role:'menuitem'}
|
|
24
|
+
%span.icon.icon-cog
|
|
25
|
+
Dropdown-item
|
|
26
|
+
%a.navlink{href:'#', role:'menuitem'}
|
|
27
|
+
%span.icon.icon-shutdown
|
|
28
|
+
Dropdown-item with a longer text to see how things break and behave
|
|
29
|
+
%a.navlink.responsive-label{href:'#'}
|
|
30
|
+
%span.icon.icon-check-circle-filled
|
|
31
|
+
%span Responsive label
|
|
32
|
+
%details.mobile-links
|
|
33
|
+
%summary.mobile-menu-btn
|
|
34
|
+
.navlink
|
|
35
|
+
%span.sr-only Open main menu
|
|
36
|
+
%span.icon.icon-menu{ariahidden:'true'}
|
|
37
|
+
.mobile-menu.sidebar
|
|
38
|
+
%a.navlink.active{href:'#'}
|
|
39
|
+
%span.navlink-badge.icon.icon-home
|
|
40
|
+
Navlink active
|
|
41
|
+
%a.navlink{href:'#'}
|
|
42
|
+
%span.navlink-badge.icon.icon-plus
|
|
43
|
+
Add project
|
|
44
|
+
%details
|
|
45
|
+
%summary.navlink
|
|
46
|
+
%span.icon.icon-product
|
|
47
|
+
Collapsable
|
|
48
|
+
%a.navlink{href:'#'}
|
|
49
|
+
%span.icon.icon-test
|
|
50
|
+
Navlink child
|
|
51
|
+
%a.navlink{href:'#'}
|
|
52
|
+
%span.icon.icon-test
|
|
53
|
+
Navlink child
|
|
54
|
+
%a.navlink{href:'#'}
|
|
55
|
+
%span.icon.icon-test
|
|
56
|
+
Navlink child
|
|
57
|
+
%a.navlink.active{href:'#'}
|
|
58
|
+
%span.icon.icon-test
|
|
59
|
+
Active child
|
|
60
|
+
.navlinks.right
|
|
61
|
+
%details.header-dropdown.user-menu
|
|
62
|
+
%summary.btn-profile.navlink
|
|
63
|
+
%span.sr-only Open user menu
|
|
64
|
+
%img.user-profile{src:'/assets/images/placeholders/profile_supergirl.png', alt:''}
|
|
65
|
+
.user-details
|
|
66
|
+
.profile-role Admin
|
|
67
|
+
.profile-name Anja Berger
|
|
68
|
+
.dropdown-menu.profile-dropdown{role:'menu', ariaorientation:'vertical', arialabelledby:'user-menu'}
|
|
69
|
+
%a.dropdown-link{href:'#', role:'menuitem'}
|
|
70
|
+
%span.icon.icon-user
|
|
71
|
+
Your Profile
|
|
72
|
+
%a.dropdown-link{href:'#', role:'menuitem'}
|
|
73
|
+
%span.icon.icon-cog
|
|
74
|
+
Settings
|
|
75
|
+
%a.dropdown-link{href:'#', role:'menuitem'}
|
|
76
|
+
%span.icon.icon-shutdown
|
|
77
|
+
Sign out
|
|
File without changes
|