testio-tailwind 3.27.1 → 3.27.4

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.
@@ -1,3460 +1,26 @@
1
- # Test IO Tailwind Design System - AI Reference Guide
1
+ # Test IO Tailwind Design System AI Reference
2
2
 
3
- **Version:** 3.23.0
4
- **Framework:** Tailwind CSS 4.x
5
- **Package:** `testio-tailwind`
6
- **Last Updated:** February 2026
7
- **Node Version:** v23.11.0
3
+ **Version:** 3.23.0 | **Framework:** Tailwind CSS 4.x | **Package:** `testio-tailwind`
8
4
 
9
- This document serves as a comprehensive reference for AI Agents to utilize the Test IO Tailwind design system when building pages and components in other projects.
10
-
11
- ## Recent Updates (February 2026)
12
-
13
- - 📚 **AgenticQA Documentation Expansion**: Comprehensive documentation for all AgenticQA components with use cases and patterns
14
- - ✨ **Enhanced Chat Components**: Detailed documentation for chat messages, collapsable messages, history, and forms
15
- - 🎯 **Splitview Components**: Complete documentation for grouped check display with turbo-frame support
16
- - 📊 **Grid & Form Row Tables**: Comprehensive table documentation with grid layout and inline editing patterns
17
- - 📋 **List Items with Attachments**: Enhanced documentation for collapsable list items with screenshot support
18
- - 🎨 **Navigation Headers**: Complete AgenticQA header documentation with profile menu and mobile support
19
- - ✨ **Status Tracking**: Detailed status stepper and progress tracking component documentation
20
- - 📱 **Responsive Patterns**: Mobile-first responsive design patterns for all AgenticQA components
21
- - 🌙 **Dark Mode Integration**: Full dark mode support across all AgenticQA components
22
-
23
- ## Version 3.22.0 - January 2026
24
-
25
- - ✨ **Centered Layout**: New centered application layout documentation and examples
26
- - ✨ **Dark Mode Examples**: Comprehensive dark mode layout examples and documentation
27
- - ✨ **Centered Actionbar**: Added centered variant for action bars with proper styling
28
- - ✨ **Centered Header**: New header variant optimized for centered layouts
29
- - 🎨 **Layout Examples**: Added `/pages/layouts/` section with layout examples (centered, darkmode, full-width)
30
- - 📐 **Centered Content**: Proper max-width capped centered content containers
31
- - 🌙 **Dark Mode Support**: Complete dark mode documentation with implementation examples
32
- - ✨ **HAML Preview**: New HAML preview functionality for live component viewing
33
- - ✨ **HAML Converter**: Added HAML conversion utility for template processing
34
- - ✨ **AI Documentation**: Comprehensive AI documentation across all component pages
35
- - ✨ **Date & Time Picker**: Flatpickr integration for date and time selection
36
- - 📊 **Tables Reorganization**: Tables moved to dedicated `/pages/tables/` section
37
- - 🎨 **Table Striped Style**: Fixed table alternating row styling with proper dark mode support
38
- - 📝 **Component Descriptions**: All component pages now include descriptions and use cases
39
- - 🎯 **Button Documentation**: Updated button pages with detailed descriptions
40
- - 🔄 **Drawer Fixes**: Improved drawer footer padding and responsive behavior
41
- - 🛡️ **Security Updates**: Addressed npm vulnerabilities
42
- - 🔧 **Splitview Improvements**: Fixed splitview details close button and responsive behavior
43
- - 🏷️ **Image Tags**: Added support for image tagging in components
44
- - 🔧 **HAML Conversion**: Tables documentation files converted to HAML format
45
- - ✨ **Form Group Enhancements**: Added vertical form groups, form addons with text/icons, and form card component
46
- - 📋 **Form Hints**: Expanded form hints with collapsable help text and learn more triggers
47
- - 🌐 **Multi-language Support**: Added optional-non-en attribute for internationalized optional labels
48
-
49
- ---
50
-
51
- ## Table of Contents
52
- 1. [Installation & Setup](#installation--setup)
53
- 2. [Component Library Structure](#component-library-structure)
54
- 3. [Color System](#color-system)
55
- 4. [Typography](#typography)
56
- 5. [Spacing & Layout](#spacing--layout)
57
- 6. [Layout Patterns](#layout-patterns)
58
- 7. [Button Components](#button-components)
59
- 8. [Card Components](#card-components)
60
- 9. [Form Components](#form-components)
61
- 10. [Overlay Components (Modal & Drawer)](#overlay-components-modal--drawer)
62
- 11. [Page Layout Components](#page-layout-components)
63
- 12. [Navigation Components](#navigation-components)
64
- 13. [Feedback Components](#feedback-components)
65
- 14. [Data Display Components](#data-display-components)
66
- 15. [List Components](#list-components)
67
- 16. [Splitview Components](#splitview-components)
68
- 17. [Chat Components](#chat-components)
69
- 18. [Chart Components](#chart-components)
70
- 19. [Status & Progress Components](#status--progress-components)
71
- 20. [Utility Components](#utility-components)
72
- 21. [AgenticQA Components](#agenticqa-components)
73
- 22. [Dark Mode](#dark-mode)
74
- 23. [Best Practices for AI Agents](#best-practices-for-ai-agents)
75
-
76
- ---
77
-
78
- ## Installation & Setup
79
-
80
- ### NPM Installation
81
- ```bash
82
- npm install testio-tailwind
83
- ```
84
-
85
- ### CSS Import
86
- ```css
87
- @import 'testio-tailwind/dist/static/app.compiled.css';
88
- ```
89
-
90
- ### JavaScript Import
91
- ```javascript
92
- import 'testio-tailwind/dist/static/app.bundled.js';
93
- ```
94
-
95
- ---
96
-
97
- ## Component Library Structure
98
-
99
- The design system includes a comprehensive component library organized by category. All components are documented with live examples in the `src/pages/` directory.
100
-
101
- ### Directory Organization
102
-
103
- ```
104
- src/pages/
105
- ├── agenticqa/ # AgenticQA-specific components
106
- │ ├── assets.haml
107
- │ ├── chat_*.haml # Chat variants
108
- │ ├── header.haml
109
- │ ├── listitem.haml
110
- │ ├── pageheader.haml
111
- │ ├── splitview_items.haml
112
- │ ├── status_stepper.haml
113
- │ └── tables-*.haml
114
- ├── buttons/ # Button components and variants
115
- │ ├── buttons.haml # Standard buttons
116
- │ ├── buttons-sm.haml # Small buttons
117
- │ ├── buttons-lg.haml # Large buttons
118
- │ ├── buttons-xl.haml # Extra large buttons
119
- │ ├── buttons-round.haml
120
- │ ├── square-buttons.haml
121
- │ ├── block.haml
122
- │ ├── button_group.haml
123
- │ ├── buttons_input.haml
124
- │ └── dropdown-menu.haml
125
- ├── charts/ # ECharts data visualization
126
- │ ├── area.haml
127
- │ ├── bar_horizontal.haml
128
- │ ├── bar_vertical.haml
129
- │ ├── colors.haml
130
- │ ├── donut.haml
131
- │ ├── gauge.haml
132
- │ ├── legend.haml
133
- │ └── line.haml
134
- ├── components/ # UI components
135
- │ ├── alerts.haml
136
- │ ├── cards.haml
137
- │ ├── cards_*.haml # Card variants
138
- │ ├── chat_window.haml
139
- │ ├── drawer.haml
140
- │ ├── drawer_filter.haml
141
- │ ├── emptystate.haml
142
- │ ├── info_popover.haml
143
- │ ├── listitems.haml
144
- │ ├── listitems_*.haml # List item variants
145
- │ ├── loading_spinner.haml
146
- │ ├── modal_details.haml
147
- │ ├── notifications.haml
148
- │ ├── pagination.haml
149
- │ ├── progress.haml
150
- │ ├── splitview_*.haml
151
- │ └── tags.haml
152
- ├── forms/ # Form components
153
- │ ├── forms.haml # Basic inputs
154
- │ ├── checkboxes.haml
155
- │ ├── radiobuttons.haml
156
- │ ├── toggle-switch.haml
157
- │ ├── toggle-buttons.haml
158
- │ ├── select2.haml
159
- │ ├── tomselect.haml
160
- │ ├── flatpickr.haml # Date/time picker
161
- │ ├── date-time.haml
162
- │ ├── textarea.haml
163
- │ ├── rating_scale.haml
164
- │ ├── selectable_token.haml
165
- │ └── form_grid.haml
166
- ├── layout/ # Layout utilities
167
- │ ├── app_layout.haml
168
- │ ├── spacing.haml
169
- │ ├── paddings.haml
170
- │ ├── margins.haml
171
- │ ├── max_width.haml
172
- │ ├── centered_layout.haml # Centered layout documentation
173
- │ └── darkmode.haml # Dark mode layout documentation
174
- ├── layouts/ # Full layout examples
175
- │ ├── layout-full.haml
176
- │ ├── layout-centered.haml # Centered layout example
177
- │ └── layout-darkmode.haml # Dark mode layout example
178
- ├── navigation/ # Navigation components
179
- │ ├── header.haml
180
- │ ├── header_*.haml # Portal-specific headers
181
- │ ├── header-centered.haml # Centered layout header
182
- │ ├── sidebar.haml
183
- │ ├── sidebar_*.haml # Portal-specific sidebars
184
- │ ├── tabnavigation.haml
185
- │ ├── tabnavigation_*.haml
186
- │ └── radio_tabs.haml
187
- ├── tables/ # Table components
188
- │ ├── tables.haml
189
- │ ├── tables_alternating.haml
190
- │ ├── tables_borders.haml
191
- │ ├── tables_cells.haml
192
- │ ├── tables_footer.haml
193
- │ ├── tables_header.haml
194
- │ ├── tables_linked.haml
195
- │ ├── tables-cellstyle.haml
196
- │ └── tables-grid.haml
197
- └── typography/ # Typography examples
198
- ├── headings.haml
199
- ├── section_header.haml
200
- └── text_with_icon.haml
201
- ```
202
-
203
- ### How to Use Components
204
-
205
- #### 1. **View Live Examples**
206
- All components have live documentation available at the local development server:
207
- ```bash
208
- npm start
209
- # Visit: http://localhost:8080/buttons/
210
- # Visit: http://localhost:8080/components/
211
- # Visit: http://localhost:8080/forms/
212
- # Visit: http://localhost:8080/tables/
213
- # Visit: http://localhost:8080/charts/
214
- # Visit: http://localhost:8080/layout/
215
- ```
216
-
217
- #### 2. **Layout Examples**
218
- Complete layout examples with live previews:
219
- ```
220
- # Full-width layout example
221
- http://localhost:8080/pages/layouts/layout-full
222
-
223
- # Centered layout example (recommended for documentation and forms)
224
- http://localhost:8080/pages/layouts/layout-centered
225
-
226
- # Dark mode layout example
227
- http://localhost:8080/pages/layouts/layout-darkmode
228
- ```
229
-
230
- **Layout Documentation:**
231
- - [centered_layout.haml](src/pages/layout/centered_layout.haml) - Centered layout structure and documentation
232
- - [darkmode.haml](src/pages/layout/darkmode.haml) - Dark mode implementation guide
233
-
234
- #### 3. **HAML to HTML Reference**
235
-
236
- ```haml
237
- <!-- HAML -->
238
- %button.btn.btn-primary{type:'submit', disabled:''}
239
- %i.icon.icon-save.mr-xs
240
- Save Changes
241
-
242
- <!-- Renders as -->
243
- <button class="btn btn-primary" type="submit" disabled="">
244
- <i class="icon icon-save mr-xs"></i>
245
- Save Changes
246
- </button>
247
- ```
248
-
249
- **HAML Attribute Format:**
250
- - Use curly braces for attributes: `{key:'value'}`
251
- - Boolean attributes: `{checked:''}` or `{disabled:''}`
252
- - Multiple attributes: `{type:'checkbox', id:'check1'}`
253
-
254
- ---
255
-
256
- ## Color System
257
-
258
- ### Semantic Colors
259
- Use these color utilities for consistent semantic meaning:
260
-
261
- ```html
262
- <!-- Primary Actions -->
263
- <div class="bg-primary text-white">Primary action</div>
264
- <div class="bg-link text-white">Link color</div>
265
-
266
- <!-- Status Colors -->
267
- <div class="bg-success text-white">Success state</div>
268
- <div class="bg-danger text-white">Error/danger state</div>
269
- <div class="bg-info text-white">Information</div>
270
- <div class="bg-blocked text-white">Warning/blocked</div>
271
- <div class="bg-pending text-gray-darker">Pending state</div>
272
-
273
- <!-- Functional Colors -->
274
- <div class="bg-appbody text-appbody-textcolor">App background</div>
275
- <div class="bg-card">Card background</div>
276
- <div class="bg-header text-white">Header background</div>
277
- <div class="bg-listitem">List item background</div>
278
- <div class="bg-actionbar">Action bar (dark)</div>
279
- <div class="border-bordercolor">Standard border</div>
280
- ```
281
-
282
- ### Color Palette
283
-
284
- **Grays:** `gray-100` through `gray-900`, plus `gray-lightest`, `gray-lighter`, `gray-light`, `gray-dark`, `gray-darker`, `gray-darkest`
285
-
286
- **Brand Colors:**
287
- - **Primary (Petrol):** `petrol` (#236a84 light, #78eac1 dark)
288
- - **Success:** `green` (#8cbd24 light, #33BA9E dark)
289
- - **Danger/Critical:** `red` (#ec0404 light, #FF3131 dark)
290
- - **Warning:** `orange` (#f48d21)
291
- - **Info:** `blue` (#326dd1)
292
- - **Accent Colors:** `teal`, `purple`, `pink`, `yellow`
293
-
294
- **Priority Levels:**
295
- - `critical` - Red (#FF3131)
296
- - `high` - Yellow (#d8ce0d)
297
- - `low` - Gray (#9fa2a8)
298
-
299
- **Issue Types:**
300
- - `visual` - Orange (#f48d21)
301
- - `content` - Blue (#326dd1)
302
- - `usability` - Petrol dark (#263340)
303
-
304
- ---
305
-
306
- ## Typography
307
-
308
- ### Font Families
309
- - **Body/Sans:** `font-sans` - Source Sans 3
310
- - **Monospace:** `font-mono` - Source Code Pro
311
-
312
- ### Headings
313
- ```html
314
- <h1 class="text-heading-1 font-light">Main Title (2.25rem)</h1>
315
- <h2 class="text-heading-2 font-light">Section Title (1.875rem)</h2>
316
- <h3 class="text-heading-3 font-light">Subsection (1.563rem)</h3>
317
- <h4 class="text-heading-4 font-light">Sub-heading (1.375rem)</h4>
318
- <h5 class="text-heading-5 font-light">Minor heading (1.125rem)</h5>
319
- <h6 class="text-heading-6 font-light">Smallest heading (1rem)</h6>
320
- ```
321
-
322
- ### Display Text
323
- ```html
324
- <h1 class="text-display-1 font-extralight">Hero Text (3.25rem)</h1>
325
- <h2 class="text-display-2 font-extralight">Large Display (3rem)</h2>
326
- <h3 class="text-display-3 font-extralight">Medium Display (2.75rem)</h3>
327
- <h4 class="text-display-4 font-extralight">Small Display (2.5rem)</h4>
328
- ```
329
-
330
- ### Body Text Sizes
331
- ```html
332
- <p class="text-base">Base text (0.875rem - default)</p>
333
- <p class="text-lg">Large text (1.25rem)</p>
334
- <p class="text-sm">Small text (0.813rem)</p>
335
- <p class="text-xs">Extra small (0.6875rem)</p>
336
- <p class="text-xxs">Tiny text (0.625rem)</p>
337
- ```
338
-
339
- ### Labels & Special Text
340
- ```html
341
- <label class="text-label">Form Label (0.8125rem, 0.75rem in dark)</label>
342
- <label class="text-label-sm">Small Label (0.75rem)</label>
343
- <h3 class="text-card-header">Card Header (1.125rem in dark)</h3>
344
- ```
345
-
346
- ---
347
-
348
- ## Spacing & Layout
349
-
350
- ### Spacing Scale
351
- - `xxs` - 0.3125rem (5px)
352
- - `xs` - 0.625rem (10px)
353
- - `sm` - 0.9375rem (15px)
354
- - `md` - 1.25rem (20px)
355
- - `spacing` - 1.875rem (30px) - **base unit**
356
- - `lg` - 3.125rem (50px)
357
- - `xl` - 3.75rem (60px)
358
- - `xxl` - 5.625rem (90px)
359
-
360
- ### Common Spacing Patterns
361
- ```html
362
- <!-- Padding -->
363
- <div class="p-md">Standard padding (20px)</div>
364
- <div class="p-card-padding">Card padding (30px)</div>
365
- <div class="px-md py-sm">Mixed padding</div>
366
-
367
- <!-- Margins -->
368
- <div class="mb-spacing">Standard margin bottom (30px)</div>
369
- <div class="mt-xxs">Tiny margin top (5px)</div>
370
- <div class="mb-heading">Bottom margin for headings</div>
371
-
372
- <!-- Gaps (for flexbox/grid) -->
373
- <div class="flex gap-xs">Flex with 10px gap</div>
374
- <div class="grid gap-grid-gutter">Grid with gutter (20px light, 40px dark)</div>
375
- ```
376
-
377
- ### Breakpoints
378
- ```css
379
- xs: 30rem (480px)
380
- sm: 640px (default Tailwind)
381
- md: 768px (default Tailwind)
382
- lg: 70rem (1120px)
383
- xl: 90rem (1440px)
384
- 2xl: 100rem (1600px)
385
- 3xl: 1930px
386
- ```
387
-
388
- ---
389
-
390
- ## Layout Patterns
391
-
392
- ### Standard Application Layout Structure
393
- The application uses a consistent layout structure across all pages:
394
-
395
- ```html
396
- <body class="app-body">
397
- <header class="header">
398
- <!-- Navigation and branding -->
399
- </header>
400
- <main class="main-content">
401
- <!-- Page content -->
402
- </main>
403
- <footer class="actionbar">
404
- <!-- Actions and controls -->
405
- </footer>
406
- </body>
407
- ```
408
-
409
- ### Full-Width Layout
410
- Standard layout with content spanning the full width of the viewport:
411
-
412
- ```html
413
- <body class="app-body">
414
- <header class="header">
415
- <!-- Full-width header -->
416
- </header>
417
- <main class="main-content">
418
- <div class="page-content">
419
- <!-- Content fills available space -->
420
- </div>
421
- </main>
422
- <footer class="actionbar">
423
- <!-- Full-width footer -->
424
- </footer>
425
- </body>
426
- ```
427
-
428
- **Use Case:** Dashboard layouts, full-width data displays, and responsive mobile views.
429
-
430
- ### Centered Layout
431
- Centered layout with max-width constraints for optimal readability on widescreen screens:
432
-
433
- ```html
434
- <body class="app-body">
435
- <header class="header">
436
- <!-- Centered header -->
437
- </header>
438
- <main class="main-content centered">
439
- <div class="centered-content">
440
- <!-- Content centered with max-width -->
441
- </div>
442
- </main>
443
- <footer class="actionbar centered">
444
- <!-- Centered footer -->
445
- </footer>
446
- </body>
447
- ```
448
-
449
- **Key Classes:**
450
- - `.main-content.centered` - Centers the main content
451
- - `.centered-content` - Wrapper for centered content with max-width constraint
452
- - `.actionbar.centered` - Centered variant of action bar
453
-
454
- **Use Case:** Documentation pages, information displays, form submissions, and content with optimal line length requirements.
455
-
456
- **Max-Width Values:**
457
- - `.max-w-capped` - Standard max-width for centered content (typically 800px)
458
- - Ensures readability on widescreen displays while maintaining responsive behavior
459
-
460
- **Example Centered Actionbar:**
461
- ```html
462
- <footer class="actionbar centered">
463
- <div class="flex justify-center gap-md">
464
- <button class="btn btn-secondary">Cancel</button>
465
- <button class="btn btn-primary">Submit</button>
466
- </div>
467
- </footer>
468
- ```
469
-
470
- ---
471
-
472
- ## Button Components
473
-
474
- ### Basic Buttons
475
- ```html
476
- <!-- Primary button -->
477
- <button class="btn btn-primary">Primary Action</button>
478
-
479
- <!-- Secondary (outline) button -->
480
- <button class="btn btn-secondary">Secondary Action</button>
481
-
482
- <!-- Ghost button (no border/background) -->
483
- <button class="btn btn-ghost">Ghost Action</button>
484
-
485
- <!-- Link button (text style) -->
486
- <button class="btn btn-link">Link Style</button>
487
-
488
- <!-- Dashed border button -->
489
- <button class="btn btn-dashed">Add New</button>
490
- ```
491
-
492
- ### Semantic Button Variants
493
- ```html
494
- <button class="btn btn-success">Success Action</button>
495
- <button class="btn btn-danger">Delete/Danger</button>
496
- <button class="btn btn-warning">Warning Action</button>
497
- <button class="btn btn-info">Info Action</button>
498
- ```
499
-
500
- ### Button Sizes
501
- ```html
502
- <!-- Small button -->
503
- <button class="btn btn-sm btn-primary">Small</button>
504
-
505
- <!-- Default button (h-btn = 2.5rem/40px) -->
506
- <button class="btn btn-primary">Default</button>
507
-
508
- <!-- Large button (for icon buttons) -->
509
- <button class="btn btn-lg btn-primary">
510
- <i class="icon icon-star"></i>
511
- </button>
512
-
513
- <!-- Extra large button with label -->
514
- <button class="btn btn-xl btn-primary">
515
- <i class="icon icon-upload"></i>
516
- Upload
517
- </button>
518
- ```
519
-
520
- ### Button Shapes
521
- ```html
522
- <!-- Square icon button -->
523
- <button class="btn btn-square btn-primary">
524
- <i class="icon icon-search"></i>
525
- </button>
526
-
527
- <!-- Circle button -->
528
- <button class="btn btn-circle btn-primary">
529
- <i class="icon icon-add"></i>
530
- </button>
531
-
532
- <!-- Block button (full width) -->
533
- <button class="btn btn-block btn-primary">Full Width</button>
534
- ```
535
-
536
- ### Inverted Buttons (for dark backgrounds)
537
- ```html
538
- <div class="bg-actionbar p-md">
539
- <button class="btn btn-primary-inverted">Primary Inverted</button>
540
- <button class="btn btn-inverted">Inverted</button>
541
- <button class="btn btn-secondary-inverted">Secondary Inverted</button>
542
- <button class="btn btn-outline-primary-inverted">Outline Primary Inverted</button>
543
- <button class="btn btn-ghost-inverted">Ghost Inverted</button>
544
- </div>
545
- ```
546
-
547
- ### Buttons with Icons
548
- ```html
549
- <button class="btn btn-primary">
550
- <i class="icon icon-save mr-icon-spacing"></i>
551
- Save Changes
552
- </button>
553
-
554
- <button class="btn btn-secondary">
555
- <i class="icon icon-download mr-icon-spacing"></i>
556
- Download
557
- </button>
558
- ```
559
-
560
- ### Dropdown Menu Button
561
- ```html
562
- <details class="dropdown-actions">
563
- <summary>
564
- <div class="btn btn-square btn-primary">
565
- <span class="icon icon-more"></span>
566
- </div>
567
- </summary>
568
- <div class="popover-menu">
569
- <a class="popover-action" href="#">
570
- <span class="icon icon-pencil"></span>
571
- Edit
572
- </a>
573
- <a class="popover-action" href="#">
574
- <span class="icon icon-duplicate"></span>
575
- Duplicate
576
- </a>
577
- <a class="popover-action" href="#">
578
- <span class="icon icon-remove"></span>
579
- Delete
580
- </a>
581
- </div>
582
- </details>
583
-
584
- <!-- Direction variants -->
585
- <details class="dropdown-actions dropright"><!-- Opens to right --></details>
586
- <details class="dropdown-actions dropup dropright"><!-- Opens up and right --></details>
587
- ```
588
-
589
- ### Button Groups
590
- ```html
591
- <div class="btn-group">
592
- <button class="btn btn-primary">Left</button>
593
- <button class="btn btn-primary">Center</button>
594
- <button class="btn btn-primary">Right</button>
595
- </div>
596
- ```
597
-
598
- ---
599
-
600
- ## Card Components
601
-
602
- ### Basic Card Structure
603
- ```html
604
- <div class="card">
605
- <div class="card-header">
606
- <h3 class="card-title">Card Title</h3>
607
- </div>
608
- <div class="card-body">
609
- <p>Card content goes here</p>
610
- </div>
611
- <div class="card-footer">
612
- <button class="btn btn-primary btn-block">Action</button>
613
- <button class="btn btn-secondary btn-block">Cancel</button>
614
- </div>
615
- </div>
616
- ```
617
-
618
- ### Card Sizes
619
- ```html
620
- <!-- Small card (11.25rem on sm+ screens) -->
621
- <div class="card card-sm">...</div>
622
-
623
- <!-- Medium card (17.5rem) -->
624
- <div class="card card-md">...</div>
625
-
626
- <!-- Large card (23.75rem) -->
627
- <div class="card card-lg">...</div>
628
- ```
629
-
630
- ### Card Variants
631
- ```html
632
- <!-- Highlighted card (info blue background) -->
633
- <div class="card highlight">...</div>
634
-
635
- <!-- Card with highlighted header only -->
636
- <div class="card">
637
- <div class="card-header highlight">
638
- <h3 class="card-title">Highlighted Header</h3>
639
- </div>
640
- <div class="card-body">Regular content</div>
641
- </div>
642
-
643
- <!-- Card with image -->
644
- <div class="card">
645
- <img src="image.jpg" alt="Card image" class="card-image">
646
- <div class="card-header">
647
- <h3 class="card-title">Card with Image</h3>
648
- </div>
649
- <div class="card-body">Content</div>
650
- </div>
651
-
652
- <!-- Card with icon header -->
653
- <div class="card">
654
- <div class="card-icon-header">
655
- <i class="icon icon-star"></i>
656
- </div>
657
- <div class="card-body">
658
- <h3 class="card-title">Icon Card</h3>
659
- <p>Content below icon</p>
660
- </div>
661
- </div>
662
-
663
- <!-- Centered card content -->
664
- <div class="card text-center">...</div>
665
- ```
666
-
667
- ### Card with Info Popover
668
- ```html
669
- <div class="card">
670
- <details class="popover-wrapper dropright card-info-popover">
671
- <summary>
672
- <div class="btn btn-sm btn-square">
673
- <div class="icon icon-info"></div>
674
- </div>
675
- </summary>
676
- <div class="popover-menu info">
677
- <div class="popover-title">Popover title</div>
678
- <div class="popover-content">Popover content...</div>
679
- </div>
680
- </details>
681
- <div class="card-header">
682
- <h3 class="card-title">Card with info popover</h3>
683
- </div>
684
- <div class="card-body">Content</div>
685
- </div>
686
- ```
687
-
688
- ### Card Layouts
689
- ```html
690
- <!-- Grid of cards (responsive) -->
691
- <div class="grid-cards">
692
- <div class="card">...</div>
693
- <div class="card">...</div>
694
- <div class="card">...</div>
695
- </div>
696
-
697
- <!-- List of cards (horizontal wrap) -->
698
- <div class="list-cards">
699
- <div class="card card-sm">...</div>
700
- <div class="card card-sm">...</div>
701
- </div>
702
-
703
- <!-- Achievements grid (6 columns on 2xl screens) -->
704
- <div class="grid-cards-achievements">
705
- <div class="card">...</div>
706
- </div>
707
- ```
708
-
709
- ---
710
-
711
- ## Form Components
712
-
713
- ### Form Group Structure
714
-
715
- #### Horizontal Form Group (Default)
716
- ```html
717
- <div class="form-group">
718
- <label class="form-label">Email Address</label>
719
- <input type="email" class="form-control" placeholder="Enter email">
720
- </div>
721
-
722
- <!-- Optional field -->
723
- <div class="form-group">
724
- <label class="form-label optional">Phone Number</label>
725
- <input type="tel" class="form-control">
726
- </div>
727
-
728
- <!-- Optional field with custom translation -->
729
- <div class="form-group">
730
- <label class="form-label optional-non-en" data-optional-non-en="(freiwillig)">Phone Number</label>
731
- <input type="tel" class="form-control">
732
- </div>
733
-
734
- <!-- Inverted (for dark backgrounds) -->
735
- <div class="form-group inverted">
736
- <label class="form-label">Email Address</label>
737
- <input type="email" class="form-control" placeholder="Enter email">
738
- </div>
739
- ```
740
-
741
- #### Vertical Form Group
742
- Use vertical form groups in tight spaces and narrow containers where horizontal layout cannot fit:
743
-
744
- ```html
745
- <div class="form-group vertical">
746
- <label class="form-label">Email Address</label>
747
- <input type="email" class="form-control" placeholder="Enter email">
748
- </div>
749
-
750
- <!-- Optional field with custom translation -->
751
- <div class="form-group vertical">
752
- <label class="form-label optional-non-en" data-optional-non-en="(freiwillig)">Phone Number</label>
753
- <input type="tel" class="form-control">
754
- </div>
755
-
756
- <!-- Inverted (for dark backgrounds) -->
757
- <div class="form-group vertical inverted">
758
- <label class="form-label">Email Address</label>
759
- <input type="email" class="form-control" placeholder="Enter email">
760
- </div>
761
- ```
762
-
763
- ### Form Inputs
764
- ```html
765
- <!-- Text input -->
766
- <input type="text" class="form-control" placeholder="Enter text">
767
-
768
- <!-- Textarea -->
769
- <textarea class="form-control" rows="4" placeholder="Enter description"></textarea>
770
-
771
- <!-- Disabled input -->
772
- <input type="text" class="form-control" disabled value="Read only">
773
-
774
- <!-- With validation error -->
775
- <div class="form-group">
776
- <label class="form-label">Username</label>
777
- <div class="field_with_errors">
778
- <input type="text" class="form-control">
779
- </div>
780
- <div class="form-hint error">Username is required</div>
781
- </div>
782
- ```
783
-
784
- ### Form Hints
785
- ```html
786
- <!-- Standard hint -->
787
- <div class="form-hint">This field is optional</div>
788
-
789
- <!-- Error hint -->
790
- <div class="form-hint error">Please enter a valid email</div>
791
- ```
792
-
793
- #### Collapsable Form Hints
794
- ```html
795
- <!-- Collapsable form hint with learn more trigger -->
796
- <div class="form-group">
797
- <label class="form-label">Your Project</label>
798
- <div class="col">
799
- <input class="form-control" type="text" placeholder="Some delicious placeholder text">
800
- <details class="form-hint-collapsable">
801
- <summary>
802
- <div class="form-hint">
803
- <span>
804
- This is a help text.
805
- <span class="form-hint-trigger form-hint-collapsed-text">Learn more</span>
806
- <span class="form-hint-trigger form-hint-expanded-text">Close</span>
807
- </span>
808
- </div>
809
- </summary>
810
- <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>
811
- </details>
812
- </div>
813
- </div>
814
- ```
815
-
816
- ### Form Grid Layout
817
- ```html
818
- <!-- Standard form grid -->
819
- <div class="form-grid">
820
- <div class="form-group">...</div>
821
- <div class="form-group">...</div>
822
- </div>
823
-
824
- <!-- Single column form grid -->
825
- <div class="form-grid single">
826
- <div class="form-group">...</div>
827
- </div>
828
-
829
- <!-- Narrow single column -->
830
- <div class="form-grid single narrow">
831
- <div class="form-group">...</div>
832
- </div>
833
- ```
834
-
835
- ### Checkboxes
836
- ```html
837
- <!-- Default checkbox -->
838
- <div class="form-check">
839
- <input id="check1" type="checkbox">
840
- <label for="check1">Checkbox</label>
841
- </div>
842
-
843
- <!-- Checked checkbox -->
844
- <div class="form-check">
845
- <input id="check2" type="checkbox" checked="true">
846
- <label for="check2">Checked</label>
847
- </div>
848
-
849
- <!-- Small checkbox -->
850
- <div class="form-check sm">
851
- <input id="check3" type="checkbox">
852
- <label for="check3">Checkbox SM</label>
853
- </div>
854
-
855
- <!-- Disabled checkbox -->
856
- <div class="form-check disabled">
857
- <input id="check4" type="checkbox" disabled="true">
858
- <label for="check4">Disabled</label>
859
- </div>
860
-
861
- <!-- With error state -->
862
- <div class="form-check">
863
- <div class="field_with_errors">
864
- <input id="check5" type="checkbox">
865
- </div>
866
- <label for="check5">Checkbox with error</label>
867
- </div>
868
-
869
- <!-- Inverted (for dark backgrounds) -->
870
- <div class="form-check inverted">
871
- <input id="check6" type="checkbox">
872
- <label for="check6">Inverted</label>
873
- </div>
874
- ```
875
-
876
- ### Radio Buttons
877
- ```html
878
- <!-- Radio group -->
879
- <div class="form-radio">
880
- <input id="radio1" type="radio" name="radio-group" value="1" checked="true">
881
- <label for="radio1">Option 1</label>
882
- </div>
883
- <div class="form-radio">
884
- <input id="radio2" type="radio" name="radio-group" value="2">
885
- <label for="radio2">Option 2</label>
886
- </div>
887
- <div class="form-radio">
888
- <input id="radio3" type="radio" name="radio-group" value="3">
889
- <label for="radio3">Option 3</label>
890
- </div>
891
-
892
- <!-- Small radio -->
893
- <div class="form-radio sm">
894
- <input id="radio4" type="radio" name="radio-sm" value="1">
895
- <label for="radio4">SM Option 1</label>
896
- </div>
897
-
898
- <!-- Disabled radio -->
899
- <div class="form-radio disabled">
900
- <input id="radio5" type="radio" name="radio-group" value="4" disabled="true">
901
- <label for="radio5">Disabled</label>
902
- </div>
903
-
904
- <!-- Inverted (for dark backgrounds) -->
905
- <div class="form-radio inverted">
906
- <input id="radio6" type="radio" name="radio-inv" value="1">
907
- <label for="radio6">Inverted Option</label>
908
- </div>
909
- ```
910
-
911
- ### Toggle Switch
912
- ```html
913
- <!-- Toggle switch -->
914
- <div class="form-toggle">
915
- <label class="toggle-switch" for="toggle1">
916
- <input id="toggle1" type="checkbox">
917
- <span class="slider"></span>
918
- </label>
919
- <label class="toggle-switch-label" for="toggle1">Toggle Switch</label>
920
- </div>
921
-
922
- <!-- Active toggle -->
923
- <div class="form-toggle">
924
- <label class="toggle-switch" for="toggle2">
925
- <input id="toggle2" type="checkbox" checked="true">
926
- <span class="slider"></span>
927
- </label>
928
- <label class="toggle-switch-label" for="toggle2">Active Toggle</label>
929
- </div>
930
-
931
- <!-- Small toggle -->
932
- <div class="form-toggle sm">
933
- <label class="toggle-switch" for="toggle3">
934
- <input id="toggle3" type="checkbox">
935
- <span class="slider"></span>
936
- </label>
937
- <label class="toggle-switch-label" for="toggle3">Toggle SM</label>
938
- </div>
939
-
940
- <!-- Disabled toggle -->
941
- <div class="form-toggle">
942
- <label class="toggle-switch disabled" for="toggle4">
943
- <input id="toggle4" type="checkbox" disabled="disabled">
944
- <span class="slider"></span>
945
- </label>
946
- <label class="toggle-switch-label" for="toggle4">Disabled</label>
947
- </div>
948
- ```
949
-
950
- ### Select Inputs
951
-
952
- #### Native Select
953
- ```html
954
- <select class="form-control">
955
- <option>Choose an option</option>
956
- <option value="1">Option 1</option>
957
- <option value="2">Option 2</option>
958
- </select>
959
- ```
960
-
961
- #### Select2 Enhanced Select
962
- ```html
963
- <div class="form-group form-select">
964
- <label class="form-label">Select</label>
965
- <select class="select2" placeholder="Please select">
966
- <option value="Option 1">Option 1</option>
967
- <option value="Option 2">Option 2</option>
968
- <option value="Option 3">Option 3</option>
969
- </select>
970
- </div>
971
-
972
- <!-- Multi-select -->
973
- <div class="form-group multi-select">
974
- <label class="form-label">Select multiple</label>
975
- <select class="select2" multiple="true" placeholder="Please select">
976
- <option>Option 1</option>
977
- <option>Option 2</option>
978
- <option>Option 3</option>
979
- </select>
980
- </div>
981
-
982
- <!-- With optgroup -->
983
- <div class="form-group form-select">
984
- <label class="form-label">Optgroup select</label>
985
- <select class="select2" placeholder="Please select">
986
- <optgroup label="Category Label">
987
- <option>Option 1</option>
988
- <option>Option 2</option>
989
- </optgroup>
990
- </select>
991
- </div>
992
- ```
993
-
994
- #### Tom Select Enhanced Select
995
- ```html
996
- <div class="form-group form-select">
997
- <label class="form-label">Select</label>
998
- <select class="tom-select" placeholder="Please select">
999
- <option value=""></option>
1000
- <option value="Option 1">Option 1</option>
1001
- <option value="Option 2">Option 2</option>
1002
- </select>
1003
- </div>
1004
-
1005
- <!-- Multi-select -->
1006
- <div class="form-group multi-select">
1007
- <label class="form-label">Select multiple</label>
1008
- <select class="tom-select-multi" multiple="true" placeholder="Please select">
1009
- <option>Option 1</option>
1010
- <option>Option 2</option>
1011
- </select>
1012
- </div>
1013
- ```
1014
-
1015
- ### Date & Time Picker (Flatpickr)
1016
- ```html
1017
- <!-- Date picker -->
1018
- <div class="form-group">
1019
- <label class="form-label">Select Date</label>
1020
- <div class="form-date">
1021
- <input class="form-control flatpickr" type="date" placeholder="Choose a date">
1022
- </div>
1023
- </div>
1024
-
1025
- <!-- Date and time picker -->
1026
- <div class="form-group">
1027
- <label class="form-label">Select Date & Time</label>
1028
- <div class="form-date">
1029
- <input class="form-control flatpickr-time" type="datetime-local" placeholder="Choose date and time">
1030
- </div>
1031
- </div>
1032
- ```
1033
-
1034
- ### Selectable Tokens
1035
- ```html
1036
- <ul class="list-inline flex">
1037
- <li class="selectable-token">
1038
- <input id="token1" type="checkbox" checked="true">
1039
- <label for="token1">
1040
- <span class="icon icon-chrome mr-icon-spacing"></span>
1041
- Selectable token
1042
- </label>
1043
- </li>
1044
- <li class="selectable-token">
1045
- <input id="token2" type="checkbox">
1046
- <label for="token2">
1047
- <span class="icon icon-firefox mr-icon-spacing"></span>
1048
- Another token
1049
- </label>
1050
- </li>
1051
- <li class="selectable-token disabled">
1052
- <input id="token3" type="checkbox" disabled="true">
1053
- <label for="token3">Disabled token</label>
1054
- </li>
1055
- </ul>
1056
-
1057
- <!-- Inverted (for dark backgrounds) -->
1058
- <li class="selectable-token inverted">...</li>
1059
- ```
1060
-
1061
- ### Rating Scale
1062
- ```html
1063
- <div class="rating-scale">
1064
- <!-- Rating scale component -->
1065
- </div>
1066
- ```
1067
-
1068
- ### Form with Addon
1069
- ```html
1070
- <!-- Text addon (e.g., currency) -->
1071
- <div class="form-group with-addon">
1072
- <label class="form-label">Price</label>
1073
- <input type="number" class="form-control" placeholder="0.00">
1074
- <div class="form-addon">
1075
- <span class="text-label">EUR</span>
1076
- </div>
1077
- </div>
1078
-
1079
- <!-- Icon addon (e.g., validation status) -->
1080
- <div class="form-group with-addon">
1081
- <label class="form-label">Email Address</label>
1082
- <input type="email" class="form-control" placeholder="Enter email">
1083
- <div class="form-addon">
1084
- <span class="icon icon-check-circle-filled text-success"></span>
1085
- </div>
1086
- </div>
1087
- ```
1088
-
1089
- ### Form Card
1090
- A card component containing a form with various input elements. Useful for collapsable form sections or multi-form layouts.
1091
-
1092
- ```html
1093
- <div class="form-card">
1094
- <div class="form-card-heading">
1095
- <div class="form-card-title">Form Card Title</div>
1096
- <div class="form-card-actions">
1097
- <button class="btn btn-square btn-sm btn-primary">
1098
- <i class="icon icon-arrow-upward"></i>
1099
- </button>
1100
- <button class="btn btn-square btn-sm btn-primary">
1101
- <i class="icon icon-arrow-downward"></i>
1102
- </button>
1103
- <button class="btn btn-square btn-sm btn-primary">
1104
- <i class="icon icon-remove"></i>
1105
- </button>
1106
- </div>
1107
- </div>
1108
- <div class="form-grid">
1109
- <div class="form-group">
1110
- <label class="form-label">Input</label>
1111
- <input class="form-control" type="text" placeholder="Enter text">
1112
- </div>
1113
- <div class="form-group">
1114
- <label class="form-label">Textarea</label>
1115
- <textarea class="form-control" rows="4" placeholder="Enter description"></textarea>
1116
- </div>
1117
- <div class="form-group form-select">
1118
- <label class="form-label">Select</label>
1119
- <select class="tom-select" placeholder="Please select">
1120
- <option value=""></option>
1121
- <option value="Option 1">Option 1</option>
1122
- <option value="Option 2">Option 2</option>
1123
- </select>
1124
- </div>
1125
- </div>
1126
- </div>
1127
- ```
1128
-
1129
- ### Inverted Forms (for dark backgrounds)
1130
- ```html
1131
- <div class="form-group inverted">
1132
- <label class="form-label">Email</label>
1133
- <input type="email" class="form-control" placeholder="Enter email">
1134
- <div class="form-hint">We'll never share your email</div>
1135
- </div>
1136
- ```
1137
-
1138
- ---
1139
-
1140
- ## Overlay Components (Modal & Drawer)
1141
-
1142
- ### Modal Component
1143
-
1144
- Modals are used to display content in a layer above the main content. They can contain forms, confirmations, and other interactive content.
1145
-
1146
- #### Basic Modal
1147
- ```html
1148
- <details class="modal-wrapper">
1149
- <summary class="modal-trigger">
1150
- <div class="btn btn-primary">Open modal</div>
1151
- </summary>
1152
- <div class="modal-container">
1153
- <div class="modal">
1154
- <div class="modal-header">
1155
- <h2 class="modal-title">Modal Title</h2>
1156
- <div class="btn btn-square close-btn">
1157
- <div class="icon icon-cross"></div>
1158
- </div>
1159
- </div>
1160
- <div class="modal-content">
1161
- <p>Modal content goes here...</p>
1162
- <div class="form-grid">
1163
- <div class="form-group">
1164
- <label class="form-label">Input</label>
1165
- <input class="form-control" type="text" placeholder="">
1166
- </div>
1167
- </div>
1168
- </div>
1169
- <div class="modal-footer">
1170
- <a class="btn btn-primary" href="">Primary</a>
1171
- <a class="btn btn-secondary close-btn" href="">Close</a>
1172
- </div>
1173
- </div>
1174
- </div>
1175
- </details>
1176
- ```
1177
-
1178
- #### Modal Sizes
1179
- ```html
1180
- <!-- Large modal -->
1181
- <div class="modal modal-lg">...</div>
1182
-
1183
- <!-- Small modal (confirmation dialog) -->
1184
- <div class="modal modal-sm">...</div>
1185
- ```
1186
-
1187
- #### Modal with Disabled Background Close
1188
- ```html
1189
- <!-- Prevents closing when clicking outside the modal -->
1190
- <details class="modal-wrapper fade-close-disabled">
1191
- <summary class="modal-trigger">
1192
- <div class="btn btn-primary">Open modal</div>
1193
- </summary>
1194
- <div class="modal-container">
1195
- <div class="modal">...</div>
1196
- </div>
1197
- </details>
1198
- ```
1199
-
1200
- ### Drawer Component
1201
-
1202
- Drawers are side panels that slide in from the edge of the screen. They're an alternative to modals for displaying additional content.
1203
-
1204
- #### Basic Drawer
1205
- ```html
1206
- <details class="drawer-wrapper">
1207
- <summary class="drawer-trigger">
1208
- <div class="btn btn-primary">Open Drawer</div>
1209
- </summary>
1210
- <div class="drawer">
1211
- <div class="drawer-header">
1212
- <div class="drawer-title">Drawer title</div>
1213
- </div>
1214
- <div class="drawer-content">
1215
- <p>Drawer content goes here...</p>
1216
- </div>
1217
- <div class="drawer-footer">
1218
- <div class="btn btn-primary">Primary</div>
1219
- <div class="btn btn-secondary">Secondary</div>
1220
- </div>
1221
- </div>
1222
- </details>
1223
- ```
1224
-
1225
- #### Drawer with Close Button
1226
- ```html
1227
- <details class="drawer-wrapper">
1228
- <summary class="drawer-trigger">
1229
- <div class="btn btn-primary">Open Drawer</div>
1230
- <button class="btn btn-square close-btn">
1231
- <div class="icon icon-cross"></div>
1232
- </button>
1233
- </summary>
1234
- <div class="drawer">
1235
- <!-- Drawer content -->
1236
- <div class="drawer-footer">
1237
- <div class="btn btn-primary">Primary</div>
1238
- <div class="btn btn-secondary close-btn">Close</div>
1239
- </div>
1240
- </div>
1241
- </details>
1242
- ```
1243
-
1244
- #### Filter Drawer
1245
- ```html
1246
- <details class="drawer-wrapper">
1247
- <summary class="drawer-trigger">
1248
- <div class="btn btn-secondary">
1249
- <span class="icon icon-filter mr-icon-spacing"></span>
1250
- Filter
1251
- </div>
1252
- </summary>
1253
- <div class="drawer drawer-filter">
1254
- <!-- Filter form content -->
1255
- </div>
1256
- </details>
1257
- ```
1258
-
1259
- ---
1260
-
1261
- ## Page Layout Components
1262
-
1263
- ### Page Header Component
1264
-
1265
- A responsive grid layout component for dashboard and session management pages.
1266
-
1267
- #### Basic Page Header
1268
- ```html
1269
- <div class="page-header">
1270
- <div class="card page-maincard p-card-padding">
1271
- <h1 class="text-card-header">Session Details</h1>
1272
- <h2 class="page-session-title">Test Session Title</h2>
1273
-
1274
- <dl class="page-meta-info">
1275
- <dt class="label">Created on:</dt>
1276
- <dd>2025-10-21 10:45 AM</dd>
1277
-
1278
- <dt class="label">Last test:</dt>
1279
- <dd>2025-10-21 11:30 AM</dd>
1280
-
1281
- <dt class="label">ID:</dt>
1282
- <dd>321456987</dd>
1283
-
1284
- <dt class="label">URL:</dt>
1285
- <dd class="row-testsuite">
1286
- <a href="#" class="label">Test Suite Name</a>
1287
- </dd>
1288
-
1289
- <dt class="label">Status:</dt>
1290
- <dd class="text-white">Active</dd>
1291
- </dl>
1292
- </div>
1293
-
1294
- <div class="page-actions">
1295
- <a href="#" class="btn btn-primary btn-main">
1296
- <span class="icon icon-test-running-xl"></span>
1297
- Start Test
1298
- </a>
1299
- </div>
1300
- </div>
1301
- ```
1302
-
1303
- #### Page Header with Chart
1304
- ```html
1305
- <div class="page-header with-chart">
1306
- <div class="card page-maincard p-card-padding">
1307
- <!-- Main card content -->
1308
- </div>
1309
-
1310
- <div class="page-chart card p-card-padding">
1311
- <div class="echarts-container" id="chart"></div>
1312
- </div>
1313
-
1314
- <div class="page-actions">
1315
- <a href="#" class="btn btn-primary btn-main">
1316
- <span class="icon icon-review-xl"></span>
1317
- Show Report
1318
- </a>
1319
- <a href="#" class="btn btn-secondary">Re-run All Checks</a>
1320
- </div>
1321
- </div>
1322
- ```
1323
-
1324
- #### Page Header with Forms
1325
- ```html
1326
- <div class="page-header">
1327
- <div class="card page-maincard p-card-padding">
1328
- <div class="form-grid">
1329
- <div class="form-group">
1330
- <label class="form-label">Test Name</label>
1331
- <input type="text" class="form-control" placeholder="Enter test name">
1332
- </div>
1333
- <div class="form-group">
1334
- <label class="form-label">URL for Testing</label>
1335
- <input type="url" class="form-control" placeholder="https://example.com">
1336
- </div>
1337
- </div>
1338
- </div>
1339
-
1340
- <div class="page-actions">
1341
- <a href="#" class="btn btn-primary btn-xl">
1342
- <span class="icon icon-test-running-xl"></span>
1343
- Save and Run Test
1344
- </a>
1345
- <a href="#" class="btn btn-secondary">Save Draft</a>
1346
- <a href="#" class="btn btn-secondary">Cancel</a>
1347
- </div>
1348
- </div>
1349
- ```
1350
-
1351
- **Key Classes:**
1352
- - `.page-header` - Main grid container with responsive columns
1353
- - `.page-maincard` - Primary content card (spans 2-4 columns based on screen size)
1354
- - `.page-actions` - Action buttons column (vertical on md+, horizontal on mobile)
1355
- - `.page-session-title` - Session/test title with bottom margin
1356
- - `.page-meta-info` - Metadata grid (2 cols mobile, 6 cols xl)
1357
- - `.row-testsuite` - Special metadata row that spans 5 columns on xl
1358
- - `.with-chart` - Modifier for including chart column
1359
- - `.btn-main` - Primary action button that grows to fill available space
1360
-
1361
- ---
1362
-
1363
- ## Navigation Components
1364
-
1365
- ### Header Navigation
1366
- ```html
1367
- <header class="header">
1368
- <div class="header-logo">
1369
- <img src="logo.svg" alt="Logo">
1370
- </div>
1371
- <nav class="header-nav">
1372
- <a href="#" class="nav-link">Dashboard</a>
1373
- <a href="#" class="nav-link active">Projects</a>
1374
- <a href="#" class="nav-link">Settings</a>
1375
- </nav>
1376
- <div class="header-actions">
1377
- <button class="btn btn-sm btn-primary">New Project</button>
1378
- </div>
1379
- </header>
1380
- ```
1381
-
1382
- ### Sidebar Navigation
1383
- ```html
1384
- <aside class="sidebar">
1385
- <nav class="sidebar-nav">
1386
- <a href="#" class="sidebar-link active">
1387
- <i class="icon icon-home"></i>
1388
- Dashboard
1389
- </a>
1390
- <a href="#" class="sidebar-link">
1391
- <i class="icon icon-folder"></i>
1392
- Projects
1393
- </a>
1394
- <a href="#" class="sidebar-link">
1395
- <i class="icon icon-settings"></i>
1396
- Settings
1397
- </a>
1398
- </nav>
1399
- </aside>
1400
- ```
1401
-
1402
- ### Tab Navigation
1403
- ```html
1404
- <nav class="nav-tabs">
1405
- <div class="navlink active" href="">Navlink active</div>
1406
- <div class="navlink" href="">Navlink</div>
1407
- <div class="navlink" href="">Navlink</div>
1408
- <div class="navlink" href="">
1409
- Counter
1410
- <div class="counter">99</div>
1411
- </div>
1412
- <div class="navlink disabled" href="">Disabled</div>
1413
- </nav>
1414
- ```
1415
-
1416
- ### Tab Navigation Variants
1417
- ```html
1418
- <!-- Pills style -->
1419
- <nav class="nav-tabs pills">...</nav>
1420
-
1421
- <!-- Small tabs -->
1422
- <nav class="nav-tabs sm">...</nav>
1423
-
1424
- <!-- Tabs with actions -->
1425
- <nav class="nav-tabs with-actions">
1426
- <div class="navlink active">Tab 1</div>
1427
- <div class="navlink">Tab 2</div>
1428
- <div class="tab-actions">
1429
- <button class="btn btn-sm btn-primary">Action</button>
1430
- </div>
1431
- </nav>
1432
- ```
1433
-
1434
- ### Radio Tabs
1435
- ```html
1436
- <div class="radio-tabs">
1437
- <input type="radio" id="tab1" name="tabs" checked>
1438
- <label for="tab1">Tab 1</label>
1439
- <input type="radio" id="tab2" name="tabs">
1440
- <label for="tab2">Tab 2</label>
1441
- </div>
1442
- ```
1443
-
1444
- ### Product-Specific Headers
1445
- ```html
1446
- <!-- Customer portal header -->
1447
- <header class="header customer_header">...</header>
1448
-
1449
- <!-- Tester portal header -->
1450
- <header class="header tester_header">...</header>
1451
-
1452
- <!-- Manager portal header -->
1453
- <header class="header manager_header">...</header>
1454
-
1455
- <!-- AgenticQA header -->
1456
- <header class="header agenticqa_header">...</header>
1457
- ```
1458
-
1459
- ---
1460
-
1461
- ## Feedback Components
1462
-
1463
- ### Alerts
1464
-
1465
- Alerts notify users about important information or actions that require their attention.
1466
-
1467
- ```html
1468
- <!-- Default alert -->
1469
- <div class="alert">
1470
- <div class="alert-message">Alert message</div>
1471
- <button class="close">
1472
- <div class="icon icon-cross"></div>
1473
- </button>
1474
- </div>
1475
-
1476
- <!-- Alert with button -->
1477
- <div class="alert">
1478
- <div class="alert-message">
1479
- Alert with a button
1480
- <button class="btn btn-white">Alert action</button>
1481
- </div>
1482
- <button class="close">
1483
- <div class="icon icon-cross"></div>
1484
- </button>
1485
- </div>
1486
-
1487
- <!-- Info alert -->
1488
- <div class="alert alert-info">
1489
- <div class="alert-message">Info Alert</div>
1490
- <button class="close">
1491
- <div class="icon icon-cross"></div>
1492
- </button>
1493
- </div>
1494
-
1495
- <!-- Success alert -->
1496
- <div class="alert alert-success">
1497
- <div class="alert-message">Success Alert</div>
1498
- <button class="close">
1499
- <div class="icon icon-cross"></div>
1500
- </button>
1501
- </div>
1502
-
1503
- <!-- Warning alert -->
1504
- <div class="alert alert-warning">
1505
- <div class="alert-message">Warning Alert</div>
1506
- <button class="close">
1507
- <div class="icon icon-cross"></div>
1508
- </button>
1509
- </div>
1510
-
1511
- <!-- Error alert -->
1512
- <div class="alert alert-error">
1513
- <div class="alert-message">Error Alert</div>
1514
- <button class="close">
1515
- <div class="icon icon-cross"></div>
1516
- </button>
1517
- </div>
1518
- ```
1519
-
1520
- ### Notifications
1521
-
1522
- Notifications inform users about important updates. They can replace alerts and support various styles.
1523
-
1524
- ```html
1525
- <!-- Notification container -->
1526
- <div class="notification-container">
1527
- <!-- Basic notification -->
1528
- <a class="notification" href="">
1529
- <div class="notification-title">Linked Info Notification</div>
1530
- <div class="notification-content">
1531
- <div class="notification-message">You have 60 min left to finish this task.</div>
1532
- </div>
1533
- <button class="btn btn-close">
1534
- <span class="icon icon-cross"></span>
1535
- </button>
1536
- </a>
1537
-
1538
- <!-- Notification with icon -->
1539
- <a class="notification" href="">
1540
- <div class="notification-badge">
1541
- <div class="icon icon-bug-fix-confirmation-lg"></div>
1542
- </div>
1543
- <div class="notification-content">
1544
- <div class="notification-title">Notification with icon</div>
1545
- <div class="notification-message">Message content...</div>
1546
- </div>
1547
- <button class="btn btn-close">
1548
- <span class="icon icon-cross"></span>
1549
- </button>
1550
- </a>
1551
-
1552
- <!-- Success notification -->
1553
- <a class="notification success" href="">...</a>
1554
-
1555
- <!-- Warning notification -->
1556
- <a class="notification warning" href="">...</a>
1557
-
1558
- <!-- Error notification -->
1559
- <a class="notification error" href="">...</a>
1560
-
1561
- <!-- Notification with badge image -->
1562
- <a class="notification badges" href="">
1563
- <div class="notification-badge">
1564
- <img src="/assets/images/badge.svg">
1565
- </div>
1566
- <div class="notification-title">New badge received</div>
1567
- <div class="notification-content">Badge description</div>
1568
- <button class="btn btn-close">
1569
- <span class="icon icon-cross"></span>
1570
- </button>
1571
- </a>
1572
-
1573
- <!-- Notification with dedicated button -->
1574
- <div class="notification">
1575
- <div class="notification-title">Notification with button</div>
1576
- <div class="notification-content">
1577
- <div class="notification-message">Message content...</div>
1578
- <a class="btn btn-sm btn-inverted" href="">Go to page</a>
1579
- </div>
1580
- <button class="btn btn-close">
1581
- <span class="icon icon-cross"></span>
1582
- </button>
1583
- </div>
1584
- </div>
1585
- ```
1586
-
1587
- ### Progress Bars
1588
-
1589
- ```html
1590
- <!-- Default progress bar -->
1591
- <progress class="progress" value="32" max="100">32%</progress>
1592
-
1593
- <!-- Success progress bar -->
1594
- <progress class="progress progress-bar-success" value="32" max="100">32%</progress>
1595
-
1596
- <!-- Danger progress bar -->
1597
- <progress class="progress progress-bar-danger" value="32" max="100">32%</progress>
1598
-
1599
- <!-- Test progress (special styling) -->
1600
- <progress class="progress test-progress" value="32" max="100">32%</progress>
1601
-
1602
- <!-- Thick progress bar -->
1603
- <progress class="progress thick" value="32" max="100">32%</progress>
1604
- ```
1605
-
1606
- ### Loading Spinner
1607
- ```html
1608
- <div class="loading-spinner">
1609
- <div class="spinner"></div>
1610
- <p class="loading-text">Loading...</p>
1611
- </div>
1612
- ```
1613
-
1614
- ### Empty State
1615
-
1616
- Empty state messages inform users when there is no data to display.
1617
-
1618
- ```html
1619
- <!-- Default empty state -->
1620
- <div class="empty-state-message">
1621
- No items here yet.
1622
- </div>
1623
-
1624
- <!-- Search empty state -->
1625
- <div class="empty-state-message search">
1626
- No search results found.
1627
- </div>
1628
-
1629
- <!-- Sad empty state -->
1630
- <div class="empty-state-message sad">
1631
- Something went wrong.
1632
- </div>
1633
-
1634
- <!-- Smiling empty state -->
1635
- <div class="empty-state-message smile">
1636
- All caught up!
1637
- </div>
1638
-
1639
- <!-- Deceased empty state -->
1640
- <div class="empty-state-message deceased">
1641
- This item has been archived.
1642
- </div>
1643
-
1644
- <!-- Chat empty state -->
1645
- <div class="empty-state-message chat">
1646
- No messages yet.
1647
- </div>
1648
-
1649
- <!-- Bell empty state -->
1650
- <div class="empty-state-message bell">
1651
- No notifications.
1652
- </div>
1653
-
1654
- <!-- Horizontal empty state -->
1655
- <div class="empty-state-message horizontal">
1656
- Horizontal layout message.
1657
- </div>
1658
- ```
1659
-
1660
- ---
1661
-
1662
- ## Data Display Components
1663
-
1664
- ### Tables
1665
-
1666
- The design system includes several table variants with comprehensive dark mode support.
1667
-
1668
- #### Basic Table
1669
- ```html
1670
- <table class="table">
1671
- <thead>
1672
- <tr>
1673
- <th>Name</th>
1674
- <th>Status</th>
1675
- <th>Actions</th>
1676
- </tr>
1677
- </thead>
1678
- <tbody>
1679
- <tr>
1680
- <td>John Doe</td>
1681
- <td>
1682
- <span class="badge badge-success">Active</span>
1683
- </td>
1684
- <td>
1685
- <button class="btn btn-sm btn-ghost">Edit</button>
1686
- </td>
1687
- </tr>
1688
- </tbody>
1689
- </table>
1690
- ```
1691
-
1692
- #### Table Variants
1693
- ```html
1694
- <!-- Bordered table -->
1695
- <table class="table table-bordered">...</table>
1696
-
1697
- <!-- Borderless table -->
1698
- <table class="table table-borderless">...</table>
1699
-
1700
- <!-- Striped/alternating rows -->
1701
- <table class="table table-striped">...</table>
1702
-
1703
- <!-- Compact table -->
1704
- <table class="table table-sm">...</table>
1705
-
1706
- <!-- Standard table (key-value style) -->
1707
- <table class="table-standard">
1708
- <tbody>
1709
- <tr>
1710
- <td>Property</td>
1711
- <td>Value</td>
1712
- </tr>
1713
- </tbody>
1714
- </table>
1715
- ```
1716
-
1717
- #### Cell Style Table (Status Tracking)
1718
- ```html
1719
- <table class="table-cellstyle">
1720
- <thead>
1721
- <tr>
1722
- <th class="completed">Feature A</th>
1723
- <th class="inprogress">Feature B</th>
1724
- <th class="missing">Feature C</th>
1725
- </tr>
1726
- </thead>
1727
- <tbody>
1728
- <tr>
1729
- <td class="completed">Implementation done</td>
1730
- <td class="inprogress">Working on it...</td>
1731
- <td class="missing">Not started</td>
1732
- </tr>
1733
- </tbody>
1734
- </table>
1735
- ```
1736
-
1737
- **Status Classes:**
1738
- - `.completed` - Green checkmark icon
1739
- - `.inprogress` - Clock icon, gray background, italic text
1740
- - `.missing` - Exclamation icon, transparent bg, disabled text
1741
-
1742
- #### Table Cell Utilities
1743
- ```html
1744
- <!-- Fixed width cell -->
1745
- <td class="td-fixed-width">Limited to 150px</td>
1746
-
1747
- <!-- Actions cell (right-aligned) -->
1748
- <td class="action-cell">
1749
- <button class="btn btn-sm btn-ghost">Edit</button>
1750
- </td>
1751
-
1752
- <!-- Title cell (max 500px) -->
1753
- <td class="title">Long title...</td>
1754
-
1755
- <!-- Full width cell -->
1756
- <td class="cell-full-width">Takes all space</td>
1757
-
1758
- <!-- Text wrapping -->
1759
- <td class="wrap">This text will wrap</td>
1760
- <td class="pre">Preserves whitespace</td>
1761
- ```
1762
-
1763
- #### Interactive Table Rows
1764
- ```html
1765
- <!-- Hover to highlight row -->
1766
- <tr class="linked-row">...</tr>
1767
-
1768
- <!-- Hover to highlight cell -->
1769
- <td class="linked-cell">...</td>
1770
-
1771
- <!-- Highlight parent row on child hover -->
1772
- <tr>
1773
- <td>
1774
- <a class="highlight-parent-row" href="#">Link</a>
1775
- </td>
1776
- </tr>
1777
- ```
1778
-
1779
- ---
1780
-
1781
- ## List Components
1782
-
1783
- ### Basic List Items
1784
-
1785
- ```html
1786
- <div class="list-listitems">
1787
- <div class="listitem">
1788
- <div class="listitem-title">List item title</div>
1789
- </div>
1790
-
1791
- <!-- List item with badge -->
1792
- <div class="listitem">
1793
- <div class="listitem-badge">
1794
- <div class="icon icon-feature"></div>
1795
- </div>
1796
- <div class="listitem-title">
1797
- List-item title
1798
- <div class="listitem-label">Label</div>
1799
- </div>
1800
- <div class="listitem-metrics">
1801
- <div class="listitem-metric">
1802
- <div class="icon icon-critical"></div>
1803
- 99
1804
- </div>
1805
- <div class="listitem-metric">
1806
- <div class="icon icon-high"></div>
1807
- 99
1808
- </div>
1809
- </div>
1810
- </div>
1811
-
1812
- <!-- List item with actions -->
1813
- <div class="listitem">
1814
- <div class="listitem-title">List-item with action</div>
1815
- <div class="listitem-actions">
1816
- <a class="btn btn-primary">Action</a>
1817
- </div>
1818
- </div>
1819
-
1820
- <!-- Linked list item -->
1821
- <a class="listitem" href="#">
1822
- <div class="listitem-title">
1823
- <span class="icon icon-user-story mr-icon-spacing"></span>
1824
- Linked list item
1825
- </div>
1826
- </a>
1827
- </div>
1828
- ```
1829
-
1830
- ### List Item Variants
1831
-
1832
- ```html
1833
- <!-- With action bar -->
1834
- <div class="listitem with-actionbar">...</div>
1835
-
1836
- <!-- With footer -->
1837
- <div class="listitem with-footer">
1838
- <div class="listitem-title">Title</div>
1839
- <div class="listitem-footer">Footer content</div>
1840
- </div>
1841
-
1842
- <!-- Collapsable list item -->
1843
- <details class="listitem collapsable">
1844
- <summary class="listitem-header">
1845
- <div class="listitem-title">Collapsable Title</div>
1846
- <div class="btn collapse-btn"></div>
1847
- </summary>
1848
- <div class="listitem-content">Hidden content</div>
1849
- </details>
1850
-
1851
- <!-- Nested list items -->
1852
- <div class="listitem nested">
1853
- <div class="listitem-title">Parent</div>
1854
- <div class="list-listitems nested">
1855
- <div class="listitem">Child 1</div>
1856
- <div class="listitem">Child 2</div>
1857
- </div>
1858
- </div>
1859
-
1860
- <!-- Selectable list item -->
1861
- <div class="listitem selectable">
1862
- <input type="checkbox" id="select1">
1863
- <label for="select1">
1864
- <div class="listitem-title">Selectable Item</div>
1865
- </label>
1866
- </div>
1867
-
1868
- <!-- White background list item -->
1869
- <div class="listitem white">...</div>
1870
- ```
1871
-
1872
- ### User Item
1873
- ```html
1874
- <div class="user-item">
1875
- <div class="user-item-avatar">
1876
- <img src="avatar.jpg" alt="User">
1877
- </div>
1878
- <div class="user-item-info">
1879
- <h4 class="user-item-name">Jane Smith</h4>
1880
- <p class="user-item-email">jane@example.com</p>
1881
- </div>
1882
- <div class="user-item-actions">
1883
- <button class="btn btn-sm btn-secondary">Message</button>
1884
- </div>
1885
- </div>
1886
- ```
1887
-
1888
- ### Task/Issue Item
1889
- ```html
1890
- <div class="task-item">
1891
- <div class="task-item-header">
1892
- <h4 class="task-item-title">Fix login bug</h4>
1893
- <span class="badge badge-danger">High</span>
1894
- </div>
1895
- <div class="task-item-body">
1896
- <p class="task-item-description">Description</p>
1897
- </div>
1898
- <div class="task-item-footer">
1899
- <span class="task-item-meta">Due: Oct 25, 2025</span>
1900
- </div>
1901
- </div>
1902
- ```
1903
-
1904
- ---
1905
-
1906
- ## Splitview Components
1907
-
1908
- Two-pane layout for list and detail views with responsive behavior.
1909
-
1910
- ### Basic Splitview
1911
- ```html
1912
- <div class="splitview">
1913
- <div class="splitview-list">
1914
- <div class="splitview-item">
1915
- <div class="splitview-item-title">Item 1</div>
1916
- </div>
1917
- </div>
1918
- <div class="splitview-detail">
1919
- <h2>Detail View</h2>
1920
- <p>Selected item details</p>
1921
- </div>
1922
- </div>
1923
- ```
1924
-
1925
- ### Splitview List Header
1926
- ```html
1927
- <div class="splitview-list-header">
1928
- <div class="form-check sm">
1929
- <input type="checkbox">
1930
- </div>
1931
- <h3 class="splitview-list-header-title">18 Bugs</h3>
1932
- <div class="splitview-list-header-actions">
1933
- <details class="dropdown-actions dropright">
1934
- <summary>
1935
- <a class="link-with-icon" href="">
1936
- <div class="icon icon-sort-descending"></div>
1937
- Severity (desc)
1938
- </a>
1939
- </summary>
1940
- <div class="popover-menu">
1941
- <a class="popover-action" href="#">Sort option 1</a>
1942
- <a class="popover-action" href="#">Sort option 2</a>
1943
- </div>
1944
- </details>
1945
- <a class="linked-icon" href="">
1946
- <div class="icon icon-filter"></div>
1947
- </a>
1948
- <a class="linked-icon" href="">
1949
- <div class="icon icon-search"></div>
1950
- </a>
1951
- </div>
1952
- </div>
1953
- ```
1954
-
1955
- ### Splitview Item
1956
- ```html
1957
- <div class="splitview-list">
1958
- <div class="splitview-item">
1959
- <div class="splitview-item-checkbox form-check sm">
1960
- <input type="checkbox">
1961
- </div>
1962
- <div class="splitview-item-icon icon icon-critical"></div>
1963
- <div class="splitview-item-text">
1964
- <div class="splitview-item-title">Item title</div>
1965
- <div class="splitview-item-metainfo">
1966
- #123321321 | Product Detail Page
1967
- </div>
1968
- </div>
1969
- <div class="splitview-item-status">
1970
- <div class="status-icon status-submitted"></div>
1971
- <div class="status-icon status-manager-approved"></div>
1972
- </div>
1973
- </div>
1974
-
1975
- <!-- Selected state -->
1976
- <div class="splitview-item selected">...</div>
1977
- </div>
1978
- ```
1979
-
1980
- ### Splitview with Status Groups
1981
- ```html
1982
- <div class="splitview">
1983
- <div class="splitview-list">
1984
- <details class="splitview-group" open>
1985
- <summary class="splitview-group-header">
1986
- <h3 class="splitview-group-title">Test Group 1</h3>
1987
- <i class="icon icon-chevron-down"></i>
1988
- </summary>
1989
-
1990
- <div class="splitview-group-status">
1991
- <div class="status-stepper">
1992
- <div class="status-step completed">
1993
- <i class="icon icon-check-thick-centered"></i>
1994
- 3 done
1995
- </div>
1996
- <div class="status-step active">
1997
- <i class="icon icon-sync"></i>
1998
- Executing
1999
- </div>
2000
- <div class="status-step">
2001
- + 3 to do
2002
- </div>
2003
- </div>
2004
- </div>
2005
-
2006
- <div class="splitview-item">...</div>
2007
- <div class="splitview-item">...</div>
2008
-
2009
- <button class="splitview-btn">
2010
- Show 5 dismissed items
2011
- </button>
2012
- </details>
2013
- </div>
2014
- </div>
2015
- ```
2016
-
2017
- ### Collapsable Splitview Item
2018
- ```html
2019
- <details class="splitview-item collapsable">
2020
- <summary class="splitview-item-header">
2021
- <div class="splitview-item-title">Collapsable Item</div>
2022
- <div class="btn collapse-btn"></div>
2023
- </summary>
2024
- <div class="splitview-item-content">
2025
- Expanded content
2026
- </div>
2027
- </details>
2028
- ```
2029
-
2030
- ---
2031
-
2032
- ## Chat Components
2033
-
2034
- Comprehensive chat interface components with full dark mode support.
2035
-
2036
- ### Chat Message List
2037
- ```html
2038
- <div class="list-chat-messages">
2039
- <div class="chat-message-item">
2040
- <img src="avatar.jpg" alt="User" class="chat-avatar">
2041
-
2042
- <div class="chat-header">
2043
- <span class="chat-title">
2044
- <span class="chat-author">John Doe</span>
2045
- </span>
2046
- <span class="chat-time">2 hours ago</span>
2047
- </div>
2048
-
2049
- <div class="chat-message">
2050
- <p>This is a chat message with some content.</p>
2051
- </div>
2052
-
2053
- <div class="chat-actions">
2054
- <button class="btn btn-ghost btn-sm">
2055
- <i class="icon icon-reply"></i>
2056
- </button>
2057
- </div>
2058
- </div>
2059
- </div>
2060
- ```
2061
-
2062
- ### Full Width Chat
2063
- ```html
2064
- <div class="list-chat-messages full-width">
2065
- <div class="chat-message-item">...</div>
2066
- </div>
2067
- ```
2068
-
2069
- ### Chat Message Variants
2070
-
2071
- ```html
2072
- <!-- Announcement message -->
2073
- <div class="chat-message">
2074
- <div class="message-banner announcement">
2075
- System Announcement: Maintenance scheduled
2076
- </div>
2077
- <p>The system will be down for maintenance on Saturday.</p>
2078
- </div>
2079
-
2080
- <!-- Mentioned message -->
2081
- <div class="chat-message">
2082
- <div class="message-banner mentioned">
2083
- <span class="text-mentioned">@YourName</span> mentioned you
2084
- </div>
2085
- <p>Hey, can you take a look at this?</p>
2086
- </div>
2087
- ```
2088
-
2089
- ### Chat Window Component
2090
- ```html
2091
- <div class="chat-window">
2092
- <div class="chat-window-header">
2093
- <h3>Chat</h3>
2094
- </div>
2095
- <div class="chat-window-messages">
2096
- <div class="list-chat-messages">
2097
- <!-- Messages -->
2098
- </div>
2099
- </div>
2100
- <div class="chat-window-input">
2101
- <textarea class="form-control" placeholder="Type a message..."></textarea>
2102
- <button class="btn btn-primary">Send</button>
2103
- </div>
2104
- </div>
2105
- ```
2106
-
2107
- ---
2108
-
2109
- ## Chart Components
2110
-
2111
- The design system integrates ECharts for data visualization with design system colors.
2112
-
2113
- ### Chart Container
2114
- ```html
2115
- <div class="echarts-container" id="my-chart"></div>
2116
- ```
2117
-
2118
- ### Chart Types
2119
-
2120
- #### Horizontal Bar Chart
2121
- ```javascript
2122
- import { createChartHorizontal } from './modules/echarts_horizontal';
2123
-
2124
- createChartHorizontal(
2125
- "element-id", // Target element ID
2126
- dataArray, // Data labels array
2127
- seriesArray, // Series configuration
2128
- showLegend, // Boolean: show legend
2129
- labelColor, // Color for labels
2130
- valueColor // Color for values
2131
- );
2132
- ```
2133
-
2134
- #### Donut Chart
2135
- ```javascript
2136
- import { createChartDonut } from './modules/echarts_donut';
2137
-
2138
- createChartDonut(
2139
- "element-id", // Target element ID
2140
- dataArray, // Data array with values
2141
- valueText, // Center value text
2142
- labelText, // Center label text
2143
- showLegend, // Boolean: show legend
2144
- labelColor, // Color for labels
2145
- valueColor // Color for values
2146
- );
2147
- ```
2148
-
2149
- #### Vertical Bar Chart
2150
- ```javascript
2151
- import { createChartVertical } from './modules/echarts_vertical';
2152
- ```
2153
-
2154
- #### Line Chart
2155
- ```javascript
2156
- import { createChartLine } from './modules/echarts_line';
2157
- ```
2158
-
2159
- #### Area Chart
2160
- ```javascript
2161
- import { createChartArea } from './modules/echarts_area';
2162
- ```
2163
-
2164
- #### Gauge Chart
2165
- ```javascript
2166
- import { createChartGauge } from './modules/echarts_gauge';
2167
- ```
2168
-
2169
- ### Chart Colors
2170
- ```javascript
2171
- // Available chart colors
2172
- export const colorCritical = '#FF3131';
2173
- export const colorHigh = '#d8ce0d';
2174
- export const colorLow = '#9fa2a8';
2175
- export const colorVisual = '#f48d21';
2176
- export const colorContent = '#326dd1';
2177
- export const colorUX = '#263340';
2178
- export const colorSuccess = '#8cbd24';
2179
- export const colorDanger = '#FF3131';
2180
- export const colorNeutral = '#e6e6e6';
2181
- export const colorInfo = '#326dd1';
2182
- export const colorBlueLight = '#21bef4';
2183
- ```
2184
-
2185
- ### Chart Data Examples
2186
- ```javascript
2187
- // Bug distribution data
2188
- export let dataBugs = [
2189
- { value: 79, name: 'Critical', itemStyle: {color: colorCritical}},
2190
- { value: 37, name: 'High', itemStyle: {color: colorHigh}},
2191
- { value: 19, name: 'Low', itemStyle: {color: colorLow}},
2192
- ];
2193
-
2194
- // Test case status
2195
- export let dataTestCases = [
2196
- { value: 50, name: 'Passed', itemStyle: {color: colorSuccess}},
2197
- { value: 23, name: 'Failed', itemStyle: {color: colorDanger}},
2198
- { value: 27, name: 'Open', itemStyle: {color: colorNeutral}},
2199
- ];
2200
- ```
2201
-
2202
- ---
2203
-
2204
- ## Status & Progress Components
2205
-
2206
- ### Status Stepper
2207
-
2208
- A horizontal stepper component for visualizing multi-step processes.
2209
-
2210
- #### Icon-based Status Stepper
2211
- ```html
2212
- <div class="status-stepper">
2213
- <div class="status-step completed">
2214
- <div class="icon icon-check-thick-centered"></div>
2215
- 3 done
2216
- </div>
2217
- <div class="status-step active">
2218
- <div class="icon icon-sync"></div>
2219
- Executing checks
2220
- </div>
2221
- <div class="status-step">
2222
- + 3 to do
2223
- </div>
2224
- </div>
2225
- ```
2226
-
2227
- #### Counter-based Status Stepper
2228
- ```html
2229
- <div class="status-stepper">
2230
- <div class="status-step completed">
2231
- <div class="counter">99</div>
2232
- Completed
2233
- </div>
2234
- <div class="status-step active">
2235
- <div class="counter">12</div>
2236
- Active
2237
- </div>
2238
- <div class="status-step">
2239
- <div class="counter">5</div>
2240
- Pending
2241
- </div>
2242
- </div>
2243
- ```
2244
-
2245
- **Component Classes:**
2246
- - `.status-stepper` - Container (flex row, items-stretch, full width)
2247
- - `.status-step` - Individual step (flex row, centered, rounded, px-md py-xs, bg-black)
2248
- - `.status-step.active` - Active step (grow-1, white text, bg-gray-750)
2249
- - `.status-step.completed` - Completed state (can combine with custom styling)
2250
- - `.status-step .icon` - Icon within step (mr-xs, text-label-color)
2251
- - `.status-step .counter` - Numeric counter (pr-xs, text-lg, font-bold)
2252
-
2253
- ---
2254
-
2255
- ## Utility Components
2256
-
2257
- ### Tags
2258
- ```html
2259
- <div class="list-tags">
2260
- <!-- Basic tag -->
2261
- <div class="tag">Tag</div>
2262
-
2263
- <!-- Small tag -->
2264
- <div class="tag sm">Tag sm</div>
2265
-
2266
- <!-- Focus group tag -->
2267
- <div class="tag focus-group">Focus-group</div>
2268
-
2269
- <!-- Verified tag -->
2270
- <div class="tag teamleader-verified">
2271
- <div class="icon icon-verify-check mr-xxs"></div>
2272
- TL
2273
- </div>
2274
-
2275
- <!-- Status tags -->
2276
- <div class="tag success">
2277
- <div class="icon icon-check-circle"></div>
2278
- Success
2279
- </div>
2280
- <div class="tag danger">
2281
- <div class="icon icon-cross-circle"></div>
2282
- Danger
2283
- </div>
2284
- <div class="tag pending">
2285
- <div class="icon icon-sync"></div>
2286
- Pending
2287
- </div>
2288
- </div>
2289
- ```
2290
-
2291
- ### Tag with Popover
2292
- ```html
2293
- <details class="popover-wrapper">
2294
- <summary>
2295
- <div class="tag popover-tag">
2296
- <div class="icon icon-clock"></div>
2297
- Popover-tag
2298
- </div>
2299
- </summary>
2300
- <div class="popover-menu info">
2301
- <div class="popover-title">Popover title</div>
2302
- <div class="popover-content">Content...</div>
2303
- <div class="popover-actions">
2304
- <div class="btn btn-sm btn-inverted">Action</div>
2305
- </div>
2306
- </div>
2307
- </details>
2308
-
2309
- <!-- Light popover tag -->
2310
- <div class="tag popover-tag light">...</div>
2311
-
2312
- <!-- Colored popover tags -->
2313
- <div class="tag popover-tag bg-info text-white">...</div>
2314
- <div class="tag popover-tag bg-black text-white">...</div>
2315
- <div class="tag popover-tag bg-danger text-white">...</div>
2316
- ```
2317
-
2318
- ### Info Popover
2319
- ```html
2320
- <details class="popover-wrapper">
2321
- <summary>
2322
- <div class="btn btn-sm btn-square">
2323
- <div class="icon icon-info"></div>
2324
- </div>
2325
- </summary>
2326
- <div class="popover-menu info">
2327
- <div class="popover-title">Popover title</div>
2328
- <div class="popover-content">Popover content...</div>
2329
- <div class="text-with-icon mt-xs">
2330
- <div class="icon icon-lock text-disabled mr-icon-spacing"></div>
2331
- <div class="text-sm">0/100 Completed</div>
2332
- </div>
2333
- <div class="text-with-icon mt-xs">
2334
- <div class="icon icon-unlock text-success mr-icon-spacing"></div>
2335
- <div class="text-sm">50/50 Done</div>
2336
- </div>
2337
- <div class="popover-actions">
2338
- <div class="btn btn-sm btn-inverted">Action</div>
2339
- </div>
2340
- </div>
2341
- </details>
2342
- ```
2343
-
2344
- ### Pagination
2345
- ```html
2346
- <nav class="pagy-bootstrap nav">
2347
- <ul class="pagination">
2348
- <li class="page-item prev">
2349
- <a class="page-link" href="#">&lt;</a>
2350
- </li>
2351
- <li class="page-item">
2352
- <a class="page-link" href="#">1</a>
2353
- </li>
2354
- <li class="page-item active">
2355
- <a class="page-link" href="#">2</a>
2356
- </li>
2357
- <li class="page-item">
2358
- <a class="page-link" href="#">3</a>
2359
- </li>
2360
- <li class="page-item next disabled">
2361
- <a class="page-link" href="#">&gt;</a>
2362
- </li>
2363
- </ul>
2364
- </nav>
2365
- ```
2366
-
2367
- ### Badges
2368
- ```html
2369
- <span class="badge badge-primary">New</span>
2370
- <span class="badge badge-success">Active</span>
2371
- <span class="badge badge-danger">Urgent</span>
2372
- <span class="badge badge-warning">Pending</span>
2373
- <span class="badge badge-info">Info</span>
2374
- ```
2375
-
2376
- ### Icon Sizes
2377
- ```html
2378
- <i class="icon icon-star text-icon-xxxs"></i> <!-- 10px -->
2379
- <i class="icon icon-star text-icon-xxs"></i> <!-- 0.625rem -->
2380
- <i class="icon icon-star text-icon-xs"></i> <!-- 16px -->
2381
- <i class="icon icon-star text-icon-sm"></i> <!-- 18px -->
2382
- <i class="icon icon-star text-icon"></i> <!-- 20px - default -->
2383
- <i class="icon icon-star text-icon-lg"></i> <!-- 40px -->
2384
- <i class="icon icon-star text-icon-xl"></i> <!-- 60px -->
2385
- <i class="icon icon-star text-icon-xxl"></i> <!-- 90px -->
2386
- ```
2387
-
2388
- ### Text with Icon
2389
- ```html
2390
- <div class="text-with-icon">
2391
- <div class="icon icon-check text-success mr-icon-spacing"></div>
2392
- <span>Text with icon</span>
2393
- </div>
2394
-
2395
- <div class="link-with-icon">
2396
- <div class="icon icon-external-link mr-icon-spacing"></div>
2397
- <a href="#">Link with icon</a>
2398
- </div>
2399
- ```
2400
-
2401
- ### Description List
2402
- ```html
2403
- <dl class="description-list">
2404
- <dt>Term</dt>
2405
- <dd>Definition</dd>
2406
- <dt>Another term</dt>
2407
- <dd>Another definition</dd>
2408
- </dl>
2409
-
2410
- <!-- Inline description list -->
2411
- <dl class="list-inline">
2412
- <dt>Property</dt>
2413
- <dd>Value</dd>
2414
- </dl>
2415
- ```
2416
-
2417
- ---
2418
-
2419
- ## AgenticQA Components
2420
-
2421
- Comprehensive component library specifically designed for the AgenticQA platform. These components provide AI-driven quality assurance workflow interfaces with sophisticated chat, progress tracking, and detailed testing result displays.
2422
-
2423
- **View Live Examples:** `http://localhost:8080/agenticqa/`
2424
-
2425
- ### Recent AgenticQA Updates (February 2026)
2426
-
2427
- - ✨ **Enhanced Chat Components**: Improved collapsable chat messages with better visual hierarchy
2428
- - ✨ **Splitview Items**: Advanced component for displaying grouped checks with status tracking and turbo-frame support
2429
- - 🎯 **Form Row Tables**: Grid-based table with integrated form controls for inline editing
2430
- - 📊 **Grid Tables**: Flexible grid-based table layout with URL collapsables and action menus
2431
- - 📋 **List Items**: Collapsable list items with attachments support for AI screenshots
2432
- - 🎨 **Chat Form Component**: Specialized form for check re-runs with additional instructions
2433
- - 🔄 **Status Stepper**: Progress tracking component showing completed, active, and pending states
2434
- - 📱 **Responsive Layouts**: All components optimized for mobile and desktop viewing
2435
- - 🌙 **Dark Mode Support**: Full dark mode styling across all AgenticQA components
2436
-
2437
- ---
2438
-
2439
- ### AgenticQA Page Header
2440
-
2441
- **Purpose:** Display session/test details with metadata and action buttons. Includes optional chart display for progress visualization.
2442
-
2443
- **Use Cases:**
2444
- - Test session overview with metadata (creation date, last run, session ID)
2445
- - Test suite information and status display
2446
- - Session control actions (start test, re-run tests, show report)
2447
- - Optional progress chart visualization
2448
-
2449
- **Key Classes:**
2450
- - `.page-header` - Main container
2451
- - `.page-maincard` - Primary information card (use with `.p-card-padding`)
2452
- - `.page-session-title` - Large session title text
2453
- - `.page-meta-info` - Definition list for metadata display
2454
- - `.page-actions` - Container for action buttons
2455
- - `.with-chart` - Modifier for charts display
2456
- - `.page-chart` - Chart container
2457
- - `.btn-main` - Main action button (primary CTA)
2458
-
2459
- **HTML Structure:**
2460
- ```html
2461
- <div class="page-header">
2462
- <div class="card page-maincard p-card-padding">
2463
- <h1 class="text-card-header">Session details</h1>
2464
- <h2 class="page-session-title">Test Session title</h2>
2465
- <dl class="page-meta-info">
2466
- <dt class="label">Created on:</dt>
2467
- <dd>2025-07-23 19:11 10:45 AM</dd>
2468
- <dt class="label">Last test:</dt>
2469
- <dd>2025-07-23 19:11 10:45 AM</dd>
2470
- <dt class="label">ID:</dt>
2471
- <dd>321456987</dd>
2472
- <dt class="label">URL:</dt>
2473
- <dd><a class="label" href="">Test Suite name</a></dd>
2474
- <dt class="label">Status:</dt>
2475
- <dd class="text-white">Running</dd>
2476
- </dl>
2477
- </div>
2478
- <div class="page-actions">
2479
- <a class="btn btn-primary btn-main" href="">
2480
- <span class="icon icon-test-running-xl"></span>
2481
- Start test
2482
- </a>
2483
- </div>
2484
- </div>
2485
- ```
2486
-
2487
- **With Chart:**
2488
- ```html
2489
- <div class="page-header with-chart">
2490
- <!-- ... main card ... -->
2491
- <div class="page-chart card p-card-padding">
2492
- <div class="echarts-container" id="echarts-testinator"></div>
2493
- </div>
2494
- <div class="page-actions">
2495
- <a class="btn btn-primary btn-main" href="">
2496
- <span class="icon icon-review-xl"></span>
2497
- Show report
2498
- </a>
2499
- </div>
2500
- </div>
2501
- ```
2502
-
2503
- ---
2504
-
2505
- ### AgenticQA Chat Components
2506
-
2507
- **Purpose:** Display conversational exchanges between users and the AI system for test instructions, feedback, and results discussion.
2508
-
2509
- #### Chat Messages (Standard)
2510
-
2511
- Display chat message items in a thread format with user identification and timestamps.
2512
-
2513
- **Use Cases:**
2514
- - AI justifications for test results
2515
- - User feedback and instructions
2516
- - Test check descriptions and explanations
2517
- - Bidirectional message threads
2518
-
2519
- **Key Classes:**
2520
- - `.list-chat-messages` - Container for message list
2521
- - `.chat-message-item` - Individual message wrapper
2522
- - `.your-message` - Modifier for user messages (right-aligned)
2523
- - `.chat-avatar` - User profile image
2524
- - `.chat-header` - Message header with title and timestamp
2525
- - `.chat-title` - Message title/label
2526
- - `.chat-message` - Message body content
2527
- - `.collapsable` - Modifier for expandable messages
2528
- - `.chat-action-row` - Container for action buttons after messages
2529
-
2530
- **HAML Structure:**
2531
- ```haml
2532
- .list-chat-messages.full-width
2533
- .chat-message-item
2534
- %img.chat-avatar{src:"/assets/images/profilepic_testinator.png"}
2535
- .chat-header
2536
- %span.chat-title.label Justification
2537
- %span.label 5 mins ago
2538
- .chat-message
2539
- Here's a message with analysis...
2540
- .chat-message-item.your-message
2541
- %img.chat-avatar{src:"/assets/images/placeholders/profile_supergirl.png"}
2542
- .chat-header
2543
- %span.chat-title.label Your message
2544
- %span.label 5 mins ago
2545
- .chat-message
2546
- Here's your feedback...
2547
- .chat-action-row
2548
- %a.btn.btn-primary.rounded-full re-run check
2549
- %a.btn.btn-secondary.rounded-full update check
2550
- ```
2551
-
2552
- #### Collapsable Chat Messages
2553
-
2554
- Expandable chat messages for long content with `<details>` element.
2555
-
2556
- **Use Cases:**
2557
- - Long AI justifications or explanations
2558
- - Detailed test results or error messages
2559
- - Optional content expansion to save space
2560
-
2561
- **Key Classes:**
2562
- - `.collapsable` - Modifier for expandable messages
2563
- - `details` - HTML details element for collapse functionality
2564
- - `.chat-header` - Summary header inside details
2565
-
2566
- ```haml
2567
- .chat-message-item.collapsable
2568
- %img.chat-avatar{src:"/assets/images/profilepic_testinator.png"}
2569
- %details
2570
- %summary.chat-header
2571
- %span.chat-title.label Collapsable message
2572
- %span.label 5 mins ago
2573
- .chat-message
2574
- Here's a long message with extensive lorem ipsum...
2575
- ```
2576
-
2577
- #### Chat History
2578
-
2579
- Collapsable container for viewing full conversation history.
2580
-
2581
- **Purpose:** Show/hide complete chat thread to reduce visual clutter while maintaining access to full context.
2582
-
2583
- **Use Cases:**
2584
- - Full conversation history display
2585
- - Context for test decisions
2586
- - Audit trail of AI reasoning
2587
-
2588
- ```haml
2589
- .card.p-card-padding
2590
- %details.chat-history-collapsable
2591
- %summary.chat-history-header
2592
- .chat-history-title Show complete history
2593
- .list-chat-messages.full-width
2594
- .chat-message-item
2595
- %img.chat-avatar{src:"/assets/images/profilepic_testinator.png"}
2596
- .chat-header
2597
- %span.chat-title.label Justification
2598
- %span.label 5 mins ago
2599
- .chat-message
2600
- Historical message content...
2601
- ```
2602
-
2603
- #### Chat Form
2604
-
2605
- **Purpose:** Allow users to re-run checks or update test parameters with additional instructions.
2606
-
2607
- **Use Cases:**
2608
- - Re-running a failed check with new instructions
2609
- - Providing additional context for test execution
2610
- - Sending feedback to AI system
2611
-
2612
- **Key Classes:**
2613
- - `.chat-form-row` - Container for form
2614
- - `.chat-form` - Form element
2615
- - `.form-actions` - Button container
2616
-
2617
- ```haml
2618
- .chat-form-row
2619
- %form.chat-form
2620
- %h5.text-card-header.mb-xxs Re-Run this check
2621
- %p.font-light.mb-md Add additional instructions for re-running this check.
2622
- %textarea.form-control{placeholder:"Add your instructions or feedback"}
2623
- .form-actions
2624
- %a.btn.btn-primary.rounded-full
2625
- %span.icon.icon-sync.mr-icon-spacing
2626
- re-run check
2627
- %button.btn.btn-secondary.rounded-full Cancel
2628
- ```
5
+ The full reference has been split into focused topic files in `ai-reference/` to save tokens. Load only the file(s) you need.
2629
6
 
2630
7
  ---
2631
8
 
2632
- ### AgenticQA Status Stepper
2633
-
2634
- **Purpose:** Display progress of test execution with completed, active, and pending states.
2635
-
2636
- **Use Cases:**
2637
- - Overall progress tracking in splitview
2638
- - Check execution status summary
2639
- - Visual progress indicator
2640
-
2641
- **Key Classes:**
2642
- - `.status-stepper` - Main container
2643
- - `.status-step` - Individual step
2644
- - `.completed` - Modifier for completed steps
2645
- - `.active` - Modifier for active step
2646
- - `.counter` - Optional counter display
2647
- - `.icon` - Status icon
2648
-
2649
- **HAML Structure:**
2650
- ```haml
2651
- .status-stepper
2652
- .status-step.completed
2653
- .icon.icon-check-thick-centered
2654
- 3 done
2655
- .status-step.active
2656
- .icon.icon-sync
2657
- Executing checks
2658
- .status-step
2659
- + 3 to do
2660
- ```
2661
-
2662
- **With Counters:**
2663
- ```haml
2664
- .status-stepper
2665
- .status-step.completed
2666
- .counter 99
2667
- Completed
2668
- .status-step.active
2669
- .counter 99
2670
- Active
2671
- .status-step
2672
- .counter 99
2673
- Initial
2674
- ```
2675
-
2676
- ---
2677
-
2678
- ### AgenticQA Splitview Components
2679
-
2680
- **Purpose:** Display grouped checks and their individual test results in an expandable/collapsable interface.
2681
-
2682
- **Use Cases:**
2683
- - List of checks for a specific URL/page
2684
- - Detailed check results with status indicators
2685
- - Grouped by page/URL for organization
2686
- - Turbo-frame integration for dynamic updates
2687
-
2688
- **Key Classes:**
2689
- - `.splitview-group` - Collapsable group container
2690
- - `.splitview-item` - Individual check item
2691
- - `.splitview-item-icon` - Status icon
2692
- - `.splitview-item-text` - Check description
2693
- - `.splitview-item-title` - URL or group title
2694
- - `.splitview-item-status` - Status label/icon
2695
- - `.splitview-group-status` - Group-level status stepper
2696
- - `.selected` - Modifier for selected item
2697
- - `.unread` - Modifier for unread items
2698
- - `.text-with-icon` - Icon + text combination
2699
- - `.splitview-btn` - Show more button
2700
- - `.turbo-frame` - Turbo frame wrapper
2701
-
2702
- **Status Icons:**
2703
- - `.icon-check-circle-filled.success` - Passed check
2704
- - `.icon-cross-circle-filled.danger` - Failed check
2705
- - `.icon-blocked.blocked` - Blocked/skipped check
2706
- - `.icon-sync.pending` - Pending/executing check
2707
- - `.icon-circle-empty` - Not started/placeholder
2708
-
2709
- **HAML Structure:**
2710
- ```haml
2711
- %details.splitview-group
2712
- %summary.splitview-item.unread
2713
- .splitview-item-icon.icon.icon-circle-empty.text-chart-empty
2714
- .splitview-item-text
2715
- .splitview-item-title https://www.example.com/product
2716
- .splitview-item-status
2717
- .text-with-icon
2718
- .icon.icon-sync
2719
- executing checks
2720
- .splitview-group-status.status-stepper
2721
- .status-step.completed
2722
- .icon.icon-check-thick-centered
2723
- 3 done
2724
- .status-step.active
2725
- .icon.icon-sync
2726
- Executing checks
2727
- .status-step
2728
- + 3 to do
2729
- .splitview-item.selected
2730
- .splitview-item-icon.icon.icon-cross-circle-filled.danger
2731
- .splitview-item-text Check title
2732
- .splitview-item.unread
2733
- .splitview-item-icon.icon.icon-check-circle-filled.success
2734
- .splitview-item-text Check title
2735
- ```
2736
-
2737
- **With Turbo Frames (Dynamic Updates):**
2738
- ```haml
2739
- %details.splitview-group
2740
- %summary.splitview-item
2741
- .splitview-item-icon.icon.icon-circle-empty.text-chart-empty
2742
- .splitview-item-text
2743
- .splitview-item-title https://url.com
2744
- .splitview-group-status.status-stepper
2745
- .status-step.active
2746
- Pending start
2747
- .status-step
2748
- + 6 to do
2749
- %turbo-frame.turbo-wrapper
2750
- %a.splitview-item
2751
- .splitview-item-icon.icon.icon-check-circle-filled.success
2752
- .splitview-item-text Navigation Menu Hover
2753
- %turbo-frame.turbo-wrapper
2754
- %a.splitview-item
2755
- .splitview-item-icon.icon.icon-cross-circle-filled.danger
2756
- .splitview-item-text No Results Message
2757
- %btn.btn.splitview-btn Show 99 dismissed checks
2758
- ```
2759
-
2760
- ---
2761
-
2762
- ### AgenticQA List Items
2763
-
2764
- **Purpose:** Display detailed check results or findings with expandable content and attachments (screenshots).
2765
-
2766
- **Use Cases:**
2767
- - Individual bug/issue details
2768
- - Screenshot and evidence display
2769
- - Detailed findings with descriptions
2770
- - AI analysis and justification
2771
-
2772
- **Key Classes:**
2773
- - `.list-listitems` - Container
2774
- - `.listitem` - Individual item wrapper
2775
- - `details` - Collapsable wrapper
2776
- - `.listitem-header` - Header with title and expand button
2777
- - `.listitem-badge` - Number/index badge
2778
- - `.listitem-title` - Item title
2779
- - `.listitem-actions` - Header actions
2780
- - `.collapse-btn` - Expand/collapse button
2781
- - `.listitem-content` - Expanded content
2782
- - `.listitem-subheadline` - Section subheading
2783
- - `.listitem-card` - Text content wrapper
2784
- - `.listitem-attachments` - Attachments container
2785
- - `.attachment` - Individual attachment
2786
- - `.attachment-thumb` - Attachment preview image
2787
-
2788
- **HAML Structure:**
2789
- ```haml
2790
- .list-listitems
2791
- %details.listitem
2792
- %summary.listitem-header
2793
- .listitem-badge 1
2794
- .listitem-title List item collapsable
2795
- .listitem-actions
2796
- .btn.collapse-btn
2797
- .listitem-content
2798
- .listitem-subheadline Subheadline
2799
- .listitem-card
2800
- %p Here's a detailed message with findings and analysis...
2801
- .listitem-subheadline AI Screenshots
2802
- .listitem-attachments
2803
- .attachment
2804
- %a.attachment-thumb{href:"/assets/images/placeholders/bugdetails.png"}
2805
- %img{src:'/assets/images/placeholders/bugdetails.png', alt:'Bug details'}
2806
- .attachment
2807
- %a.attachment-thumb{href:"/assets/images/placeholders/screenshot.png"}
2808
- %img{src:'/assets/images/placeholders/screenshot.png', alt:'Screenshot'}
2809
- ```
2810
-
2811
- ---
2812
-
2813
- ### AgenticQA Tables
2814
-
2815
- **Purpose:** Display test checks in organized grid format with filtering, editing, and status tracking.
2816
-
2817
- #### Grid Table (Read-Only)
2818
-
2819
- Display checks in a grid layout with status icons, URLs, results, and action buttons.
2820
-
2821
- **Use Cases:**
2822
- - Overview of all checks for a test suite
2823
- - Status tracking and filtering
2824
- - Quick actions (edit, duplicate, delete)
2825
- - URL grouping and expansion
2826
-
2827
- **Key Classes:**
2828
- - `.table-grid` - Grid-based table container
2829
- - `.table-rowgroups` - Modifier for grouped styling
2830
- - `.thead` - Header row group
2831
- - `.tbody` - Body rows
2832
- - `.tr` - Table row
2833
- - `.th` - Header cell
2834
- - `.td` - Data cell
2835
- - `.checkbox-column` - Checkbox cell
2836
- - `.action-column` - Actions cell (right-aligned)
2837
- - `.url-collapsable` - Collapsable URL list
2838
- - `.dropdown-actions` - Dropdown menu for actions
2839
- - `.form-check` - Checkbox wrapper
2840
- - `.text-with-icon` - Icon + text combination
2841
-
2842
- **Grid Configuration:**
2843
- ```
2844
- grid-template-columns: repeat(2, auto) repeat(2, minmax(12rem, 1fr)) repeat(5, auto);
2845
- ```
2846
-
2847
- **HAML Structure:**
2848
- ```haml
2849
- .table-grid.table-rowgroups{style:"grid-template-columns: repeat(2, auto) repeat(2, minmax(12rem, 1fr)) repeat(5, auto);"}
2850
- .thead
2851
- .tr
2852
- .th
2853
- .form-check.sm
2854
- %input#check1sm{type:'checkbox'}
2855
- .th status
2856
- .th title
2857
- .th urls
2858
- .th check suite
2859
- .th results
2860
- .th executions
2861
- .th executed
2862
- .th
2863
- .tbody
2864
- .tr
2865
- .btn.btn-sm.btn-block.btn-subtile.mb-xxs.col-span-9
2866
- .icon.icon-plus.mr-icon-spacing
2867
- Add new check
2868
- .tr
2869
- .td.checkbox-column
2870
- .form-check.sm
2871
- %input#check1sm{type:'checkbox'}
2872
- .td status
2873
- .td
2874
- %a.white.font-normal{href:"#"} Short Title
2875
- .td
2876
- %details.url-collapsable
2877
- %summary
2878
- %p https://url.com
2879
- .trigger
2880
- .text-closed Show 3 more
2881
- .text-open Show less
2882
- %p https://url.com/1
2883
- %p https://url.com/2
2884
- %p https://url.com/3
2885
- .td
2886
- %a.white.font-normal{href:"#"} Check suite title
2887
- .td
2888
- .flex.flex-row
2889
- .text-with-icon.mr-sm
2890
- .icon.icon-check-circle-filled.text-success
2891
- 999
2892
- .text-with-icon.mr-sm
2893
- .icon.icon-cross-circle-filled.text-danger
2894
- 999
2895
- .text-with-icon
2896
- .icon.icon-blocked.text-blocked
2897
- 999
2898
- .td 6
2899
- .td 13h ago
2900
- .td.action-column
2901
- %a.btn.btn-square{href:'#'}
2902
- .icon.icon-pencil
2903
- %details.dropdown-actions.dropright
2904
- %summary
2905
- .btn.btn-square
2906
- .icon.icon-more
2907
- .popover-menu
2908
- %a.popover-action{href:'#'}
2909
- .icon.icon-pencil
2910
- Edit
2911
- %a.popover-action{href:'#'}
2912
- .icon.icon-copy
2913
- Duplicate
2914
- %a.popover-action{href:'#'}
2915
- .icon.icon-delete
2916
- Delete
2917
- ```
2918
-
2919
- #### Form Row Table (Editable)
2920
-
2921
- Grid-based table with inline form controls for editing check parameters.
2922
-
2923
- **Purpose:** Create or edit multiple checks in a structured table layout with form validation.
2924
-
2925
- **Use Cases:**
2926
- - Creating new checks for a test suite
2927
- - Editing existing check parameters
2928
- - Inline validation and feedback
2929
- - Responsive mobile-friendly editing
2930
-
2931
- **Key Classes:**
2932
- - `.formrow` - Form-based table row
2933
- - `.form-group` - Form field wrapper
2934
- - `.formrow-actions` - Button actions for save/discard
2935
- - Responsive modifiers: `col-span-4 lg:col-span-1`
2936
-
2937
- **HAML Structure:**
2938
- ```haml
2939
- .table-grid.table-rowgroups{style:"grid-template-columns: repeat(3, auto) repeat(1, minmax(12rem, 1fr)) auto;"}
2940
- .thead
2941
- .tr
2942
- .th
2943
- .form-check.sm
2944
- %input{type:'checkbox'}
2945
- .th check title
2946
- .th page type
2947
- .th check description
2948
- .th
2949
- .tbody
2950
- .tr
2951
- .btn.btn-sm.btn-block.btn-subtile.mb-xxs.col-span-5
2952
- .icon.icon-plus.mr-icon-spacing
2953
- Add new check
2954
- %form.formrow.tr
2955
- .td.checkbox-column.row-span-4{class:"lg:row-span-1"}
2956
- .form-check.sm
2957
- %input{type:'checkbox', disabled:"true"}
2958
- .td.col-span-4{class:"lg:col-span-1"}
2959
- .label.mb-xxs{class:"lg:hidden"} Check title
2960
- %input.form-control{type:'text', placeholder:"An input field"}
2961
- .td.col-span-4{class:"lg:col-span-1"}
2962
- .label.mb-xxs{class:"lg:hidden"} Page type
2963
- %select.tom-select{placeholder: "Please select"}
2964
- %option{value: ""}
2965
- %option{value:"Option 1"} Option 1
2966
- %option{value:"Option 2"} Option 2
2967
- .td.col-span-4{class:"lg:col-span-1"}
2968
- .label.mb-xxs{class:"lg:hidden"} Check description
2969
- %textarea.form-control{rows:'1', placeholder:"Textarea"}
2970
- .td.formrow-actions.col-span-4{class:"lg:col-span-1"}
2971
- %button.btn.btn-sm.btn-block.btn-primary Save changes
2972
- %button.btn.btn-sm.btn-block.btn-danger Discard
2973
- ```
2974
-
2975
- #### URL Collapsable
2976
-
2977
- **Purpose:** Expand/collapse long URLs to save table space.
2978
-
2979
- **Use Cases:**
2980
- - Multiple URLs per check
2981
- - Long domain paths
2982
- - Grouped URL display
2983
-
2984
- ```haml
2985
- %details.url-collapsable
2986
- %summary
2987
- %p https://example.invalid/nebula-saffron/research/data/sets/long-format/experimental/phase-2
2988
- .trigger
2989
- .text-closed Show 6 more
2990
- .text-open Show less
2991
- %p https://example.invalid/data/sets/long-format/experimental/1
2992
- %p https://example.invalid/data/sets/long-format/experimental/2
2993
- %p https://example.invalid/data/sets/long-format/experimental/3
2994
- ```
2995
-
2996
- ---
2997
-
2998
- ### AgenticQA Header
2999
-
3000
- **Purpose:** Navigation header for AgenticQA application with user profile, dropdowns, and mobile menu.
3001
-
3002
- **Use Cases:**
3003
- - Main application navigation
3004
- - User profile and settings access
3005
- - Quick navigation links
3006
- - Responsive mobile menu
3007
-
3008
- **Key Classes:**
3009
- - `.header.agenticqa` - AgenticQA header variant
3010
- - `.header-wrapper` - Header content wrapper
3011
- - `.navlinks` - Link group container
3012
- - `.navlink` - Navigation link
3013
- - `.active` - Modifier for active link
3014
- - `.header-logo` - Logo link
3015
- - `.header-dropdown` - Dropdown menu
3016
- - `.dropdown-menu` - Dropdown content
3017
- - `.mobile-links` - Mobile menu container
3018
- - `.mobile-menu` - Mobile menu content
3019
- - `.mobile-menu-btn` - Mobile menu toggle
3020
- - `.user-menu` - User profile menu
3021
- - `.btn-profile` - Profile button
3022
- - `.user-profile` - Profile image
3023
- - `.user-details` - User info (role, name)
3024
- - `.profile-role` - User role text
3025
- - `.profile-name` - User name text
3026
-
3027
- **HAML Structure:**
3028
- ```haml
3029
- %nav.header.agenticqa
3030
- .header-wrapper
3031
- .navlinks.logo-wrapper
3032
- %a.navlink.header-logo{href:'#'}
3033
- .navlinks.left
3034
- %a.navlink.active{href:'#'} Navlink active
3035
- %a.navlink{href:'#'} Navlink
3036
- %a.navlink{href:'#'}
3037
- %span.icon.icon-check-circle-filled
3038
- %span Navlink
3039
- %details.header-dropdown
3040
- %summary.navlink Collapsable
3041
- .dropdown-menu
3042
- %a.navlink{href:'#'}
3043
- %span.icon.icon-user
3044
- Dropdown-item
3045
- %a.navlink{href:'#'}
3046
- %span.icon.icon-cog
3047
- Dropdown-item
3048
- %a.navlink{href:'#'}
3049
- %span.icon.icon-shutdown
3050
- Sign out
3051
- %details.mobile-links
3052
- %summary.mobile-menu-btn
3053
- .navlink
3054
- %span.sr-only Open main menu
3055
- %span.icon.icon-menu
3056
- .mobile-menu.sidebar
3057
- %a.navlink.active{href:'#'}
3058
- %span.navlink-badge.icon.icon-home
3059
- Navlink active
3060
- %details
3061
- %summary.navlink
3062
- %span.icon.icon-product
3063
- Collapsable
3064
- %a.navlink{href:'#'}
3065
- %span.icon.icon-test
3066
- Navlink child
3067
- .navlinks.right
3068
- %details.header-dropdown.user-menu
3069
- %summary.btn-profile.navlink
3070
- %span.sr-only Open user menu
3071
- %img.user-profile{src:'/assets/images/placeholders/profile_supergirl.png'}
3072
- .user-details
3073
- .profile-role Admin
3074
- .profile-name Anja Berger
3075
- .dropdown-menu.profile-dropdown
3076
- %a.dropdown-link{href:'#'}
3077
- %span.icon.icon-user
3078
- Your Profile
3079
- %a.dropdown-link{href:'#'}
3080
- %span.icon.icon-cog
3081
- Settings
3082
- %a.dropdown-link{href:'#'}
3083
- %span.icon.icon-shutdown
3084
- Sign out
3085
- ```
3086
-
3087
- ---
3088
-
3089
- ### AgenticQA Asset References
3090
-
3091
- **Logo Assets:**
3092
- - Logo files: `/src/assets/images/logo_agenticqa/`
3093
- - Formats: PNG (raster) and SVG (vector)
3094
- - Variants: Purple/Teal with white/black text
3095
-
3096
- **Email Header Assets:**
3097
- - Email templates: `/src/assets/images/assets_agenticqa/`
3098
- - Email styling: `src/pages/agenticqa/email.njk`
3099
-
3100
- ---
3101
-
3102
- ### AgenticQA Layout Structure
3103
-
3104
- All AgenticQA pages use a dark sidebar layout structure:
3105
-
3106
- ```html
3107
- <body class="app-body">
3108
- <header class="header agenticqa">
3109
- <!-- AgenticQA navigation -->
3110
- </header>
3111
- <main class="main-content">
3112
- <div class="app-layout">
3113
- <aside class="sidebar dark">
3114
- <!-- Sidebar navigation with dark background -->
3115
- </aside>
3116
- <div class="content-area">
3117
- <!-- Main content area -->
3118
- </div>
3119
- </div>
3120
- </main>
3121
- </body>
3122
- ```
3123
-
3124
- **Layout Classes:**
3125
- - `.page-with-sidebar-dark` - Dark sidebar layout (AgenticQA standard)
3126
- - `.page-with-sidebar-nocode` - Sidebar without code blocks
3127
- - `.page-with-sidebar` - Standard sidebar layout
3128
-
3129
- ---
3130
-
3131
- ### AgenticQA Best Practices
3132
-
3133
- 1. **Chat Interactions**
3134
- - Keep messages concise and focused
3135
- - Use collapsable messages for long content
3136
- - Always include timestamps and speaker identification
3137
- - Use appropriate icons for message context
3138
-
3139
- 2. **Status Tracking**
3140
- - Use status stepper for overall progress
3141
- - Use splitview for URL/page grouping
3142
- - Provide clear status indicators (completed, active, pending)
3143
- - Include counter badges for progress
3144
-
3145
- 3. **Table Design**
3146
- - Use grid tables for read-only displays
3147
- - Use form row tables for inline editing
3148
- - Always include status column first
3149
- - Provide expandable URL/details sections
3150
- - Include action buttons for quick operations
3151
-
3152
- 4. **List Items**
3153
- - Use collapsable structure for detail preservation
3154
- - Include attachments/screenshots for evidence
3155
- - Provide clear subheadings and sections
3156
- - Use consistent styling for findings
3157
-
3158
- 5. **Navigation**
3159
- - Follow AgenticQA header pattern for consistency
3160
- - Include user profile in top-right
3161
- - Support mobile menu for responsive design
3162
- - Highlight active navigation item
3163
-
3164
- 6. **Dark Mode**
3165
- - All AgenticQA components include dark mode support
3166
- - Dark sidebar is primary navigation pattern
3167
- - Sufficient contrast for readability
3168
- - Test on actual dark backgrounds
3169
-
3170
- ---
3171
-
3172
- ## Dark Mode
3173
-
3174
- The design system includes comprehensive dark mode support with customized theme variables and a centered layout variant for dark mode displays.
3175
-
3176
- ### Enabling Dark Mode
3177
-
3178
- ```html
3179
- <!-- Apply dark class to body or container -->
3180
- <body class="app-body dark">
3181
- <!-- All dark mode styles will be applied -->
3182
- </body>
3183
- ```
3184
-
3185
- ### Dark Mode Layout Structure
3186
-
3187
- ```html
3188
- <body class="app-body dark">
3189
- <header class="header">
3190
- <!-- Dark mode header -->
3191
- </header>
3192
- <main class="main-content centered">
3193
- <div class="centered-content">
3194
- <!-- Centered content with dark mode styling -->
3195
- </div>
3196
- </main>
3197
- <footer class="actionbar centered">
3198
- <!-- Centered actionbar for dark mode -->
3199
- </footer>
3200
- </body>
3201
- ```
3202
-
3203
- ### Dark Mode Color Palette
3204
- ```css
3205
- .dark {
3206
- /* Core Colors */
3207
- --color-appbody: #181818;
3208
- --color-appbody-textcolor: #f2f2f2;
3209
- --color-header: #1d1d1d;
3210
- --color-card: #1D1D1D;
3211
- --color-listitem: #262626;
3212
-
3213
- /* Interactive Colors */
3214
- --color-primary: #78eac1;
3215
- --color-link: #8988eb;
3216
- --color-link-hover: #7954ff;
3217
-
3218
- /* Status Colors */
3219
- --color-success: #33BA9E;
3220
- --color-danger: #FF3131;
3221
- --color-bordercolor: #2E2E2E;
3222
-
3223
- /* Spacing & Style Adjustments */
3224
- --radius: 12px; /* Increased from 5px */
3225
- --spacing-grid-gutter: 40px; /* Increased from 20px */
3226
- --card-padding: 30px;
3227
- --fontsize-card-header: 1.125rem;
3228
- --font-size-label: 0.75rem;
3229
- }
3230
- ```
3231
-
3232
- ### Using Dark Mode
3233
- ```html
3234
- <!-- Apply dark class to container -->
3235
- <div class="dark">
3236
- <div class="bg-appbody text-appbody-textcolor">
3237
- <div class="card p-card-padding">
3238
- <p>Content with dark mode styling</p>
3239
- </div>
3240
- </div>
3241
- </div>
3242
-
3243
- <!-- Conditional dark mode classes -->
3244
- <div class="bg-card dark:bg-listitem">
3245
- <!-- Light mode: #e6e6e6, Dark mode: #262626 -->
3246
- </div>
3247
-
3248
- <!-- Buttons with dark mode -->
3249
- <div class="dark">
3250
- <button class="btn btn-primary">
3251
- <!-- Automatically styled for dark mode -->
3252
- </button>
3253
- </div>
3254
- ```
3255
-
3256
- ### Dark Mode Layout Examples
3257
-
3258
- **Centered Dark Mode Layout:**
3259
- - Optimal for documentation or form-based interfaces
3260
- - Content is centered with max-width constraint
3261
- - Footer actionbar is also centered
3262
- - View live example: `/pages/layouts/layout-darkmode`
3263
-
3264
- **Dark Mode with Forms:**
3265
- - Form controls are optimized for dark backgrounds
3266
- - Input fields have proper contrast
3267
- - Labels and hints are readable
3268
- - Error states are clearly visible
3269
-
3270
- ### Dark Mode Differences from Light Mode
3271
- - Border radius: `5px` → `12px`
3272
- - Grid gutters: `20px` → `40px`
3273
- - Table cell padding: `py-xs` → `py-md`
3274
- - Chat layout: 3 columns → 2 columns (actions hidden)
3275
- - Link colors: Petrol → Purple (#8988eb), Hover: Dark Purple (#7954ff)
3276
- - Text color: System colors → Light gray (#f2f2f2)
3277
- - Font sizes: Labels reduced to 0.75rem (from 0.8125rem)
3278
- - Card headers: 1.125rem in dark mode
3279
-
3280
- ### Dark Mode Best Practices
3281
-
3282
- 1. **Testing Dark Mode**
3283
- - Always preview components with the `.dark` class applied
3284
- - Test contrast ratios for accessibility compliance
3285
- - Verify all interactive elements are clearly visible
3286
-
3287
- 2. **Component-Specific Adjustments**
3288
- - Buttons: Use inverted variants for dark backgrounds
3289
- - Cards: Ensure sufficient contrast with dark background
3290
- - Text: Use light colors for readability
3291
- - Borders: Use subdued colors that don't overpower the dark background
3292
-
3293
- 3. **Dark Mode CSS Utilities**
3294
- - Use Tailwind's `dark:` prefix for conditional dark mode styles
3295
- - Example: `bg-white dark:bg-gray-800`
3296
- - Combine with custom CSS variables for consistency
3297
-
3298
- ---
3299
-
3300
- ## Best Practices for AI Agents
3301
-
3302
- ### When Building Pages:
3303
-
3304
- 1. **Start with Layout Structure**
3305
- - Use semantic HTML5 elements
3306
- - Apply layout classes: `header`, `sidebar`, `main`, `section`
3307
- - Use grid or flex utilities for responsive layouts
3308
- - Consider using `.page-header` for dashboard pages
3309
- - Choose between standard full-width or centered layout
3310
-
3311
- 2. **Component Selection**
3312
- - Choose the appropriate component variant for the use case
3313
- - Use semantic button/alert types (primary, success, danger, etc.)
3314
- - Apply consistent spacing using the spacing scale
3315
-
3316
- 3. **Responsive Design**
3317
- - Use responsive grid classes: `grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
3318
- - Apply responsive utilities: `hidden md:block`, `flex-col md:flex-row`
3319
- - Consider mobile-first approach
3320
-
3321
- 4. **Accessibility**
3322
- - Include proper ARIA labels
3323
- - Use semantic HTML elements
3324
- - Ensure proper heading hierarchy
3325
- - Include alt text for images
3326
- - Use `<label>` elements with `for` attributes
3327
-
3328
- 5. **Layout Pattern Selection**
3329
- - **Full-Width Layout**: Use for dashboards and data displays
3330
- - **Centered Layout**: Use for documentation and forms
3331
- - Both support dark mode with proper styling
3332
- - Choose based on content type and readability requirements
3333
-
3334
- 6. **Dark Mode Considerations**
3335
- - Always test components with `.dark` class applied
3336
- - Border radius is larger in dark mode (12px vs 5px)
3337
- - Grid gutters are larger in dark mode (40px vs 20px)
3338
- - Use `dark:` prefix for conditional dark mode styles
3339
- - Ensure sufficient contrast for readability
3340
- - Test with actual dark mode enabled in browsers
3341
-
3342
- 7. **Form Best Practices**
3343
- - Use `.form-grid` for form layouts
3344
- - Apply `.form-group` wrapper around each field
3345
- - Use `.form-hint` for helper text
3346
- - Use `.field_with_errors` for validation states
3347
- - Forms work well in both centered and full-width layouts
3348
-
3349
- 8. **Table Best Practices**
3350
- - Use `.table` for standard data tables
3351
- - Use `.table-standard` for key-value style tables
3352
- - Use `.table-cellstyle` for status tracking tables
3353
- - Use `.action-cell` for right-aligned action buttons
3354
- - Tables automatically adapt to dark mode
3355
-
3356
- 9. **Page Header Best Practices**
3357
- - Use `.page-header` for dashboard/session pages
3358
- - Main card should have `.page-maincard` and `p-card-padding`
3359
- - Add `.with-chart` modifier when including charts
3360
- - Actions go in `.page-actions`
3361
- - Supports dark mode styling
3362
-
3363
- ---
3364
-
3365
- ## Change Log
3366
-
3367
- ### Version 3.23.0 - February 2026
3368
-
3369
- **AgenticQA Documentation:**
3370
- - 📚 Comprehensive expansion of AgenticQA components section
3371
- - ✨ Detailed use cases for all AgenticQA components
3372
- - 🎯 Chat components documentation (standard, collapsable, history, form)
3373
- - 📊 Table components documentation (grid layout and form row editing)
3374
- - 📋 List items with attachment support documentation
3375
- - 🎨 Navigation header with user profile and mobile menu documentation
3376
- - 📱 Status stepper and progress tracking component documentation
3377
- - 🌙 Dark mode integration across all AgenticQA components
3378
- - 🔗 Splitview components with turbo-frame support documentation
3379
- - 📐 URL collapsable component for space-efficient display
3380
- - ✅ AgenticQA best practices for AI agents
3381
-
3382
- **Features:**
3383
- - Live example links for all AgenticQA components
3384
- - Complete HAML/HTML structure examples for each component
3385
- - Key classes and modifiers documented
3386
- - Responsive design patterns for mobile and desktop
3387
- - Status icon reference and usage guide
3388
-
3389
- ### Version 3.22.0 - January 2026
3390
-
3391
- **New Features:**
3392
- - ✨ Centered layout documentation and examples for improved readability
3393
- - ✨ Dark mode layout examples and enhanced dark mode documentation
3394
- - ✨ Centered actionbar variant for dark mode and standard layouts
3395
- - ✨ Centered header styling for consistent layout patterns
3396
- - ✨ HAML Preview functionality for live component viewing
3397
- - ✨ HAML Converter utility for template processing
3398
- - ✨ Comprehensive AI documentation across all component pages
3399
-
3400
- **Enhancements:**
3401
- - 📐 New layout patterns section with centered and full-width examples
3402
- - 🌙 Enhanced dark mode documentation with implementation examples
3403
- - 📋 All component pages now include descriptions and use cases
3404
- - 🎯 Updated layout documentation with max-width constraints
3405
- - 🎨 Form and table components optimized for dark mode
3406
- - 📝 Added layout selection guidelines for AI agents
3407
-
3408
- **Layout Updates:**
3409
- - Added `/pages/layouts/layout-centered` for centered layout examples
3410
- - Added `/pages/layouts/layout-darkmode` for dark mode examples
3411
- - Added `/pages/layout/centered_layout.haml` documentation
3412
- - Added `/pages/layout/darkmode.haml` documentation
3413
- - Added `/pages/navigation/header-centered.haml` for centered headers
3414
- - Improved layout documentation with examples
3415
- - Typography pages updated with link and icon examples
3416
-
3417
- **Documentation:**
3418
- - Added descriptions to all forms pages
3419
- - Updated textarea documentation
3420
- - Enhanced typography component examples
3421
-
3422
- ### Version 3.13.1 - January 21, 2026
3423
-
3424
- **Documentation Updates:**
3425
- - Converted table example files from Pug to HAML format
3426
- - Standardized HAML attribute syntax across all table examples
3427
-
3428
- ### Version 3.13.0 - January 20, 2026
3429
-
3430
- **New Components:**
3431
- - Date & Time Picker (Flatpickr integration)
3432
- - Enhanced table variants with striped/alternating row styles
3433
-
3434
- **Reorganization:**
3435
- - Tables section moved to dedicated `/pages/tables/` directory
3436
- - Improved table documentation
3437
-
3438
- **Enhancements:**
3439
- - Fixed table striped row styling
3440
- - Improved drawer footer padding
3441
- - Better splitview details close button
3442
- - Added image tagging capability
3443
-
3444
- ---
3445
-
3446
- ## Version & Support
3447
-
3448
- **Current Version:** 3.22.0
3449
- **Tailwind Version:** 4.1.11
3450
- **Node Version:** v23.11.0
3451
- **Template Language:** HAML (primary) and Pug formats supported
3452
-
3453
- For updates and examples, refer to:
3454
- - NPM: `npm install testio-tailwind@latest`
3455
- - Documentation: Included in package under `/dist/`
3456
- - Source: GitHub repository (test-IO/testio-tailwind)
3457
-
3458
- ---
9
+ ## Reference Files
3459
10
 
3460
- **END OF REFERENCE GUIDE**
11
+ | File | Topics |
12
+ |---|---|
13
+ | [ai-reference/00-index.md](ai-reference/00-index.md) | **Start here** — full index with load guidance and quick reference |
14
+ | [ai-reference/01-setup-colors-typography.md](ai-reference/01-setup-colors-typography.md) | Installation, CSS/JS imports, color palette, typography, spacing, breakpoints |
15
+ | [ai-reference/02-layout-patterns.md](ai-reference/02-layout-patterns.md) | Full-width & centered layouts, page header, navigation (header, sidebar, tabs) |
16
+ | [ai-reference/03-buttons.md](ai-reference/03-buttons.md) | All button variants, sizes, shapes, icons, inverted, dropdown menus, groups |
17
+ | [ai-reference/04-cards.md](ai-reference/04-cards.md) | Card structure, sizes, variants, card grid/list layouts |
18
+ | [ai-reference/05-forms.md](ai-reference/05-forms.md) | Inputs, hints, grid, checkboxes, radios, toggles, selects, date picker, addons |
19
+ | [ai-reference/06-overlays.md](ai-reference/06-overlays.md) | Modal (sizes, variants), Drawer (basic, filter) |
20
+ | [ai-reference/07-feedback.md](ai-reference/07-feedback.md) | Alerts, notifications, progress bars, loading spinner, empty states |
21
+ | [ai-reference/08-data-display.md](ai-reference/08-data-display.md) | Tables (basic, variants, cell-style, utilities, interactive rows) |
22
+ | [ai-reference/09-lists-splitview.md](ai-reference/09-lists-splitview.md) | List items (variants, collapsable, nested), splitview two-pane layout |
23
+ | [ai-reference/10-chat-charts-status.md](ai-reference/10-chat-charts-status.md) | Chat UI, ECharts integration, status stepper, tags, badges, pagination, popovers |
24
+ | [ai-reference/11-agenticqa.md](ai-reference/11-agenticqa.md) | AgenticQA platform: chat, splitview, tables, header, layout, best practices |
25
+ | [ai-reference/12-dark-mode.md](ai-reference/12-dark-mode.md) | Dark mode setup, CSS variables, color palette, differences from light mode |
26
+ | [ai-reference/13-best-practices.md](ai-reference/13-best-practices.md) | AI agent guidelines, layout selection, accessibility, version & support |